Beweis von Brzozowskis Algorithmus zur DFA-Minimierung?


7

Brzozowkis Algorithmus wird häufig zitiert. Einige Fragen geben hier Beispiele oder diskutieren ihre Komplexität. Aber ich konnte keinen Beweis für die Richtigkeit des Algorithmus finden. Wie beweisen wir es richtig? Jeder Beweis, der CS-Studenten zugänglich ist, wäre sehr willkommen.


3
Beweise es? Ich kann es nicht einmal buchstabieren.
David Richerby

Antworten:


9

Der Beweis für Brzozowskis Ergebnis ist technisch, aber nicht sehr kompliziert. Tatsächlich müssen wir nur eine Sequenz der Umkehrbestimmung berücksichtigen, um das gewünschte Minimalitätsergebnis zu erhalten. (Die erste Sequenz der Umkehrbestimmung führt zu einer deterministischen FSA für die Umkehrung der Originalsprache; der Minimalitätsnachweis gilt für die zweite Umkehrbestimmung.)

Zunächst muss man sich einen guten Überblick über die verschiedenen beteiligten Automaten verschaffen. Und Nerven aus Stahl.

Der Bau von Brzozowski. Sei ein deterministischer Automat für die Sprache . Wir nehmen an, dass alle Zustände von ab dem Anfangszustand erreichbar sind .A=(Q,Σ,δ,q0,F)L=L(A)Qq0

Im ersten Schritt kehrt man den Automaten um: Alle Kanten werden invertiert und Anfangs- und Endzustand werden vertauscht. Informell erhalten wir den Automaten .rev(A)=(Q,Σ,δ1,F,q0)

Im zweiten Schritt bestimmt man den so erhaltenen Automaten durch die Standardkonstruktion, behält aber nur erreichbare Zustände bei. Wir erhalten . Die Zustände von sind Mengen von Zuständen für : ; der Anfangszustand besteht aus den Anfangszuständen für , die Endzustände in : ; die Endzustände in sind die Zustände , die einen Endzustand für enthalten : iff .A=det(rev(A))=(Q,Σ,δ,q0,F)Arev(A)Q2Qrev(A)Qq0=FArev(A)UFq0U

Der Schlüssel des Beweises ist die folgende wichtige Beziehung zwischen den Automaten und .AA

Geben Sie hier die Bildbeschreibung ein

Grund Beobachtung: iff .qδ(X,wR)δ(q,w)X

Beweis (nur eine Seite). wenn in ein Zustand und ein Pfad von nach in mit der Bezeichnung . Das heißt aber, es gibt einen Pfad von nach mit der Bezeichnung in oder ; somit . Ende des Beweises.qδ(X,wR)pXpqrev(A)wRqpwAδ(q,w)=pδ(q,w)X

Wie angekündigt, wird dies verwendet, um die wesentliche Eigenschaft zu beweisen, die wir benötigen.

Eigenschaft: ist minimal (und deterministisch für ).ALR

Beweis. Sei und zwei Zustände in , die nicht unterschieden werden können. Dies bedeutet, dass wir für jeden String wenn . Wir zeigen, dass jetzt und gleich sind.UVAwRδ(U,wR)Fδ(V,wR)FUV

Durch die Konstruktion von wir die Ununterscheidbarkeit als iff .Fδ(U,wR)q0δ(V,wR)q0

Tragen Sie den Grund Beobachtung, und wir haben genau dann , wenn .δ(q0,w)Uδ(q0,w)V

Aus dieser Gleichheit folgt , da angenommen wird, dass alle Zustände in erreichbar sind, so gibt es für jeden Zustand in oder eine Zeichenkette so dass . Ende des Beweises.U=VQpUVwp=δ(q0,w)

Aber auch nach dem Beweis ist das Ergebnis immer noch echte Magie!

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.