Die Sprache ist offensichtlich regulär - zum Beispiel entspricht sie dem regulären Ausdruck . Das folgende Argument des Pumping Lemma scheint jedoch zu zeigen, dass es nicht regelmäßig ist. Was ist falsch gelaufen?
Ich habe einen Weg gefunden, einen Eingang als , der die Anforderungen des Pump-Lemmas erfüllt, aber es ist nicht wahr, dass für alle . Bedeutet das nicht, dass die Sprache nicht regelmäßig ist?
Genauer gesagt , sagt der Pumping - Lemma für reguläre Sprachen , dass, wenn eine Sprache regulär ist, gibt Pumplänge existiert , so dass eine beliebige Zeichenfolge mit kann geschrieben werden solche Das:
- für alle .
Nehmen wir also und schreiben es als (dh , , ). Dies erfüllt 1. und 2. Wenn wir jedoch , erhalten wir , was nicht in ist weil seine Länge ungerade ist. Es sieht also so aus, als ob die Sprache doch nicht regelmäßig ist.
Dies ist als Referenzfrage gedacht, die einen häufigen Fehler bei der Verwendung des Pump-Lemmas für reguläre Sprachen veranschaulicht. Vielen Dank an Ariel für das Erkennen des Problems in der Originalversion der Frage.
quelle
Antworten:
Das Problem liegt in den Quantifizierern. Das Pump-Lemma besagt, dass jeder String mit als geschrieben werden kann , so dass die drei Eigenschaften gelten. Es heißt nicht, dass jede Art, es als schreiben , die die ersten beiden Eigenschaften hält, auch die dritte hält.s |s|≥p xyz xyz
Für die Sprache gehen wir wie folgt vor. Beachten Sie zunächst, dass wir , da wir bei gezwungen sind, , , und Sie haben dies bereits in der Frage gezeigt das funktioniert nicht Mit können wir also schreiben als ( , , ). Wir haben , und für alle{02n∣n≥0} p≥2 p=1 x=ϵ y=0 z=02p−1 p≥2 s=02p s=ϵ0002(p−1) x=ϵ y=00 z=02(p−1) |ϵ00|≤p |00|>1 (00)i02(p−1)∈L i≥0 . Daher gibt es eine Möglichkeit, die Zeichenfolge als zerlegen , die alle Eigenschaften erfüllt, obwohl die erste Zerlegung, an die Sie gedacht haben, nicht funktioniert hat.xyz
Um zu zeigen, dass eine Sprache nicht regulär ist, müssen Sie zeigen, dass jede Zerlegung in , die die ersten beiden Eigenschaften erfüllt, die dritte nicht erfüllt. Es reicht nicht aus, nur zu zeigen, dass eine Zerlegung nicht funktioniert.xyz
Um zu verstehen, warum das Pump-Lemma so ist, wie es ist, hilft es, über den Beweis nachzudenken. Wenn eine Sprache regulär ist, wird sie von einigen EDA akzeptiert. Dieser DFA hat eine Reihe von Zuständen: Nennen Sie es . Nach dem Pigeonhole-Prinzip muss der DFA immer dann, wenn er eine Zeichenfolge liest, die länger als , einen Zustand zweimal besuchen: sagen wir den Zustand . Nun ist der Teil der Eingabe, der bis zum ersten Besuch von gelesen wurde (und diesen einschließt) , ist der Teil, der nach dem ersten Besuch gelesen wurde, und bis einschließlich des zweiten (der mindestens ein Zeichen sein muss), und ist der Rest . Aber jetzt können Sie sehen, dass akzeptiert werden muss: bringt Sie vom Startzustand zup p q x q y z xz x q und Sie von in einen akzeptierenden Zustand. Ebenso muss für jedes positive akzeptiert werden , da jede Wiederholung von Sie von zurück zu . Es ist zu beachten, dass die Zerlegung der Eingabe in , und vollständig durch den Automaten bestimmt wird, der wiederum (aber nicht eindeutig) durch die Sprache bestimmt wird. Sie können also die Zerlegung nicht auswählen: Wenn die Sprache regulär ist, ist eine gewisse Zerlegung vorhanden. Um zu zeigen, dass eine Sprache nicht regulär ist, müssen Sie zeigen, dass jede Zerlegung fehlschlägt.z q xyiz i y q q x y z
quelle