Können nichtdeterministische endliche Automaten (NDFA) effizient in subexponentielle endliche Automaten (DFA) umgewandelt werden?


16

Vor 20 Jahren habe ich ein Paket für reguläre Ausdrücke erstellt, das Konvertierungen von regulären Ausdrücken in eine Finite-State-Maschine (DFA) enthielt, und eine Vielzahl von geschlossenen Operationen für reguläre Ausdrücke (Kleene-Stern, Verkettung, Umkehrung, Mengenoperationen usw.) unterstützt. Ich war mir nicht sicher über die schlechteste Leistung meines Pakets.

Ein DFA hat die gleiche Ausdruckskraft wie ein NDFA, da ein NDFA mit n Zuständen trivial in einen DFA mit 2 ^ n Zuständen umgewandelt werden kann. Gibt es jedoch Garantien für eine solche Konvertierung, die keine exponentielle Explosion im Zustand erfordern?

Ich konnte keine Beispiele für sich schlecht verhaltende reguläre Ausdrücke oder NDFAs finden, aber ich habe nicht viel Zeit darauf verwendet, darüber nachzudenken. Ich vermute einen regulären Ausdruck wie ((((e | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L | M)) *, das viele Wechsel und Kleene-Sterne mischt, hätte einen linearen NDFA, aber einen expansiven DFA.


Gibt es Einschränkungen für die Klasse der NFAs, die Sie als Eingabe akzeptieren möchten? Einige Einschränkungen führen zu besseren Obergrenzen.
András Salamon

kein sehr wichtiger punkt, aber muss ndfa ein eigenes tag sein?
Lev Reyzin

Ja, es gibt Einschränkungen. Die NFAs werden direkt aus regulären Ausdrücken konstruiert, indem sie als verallgemeinerte Übergangsgraphen behandelt werden. seas.upenn.edu/~cit596/notes/dave/regexp-nfa4.html
Wesner Moise

Antworten:


15

Es ist bekannt, dass es für jedes Paar n,asolcher natürlicher Zahlen n <= a <= 2^neinen minimalen NDFA mit nZuständen gibt, deren entsprechende äquivalente minimale dfa aZustände hat (über einem vier Buchstaben umfassenden Alphabet).

Siehe das Papier hier: Deterministische Explosionen minimaler nicht deterministischer endlicher Automaten über einem festen Alphabet .

Abstract der Arbeit:

Wir zeigen, dass für alle ganzen Zahlen n und α, so dass n ≤ α ≤ 2 ^ n ist, ein minimaler nicht deterministischer endlicher Automat von n Zuständen mit einem aus vier Buchstaben bestehenden Eingabealphabet existiert, dessen äquivalenter minimal deterministischer endlicher Automat genau einen Zustand hat. Daraus folgt, dass es bei einem Alphabet mit vier Buchstaben keine "magischen Zahlen" gibt, dh die Löcher in der Hierarchie. Dies verbessert ein ähnliches Ergebnis, das von Geffert für ein wachsendes Alphabet der Größe n + 2 erhalten wurde (Proc. 7. DCFS, Como, Italien, 23-37).

Ich nehme an, die Antwort auf Ihre Frage lautet nein.


Die Frage ist nach einem "Algorithmus", der in subexponentieller Zeit und Raum für die Konvertierung des NFA abläuft.
Marcos Villagra

@Marcos: Wenn Ihre Ausgabe exponentiell ist, können Sie möglicherweise keinen Algorithmus haben, der in subexponentieller Zeit ausgeführt wird.
Aryabhata

1
Dies ist ein allgemeines Ergebnis. Wenn Einschränkungen für die Klasse der Eingabe-NFAs bekannt sind, kann dies möglicherweise verbessert werden.
András Salamon

@Andras: Einverstanden, aber da dies wahrscheinlich mit der Programmierung zusammenhängt (was Kleen * usw. unterstützt), bezweifle ich, dass die Menge der NFA-Eingaben auf eine richtige Teilmenge beschränkt sein wird.
Aryabhata

5
Dieses Ergebnis wurde kürzlich durch die Verwendung eines Alphabets mit drei Buchstaben verstärkt, und die Konstruktionen sind etwas einfacher: portal.acm.org/…

13

Das klassische Beispiel für eine Sprache mit einer exponentiellen Trennung zwischen DFA-Größe und NFA-Größe ist die folgende endliche Sprache: Binäre Zeichenfolgen mit einer Länge von genau 2n, bei denen die erste Hälfte nicht der zweiten Hälfte entspricht. Eine NFA würde einen Index i erraten, in dem die erste und die zweite Hälfte nicht übereinstimmen. Eine Untergrenze für einen DFA ergibt sich beispielsweise aus der Komplexität der Kommunikation.


8

Der minimale DFA, der einem NFA entspricht, hat im schlimmsten Fall 2 ^ n Zustände, so dass Sie nichts garantieren können. Ohne ein konstruktives Beispiel zu haben, können Sie in einer NFA nach dem Lesen einer bestimmten Eingabezeichenfolge eine beliebige Teilmenge von Zuständen haben, und jede dieser Teilmengen kann sich bei der Beobachtung eines Zeichens unterschiedlich verhalten. Angenommen, eine Sprache mit zwei Buchstaben im Alphabet (a und b) und eine NFA N mit n Zuständen, die mit einem akzeptierenden Zustand bei s_0 beginnt. Zählen Sie nun alle Teilmengen von Zuständen von N auf und erstellen Sie die Übergangstabelle so, dass Sie durch Beobachten von "a" aus der Teilmenge S_i zur Teilmenge S_i + 1 und durch Beobachten von b zur Teilmenge S_i-1 gelangen (dies ist für einige Aufzählungen möglich, denke ich) ). Diese Automaten haben nun n Zustände und akzeptieren Folgen von ma's und nb's, so dass mn = 0 mod 2 ^ | N |, und kann nicht mit einem DFA mit weniger als 2 ^ | N | ausgedrückt werden states (da möglicherweise alle Teilmengen von States der NFA N durchlaufen werden müssen).


Kann dies in ein Argument umgewandelt werden, das besagt, "wenn (etwas Schlechtes) in der NFA vermieden wird, dann hat die DFA eine subexponentielle Anzahl von Zuständen"?
András Salamon

1
@ András, ja. "Wenn Nichtdeterminismus in der NFA vermieden wird, hat die DFA eine subexponentielle Anzahl von Zuständen."
P Shved

2
Pavel, ja offensichtlich. Gibt es eine nicht-triviale Eigenschaft, die effizient erkannt werden kann und die auch ein subexponentielles Aufblasen garantiert?
András Salamon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.