3.2 Die Darstellungen der endlichen Automaten

Endlicher Automat (3.1)

Ein (deterministischer) endlicher Automat (EA) ist ein Quintupel , wobei

  1. eine endliche Menge von Zuständen ist,
  2. ein Alphabet ist (Eingabealphabet),
  3. der Anfangszustand ist,
  4. die Menge der akzeptierenden Zustände ist,
  5. die Übergangsfunktion ist (: geht beim Lesen von in nach über).

Note: The transition function is total, i.e. we cannot have “not allowed transitions”. To work around it, we use a “garbage state” / sink which is non-accepting and self-loops for everything.

Konfiguration (3.1)

Sei ein EA. Eine Konfiguration von ist ein Element aus ( im Zustand , noch zu lesendes Suffix ).

Note Spezialfälle:

  • ist die Startkonfiguration von auf .
  • Jede Konfiguration aus ist eine Endkonfiguration.

Schritt (3.1)

Ein Schritt von ist die Relation mit

Note: Warum Relation? warum nicht einfach eine Funktion? Weil später ein nicht-deterministischer EA von einem input → mehrer Outputs hat.

Example: Berechnung auf : , also .

Berechnung (3.1)

Eine Berechnung von ist eine endliche Folge von Konfigurationen mit für .
ist die Berechnung von auf , falls und .

Outcomes:

  • , ist akzeptierend und akzeptiert ;
  • , ist verwerfend und verwirft .

Note: hat für jedes genau eine Berechnung.

Akzeptierte Sprache (3.1)

Die von akzeptierte Sprache ist

Note ist die Klasse der regulären Sprachen; jedes heißt regulär.

Reflexive transitive Hülle und erweiterte Übergangsfunktion (3.2)

Sei ein EA. ist die reflexive und transitive Hülle von :

(reflexiv) oder mit

  1. , , und
  2. mit .

Wir erweitern also einfach nur die “step”-relation auf das einlesen ganzer Wörter.

Erweiterte Transition-Funktion

ist definiert durch

  1. für alle ,
  2. für alle , , .

bedeutet . Daher

Da jedes Wort deterministisch die gleichen Zustände besucht und dann immer im selben terminiert, können wir die Wörter partitionieren: jedes Wort endet in genau einem State.

Zustandsklassen

Für einen EA und ist

Note: Es gilt .

Man bemerke dass die Relation eine Äquivalenzrelation auf mit den Klassen ist.

3.3 Simulationen

3.2

Seien und EA. Für jede Mengenoperation existiert ein EA mit

Wir können diesen Produktautomaten relativ einfach auf Papier entwerfen.

  • Die Transitionen entstehen mechanisch.
  • Die akzeptierenden Zustände müssen der Operation enstprechen.

3.4 Beweise der Nichtexistenz

Mit dem folgenden Lemma und dem Pigeonhole-Prinzip können wir relativ einfach Beweise der “nicht-Regularität” durchführen.

Das Lemma sagt uns:
→ Sobald zwei Wörter einmal im gleichen Zustand landen, sind sie nicht mehr zu unterscheiden

EAs können nicht mehr Information behalten, als sie Zustände haben → sind schlecht im Zählen.

3.3

Sei ein EA. Seien , , mit

für ein (also ).
Dann existiert für jedes ein mit , insbesondere

Proof: Es gilt und . Mit enden beide Berechnungen in ; für sind , für beide nicht.

Example Proof: . Indirekt:

  • Sei ein EA mit und den Zuständen .
  • Unter den Wörtern gibt es mit .
  • Nach Lemma 3.3 gilt für alle , aber für ist und .

Das Pumping Lemma ist die zweite Variante. Hier nehmen wir ein Wort in drei Teilen und “pumpen” den Teil auf:

  • es gilt in dem Automaten und
  • Falls , dann für alle ;
    • hier muss also eine Schleife entstehen!
  • Dann ist .
    • entweder alle solchen Wörter sind in (wenn )
    • oder keines

Der Trick ist: wir suchen ein sodass ein Cycle ensteht. Dieser muss immer existieren

  • Wort mit Länge , sieht Zustände
  • muss mindestens einen Zustand 2x sehen, per Pigeonhole

Pumping-Lemma für reguläre Sprachen (3.4)

Sei regulär. Dann existiert eine Konstante , so dass sich jedes Wort mit in drei Teile zerlegen lässt mit

  1. ,
  2. und
  3. entweder oder .

Note: Das Pumping-Lemma ist nicht stark-genug, für manche nicht-regulären Sprachen, können wir damit keinen Gegenbeweis leisten!!

  • Eine solche Sprache is z.B.

Proof: Sei ein EA mit , . Sei mit , .

  • wenn wir durch die ersten Buchstaben laufen, sehen wir Zustände
  • Also existieren mit :
  • Setze , , .
  • Dann , und .
  • Aus (3.3) folgt für alle , also
    → Berechnungen enden in ; ist dieser in , werden alle akzeptiert, sonst keines.

Proof technique: nicht-regulär

  • wollen beweisen, dass für alle
  • ein wort mit existiert
  • sodass für alle mit , und
    • müssen also für alle zeigen!

Example Proof: , indirekt.

  • Wähle .
  • Wegen (i) ist ,
  • Wegen (ii)
  • Da , müsste gelten
    • aber .
      Note Die Wahl von ist entscheidend: mit gelingt der Beweis nicht, mit sind drei Fälle für nötig.

3.5 Nichtdeterminismus

Ein nichtdeterministischer Algorithmus akzeptiert , falls

  • für jedes mindestens eine akzeptierende Berechnung von auf existiert
  • und für jedes alle Berechnungen nicht akzeptierend sind.

Note: ein NEA ist nicht random, er explored quasi alle Zustände!

Nichtdeterministischer endlicher Automat (3.3)

Die Übergangsfunktion ist nun . Es wird also zu einem Set von möglichen Zuständen gemapped (kann auch leer sein).
Eine Konfiguration ist ein Element aus , die Startkonfiguration für .
Ein Schritt ist die Relation mit

Eine Berechnung ist eine endliche Folge mit . Eine Berechnung auf ist eine Berechnung mit und entweder:

  • mit → bleibt stecken!
    • selbst wenn akzeptierend ist, muss fertig gelesen worden sein!

Akzeptierende Zustände

Eine Berechnung ist akzeptierend, wenn für ein .
Existiert eine solche, akzeptiert das Wort .

Akzeptieren = vollständig lesen

Damit , muss der NEA das Wort fertig gelesen haben → !
Wenn wir also einen “sink”-state haben und noch bleibt, dann ist es nicht akzeptierend, auch wenn der sink state selber ist!

Example: mit und dort die ist nicht akzeptierend.

Extended Transition Function

ist definiert durch

  1. für jedes ,
    2.für gilt .

ist die Menge aller aus durch vollständiges Lesen von erreichbaren Zustände, also .

Beispiel:

Unterschiede:

  • , mapped also zu einem Set der Zustände, nicht nur mehr einem.
  • kann stecken bleiben
    • nicht akzeptierende Berechnung kann enden → bevor die Eingabe vollständig gelesen ist.
      • kann zurückgeben.

Berechnungsbaum

Der Berechnungsbaum eines NEA auf hat Konfigurationen als Knoten, Wurzel , und die Kinder von sind alle mit .
Blätter sind Konfigurationen oder mit . Jeder Weg von der Wurzel zu einem Blatt entspricht einer Berechnung von auf .

Example: Berechnungsbaum, mit ein paar “festgesteckten” und 2 vollständig gelesenen Paths.

Note: Es gelten einige Identitäten

  • alle Zustände der gleichen Tiefe in einem solchen Baum haben den selben Suffix noch übrig
    • alle dieser Zustände sind for the common prefix, .
    • ein EA hat basically eine “Linie” als Baum
  • Wenn Zwei Knoten die gleiche Konfiguration haben → gleicher Subtree!

3.7 Gilt ?

Potenzmengenkonstruktion (3.2)

Zu jedem NEA existiert ein EA mit

Note: → single atomic state that represents being in any of .

Example Potenzautomatenumformung

→ Steckenbleiben im NEA wird zu Senke

Konstruktion: Sei . Konstruiere :

  1. ,
  2. ,
  3. ,
  4. ,
    1. intersection because NEA accepts if at least one possible path ends in
  5. für jedes und :

Proof: Es genügt zu zeigen:

Induktion über :

  • Für : und .
  • Für , :
  • Nach Induktionsannahme ist , also

Note: Nicht aus erreichbare Zustände können entfernt werden, ohne zu ändern.

Equivalenz

Äquivalenz von Automaten

Zwei Automaten und sind äquivalent, falls .

Folglich gilt ; der konstruierte EA ist aber exponentiell größer.

Beispiel: Für sei

  • Der NEA mit Zuständen akzeptiert :
    • in (Schleife über ) wird bei jeder geraten, ob sie das -te Symbol vor dem Ende ist (Übergang nach ), danach wird mit über deterministisch geprüft; .

Die Konversion zum EA produziert sehr viel größere Automaten. Wir können meist eine untere Schranke auf die Menge der nötigen Zustände zeigen.

Untere Schranken auf die Größe des EA

Example: Für alle hat jeder EA, der akzeptiert, mindestens Zustände.

Proof: Sei mit . Aus folgt für alle :

Zeige, dass für alle paarweise verschieden sind. Indirekt: Seien mit . Es gibt mit , o.B.d.A. , . Mit ist

Widerspruch zu (3.14). Also .

Methode für untere Schranken: Finde eine Menge von Wörtern:

  • so dass es für je zwei verschiedene ein gibt
    → genau eines von , in liegt.
  • Dann hat jeder EA für mindestens Zustände
    • ist unendlich, ist nicht regulär

Note: um von einem Powerset-EA zu einer Wörtermenge zu kommen

  • geh alle States durch (prune those that behave the same)
  • finde jeweils ein für paarweise .
    • die findet man, indem man die States unterteilt
      • accepted → use
      • die accepted/rejected gruppen weiter untereinander trennen

Example: , :

  • , , : , .
  • , , : , .
  • , , : , .
    → Also hat jeder EA für mindestens 3 Zustände.