Brzozowski-Algorithmus zur DFA-Minimierung


15

Der DFA-Minimierungsalgorithmus von Brzozowski erstellt einen minimalen DFA für DFA G durch:

  1. Umkehren aller Kanten in G , wobei der Anfangszustand ein Akzeptanzzustand und der Akzeptanzzustand ein Initialzustand wird, um ein NFA N für die Umkehrsprache zu erhalten,
  2. Verwenden der Powerset-Konstruktion, um G für die Umkehrsprache zu erhalten,
  3. Umkehren der Kanten (und Initial Accept Swap) in G , um ein NFA N für die Originalsprache zu erhalten, und
  4. Gmin

Da einige DFAs einen exponentiell großen umgekehrten DFA haben, wird dieser Algorithmus im schlimmsten Fall in Bezug auf die Größe der Eingabe in exponentieller Zeit ausgeführt. Verfolgen Sie also die Größe des umgekehrten DFA.

Wenn die Größe des Eingangs-DFA ist, die Größe des minimalen DFA ist und die Größe des minimalen umgekehrten DFA ist, wie lautet dann die Laufzeit des Brzozowski-Algorithmus in Bezug auf , und ?n m N n mNnmNnm

Insbesondere unter welcher Beziehung zwischen und tut Brzozowski Algorithmus outperform Hopcroft oder dem Moor Algorithmen?mnm

Ich habe gehört, dass bei typischen Beispielen in der Praxis / Anwendung der Brzozowski-Algorithmus die anderen übertrifft. Wie sehen diese typischen Beispiele informell aus?


Es wäre hilfreich, wenn Sie die O (f (n)) - Schätzungen dieser Algorithmen einbeziehen. sind sie alle O (n log (n)) im "durchschnittlichen" Fall? Wenn dem so ist, könnte die Debatte über ihre relative Leistung hauptsächlich ein angewandter Test sein, der von den statistischen Merkmalen / der Struktur der Eingabe abhängt. Es scheint wahrscheinlich, dass Brzozowski schnell läuft, wenn die umgekehrte NFA "nicht groß" ist.
vzn

Seien Sie vorsichtig bei der Ausführung des Algorithmus, da Sie möglicherweise versucht sind, einen virtuellen Startstatus einzuführen, wenn Sie 1. und 3. ausführen. Dies führt zu falschen Ergebnissen - siehe hier . (Es ist nicht falsch in der Frage, Sie müssen nur vorsichtig sein, nicht falsch zu
verstehen

Antworten:


5

Hier ist eine teilweise Antwort zu Ihrer dritten Frage. Vielleicht übertrifft der Brzozowski-Algorithmus tatsächlich nicht alle anderen Algorithmen bei der DFA-Minimierung so deutlich.

In [1] untersuchen die Autoren die praktische Leistung von DFA / NFA-Minimierungsalgorithmen. Die Algorithmen sind Hopcrofts, Brzozowskis und zwei Varianten von Watsons. Sie kommen zu dem Schluss, dass es keinen eindeutigen Gewinner gibt, aber der Hopcroft-Algorithmus ist besser für DFAs mit kleinen Alphabeten. Für NFAs ist Brzozowski eindeutig der schnellste.

Das Papier selbst ist ziemlich kurz und klar geschrieben. Es gibt auch zusätzliche Diskussionen und Hinweise, die hilfreich sein könnten.


[1] Almeida M., Moreira N. und Reis R. über die Leistung von Automatenminimierungsalgorithmen, Vierte Konferenz über Rechenbarkeit in Europa, Juni 2008.


Vielen Dank, ich werde mir das Papier ansehen und prüfen, ob ich anhand der Referenzen eine vollständige Antwort finden kann.
Artem Kaznatcheev

5

Der größte Teil des Folgenden stammt aus der Parsing-Theorie von Sippu und Soisalon-Soininen.

Sei die Menge der Zustände des DFA. Sei das Eingabealphabet. Sei die Größe der Maschine. Aufgabe 3.40 liefert einen -Algorithmus zur Zustandsminimierung. Wie Wikipedia beschreibt , hat Hopcrofts Algorithmus eine Laufzeit von und Moores Algorithmus eine Laufzeit von .T | M | = O ( | T || Q | ) O ( | T || Q | 2QT|M|=O(|T||Q|)O ( | T || Q |log | T | ) O ( | T | 2| Q | )O(|T||Q|2)O(|T||Q|log|T|)O(|T|2|Q|)

Satz 3.30 besagt, dass die Teilmengenkonstruktion in was einen Automaten der Größe ergibt (tatsächlich, wenn der resultierende Automat Zustände hat, ist die Laufzeit ). Die beiden Umkehrungen und die zweite Bestimmung sind daher für die Laufzeit unerheblich, sodass die asymptotische Laufzeit des Brzozowski-Algorithmus mit der der Teilmengenkonstruktion identisch ist.O ( 2 | T | + logO(2|T|+log|T|+log|Q|)O(2|T|+log|Q|)|T|(|T|+|T||M|)|Q|

Dies bedeutet, dass der Brzozowski-Algorithmus im schlimmsten Fall exponentiell langsamer ist als die anderen drei Algorithmen. Es ist zu beachten, dass der schlimmste Fall tatsächlich eintritt: Das klassische Beispiel der NFA für die Sprache hat Zustände und die entsprechende minimale DFA hat Zustände, während die umgekehrte der NFA ist deterministisch, daher löst das Ausführen des Brzozowski-Algorithmus für diese umgekehrte NFA das Worst-Case-Verhalten aus.(a|b)akk+1O(2k)

Wenn die Teilmengenkonstruktion jedoch Automaten der Größe ergibt , dann ist ihre Laufzeit auch , was häufig der Fall ist auf realen Eingaben. Wenn beim Berechnen des Abschlusses eines Zustands die richtige Sorgfalt angewendet wird, kann dies in den meisten Fällen (d. H. In Fällen, in denen der Abschluss klein ist) viel schneller erfolgen, wodurch ein Faktor gespart wird in der Praxis (aus dem im Wesentlichen gleichen Grund, dass Transitive Closures an realen Beispielen relativ schnell berechnet werden können). Wenn der Eingangs- und der Zwischenautomat dünn sind, was bedeutet, dass Zustände wenige Übergänge haben, dann ist ein Faktorwird gespeichert, was bei 'guten' Eingängen eine Laufzeit von ergibt .O ( | T|T|=O(|T|) | T | | Q | O( | T | | Q | )O(|T|2|Q|2)|T||Q|O(|T||Q|)

Leider kenne ich die Algorithmen von Hopcroft oder Moore nicht gut genug, um ihre Laufzeiten in typischen Fällen zu analysieren. Wikipedia spricht in einigen Fällen von einer Laufzeit von , wodurch die drei Algorithmen vergleichbar wären.O(|T|loglog|T|)


1

De Felice und Nicaud zeigen, dass Brzozowskis Algorithmus asymptotisch hyperpolynomisch ist. David hat gezeigt, dass der Hopcroft-Algorithmus für verschiedene Verteilungen von Endzuständen langsamer ist als der Moore-Algorithmus.

Verweise

S. De Felice und C. Nicaud, "Der Brzozowski-Algorithmus ist generisch ein Superpolynom für deterministische Automaten". In Proceedings of 17. Internationale Konferenz über Entwicklungen in der Sprachtheorie (DLT 2013) , Lecture Notes in Computer Science, S. 170–190, 2013. ( PDF )

J. David, "Durchschnittliche Komplexität der Moore- und Hopcroft-Algorithmen". Theoretical Computer Science , 417: 50–65, 2012. ( Science Direct )

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.