Nichtdeterministischer endlicher Automat

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. November 2010 um 20:54 Uhr durch Zahnradzacken (Diskussion | Beiträge) (Definition). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein nichtdeterministischer endlicher Automat (NEA, engl: NFA=nondeterministic finite automaton) ist ein endlicher Automat, bei dem es für den Zustandsübergang mehrere gleichwertige Möglichkeiten gibt. Im Unterschied zum deterministischen endlichen Automaten sind die Möglichkeiten nicht eindeutig, dem Automaten ist also nicht vorgegeben, welchen Übergang er zu wählen hat.

Definition

Formal kann ein NEA   als 5-Tupel   definiert werden. Hierbei gilt Folgendes:

  •   ist eine endliche Menge von Zuständen ( ).
  •   ist das Eingabealphabet,  .
  •   ist die Übergangsrelation (oder Transitionsrelation).
  •   ist der Startzustand.
  •   ist eine (endliche) Menge möglicher akzeptierender Zustände (Finalzustände). Wenn der Automat nach Lesen des Eingabewortes   in einem Zustand aus   hält, so gehört   zur Sprache  .

Verhalten

Liest der NEA in einem Zustand   das Eingabesymbol  , dann wechselt er nichtdeterministisch in einen Nachfolgezustand, der durch die Übergangsrelation gegeben ist. Der Automat hat also die Wahl zwischen allen Zuständen  , für die   gilt.

Gibt es keinen solchen Zustand, bleibt der Automat vorzeitig stehen und verwirft die Eingabe.

Ein Eingabewort   gilt dann als akzeptiert, wenn es eine für   durch   gegebene Folge von Zustandswechseln gibt, bei der der Automat nicht vorzeitig stehen bleibt und der letzte Zustand ein akzeptierender Zustand ist.

Transition als Funktion

Alternativ lassen sich die Übergänge auch durch eine Transitionsfunktion definieren, die dann in eine Menge von Zuständen abbildet:

  mit  

Da die Funktion auch auf die leere Menge abbilden kann, sodass   gelten kann, ist auch hier ein vorzeitiges Stehenbleiben möglich.

Epsilon-Übergänge

Bei einem NEA ist auch ein Zustandsübergang möglich, ohne dabei ein Eingabezeichen zu verbrauchen. Diese Zustandswechsel werden als lambda-Übergänge oder epsilon-Übergänge bezeichnet und üblicherweise mit einem kleinen griechischen   oder   gekennzeichnet.

Formal ermöglicht man diese Übergänge, indem man das Eingabealphabet erweitert:

 

Mehrere Startzustände

Es ist auch möglich, mehrere Startzustände zu erlauben.[1]

Der Automat ist dann definiert als   mit  .

Solche Automaten lassen sich mittels  -Übergängen in NEAs mit genau einem Startzustand überführen, indem man einen neuen Zustand einführt, von dem aus man die ursprünglichen Startzustände durch  -Übergänge erreicht.

Eigenschaften

NEAs, DEAs und Typ-3-Grammatiken (vgl. Chomsky-Hierarchie) beschreiben die gleiche Sprachklasse. NEAs lassen sich mittels Potenzmengenkonstruktion in äquivalente DEAs umwandeln.

Der wesentliche Unterschied des NEA zum deterministischen endlichen Automaten (DEA) liegt somit darin, dass auch mehrere Folgezustände möglich sind oder auch ganz fehlen können.

Um einen regulären Ausdruck in einen NEA zu überführen, sind gewisse Regeln zu befolgen, die in [2] genauer erläutert werden. Diesen Vorgang nennt man Induktive Konstruktion oder auch Thompson's Konstruktion.[3]

Siehe auch

Referenzen

  1. Katrin Erk, Lutz Priese: Theoretische Informatik: Eine umfassende Einführung. 3. Auflage. Springer, 2008, ISBN 3-540-76319-8, Seite 67
  2. Hans Werner Lang: http://www.inf.fh-flensburg.de/lang/theor/regulaerer-ausdruck-zu-automat-bottomup.htm
  3. Aho, A. V., Sethi, R., Ullman, J. D.: Compilers: Principles, Techniques and Tools. Addison Wesley, 1986

Literatur

  • John E. Hopcroft u. Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. ISBN 3-89319-181-X
  • Sander/Stucky/Herschel: Automaten, Sprachen, Berechenbarkeit. ISBN 3-519-02937-5
  • Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik. 3. Auflage. ISBN 3-528-23147-5