Algorithmen zur Minimierung von Moore-Automaten

10

Brzozowskis Algorithmus kann auf Moore-Automaten erweitert werden, aber seine zeitliche Komplexität ist im Allgemeinen exponentiell. Gibt es einen anderen Algorithmus zur Minimierung von Moore-Automaten? Was sind die Laufzeiten dieser Algorithmen, falls vorhanden?

Ajeet Singh
quelle
Auf welchen Brzozowski-Algorithmus beziehen Sie sich? Derjenige, der Ableitungen von regulären Ausdrücken verwendet?
J.-E.
2
Willkommen bei SE Computer Science. Da Sie die Präsentation der Website anscheinend noch nicht gelesen haben, sollten Sie wissen, dass es sich um eine kooperative Arbeit handelt, die auf dem technischen Austausch zwischen Benutzern, die Fragen stellen, und Benutzern, die Antworten oder Kommentare bereitstellen, basiert. Daher ist es angebracht, Benutzer zu beantworten, die in Kommentaren nach weiteren Details fragen, gute Antworten oder gute Kommentare (oder andere interessante Fragen oder Antworten, die Sie lesen) zu bewerten, und letztendlich die Antwort zu akzeptieren, die Sie für Ihre Fragen am besten halten, indem Sie auf " Häkchen "(wie ein V) links von der gewählten Antwort.
Babou
War die Antwort für Sie von Nutzen?
Babou

Antworten:

6

Der ursprüngliche DFA-Minimierungsalgorithmus wurde tatsächlich für Moore-Maschinen entwickelt , die sich an ihrem anscheinend besser beobachtbaren Verhalten orientieren. Der hier vorgestellte Algorithmus ist jedoch eine Rekonstruktion aus der DFA-Minimierung, da ich die historischen Beweise nachträglich entdeckt habe.

Nach Wikipedia (mit einigen Änderungen in der Notation):

Eine Moore-Maschine kann als 6-Tupel das aus Folgendem besteht:(Q,q0,Σ,Π,δ,γ)

  • eine endliche Menge von ZuständenQ
  • ein Startzustand (auch Anfangszustand genannt) der ein Element von Q.q0Q
  • eine endliche Menge, die als EingabealphabetΣ
  • eine endliche Menge namens AusgabealphabetΛ
  • eine Übergangsfunktion die einen Zustand und das Eingabealphabet dem nächsten Zustand zuordnet δ:Q×ΣQ
  • eine Ausgabefunktion die jeden Zustand dem Ausgabealphabet zuordnet γ:QΠ

Nach dieser Definition ist eine Moore-Maschine ein deterministischer Finite-State-Wandler.

Ich habe keine Referenz für die Minimierung von Moore-Automaten. Es scheint jedoch nicht allzu schwer, sich einen Algorithmus vorzustellen, der von dem Algorithmus abgeleitet ist, der für deterministische Finite-State-Automaten verwendet wird.

Die Idee der DFA-Minimierung basiert auf der Myhill-Nerode-Charakterisierung regulärer Sprachen .

Definieren Sie bei einer gegebenen Sprache und einem Paar von Zeichenfolgen und eine Unterscheidungserweiterung als Zeichenfolge , sodass genau eine der beiden Zeichenfolgen und zu . Definieren Sie eine Beziehung für Zeichenfolgen nach der Regel, dass wenn es keine unterscheidende Erweiterung für und . Es ist leicht zu zeigen, dass eine Äquivalenzbeziehung für Zeichenfolgen ist und somit die Menge aller Zeichenfolgen in Äquivalenzklassen unterteilt.x y z x z y z L R L x R L y x y R L.LxyzxzyzLRLxRLyxyRL

Das Myhill-Nerode-Theorem besagt, dass genau dann regulär ist, wenn R L eine endliche Anzahl von Äquivalenzklassen hat, und dass außerdem die Anzahl von Zuständen im kleinsten deterministischen endlichen Automaten (DFA), der L erkennt, gleich der Anzahl von Äquivalenzklassen ist in R L .LRLLRL

In der Tat ist jeder Zustand des kleinsten DFA so, dass W q, wie oben definiert, eine der Äquivalenzklassen für die Beziehung R L ist .qWqRL

Für einen nicht minimalen DFA für die reguläre Sprache ist es leicht zu zeigen, dass jede Menge W q Zeichenfolgen enthält, die alle zu derselben äquivalenten Klasse in Bezug auf R L gehören .LWqRL

Daher besteht die Minimierung des DFA tatsächlich aus dem Zusammenführen von Zuständen (als Sätze äquivalenter Zeichenfolgen betrachtet), wenn gezeigt wird, dass zwei unterschiedliche Zustände äquivalente Zeichenfolgen enthalten.

Zu diesem Zweck existieren zwei relativ schnelle Algorithmen, der Moore-Algorithmus (1956), der in der Zeit und der Hopcroft-Algorithmus (1971), der in der Zeit O ( n log n ) liegt .O(n2)O(nlogn)

Die Erweiterung auf Moore-Automaten lässt sich am besten verstehen, wenn die Äquivalenzbeziehung als für einen Wandler T neu definiert wird . Die Beziehung R L befasste sich mit der Frage, ob zukünftige Eingaben gleichwertig zu einem akzeptierenden Zustand führen würden. Die R T ¨Aquivalenzrelation von Moore - Automaten betreffen , ob zukünftiger Eingang die gleiche Leistung erzeugen wird.RTTRLRT

Daher definieren wir bei gegebenem Wandler und zwei Strings x und y eine unterscheidende Erweiterung als einen String z, so dass T ( x z ) = T ( x ) u und T ( y z ) = T ( y ) v mit u v , dh so, dass das Ausgangsverhalten des Wandlers für z unterschiedlich ist, je nachdem, ob er x oder y folgt .TxyzT(xz)=T(x)uT(yz)=T(y)vuvzxy

Wiederum eine Äquivalenzrelation, alle Strings in Dividieren Σ * in Äquivalenzklassen. Im Fall einer Moore-Maschine entsprechen diese Klassen wieder dem Zustand des Minimalwandlers.RTΣ

Der folgende Algorithmus ahmt den Moore-Algorithmus zur DFA-Minimierung nach.

Wir definieren eine anfängliche Partition von Q in Klassen von Zuständen S e wie folgt:PQSe

eΠ:Se={qQγ(q)=e}

Dann teilen wir die Klassen in wie folgt auf:P

Wiederholen Sie nacheinander für jede Klasse von Zuständen , bis sich nichts mehr ändert. Wiederholen Sie a Σ ,S
   aΣ,
     Wenn dannnichtsanderestun, S in Teilmengen S i aufteilen,so dass esfür jede Teilmenge S i eine andere Klasse S 'P gibt, so dassq S i ,SP,qS,δ(q,a)S
     SSi
      SiSP (die Teilmengen S i ersetzen S in P )qSi,δ(q,a)S
      SiSP

Wenn keine Klasse mehr vorhanden ist, die aufgeteilt werden muss, bilden die verbleibenden Zustandsklassen die Zustände der minimalen Moore-Maschine.

Konstruktionsbedingt haben alle Zustände in einer Klasse dieselbe Ausgabe, die die Ausgabe für die Klasse ist.

In ähnliche Weise für jede Eingabe gehen, alle Zustände in einer Klasse zu einem gewissen Zustand in der gleichen anderen Klasse, die die Übergangsfunktion für die minimalen Moore - Automaten definiert.aΣ

n=|Q|s=|Σ|
nO(sn2)

Ich habe keine Referenz für diese Minimierung von Moore-Maschinen. Möglicherweise ist es in seiner Arbeit enthalten:

Moore, Edward F. (1956). "Gedankenexperimente an sequentiellen Maschinen". Automata Studies , Annals of Mathematical Studies (Princeton, New Jersey: Princeton University Press) (34): 129-153.

Dieses Papier ist die Hauptreferenz zur Einführung von Moore Machines . Es ist auch die Referenz für den DFA-Minimierungsalgorithmus von Moore . Es sollte daher überraschend sein, wenn die Anpassung des Algorithmus an die Minimierung von Moore-Maschinen in diesem Artikel nicht zumindest vorgeschlagen wurde. Ich habe das Papier überprüft, und die vorgestellte Version des Minimierungsalgorithmus gilt eigentlich für Moore-Maschinen, nicht für DFA. Das Papier ist gut geschrieben, aber der Stil der Zeit macht es etwas schwieriger zu lesen. Es ist interessant zu sehen, dass viele der Ideen der Myhill-Nerode-Theorie der Finite-State-Maschinen bereits in diesem Artikel skizziert sind.

O(snlogn)

babou
quelle
@ Raphael Eine Referenz ... Nun, Sie haben Glück, ich habe den Algorithmus neu gestaltet, weil ich keinen Zugriff auf eine Bibliothek habe. Aber da Sie um eine Referenz gebeten haben, habe ich Ihnen eine besorgt. Du solltest es mögen. Aber ich bin nicht sicher, ob ich es zum Unterrichten verwenden würde.
Babou
@Raphael Das Papier ist interessant in seiner Präsentation, die versucht, sehr intuitiv, operativer als algebraisch zu sein. Ich erinnere mich nicht an alle Einzelheiten des Beitrags von Myhill und Nerode (zwei Jahre später, 1958), und ich habe die Zeitung nicht sorgfältig genug gelesen (ich habe sie eher überflogen), aber ich frage mich, ob die Theorie nicht Moore als zugeschrieben werden sollte Gut.
Babou
2

Eine Version von Brzozowskis Algorithmus unter Verwendung von Ableitungen regulärer Ausdrücke ist in [2], Kapitel 12, Abschnitt 4, angegeben, wo er [4] gutgeschrieben wird. Siehe [1] und [3] für den allgemeineren Fall von nachfolgenden Wandlern (die Terminologie ist etwas veraltet und der Begriff sequentieller Wandler ist heutzutage wahrscheinlich angemessener).

[1] C. Choffrut, Minimierung von Teilwandlern: eine Übersicht, Theoret. Comp. Sci. 292 (2003), 131–143.

[2] S. Eilenberg, Automata, Languages ​​and Machines, vol. A, Academic Press, 1974.

[3] J.-E. Pin, Ein Tutorial zu sequentiellen Funktionen . (Folien)

[4] GN Raney, Sequential Functions, JACM 5 (1958), 177–180.

J.-E. Stift
quelle
@ DW Danke für die Bearbeitung. Einfach perfekt.
J.-E.
1

Der Brzozowski-Algorithmus ist ein schlechter Ausgangspunkt (wenn Sie sich mit asymptotischer Worst-Case-Laufzeit befassen). Sogar Wikipedia sagt Ihnen so viel:

Wie Brzozowski (1963) feststellte, erzeugt das Umkehren der Kanten eines DFA einen nicht deterministischen endlichen Automaten (NFA) für die Umkehrung der Originalsprache und das Konvertieren dieses NFA in einen DFA unter Verwendung der Standard-Powerset-Konstruktion (Konstruktion nur der erreichbaren Zustände von Der konvertierte DFA) führt zu einem minimalen DFA für dieselbe umgekehrte Sprache. Wenn Sie diese Umkehroperation ein zweites Mal wiederholen, wird ein minimaler DFA für die Originalsprache erzeugt. Die Worst-Case-Komplexität von Brzozowskis Algorithmus ist exponentiell, da es reguläre Sprachen gibt, für die der minimale DFA der Umkehrung exponentiell größer ist als der minimale DFA der Sprache, [6] aber häufig besser abschneidet, als dieser Worst-Case vermuten lässt.

Der Algorithmus hat sogar auf DFA eine exponentielle Worst-Case-Laufzeit , da er einen Automaten für die Umkehrung berechnet, der möglicherweise exponentiell groß sein muss. Ihr Problem kommt also nicht von der Erweiterung auf Wandler.

Versuchen Sie, einen anderen DFA-Minimierungsalgorithmus anzupassen.

Raphael
quelle