article

Das Pumping-Lemma bzw. Pumplemma beschreibt in der theoretischen Informatik eine Eigenschaft bestimmter Klassen formaler Sprachen. In vielen Fällen läßt sich anhand des Lemmas nachweisen, dass eine formale Sprache nicht regulär bzw. nicht kontextfrei ist.

Ihren 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 kontextsensitive 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.

Variante 1: Das Pumping-Lemma für reguläre Sprachen


Annahmen

Sei \mathcal{L}_3 die Menge der regulären Sprachen. Zur Erzeugung einer regulären Sprache gibt es eine Grammatik des Chomsky-Hierarchie-Typ 3.

Aussage des Pumping-Lemmas für reguläre Sprachen

Sei L eine reguläre Sprache, also L \in \mathcal{L}_3 . Dann gibt es eine natürliche Zahl n \in \mathbb{N}, sodass sich alle Wörter x \in L mit \left| x \right| \ge n in x = uvw zerlegen lassen, wobei gilt:

  1. \left| v \right| \ge 1
  2. \left| uv \right| \le n
  3. \forall i \ge 0 : uv^iw \in L

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

Korrektheitsbeweis

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 länger als n sind, 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.

Pumping-Lemma.png

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:

  1. 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.
  2. 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.
  3. Durch wiederholtes Durchlaufen des Zyklus entstehen die Wörter uvvw, uvvvw, ..., uviw mit beliebigem i ≥ 1. 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. \Box

Beispiel

Ist die Sprache L = \{ a^mb^m | m \ge 1 \} regulär?

Angenommen, L sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl n, sodass sich alle Wörter x \in L mit \left| x \right| \ge n wie beschrieben zerlegen lassen.

Man betrachte nun speziell das Wort x = uvw = a^nb^n.

Gemäß Bedingung 1 ist v nicht leer, gemäß Bedingung 2 besteht uv und somit auch v ausschließlich aus as (da |uv| \leq n und |uvw| = |a^n b^n| = 2n). Mit Bedingung 3 müsste das Wort uv^2w = a^{n - \left| v \right|}a^{2 * \left| v \right|}b^n = a^{n+ \left| v \right|}b^n in L liegen. Das ist aber offensichtlich falsch, denn dieses Wort hat mehr as als bs. Damit gilt: L ist nicht regulär.

Eine nicht-reguläre Sprache die das Pumping-Lemma erfüllt

Die Sprache L = \{ a^mb^nc^n | m,n \ge 1 \} \cup \{b^mc^n|m,n \ge 0 \} ist nicht regulär; dies ist leicht anhand des obigen Beispiels einzusehen. Allerdings erfüllt L das Pumping-Lemma, denn jedes Wort x \in L läßt sich so zerlegen x= uvw, dass auch für alle i\ge0 uv^iw \in L. 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-Lemmas entwickelt, das äquivalent zur Definition der regulären Sprachen ist. Es ist also eine hinreichende Bedingung zum Nachweis der Regularität einer Sprache.

Die Sprache L \in \Sigma ^{*} ist regulär genau dann wenn eine Konstante k > 0 \in \mathbb{N} existiert so, dass für alle w \in \Sigma^{*} |w| \geq k gilt: Es gibt eine Zerteilung x, y, z \in \Sigma ^{*} so, dass {w} = xyz y \neq \epsilon , und für alle i \geq 0 und v \in \Sigma ^{*} gilt:

wv \in L \iff xy^{i}zv \in L.

Variante 2: Das Pumping-Lemma für kontextfreie Sprachen


Annahmen

Sei \mathcal{L}_2 die Klasse aller Sprachen, die von Chomsky-Hierarchie-Typ-2-Grammatiken erzeugt werden. \mathcal{L}_2 bezeichnet somit die Klasse der kontextfreien Sprachen.

Aussage des Pumping-Lemmas für kontextfreie Sprachen

Sei L eine kontextfreie Sprache, also in \mathcal{L}_2. Dann gibt es eine Konstante n \in \mathbb{N}, sodass sich alle Wörter z \in L mit \left| z \right| \ge n in z = uvwxy zerlegen lassen, sodass gilt:

  1. \left| vx \right| \ge 1
  2. \left| vwx \right| \le n
  3. \forall i \ge 0: uv^iwx^iy \in L

Eine Verschärfung 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: |x| \geq 2^N = n.

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 h \geq log(n) = N. Es gibt also einen Pfad v_0 ... v_h 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 v_j, v_k auf diesem Pfad mit 0 \leq j < k \leq h, welche die gleichen Variablen von G A_j, A_k repräsentieren.

Betrachtet man den Teilbaum T_k, welcher von v_k aus aufgespannt wird, so bilden dessen Blätter den Teilstring w. Der Teilbaum T_j, welcher von v_j aufgespannt wird, besitzt als Teilbaum den Baum T_k. Man kann also die Blätter von T_j aufteilen in Blätter links von T_k und Blätter rechts von T_k und erhält somit eine Aufteilung der Blätter von T_j der Form vwx. Ebenso unterteilt der Teilbaum T_j 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 v_j aufgespannten Teilbaum liegen, die Teilstrings v, x, welche in dem Teilbaum T_j liegen nicht jedoch in T_k, und zu guter Letzt den Teilstring w, welcher in T_k liegt. Da v_j und v_k die gleichen Variablen unserer Grammatik repräsentieren, folgt daraus, dass der Pfad von v_j nach v_k beliebig oft wiederholt werden kann. Durch eine Wiederholung des Pfades würden wir Worte der Form uv^iwx^iy erzeugen, ohne unsere Sprache zu verlassen. Womit wir das Pumping-Lemma für kontextfreie Sprachen bewiesen hätten.

Beispiel

Ist die Sprache L = \{ a^mb^mc^m | m \ge 1 \} kontextfrei?

Wir nehmen an, L sei kontextfrei. Sei dann n die zugehörige Konstante aus dem Pumping-Lemma.

Wir betrachten das Wort z = a^nb^nc^n. Es muss dann eine Zerlegung z = uvwxy geben, sodass \left| vx \right| \ge 1, \left| vwx \right| \le n, uv^iwx^iy \in L für alle i \ge 0 ist. Da \left| vwx \right| \le n, enthält das Wort vwx höchstens zwei verschiedene Buchstaben. Da \left| vx \right| \ge 1, kann uv^2wx^2y nicht von allen drei Buchstaben gleich viele enthalten. Also ist L nicht kontextfrei.

Formale Sprachen | Compilerbau

Lemma o vkládání | Pumping lemma | למת הניפוח לשפות חופשיות הקשר | 펌핑 렘마 | 泵引理

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Pumping-Lemma".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld