Meine Frage besteht im Wesentlichen aus drei Sprachen A, B und L, wobei L A und B miteinander verkettet sind und B nachweislich nicht regulär ist. Ist es möglich, ein A zu finden, das L regulär macht?
formal-languages
regular-languages
Kenny Loveall
quelle
quelle
Antworten:
Wenn wir zulassen, dass die leere Sprache ist, die regulär ist, dann haben wir L = { w 1 w 2 | w 1 ∈ A , w 2 ∈ B } = ∅ = A .A L={w1w2|w1∈A,w2∈B}=∅=A
Für das etwas interessantere Problem, bei dem A eine nicht leere reguläre Sprache sein muss, können wir ein so konstruieren, dass kein nicht leeres A zu einem regulären L führtB A L
Sei . Sei A eine beliebige reguläre Sprache und betrachte L = { w 1 w 2 | w 1 ∈ A , w 2 ∈ B } . Beachten Sie, dass entgegen der Annahme in J.-E. Pins Antwort: B ist unregelmäßig, enthält aber kein leeres Wort.B={bcndn|n>0} A L={w1w2|w1∈A,w2∈B} B
Angenommen, S ' ist die Menge von Zuständen, die in allen möglichen akzeptierenden Durchquerungen irgendwann nach dem letzten b besucht wurden . Konstruiere M 'L ist regulär. Es gibt einige DFA, , die L akzeptieren . Unabhängig davon, wie A aufgebaut ist, wissen wir, dass jedes Wort in L das letzte Vorkommen von b haben muss . Sei Q die Menge von Zuständen, die unmittelbar nach dem letzten b in allen möglichen akzeptierenden Durchquerungen gereist sind . Man beachte , daß Q nicht leer sein kann, da die kürzeste Zeichenfolge in B ist , b c d . LassenM=(S,Σ,δ,q0,F) L A L b Q b Q B bcd S′ b , wobei sich δ ' identisch zu δ verhält, mit derAusnahme, dass δ ' ( q 0 , ε ) = Q ist .M′=(S′,Σ,δ′,q′0,F) δ′ δ δ′(q0,ε)=Q
Ich behaupte, dass diese NFA die Sprache . Für jedes w ' ∈ C muss es eine gewisse Durchquerung von einem Element von Q zu einem Element von F geben , da M eine Zeichenfolge mit diesem als Suffix akzeptieren muss. Für jeden w ' ∈ & Sigma; * ∖ C , können wir eine Pick w ∈ A und das Wort bilden , w b w ' . Wenn M ' akzeptiert n > akzeptiert w 'C={cndn|n>0} w′∈C Q F M w′∈Σ∗∖C w∈A wbw′ M′ w′ , dann muss es der Fall sein, dass w b w ' akzeptiert , da es eine Überquerung von einem Zustand in Q nach F gegeben haben muss, der auch für M gilt . Aufgrund unserer Wahl von w ' kann es jedoch nicht sein, dass w b w ' ∈ L ist , so dass M ' w ' ablehnen muss .M wbw′ Q F M w′ wbw′∈L M′ w′
Also akzeptiert C , aber diese Sprache ist nicht regulär, was zu einem Widerspruch führt.M′ C
Wenn also nicht leer ist, kann L nicht regulär sein.A L
quelle
Ja das ist möglich. Betrachten Sie das folgende Beispiel:
Sei wobei p eine Primzahl ist. Dies ist nicht regelmäßig. Sei A = 1 n, wobei n ∈ N ist . Das ist regelmäßig.B=1p p A=1n n∈N
gibt uns einfach 1 n mit n > 2 und dies ist regulär, da jede Zahl größer als 2 als 2 + x dargestellt werden kann, wobei x > 0 istAB 1n n>2 2 2+x x>0
quelle
Sei ein nicht leeres Alphabet. Sei B.Σ B seine jede irreguläre Sprache auf das leere Wort enthalten und lassen A = Σ * . Dann ist L = A B = A regulär.Σ A=Σ∗ L=AB=A
quelle
Bei einer Sprache ist die Sprache ∅ B = ∅ regulär. Abgesehen von dieser trivialen Lösung ist es nicht immer möglich, eine nicht leere Sprache A zu finden, so dass A B = { u v ∣ u ∈ A ∧ v ∈ B } regulär ist. Es ist für viele nicht reguläre B möglichB ∅B=∅ A AB={uv∣u∈A∧v∈B} B (zB wenn das leere Wort enthältB , oder wenn auf ein einstelliges Alphabet istB ) , aber nicht für all .B
Nehmen Sie wobei P die Menge der Primzahlen ist. Was auch immer A ist, wenn A nicht leer ist, dann A.B={can∣n∈P} P A A nicht regulär, da zum Testen der Mitgliedschaft in A B (aufgrund des Stoppersymbols c ) ein potenziell unbegrenzter Speicher verwendet werden muss, um die Primalität der Anzahl von zu testen a ist am Ende.AB AB c a
Um dies zu beweisen, sei (da wir angenommen haben, dass A nicht leer ist). Wenn A B regulär ist, ist L 1 = A B ∩ u c a ∗ , ebenso wie der linke Quotient von L 1 durch den Singleton { u c }, der L 2 = { w ∣ u c w ∈ A B ist ∧ u c w ∈ u c au∈A A AB L1=AB∩uca∗ L1 {uc} w = v c a k ist , und da w b ^ kno c enthält . Diese Sprache ist nur L 3 = { a n ∣ n ∈ P } (wenn w ∈ L 2 ist, dann gibt es v ∈ A und k ∈ N, so dass u cL2={w∣ucw∈AB∧ucw∈uca∗}={w∈a∗∣ucw∈AB} L3={an∣n∈P} w∈L2 v∈A k∈N ucw=vcak w c dies impliziert, dass ; umgekehrt, wenn w ∈ L 3 ist, dann ist c w ∈ B, also u c w ∈ A B ). L 3 ist eine bekannte nicht reguläre Sprache, wir haben einen Widerspruch.w=ak∈L3 w∈L3 cw∈B ucw∈AB L3
quelle
Während Ihre Frage nach einem existenziellen Beweis fragt, erinnert sie mich an den Zweig von comp. sci. genannt Regelmäßige Annäherungen.
Die Idee ist, eine nicht reguläre Sprache und dann eine reguläre Sprache A zu finden, so dass L ⊖ A → 0 unter einer Bedingung / Teilmenge von L (wobei ⊖ die symmetrische Differenz ist ), dh eine reguläre Sprache zu finden, die "willkürlich" ist nah "an L.L A L⊖A→0 L ⊖ L für eine Teilmenge, die Sie interessiert. Oft erreichen Sie dies, indem Sie eine endliche Teilmenge von mit einem großen Maß über Ihre interessierende Teilmenge nehmen und sie dann mit einer sorgfältig ausgewählten regulären Sprache verketten.L
Sie können viele interessante Lesungen in Google Scholar finden, wenn Sie nach "regulärer Sprachnäherung ohne Kontext" suchen.
quelle