Lassen Sie die Sprache regelmäßig.
Eine Faktorisierung von ist ein maximales Paar von Wortmengen mit
- ,
wobei | .
Gibt es ein einfaches Verfahren, um herauszufinden, welche Paare maximal sind?
Beispiel:
Es sei . Die Menge wird berechnet: F = { u , v , w }
Dabei ist .
Ein anderes Beispiel:
und Faktorisierungsmenge mitF = { q , r , s , t }
Antworten:
Wie in den Kommentaren zur Frage vorgeschlagen, werde ich versuchen, eine (leider teilweise) Antwort auf die Frage zu geben, zumindest in dem Maße, in dem ich das Problem selbst verstanden habe (dies impliziert, dass Sie möglicherweise Fehler finden und wenn Sie Fehler finden Wenn Sie einen der folgenden Punkte kurz oder klar erläutern möchten, können Sie die Antwort auch entsprechend bearbeiten.):
Erstens sollte man beachten, dass wir den universellen Automaten einer Sprache nicht berechnen müssen, wenn wir die Faktorierungen einer Sprache berechnen wollen.
Aus dem in meinem Kommentar1 erwähnten Artikel ergibt sich eine 1: 1-Entsprechung zwischen dem linken und dem rechten Faktor einer regulären Sprache, dh bei einem linken Faktor der Sprache ist der entsprechende rechte Faktor eindeutig bestimmt und umgekehrt. Genauer gesagt haben wir Folgendes:
Let werden , um eine Faktorisierung von L . Dann ist Y = ⋂ x ∈ X x - 1 L , X = ⋂ y ∈ Y L y - 1 , dh jeder linke Faktor ist ein Schnittpunkt von rechten Quotienten, und jeder rechte Faktor ist ein Schnittpunkt von linken Quotienten. Umgekehrt wird jede Kreuzung von links Quotienten von L ist ein richtiger Faktor L , und jeder Schnittpunkt der rechten Quotienten von L ist ein linker Faktor L .(X,Y) L
Man beachte, dass es für eine reguläre Sprache nur eine endliche Menge von linken und rechten Quotienten gibt und daher oder ein Problem sich darauf beschränkt, die linken und rechten Quotienten einer Sprache zu berechnen und dann ihren stabilen Abschluss zu berechnen, dh ein Minimum Obermenge der Quotienten, die unter Kreuzung geschlossen wird. Dies sind dann genau die rechten und linken Faktoren, und dann ist es normalerweise leicht zu erkennen, welche Paare Teilmengen von L sind .∩ L
Beispiel
Um die obigen Punkte zu veranschaulichen, betrachten Sie das erste Beispiel in der Frage (von dem ich auch denke, dass es in der Arbeit falsch ist):
Let . Nun werden die linken Quotienten von L sind die Sätze x - 1 L für x ∈ Σ * , das heißt, diese Worte u in Σ * , die mit dem Präfix werden kann x , dh x u ∈ L . Wann ist y - 1 L = x - 1 L für verschiedene x , y ? Dies ist genau dann der Fall, wenn xL=Σ∗abΣ∗ L x−1L x∈Σ∗ u Σ∗ x xu∈L y−1L=x−1L x,y x und kann zu Wörtern in L mit genau den gleichen Suffixen erweitert werden. Dies bedeutet, dass sie, um es bekannter zu machen, Nerode-äquivalent sind und die Suffixe, die zum Anhängen an Wörter in einer Nerode-Klasse benötigt werden, genau die jeweiligen linken Quotienten sind.y L
Für wir, dass unsere Nerodenäquivalenzklassen sindL
Sie können mit den folgenden Mengen erweitert werden (dh dies sind die linken Quotienten der Wörter in den jeweiligen Klassen):
Daher unsere Faktorisierung Satz ist von der Form ( P 1 , S 1 ) , ( P 2 , S 2 ) , ( P 3 , S 3 ) .FL (P1,S1),(P2,S2),(P3,S3)
Nun verwenden wir für die linken Faktoren die Gleichungen des Anfangs dieser Antwort:Pi
.
Für ergibt dies L ∪ Σ * ein , für P 2 erhalten wir Σ * und P 3 , erhalten wir L . Sie können dies durch Einsichtnahme (die häufigste Entschuldigung dafür, dass Sie zu faul sind, einen formalen Beweis zu erbringen) oder durch die explizite Berechnung der rechten Quotienten (die der Berechnung der linken Quotienten ziemlich analog, wenn auch nicht vollständig ist) erkennen. Unsere Faktorisierungen sind also gegeben durch F L = u , v , w woP1 L∪Σ∗a P2 Σ∗ P3 L FL=u,v,w
Zusammenfassung
Zusammenfassend (als Sie nach einem einfachen Verfahren fragten):
quelle