Der DFA-Minimierungsalgorithmus von Brzozowski erstellt einen minimalen DFA für DFA durch:
- Umkehren aller Kanten in , wobei der Anfangszustand ein Akzeptanzzustand und der Akzeptanzzustand ein Initialzustand wird, um ein NFA für die Umkehrsprache zu erhalten,
- Verwenden der Powerset-Konstruktion, um für die Umkehrsprache zu erhalten,
- Umkehren der Kanten (und Initial Accept Swap) in , um ein NFA für die Originalsprache zu erhalten, und
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 m
Insbesondere unter welcher Beziehung zwischen und tut Brzozowski Algorithmus outperform Hopcroft oder dem Moor Algorithmen?m
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?
quelle
Antworten:
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.
quelle
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 | 2Q T |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)∗ak k+1 O(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|)
quelle
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 )
quelle