Theory: FSA |
Nicht-deterministischer FSA: NFA |
Ein FSA wird als NFA (non-deterministic
finite automaton) bezeichnet, wenn für den Knoten eines Zustandsgraphen
mehrere
identische Zeichen eines Alphabets als Markierung einer wegführenden
Kante auftreten. Untenstehende Abbildung veranschaulicht einen solchen
NFA:
Die entsprechende reguläre
Grammatik zu dieser NFA lautet:
A -> aB
A -> aC
B -> b
C -> a
Die Zustandsübergangsfunktion
von q0 hat demzufolge zwei Möglichkeiten: (q0, a) -> q1 oder (q0,
a) -> q2. Es lässt sich nicht von vornherein die korrekte Abarbeitung
bestimmen. Wird der falsche Pfad gewählt, muss der Schritt rückgängig
gemacht und neu begonnen werden. NFA sind daher gegenüber den DFA
ineffizient. Jeder NFA lässt sich aber in einen entsprechenden DFA
umwandeln. Ein NFA ist somit nicht leistungsfähiger als ein DFA.
Siehe dazu die Funktion NFA
to DFA options in JFLAP.