- Schleifensatz
-
Das Pumping-Lemma bzw. Pumplemma beschreibt in der theoretischen Informatik eine Eigenschaft bestimmter Klassen formaler Sprachen. In vielen Fällen lässt sich anhand des Lemmas nachweisen, dass eine formale Sprache nicht regulär bzw. nicht kontextfrei ist.
Seinen Namen hat das Lemma vom englischen Begriff to pump, zu deutsch aufpumpen. Er leitet sich davon ab, dass Teile von Wörtern aus Sprachen bestimmter Klassen vervielfacht (aufgepumpt) werden können, so dass die dabei entstehenden Wörter ebenfalls in der Sprache sind.
Man unterscheidet zunächst zwischen dem Pumping-Lemma für reguläre Sprachen und jenem für kontextfreie Sprachen. In der Literatur sind weiterhin Pumping-Lemmata für Erweiterungen der kontextfreien Sprachen anzutreffen. Mächtigere Sprachklassen in der Chomsky-Hierarchie wie die kontextsensitiven Sprachen und auch die wachsend kontextsensitiven Sprachen ermöglichen jedoch kein Pumpinglemma.
Alternativ wird das Lemma bzw. seine Ausprägungen auch als uvw-Theorem, uvwxy-Theorem, Schleifenlemma, Iterationslemma oder Lemma von Bar-Hillel bezeichnet.
Inhaltsverzeichnis
Reguläre Sprachen
Annahmen
Sei die Klasse der regulären Sprachen. Zur Erzeugung einer regulären Sprache gibt es eine Grammatik vom Typ 3 der Chomsky-Hierarchie.
Aussage des Pumping-Lemmas für reguläre Sprachen
Sei L eine reguläre Sprache, also . Dann gibt es eine natürliche Zahl , so dass sich alle Wörter mit in x = uvw zerlegen lassen, wobei gilt:
Nicht jede Sprache, die dieses Lemma erfüllt, ist regulär. Eine notwendige und hinreichende Bedingung für reguläre Sprachen liefern der Satz von Myhill-Nerode oder Jaffes Pumping-Lemma (s.u.).
Beweis
Falls L endlich ist, so existiert eine obere Schranke für die Länge der Wörter aus L. Es existiert also eine natürliche Zahl n ∈ N, für die gilt: |x| < n ∀ x ∈ L. Umgekehrt gilt, dass die Menge aller Wörter aus L, die mindestens die Länge n haben, eine leere Menge ist: L' := {x ∈ L | |x| ≥ n} = ø. Da für leere Mengen Aussagen der Form „für alle Elemente der Menge gilt…“ trivialerweise immer erfüllt sind, ist auch die Behauptung für dieses n trivialerweise erfüllt. Das Pumping-Lemma ist also trivial, falls L endlich ist.
Sei daher L ohne Beschränkung der Allgemeinheit unendlich, das heißt, es existiert keine obere Schranke für die Länge der Wörter aus L. Oder anders formuliert: Für jedes Wort aus L findet sich immer ein anderes Wort aus L, das noch länger ist.
Da L regulär ist, existiert ein deterministischer endlicher Automat M, der L akzeptiert. Sei n := |M| die Anzahl der Zustände dieses Automaten. Weiter sei x ∈ L ein beliebiges Wort aus L mit mehr als n Zeichen, also |x| > n. Die Existenz eines solchen Wortes wurde im vorherigen Abschnitt sichergestellt.
Ohne Beschränkung der Allgemeinheit durchlaufe M auf x die Zustandsfolge q1→...→qk, wobei qk der akzeptierende Endzustand sei. Da M weniger Zustände hat als x Zeichen enthält, durchläuft M auf x mindestens einen Zustand mehr als einmal, das heißt es existieren i ≠ j ∈ {1, ..., k} mit qi = qj. M durchläuft auf x also einen Zyklus.
Sei v der Teil von x, der durch Durchlaufen des Zyklus qi→...→qj entsteht. Ferner sei u der Teil von x, der durch die davor liegende Zustandsfolge q1→...→qi entsteht, w sei der Teil, der durch die dahinter liegende Zustandsfolge qj→...→qk entsteht. Es gilt also x = uvw. Für alle n ≥ |M| ist nun das Pumping-Lemma erfüllt:
- Der erste Teil der Behauptung folgt direkt aus der Existenz des Zyklus. Da ein Zyklus aus mindestens einer Kante besteht und für jede Kante ein Zeichen hinzugefügt wird, gilt |v| ≥ 1.
- Der zweite Teil der Behauptung folgt trivial aus der Wahl der Konstante n. Dadurch, dass n größer oder gleich der Anzahl der Zustände von M ist, kann |uv| unmöglich größer als n sein. Es ist allerdings durchaus möglich, dass u oder w leer sind.
- Durch wiederholtes Durchlaufen des Zyklus entstehen die Wörter uvvw, uvvvw, ..., uviw mit beliebigem i ≥ 0. Ferner kann der Zyklus auch ganz ausgelassen werden, wodurch das Wort uv0w = uw entsteht. Alle diese Wörter sind in L, da der deterministische endliche Automat seine Berechnung stets im akzeptierenden Endzustand beendet.
Beispiel
Ist die Sprache regulär?
Angenommen, L sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl n, so dass sich alle Wörter mit wie beschrieben zerlegen lassen.
Man betrachte nun speziell das Wort x = uvw = anbn.
Gemäß Bedingung 1 ist v nicht leer, gemäß Bedingung 2 besteht uv und somit auch v ausschließlich aus as (da und | uvw | = | anbn | = 2n). Mit Bedingung 3 müsste das Wort in L liegen. Das ist aber offensichtlich falsch, denn dieses Wort hat mehr as als bs, da größer 0. Damit gilt: L kann nicht regulär sein.
Eine nicht-reguläre Sprache, die das Pumping-Lemma erfüllt
Die Sprache ist nicht regulär; dies ist leicht anhand des obigen Beispiels einzusehen. Allerdings erfüllt L das Pumping-Lemma, denn jedes Wort lässt sich so zerlegen x = uvw, dass auch für alle . Dazu kann v einfach als erster Buchstabe gewählt werden. Dieser ist entweder ein a, die Anzahl von führenden as ist beliebig. Oder er ist ein b oder c, ohne führende as ist aber die Anzahl von führenden bs oder cs beliebig.
Jaffes Pumping-Lemma
Jeffrey Jaffe hat ein verallgemeinertes Pumping-Lemma entwickelt [1], das äquivalent zur Definition der regulären Sprachen ist. Es ist also eine hinreichende Bedingung zum Nachweis der Regularität einer Sprache.
Die Sprache ist regulär genau dann, wenn eine Konstante existiert, so dass für alle | w | = k gilt: Es gibt eine Zerteilung , so dass w = xyz und für alle und gilt:
.
Kontextfreie Sprachen
Annahmen
Sei die Klasse aller Sprachen, die von Chomsky-Hierarchie-Typ-2-Grammatiken erzeugt werden. bezeichnet somit die Klasse der kontextfreien Sprachen.
Aussage des Pumping-Lemmas für kontextfreie Sprachen
Sei L eine kontextfreie Sprache, also in . Dann gibt es eine Konstante , so dass sich alle Wörter mit in z = uvwxy zerlegen lassen, so dass gilt:
Die Umkehrung (eine Sprache erfüllt das Pumping-Lemma für kontextfreie Sprachen, darum ist die Sprache kontextfrei) gilt i.A. nicht. Eine Verallgemeinerung des Pumping-Lemmas für kontextfreie Sprachen ist Ogdens Lemma.
Korrektheitsbeweis
Gegeben sei eine kontextfreie Grammatik G in Chomsky-Normalform mit N Variablen, für die gilt, dass sie gerade die gewünschte Sprache beschreibt. Sei nun ein Wort x aus dieser Sprache gegeben, für das gilt: .
Betrachten wir nun einen Ableitungsbaum T für x mit Höhe h. Da unsere Sprache in CNF angegeben wurde, hat T die Form eines Binärbaumes. Daraus folgt für die Höhe von T . Es gibt also einen Pfad v0...vh in T von der Wurzel zu einem Blatt, für den gilt, dass er Länge h + 1 > | N | hat. Es existieren also zwei Knoten vj,vk auf diesem Pfad mit , welche die gleichen Variablen von G Aj,Ak repräsentieren.
Betrachtet man den Teilbaum Tk, welcher von vk aus aufgespannt wird, so bilden dessen Blätter den Teilstring w. Der Teilbaum Tj, welcher von vj aufgespannt wird, besitzt als Teilbaum den Baum Tk. Man kann also die Blätter von Tj aufteilen in Blätter links von Tk und Blätter rechts von Tk und erhält somit eine Aufteilung der Blätter von Tj der Form vwx. Ebenso unterteilt der Teilbaum Tj den gesamten Ableitungsbaum in drei Teile u,vwx,y. Wir erhalten also als Aufteilung die Teilstrings u,y, welche im Ableitungsbaum links bzw. rechts von dem von vj aufgespannten Teilbaum liegen, die Teilstrings v,x, welche in dem Teilbaum Tj liegen nicht jedoch in Tk, und zu guter Letzt den Teilstring w, welcher in Tk liegt. Da vj und vk die gleichen Variablen unserer Grammatik repräsentieren, folgt daraus, dass der Pfad von vj nach vk beliebig oft wiederholt werden kann. Durch eine Wiederholung des Pfades würden wir Worte der Form uviwxiy erzeugen, ohne unsere Sprache zu verlassen. Womit wir das Pumping-Lemma für kontextfreie Sprachen bewiesen hätten.
Beispiel
Ist die Sprache kontextfrei?
Wir nehmen an, L sei kontextfrei. Sei dann n die zugehörige Konstante aus dem Pumping-Lemma.
Wir betrachten das Wort z = anbncn. Es muss dann eine Zerlegung z = uvwxy geben, so dass , , für alle ist. Da , enthält das Wort vwx höchstens zwei verschiedene Buchstaben. Da , kann uv2wx2y nicht von allen drei Buchstaben gleich viele enthalten. Also kann L nicht kontextfrei sein.
Quellen
- ↑ Jeffrey Jaffe: A necessary and sufficient pumping lemma for regular languages
Wikimedia Foundation.