Können wir eine nicht reguläre Sprache durch Konzentration regulieren?

8

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?

Kenny Loveall
quelle
5
Willkommen bei CS.SE! Unsere Mission ist es teilweise, ein Archiv hochwertiger Fragen und deren Antworten aufzubauen. Wir möchten daher, dass Sie vermeiden, die Frage so zu ändern, dass vorhandene Antworten ungültig werden oder dass sich Ihre Fragen grundlegend ändern. und wir bevorzugen, dass Sie eine Frage pro Frage stellen. Ihre erste Frage war eine allgemeine, die vernünftig ist. Ihre EDIT stellt verschiedene Fragen. Wenn Sie eine Folgefrage haben, möchten wir, dass Sie diese separat als neue Frage veröffentlichen. Bearbeiten Sie die ursprüngliche Frage nicht.
DW
1
Ich werde die folgenden Fragen aus diesem Beitrag entfernen, aber Sie können sie mit dem Revisionsverlauf finden, wenn Sie sie separat veröffentlichen möchten.
DW
Was hast du versucht? Wo bist du festgefahren? Wir wollen nicht nur Ihre (Heim-) Arbeit für Sie erledigen; Wir möchten, dass Sie Verständnis gewinnen. Da wir jedoch nicht wissen, was Ihr zugrunde liegendes Problem ist, können wir nicht anfangen, zu helfen. Sehen Sie hier für eine entsprechende Diskussion. Wenn Sie sich nicht sicher sind, wie Sie Ihre Frage verbessern können, fragen Sie im Computer Science Chat nach . Vielleicht möchten Sie auch unsere Referenzfragen lesen .
Raphael
(Dies wurde wahrscheinlich auch schon einmal gefragt.)
Raphael
@Raphael Ich habe die Frage so bearbeitet, dass sie die spezifische Frage enthält, über die ich mich gewundert habe, sowie meine Logik. Sie wurde jedoch von DW oben entfernt. Dies ist auch nicht für meine Hausaufgaben gedacht, da mein Professor mir keinen Beweis für einen Beweis gegeben hat, den ich auf diese Weise gemacht habe, und ich möchte sicherstellen, dass mein Verständnis korrekt ist, bevor ich mit ihm darüber spreche (es ist ziemlich unvernünftig, mit ihm zu sprechen) ganz zu schweigen von schwer zu verstehen).
Kenny Loveall

Antworten:

3

Wenn wir zulassen, dass die leere Sprache ist, die regulär ist, dann haben wir L = { w 1 w 2 | w 1A , w 2B } = = A .AL={w1w2|w1A,w2B}==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ührtBAL

Sei . Sei A eine beliebige reguläre Sprache und betrachte L = { w 1 w 2 | w 1A , w 2B } . 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}AL={w1w2|w1A,w2B}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)LALbQbQBbcdSb , wobei sich δ ' identisch zu δ verhält, mit derAusnahme, dass δ ' ( q 0 , ε ) = Q ist .M=(S,Σ,δ,q0,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}wCQFMwΣCwAwbwMw , 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 .MwbwQFMwwbwLMw

Also akzeptiert C , aber diese Sprache ist nicht regulär, was zu einem Widerspruch führt.MC

Wenn also nicht leer ist, kann L nicht regulär sein.AL

ymbirtt
quelle
12

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=1ppA=1nnN

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 istAB1nn>222+xx>0

Banach Tarski
quelle
Wie wäre es damit? und betrachte B B.B=1pBB . Es ist trivial zu sehen, dass isomorph zu 1 n ist, wobei n eine gerade Zahl größer als 2 ist, was offensichtlich regelmäßig ist. BB1nn
12

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

J.-E. Stift
quelle
4
Um es vielleicht noch schlimmer ist : Lassen Sie sein jede irreguläre Sprache und lassen A = . Dann ist L = A.BA= regulär. L=AB=A
Hendrik
Dieses Argument funktioniert nur, wenn das leere Wort enthält. Es gibt unregelmäßige Sprachen, die das leere Wort nicht enthalten. B
ymbirtt
@ hendrik-jan Du hast vollkommen recht, und das ist die beste Lösung!
J.-E.
6

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öglichBB=AAB={uvuAvB}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={cannP}PAA 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.ABABca

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 auAAABL1=ABucaL1{uc} w = v c a k ist , und da w b ^ kno c enthält . Diese Sprache ist nur L 3 = { a nn P } (wenn w L 2 ist, dann gibt es v A und k N, so dass u cL2={wucwABucwuca}={waucwAB}L3={annP}wL2vAkNucw=vcakwcdies 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=akL3wL3cwBucwABL3

Gilles 'SO - hör auf böse zu sein'
quelle
Funktioniert dieser Beweis nicht mit einem nicht regulären , solange das Symbol "Stopper" nur als solches angezeigt wird? B
Raphael
@ Raphael Ja, das ist eine ausreichende Bedingung.
Gilles 'SO - hör auf böse zu sein'
0

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.LALA0LL 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.

Mike Ounsworth
quelle