Ermittlung der maximalen Faktorisierung regulärer Sprachen


13

Lassen Sie die Sprache LΣ regelmäßig.

Eine Faktorisierung von L ist ein maximales Paar (X,Y) von Wortmengen mit

  • XYL
  • XY ,

wobei XY={xy | xX,yY} .

(X,Y)(X,Y)(X,Y)XYLXXYY

Gibt es ein einfaches Verfahren, um herauszufinden, welche Paare maximal sind?

Beispiel:

Es sei . Die Menge wird berechnet: F = { u , v , w }L=ΣabΣF={u,v,w}

  • u=(Σ,ΣabΣ)

  • v=(ΣaΣ,ΣbΣ)

  • w=(ΣabΣ,Σ)

Dabei ist .Σ={a,b}

Ein anderes Beispiel:

Σ={a,b} und Faktorisierungsmenge mitF = { q , r , s , t }L=ΣaΣF={q,r,s,t}

  • q=(Σ,L)

  • r=(Σa,Σ+L)

  • s=(Σaa,ϵ+Σ+L)

  • t=(L,ϵ+L)


4
Ich empfehle, das folgende Papier (insbesondere Unterabschnitt 4.1) von Jacques Sakarovitch zu lesen: perso.telecom-paristech.fr/~jsaka/PUB/Files/TUA.pdf
Cornelius Brand

1
Ich frage mich, ob Sie das Problem, dh den letzten Satz Ihrer Frage, genauer beschreiben möchten. Erhalten wir und wollen testen, ob ( X , Y ) maximal ist? Ist es unsere Aufgabe, alle ( X , Y ) aufzuzählen , die maximal sind? Wenn letzteres der Fall ist, ist es klar, dass diese Liste endlich oder polynomgroß ist? Es ist wahrscheinlich nicht sinnvoll, nach einem Algorithmus zu fragen, um alle Möglichkeiten aufzuzählen, wenn es exponentiell viele davon gibt. Möchten Sie auch angeben, wie die Sprache L dargestellt wird, wenn sie uns präsentiert wird, und wie X , YX,Y(X,Y)(X,Y)LX,Ysind vertreten? (z. B. DFA, NFA, regulärer Ausdruck)
DW

2
Ich verstehe deine Beispiele nicht. Sind angeblich alle maximal Paare sein? v scheint nicht gültig zu sein ...u,v,wv
Raphael

1
Das Beispiel stammt aus dem oben erwähnten Artikel. sollen maximale Paare sein. Ich verstehe auch nicht, wie v berechnet wird, da es nicht unbedingt in L zu sein scheint . Ich werde ein weiteres Beispiel posten. u,v,wvL
Laura

1
@Raphael, für mich scheint gültig zu sein. Lassen , X = Σ * a Σ * , Y = Σ * b Σ * , ( X , Y ) ist eine Faktorisierung, da X Y = L (jede Zeichenkette , die ein neues enthält eine , dann eine beliebige Sequenz von a ‚s und / oder b ‚s, dann schließlich ein b : diese Zeichenfolge muss einen Punkt haben , wo die ersten b angezeigt wird , so dass ein Punkt ist , wo es enthält einvX=ΣaΣY=ΣbΣ(X,Y)XY=Laabbb ). Ich habe keinen Beweis, dass es maximal ist, aber ich kann keine größeren Mengen X ' , Y ' finden , die eine Faktorisierung von L sind . abX,YL
DW

Antworten:


8

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

Y=xXx1L,X=yYLy1,
LLLL

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ΣLx1LxΣuΣxxuLy1L=x1Lx,yxund 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.yL

Für wir, dass unsere Nerodenäquivalenzklassen sindL

  • , die Menge der Wörter, die kein b als Faktor enthalten und mit a enden, N1aba
  • ,der Satz von Worten mitEndung b und nicht enthaltend eine b als Faktor, und N2bab
  • , die Menge von Wörtern, die a b als Faktor enthalten, dh N 3 = LN3abN3=L

Sie können mit den folgenden Mengen erweitert werden (dh dies sind die linken Quotienten der Wörter in den jeweiligen Klassen):

  • für x in N 1 besteht aus allen Wörtern in L (jedes Wort kann mit einem Wort, das a b als Faktor enthält, erweitert werden und wird so zu einem Wort in L ) und b Σ , das heißt S 1 = L B Σ *S1=x1LxN1LabLbΣS1=LbΣ
  • für x in N 2 ist die Sprache selbst, dh S 2 = L undS2=x1LxN2S2=L
  • für x in N 3 ist offensichtlich Σ * . Das heißt, wir haben drei richtige Faktoren für L gefunden . Da S 2S 1S 3 ist , ist ihr ∩- stabiler Verschluss trivial S 1 , S 2 , S 3 , und das sind dann genau die richtigen Faktoren.S3=x1LxN3ΣLS2S1S3S1,S2,S3

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

.

Pi=xSiLx1

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 woP1LΣaP2ΣP3LFL=u,v,w

  • u=(P1,S1)=(ΣabΣΣa,ΣabΣbΣ)
  • undv=(P2,S2)=(Σ,ΣabΣ)
  • w=(P3,S3)=(ΣabΣ,Σ)

Zusammenfassung

Zusammenfassend (als Sie nach einem einfachen Verfahren fragten):

  • Für die Faktorisierung einer Sprache Berechnen , zuerst die linken Quotienten berechnen L .LL
  • Sie können dies in der Sprache der Arbeit tun, indem Sie einen minimalen DFA für L konstruieren und dann für jeden Zustand q in A (der als Nerode-Äquivalenzklasse einem linken Quotienten entspricht) die Zukunft von q in A berechnen Erhalten eines linken Quotienten der Sprache für jeden Zustand.ALqAqA
  • Die auf diese Weise erhaltene Sammlung von linken Quotienten ergibt im allgemeinen eine Teilmenge der rechten Faktoren.SR
  • Compute then the -stable closure of SR, which can be done in practice by forming the intersection of any subset of SR and adding any subset obtained in this way to SR.
  • The set SR together with all the intersections from the previous step is then the set of right factors of L.
  • In order to obtain the left factors, we can compute the right quotients of L.
  • Ly1yΣxyLy1=Lx1uΣuxLuyL
  • um zu berechnenLx1q in A such that x is contained in the future of q. The union of the pasts of those states constitute one right quotient. Find all these quotients.
  • You know you are done when you have found as many left factors as you have right factors.
  • Find those pairs of left and right factors X,Y such that XYL. This is FL.

  1. The Universal Automaton by Lombardy and Sakarovitch (in Texts in Logic and Games, Vol 2: Logic and Automata: History and Perspectives, 2007)

3
Nice! Let's note that AB is decidable for regular languages and that these factors X, Y end up being regular due to closure properties. Hence we can not only effectively compute the last bullet in the summary, but we can also filter out the maximal pairs.
Raphael
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.