David Schirrmeister b015a74b43 update
2025-05-06 16:21:19 +02:00

4.8 KiB

Grenzen & Größen endlicher Automaten

Nerode-Index einer Sprache

  • Sei L=\{w ∈ \{x,y,z\}^*\}\space | \space \#_z(w) ∈ \{2,3\}\}

  • betrachte die Wörter aus \{x, y, z\}^*

    • Gruppiere sie hinsichtlich des "Grad der Zugehörigkeit" zu L
      • image_780.png
  • Beobachtung:

    • zwei Worte u ∈ L und v \not\in L sind sicherlich nicht sehr ähnlich
    • zwei Worte u,v ∈ L können ähnlich sein
      • ähnlich: zz und yzxxzy
      • nicht ähnlich: zz und zzz
    • zwei Worte u,v \not\in L können ähnlich sein
      • ähnlich: ε und xxy
      • nicht ähnlich: ε und yzxxxy
  • u,v ∈ Σ^* sind ähnlich bezüglich L, wenn:

    • durch anhängigen des gleichen, beliebigen Wortes
      • in beiden Fällen ein Wort aus L entsteht
      • in beiden Fällen ein Wort aus Σ \backslash L entsteht

Rechtsäquivalenz

  • gegebene Sprache L über Alphabet Σ
  • u,v ∈ Σ^* heißen rechtsäquivalent bezüglich L, wenn
    • ∀s ∈ Σ^*: u*s ∈ L ↔ v*s ∈ L
  • wir schreiben auch: (u,v) ∈ R_L oder u \space R_L \space v

Nerode-Klassen und -Index

  • gegebene Sprache L über Alphabet Σ und Wort u ∈ Σ^*
  • Nerode-Klasse $N(u)$: Menge der zu u rechtsäquivalenten Wörter:
    • N(u) := \{v ∈ Σ^* \space | \space (u,v) ∈ R_L\}
  • Nerode-Index von L: Anzahl Nerode-Klassen

Beispiel

  • ist v ∈ N(u) so gilt N(v)=N(u)

  • beliebiges u ∈ N heißt Repräsentant der Nerode-Klasse N

  • Wie lauten die Nerode-Klassen von der Sprache L_1 = \{w ∈ \{x,y,z\}^* \space | \space \#_Z(w) ∈ \{2,3\}\}?

    • image_781.png
  • Wie viele Nerode-Klassen hat L_2=\{0^n*1^n \space | \space n ∈ N_0\}

    • bspw. N_i=N(0^i) für i ∈ N_0

Eigenschaften von Nerode-Klassen

Nützliche Eigenschaften

Alles-oder-nichts

Sei L eine Sprache und N eine Nerode Klasse von L.
Dann gilt entweder N ⊆ L oder N \not ⊆ L := Σ^* \backslash L

Beweis:

  • wähle beliebiges, festes u ∈ N
  • für jedes v ∈ N gilt: u und v sind rechtsäquivalent
  • insbesondere: u = u * ε ∈ L ↔ v * ε = v ∈ L
  • also entweder sind alle solche Wörter v aus L (wenn u ∈ L)
  • oder es sind alle solche Wörter v nicht aus L (wenn u \not ∈ L)

Mitgegangen-Mitgefangen

Sei L eine Sprache und u,v ∈ Σ^* Wörter aus der gleichen Nerode-Klasse.
Dann gilt für alle s ∈ Σ^*: N(u*s)=N(v*s)

Beweis:

  • zu zeigen: (u*s, v*s) ∈ R_{L(A)}
  • sei dazu w ∈ Σ^* beliebig, dann gilt:
    • image_782.png

Gemeinsame Reise

Sei A = (Σ, Q, q_s, Q_A, δ) ein DEA.
Betrachte zwei Worte u,v ∈ Σ^* die A in den gleichen Zustand überführen.
Dann sind u und v rechtsäquivalent bzgl. L(A)

image_783.png

Nerode Klassen als Zustände

Nerode Klassen eignen sich perfekt als DEA-Zustände

Konstruktionsidee Beispiel

image_819.png
image_820.png

Formale Konstruktion

Sei L ⊆ Σ^* eine Sprache mit endlichem Index m ∈ \mathbb{N}.
Seien N_1, N_2, ..., N_m die Nerode-Klassen von L.
Dann definieren wir den DEA A_L =(Σ, Q, q_s, Q_a, δ):

  • Q :=\{N_1, N_2, ..., N_m\}
  • q_s:= N(ε)
  • Q_a :=\{N_i\space|\space N_i ⊆ L\}
  • für alle i ∈ \{1,2,...,m\} sei δ(N_i,x):=N(w*x)...
    • für ein beliebiges w ∈ N_i

Der Satz von Myhill-Nerode

Zu einer Sprache L gibt es genau dann einen DEA A = (Σ, Q, q_s, Q_A, δ) mit
L(A) = L, wenn L endlichen Index hat.

Beweis (Richtung →)

  • Sei A ein DEA mit L(A)=L
  • Wörter, die den gleichen Zustand erreichen
    • gehören zur gleichen Nerode Klasse
  • Wenn man ein beliebiges Wort betrachtet endet man in einer Nerode-Klasse
  • jede Nerode-Klasse entspricht einer der endlich vielen $N_q$

Beweis (Richtung ←)

  • Seien N_1,N_2,...,N_m endlich viele Nerode-Klassen
  • image_821.png
  • A ist ein DEA der die Sprache L akzeptiert

Reaping the Fruits!

Anwendung 1: Minimale endliche Automaten

  • Weniger Zustände als Nerode-Klassen gibt es nicht
  • Ein DEA A heißt minimal, wenn jeder DEA, der L(A) akzeptiert, mindestens so viele Zustände wie A hat.

Anwendung 2: Nichtexistenz von DEAs

  • gegebene Sprache L
    • L hat unendlich viele Nerode-Klassen
  • Sei L eine Sprache mit Index i ∈ \mathbb{N}. Jeder minimale DEA für L hat i Zustände.

Zu L ⊆ Σ^* gibt es keinen DEA

  • definiere unendliche Wortmenge X ⊆ Σ^*
  • zeige: keine zwei Worte sind rechtsäquivalent
    • wähle u,v ∈ X mit u \not = v beliebig
    • finde ein w ∈ Σ^* mit u*w ∈ L und v * w \not ∈ L
  • dann hat L Index i ≥ |X| = ∞ und hat folglich keinen DEA

Minimierungsalgorithmus