Für eine Sprache mit der Pumplänge und einer Zeichenfolge sind die Pumpspelzen wie folgt:
Reguläre Version : If , dann kann als werden, wobei die folgenden Bedingungen erfüllt sind:
Kontextfreie Version : If , dann kann als werden, wobei die folgenden Bedingungen erfüllt sind:
Meine Frage lautet: Kann jemand kurz und deutlich erklären, wie Regelmäßigkeit (Kontextfreiheit) die oben genannten ersten und zweiten Bedingungen impliziert? Die Pumplänge wird durch (endliche) Eigenschaften (endliche Anzahl von Zuständen bzw. endliche Eigenschaften von Produktionsregeln) bestimmt. Die dritten Eigenschaften garantieren, dass ein Zustand (Produktionsregel) beliebig oft übersprungen oder wiederholt werden kann, aber wo tun die ersten und zweite Bedingungen entstehen? Wie sind sie gerechtfertigt?
Antworten:
Die erste Bedingung, dh ist eindeutig notwendig, wenn Sie etwas Interessantes sagen möchten: Für gilt trivial und gilt immer.|y|≥1 y=ε xyiz∈L
Die zweite Bedingung, dh , ist "willkürlich": Das Lemma sagt immer noch etwas Interessantes, wenn Sie es fallen lassen, und es ist immer noch wahr, weil die Aussage schwächer wird.|xy|≤p
Aber denken Sie daran, wofür wir die Pump-Lemmas verwenden möchten: Wir möchten ein (ausreichend langes) Wort finden, sodass alle gültigen Zerlegungen in nicht pumpen können. Daher ist es sinnvoll, möglichst wenige derartige Zerlegungen zuzulassen. Glück , wie wir, der Beweis des Lemmas Pump ohne weiteres ergibt eine starke Einschränkung, nämlich , dass es hat eine pumpbare Zersetzung sein mit mit konstanter .x,y,z |xy|≤p p
Jetzt müssen wir nur endlich viele Präfixe widerlegen (mit möglicherweise unendlich vielen verschiedenen Fortsetzungen natürlich). Wenn Sie sich Beispielanwendungen ansehen , werden Sie feststellen, dass diese diese Einschränkung stark nutzen.xy
quelle
Ich werde nur einige Hinweise zum Pump-Lemma für reguläre Sprachen geben. Die Argumentation ist ähnlich genug für die andere. Stellen Sie sich als den Teil von , der von allem erzeugt wird, bevor Sie die erste Schleife zum ersten Mal starten. als alles, was in dieser bestimmten Schleife für die erste Schleife erzeugt wurde; und als alles, was nach dem ersten Schleifen erzeugt wurde.x s y z
Da , und ist die Anzahl der Zustände im minimalen endlichen Automaten (z. B.), die die Sprache akzeptieren, dann muss der Automat eine Schleife durchlaufen haben (da sonst höchstens Übergänge möglich gewesen wären). Daher ist nicht leer; wir stellen die Tatsache fest, dass, da wir eine Zeichenfolge einer bestimmten Länge haben, der Automat, der sie akzeptiert, irgendwann eine Schleife haben muss, so dass gerechtfertigt ist.|s|≥p p p−1 y |y|>1
Da das erste Mal ist, dass Sie die erste Schleife durchlaufen, und alles davor ist, haben Sie keinen Zustand im Automaten mehr als einmal besucht. Da gibt esZustände im Automaten, und Sie haben nicht alle besucht, Sie haben .y x |p| |xy|<p
Dies sind nicht so viele Hypothesen, die Unterstützung erfordern. Sie sind Tatsachenaussagen, die darauf basieren, wie das Pump-Lemma in Form endlicher Automaten erfunden wurde.
quelle
Wenn Sie sich durch die Zustände eines Automaten bewegen, werden Sie schließlich einen Zyklus erreichen. Der Zyklus ist . Es macht keinen Sinn, ein leeres Wort zu pumpen, daher Bedingung 1. ist die Anzahl der Symbole, die Sie lesen mussten, um den ersten Zyklus zu finden. Dies kann unmöglich mehr als die Anzahl der Zustände sein, daher Bedingung 2. Fast per Definition kann ein Zyklus beliebig oft wiederholt werden, daher Bedingung 3.y xy
Die kontextfreie Variante ist sehr ähnlich. Die erste Bedingung ist, dass wir nur nach nützlichen Zyklen suchen. Die zweite Bedingung besagt, dass ein Zyklus gefunden werden kann, weil Ihnen die Nicht-Terminals ausgehen. Die dritte Bedingung besagt, dass Sie einen Zyklus, sobald Sie ihn haben, pumpen können. Beachten Sie, dass Sie einen Analysebaum zeichnen sollten, um einen Zyklus im kontextfreien Fall anzuzeigen.
quelle
Es gibt Varianten des Pump-Lemmas. Ich werde deine benutzen.
Beachten Sie, dass Sie wirklich 3 Längenbedingungen haben. Das fehlende ist ungefähr die minimale Gesamtlänge des Wortes. Ich behandle es mit der zweiten Bedingung.
Kurz gesagt:
Ich nenne Teilbaum jeden Teil des Analysebaums, der höchstens ein Nicht-Terminal am Rand hat. Das Pump-Lemma verwendet rekursive Teilbäume, bei denen das Nicht-Terminal im Rand mit der Wurzel des Teilbaums identisch ist. Der gesamte Analysebaum ist ein Teilbaum.
Teilbäume wie hier definiert (und rekursive Teilbäume) sind das Herzstück der Sache. Ihre Existenz steht in direktem Zusammenhang mit der Kontextfreiheit .
1. Bedingung : Es heißt einfach, dass ein unproduktiver (Rand ohne Termina-Symbol) rekursiver Teilbaum im Analysebaum kurzgeschlossen werden kann, sodass wir immer sicher sind, dass der Rand ein Endsymbol enthält.
Ein Endlichkeitsproblem : Es wird zweimal verwendet. Wenn Sie einen Teilbaum haben, der keinen rekursiven Teilbaum enthält, hat kein Pfad im Teilbaum die gleiche Bezeichnung (mit Ausnahme des Teilbaumstamms). Der Teilbaum verzweigt sich endlich mit einer begrenzten Tiefe (nicht mehr als die Anzahl der Nicht-Terminals). Daher haben Sie eine endliche Menge solcher Teilbäume, die nur eine endliche Menge von Zeichenfolgen an ihrem Rand erzeugen. Da die Anzahl begrenzt ist, gibt es eine Obergrenze für die Länge der Ränder. Wenn ein Rand die Grenze überschreitet, ist dies ein sicherer Hinweis darauf, dass er einen rekursiven Teilbaum enthält.
"fehlende Bedingung" : Die "fehlende Bedingung", die sicher, dass die Zeichenfolge lang genug ist, sodass mindestens ein rekursiver Teilbaum im Analysebaum zum Pumpen vorhanden ist.∣s∣≥p
2. Bedingung : Sie können immer einen rekursiven Teilbaum pumpen, der weder dominiert noch einen anderen rekursiven Teilbaum im Analysebaum enthält. Wenn dies der Fall ist, nehmen Sie einfach den anderen rekursiven Teilbaum. Da der Analysebaum endlich ist, endet dies. Ende erhalten Sie Teilbäume (für und für ), die keine rekursiven Teilbäume enthalten, und die obige Endlichkeitsanalyse garantiert die Existenz einer Obergrenze.vy x
Im normalen Grammatikfall haben Sie nur Teilbäume, die nicht sehr stark verzweigen. Es ist wirklich identisch mit dem CF-Fall, wobei einige Zeichenfolgen durch .ϵ
Im CF-Fall ist es für den Beweis des Lemmas oder seiner Variationen häufig zweckmäßig anzunehmen, dass die Grammatik CNF ist (abhängig auch von der Lemma-Variante).
Ein Großteil des formalen Beweises ist die mathematische Darstellung, nicht das Verständnis.
Dies war eine interessante Übung.
quelle