Pumping-Lemma

Das Pumping-Lemma bzw. Pumplemma (auch Schleifensatz genannt) 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. Es 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 Pumping-Lemma.

Alternativ wird das Lemma bzw. seine Ausprägungen auch als uvw-Theorem, uvwxy-Theorem, Schleifenlemma, Iterationslemma oder Lemma von Bar-Hillel bezeichnet.

Reguläre Sprachen

Pumping-Lemma für reguläre Sprachen

Für jede reguläre Sprache L {\displaystyle L} gibt es eine natürliche Zahl n {\displaystyle n} , sodass gilt: Jedes Wort z {\displaystyle z} in L {\displaystyle L} mit Mindestlänge n {\displaystyle n} hat eine Zerlegung z = u v w {\displaystyle z=uvw} mit den folgenden drei Eigenschaften:

  1. Die beiden Wörter u {\displaystyle u} und v {\displaystyle v} haben zusammen höchstens die Länge n {\displaystyle n} .
  2. Das Wort v {\displaystyle v} ist nicht leer.
  3. Für jede natürliche Zahl (mit 0) i {\displaystyle i} ist das Wort u v i w {\displaystyle uv^{i}w} in der Sprache L {\displaystyle L} , d. h. die Wörter u w {\displaystyle uw} , u v w {\displaystyle uvw} , u v v w {\displaystyle uvvw} , u v v v w {\displaystyle uvvvw} usw. sind alle in der Sprache L {\displaystyle L} .

Das kleinste n {\displaystyle n} , das diese Eigenschaften erfüllt, wird Pumping-Zahl der Sprache L {\displaystyle L} genannt.[1]

Neben den regulären Sprachen gibt es auch nicht-reguläre Sprachen, die dieses Lemma erfüllen. Eine notwendige und hinreichende Bedingung für reguläre Sprachen liefern der Satz von Myhill-Nerode oder Jaffes Pumping-Lemma.

Das Pumping-Lemma enthält mehrere Wechsel zwischen universeller und existentieller Quantifizierung. Diese kann man gut anhand der folgenden formalen Formulierung des Lemmas erkennen. Darin bezeichnet L 3 {\displaystyle {\mathcal {L}}_{3}} die Menge aller regulärer Sprachen.

L L 3 . n N . z L . | z | n u , v , w .     z = u v w   | u v | n   | v | > 0   i N 0 . u v i w L {\displaystyle {\begin{aligned}\forall L\in {\mathcal {L}}_{3}.\,\exists n\in \mathbb {N} .\,\forall z\in L.\,|z|\geq n\implies \exists u,v,w.\ \ &z=u\circ v\circ w\ \land \\&|uv|\leq n\ \land \\&|v|>0\ \land \\&\forall i\in \mathbb {N} _{0}.\,u\circ v^{i}\circ w\in L\end{aligned}}}

Beweis

Die Gültigkeit des Lemmas basiert darauf, dass es zu jeder regulären Sprache einen deterministischen endlichen Automaten gibt, der die Sprache akzeptiert. Über einem endlichen Alphabet enthält eine reguläre Sprache mit unendlich vielen Wörtern auch solche Wörter, die mehr Zeichen enthalten als der Automat Zustände hat. Zum Akzeptieren solcher Wörter muss der Automat also einen Zyklus enthalten, der dann in beliebiger Häufigkeit durchlaufen werden kann. Die Buchstabenfolge, die beim Durchlaufen des Zyklus gelesen wird, kann also entsprechend beliebig oft in Wörtern der Sprache vorkommen.

Die Idee des Pumping-Lemmas ist, dass ein Wortteil durch einen Zyklus im deterministischen endlichen Automaten beliebig oft wiederholt werden kann.

Der folgende Beweis setzt die Mindestlänge n {\displaystyle n} aus dem Lemma mit der Anzahl der Zustände des Automaten gleich und zeigt, dass wegen der Existenz eines Zyklus jedes Wort mit dieser Mindestlänge die geforderte Zerlegung besitzt.

Sei L {\displaystyle L} eine reguläre Sprache. Ist L {\displaystyle L} endlich, dann gibt es ein Wort mit maximaler Länge k {\displaystyle k} . Sei n = k + 1 {\displaystyle n=k+1} , so ist für alle z L {\displaystyle z\in L} die Prämisse | z | n {\displaystyle |z|\geq n} falsch und die Implikation damit wahr.

Ist L {\displaystyle L} unendlich, dann sei M {\displaystyle M} ein deterministischer endlicher Automat, der L {\displaystyle L} akzeptiert. Da L {\displaystyle L} regulär ist, existiert ein solcher Automat M {\displaystyle M} immer. Sei n {\displaystyle n} die Anzahl der Zustände dieses Automaten, und sei z {\displaystyle z} ein beliebiges Wort aus L {\displaystyle L} mit mindestens n {\displaystyle n} Zeichen. Bezeichne nun mit q 1 q k {\displaystyle q_{1}\to \dots \to q_{k}} die Zustandsfolge, die M {\displaystyle M} beim Lesen von z {\displaystyle z} beginnend mit dem Startzustand q 1 {\displaystyle q_{1}} durchläuft. Da z {\displaystyle z} in L {\displaystyle L} ist, muss z {\displaystyle z} von M {\displaystyle M} akzeptiert werden, d. h. q k {\displaystyle q_{k}} muss ein akzeptierender Zustand sein. Da der Automat M {\displaystyle M} gerade n {\displaystyle n} Zustände hat, muss spätestens nach dem Lesen von n {\displaystyle n} Zeichen eine Zustandswiederholung eintreten. Das heißt, es existieren i , j { 1 , , n + 1 } {\displaystyle i,j\in \{1,\dots ,n+1\}} mit i j {\displaystyle i\neq j} und q i = q j {\displaystyle q_{i}=q_{j}} . Der Automat M {\displaystyle M} durchläuft beim Lesen von z {\displaystyle z} also einen Zyklus.

Sei v {\displaystyle v} der Teil von z {\displaystyle z} , der beim Durchlaufen des Zyklus q i q j {\displaystyle q_{i}\to \dots \to q_{j}} gelesen wird. Ferner sei u {\displaystyle u} der Teil von z {\displaystyle z} , der beim Durchlaufen der davor liegenden Zustandsfolge q 1 q i {\displaystyle q_{1}\to \dots \to q_{i}} gelesen wird, und w {\displaystyle w} sei der Teil von z {\displaystyle z} , der beim Durchlaufen der dahinter liegenden Zustandsfolge q j q k {\displaystyle q_{j}\to \dots \to q_{k}} gelesen wird. Mit dieser Wahl gilt z = u v w {\displaystyle z=uvw} .

Mit dieser Wahl von u {\displaystyle u} , v {\displaystyle v} und w {\displaystyle w} gelten die Aussagen aus dem Pumping-Lemma:

  1. Die Länge von u v {\displaystyle uv} ist j 1 {\displaystyle j-1} und somit nicht größer als n {\displaystyle n} .
  2. Das Wort v {\displaystyle v} ist nicht leer, da i j {\displaystyle i\neq j} gilt, so dass beim Durchlauf des Zyklus mindestens ein Zeichen gelesen wird.
  3. Für beliebiges m 0 {\displaystyle m\geq 0} durchläuft der Automat beim Lesen des Worts u v m w {\displaystyle uv^{m}w} zunächst die Zustandsfolge q 1 q i {\displaystyle q_{1}\to \dots \to q_{i}} , dann m {\displaystyle m} -mal den Zyklus q i q j {\displaystyle q_{i}\to \dots \to q_{j}} und schließlich die Zustandsfolge q j q k {\displaystyle q_{j}\to \dots \to q_{k}} . Am Ende befindet sich der Automat im akzeptierenden Zustand q k {\displaystyle q_{k}} . Somit gilt u v m w L {\displaystyle uv^{m}w\in L} für alle m 0 {\displaystyle m\geq 0} .

Beispiel

Ist die Sprache L = { a m b m m 1 } {\displaystyle L=\left\{a^{m}b^{m}\mid m\geq 1\right\}} regulär?

Angenommen, L {\displaystyle L} sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl n {\displaystyle n} , so dass sich alle Wörter z L {\displaystyle z\in L} mit | z | n {\displaystyle \left|z\right|\geq n} wie beschrieben zerlegen lassen.

Insbesondere gibt es eine Zerlegung u v w {\displaystyle uvw} mit den beschriebenen Eigenschaften für das Wort a n b n L {\displaystyle a^{n}b^{n}\in L} . Da u v {\displaystyle uv} ein Präfix dieses Wortes ist und gemäß Eigenschaft 1 höchstens Länge n {\displaystyle n} hat, besteht u v {\displaystyle uv} und damit v {\displaystyle v} ausschließlich aus Buchstaben a {\displaystyle a} . Gemäß Eigenschaft 3 (für i = 2 {\displaystyle i=2} ) muss auch das Wort u v 2 w = a n + | v | b n {\displaystyle uv^{2}w=a^{n+\left|v\right|}b^{n}} in L {\displaystyle L} liegen. Da aber | v | > 0 {\displaystyle \left|v\right|>0} (Eigenschaft 2), enthält dieses Wort mehr a {\displaystyle a} als b {\displaystyle b} , liegt also nicht in L {\displaystyle L} .

Also führt die Annahme, L {\displaystyle L} sei eine reguläre Sprache, zum Widerspruch und ist damit falsch.

Eine nicht-reguläre Sprache, die den Bedingungen des Pumping-Lemmas genügt

Die Sprache L = { a m b n c n m , n 1 } { b m c n m , n 0 } {\displaystyle L=\left\{a^{m}b^{n}c^{n}\mid m,n\geq 1\right\}\cup \{b^{m}c^{n}\mid m,n\geq 0\}} ist nicht regulär. Allerdings erfüllt L {\displaystyle L} die Eigenschaften des Pumping-Lemmas, denn jedes Wort z L {\displaystyle z\in L} lässt sich so zerlegen z = u v w {\displaystyle z=uvw} , dass auch für alle i 0 {\displaystyle i\geq 0} u v i w L {\displaystyle uv^{i}w\in L} . Dazu kann v {\displaystyle v} einfach als erster Buchstabe gewählt werden. Dieser ist entweder ein a {\displaystyle a} , die Anzahl von führenden a {\displaystyle a} s ist beliebig. Oder er ist ein b {\displaystyle b} oder c {\displaystyle c} , ohne führende a {\displaystyle a} s ist aber die Anzahl von führenden b {\displaystyle b} s oder c {\displaystyle c} s beliebig.

Jaffes Pumping-Lemma

Jeffrey Jaffe hat ein verallgemeinertes Pumping-Lemma entwickelt,[2] das äquivalent zur Definition der regulären Sprachen ist. Es ist also eine notwendige und hinreichende Bedingung zum Nachweis der Regularität einer Sprache.

Die Sprache L Σ {\displaystyle L\subseteq \Sigma ^{*}} ist regulär genau dann, wenn eine Konstante n > 0 , n N {\displaystyle n>0,n\in \mathbb {N} } existiert, so dass es für alle z Σ {\displaystyle z\in \Sigma ^{*}} , | z | = n {\displaystyle |z|=n} eine Zerteilung z = u v w {\displaystyle z=uvw} mit u , w Σ , v Σ + {\displaystyle u,w\in \Sigma ^{*},v\in \Sigma ^{+}} gibt, so dass für alle i 0 {\displaystyle i\geq 0} und Suffixe x Σ {\displaystyle x\in \Sigma ^{*}} gilt:

z x L u v i w x L {\displaystyle zx\in L\iff uv^{i}wx\in L} .

Kontextfreie Sprachen

Pumping-Lemma für kontextfreie Sprachen

Für jede kontextfreie Sprache L {\displaystyle L} gibt es eine natürliche Zahl n {\displaystyle n} , sodass gilt: Jedes Wort z {\displaystyle z} in L {\displaystyle L} mit Mindestlänge n {\displaystyle n} hat eine Zerlegung z = u v w x y {\displaystyle z=uvwxy} mit den folgenden drei Eigenschaften:

  1. Die Wörter v {\displaystyle v} , w {\displaystyle w} und x {\displaystyle x} haben zusammen höchstens die Länge n {\displaystyle n} , d. h. | v w x | n {\displaystyle |vwx|\leq n} .
  2. Eines der Wörter v {\displaystyle v} , x {\displaystyle x} ist nicht leer. Also | v x | 1 {\displaystyle |vx|\geq 1} .
  3. Für jede natürliche Zahl (mit 0) i {\displaystyle i} ist das Wort u v i w x i y {\displaystyle uv^{i}wx^{i}y} in der Sprache L {\displaystyle L} , d. h. die Wörter u w y {\displaystyle uwy} , u v w x y {\displaystyle uvwxy} , u v v w x x y {\displaystyle uvvwxxy} usw. liegen alle in L {\displaystyle L} .

Neben den kontextfreien Sprachen gibt es auch nicht kontextfreie Sprachen, die dieses Pumping-Lemma erfüllen. Die Umkehrung des Lemmas gilt im Allgemeinen also nicht. Eine Verallgemeinerung des Pumping-Lemmas für kontextfreie Sprachen ist Ogdens Lemma.

Beweis

Gegeben sei eine kontextfreie Grammatik G in Chomsky-Normalform mit N {\displaystyle N} Variablen, für die gilt, dass sie gerade die gewünschte Sprache beschreibt. Sei nun ein Wort x {\displaystyle x} aus dieser Sprache gegeben, für das gilt: | x | 2 | N | = n {\displaystyle \left|x\right|\geq 2^{\left|N\right|}=n} .

Die Idee des Pumping-Lemmas für kontextfreie Sprachen ist, dass ein Wortteil durch mehrfaches Ableiten derselben Variablen beliebig oft wiederholt werden kann.

Betrachten wir nun einen Ableitungsbaum T für x {\displaystyle 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 log ( n ) = | N | {\displaystyle h\geq \log(n)=\left|N\right|} . Es gibt also einen Pfad v 0 v h {\displaystyle v_{0}\ldots v_{h}} in T von der Wurzel zu einem Blatt, für den gilt, dass er Länge h + 1 > | N | {\displaystyle h+1>\left|N\right|} hat. Es existieren also zwei Knoten v j , v k {\displaystyle v_{j},v_{k}} auf diesem Pfad mit 0 j < k h {\displaystyle 0\leq j<k\leq h} , welche die gleichen Variablen von G A j , A k {\displaystyle A_{j},A_{k}} repräsentieren.

Betrachtet man den Teilbaum T k {\displaystyle T_{k}} , welcher von v k {\displaystyle v_{k}} aus aufgespannt wird, so bilden dessen Blätter den Teilstring w {\displaystyle w} . Der Teilbaum T j {\displaystyle T_{j}} , welcher von v j {\displaystyle v_{j}} aufgespannt wird, besitzt als Teilbaum den Baum T k {\displaystyle T_{k}} . Man kann also die Blätter von T j {\displaystyle T_{j}} aufteilen in Blätter links von T k {\displaystyle T_{k}} und Blätter rechts von T k {\displaystyle T_{k}} und erhält somit eine Aufteilung der Blätter von T j {\displaystyle T_{j}} der Form v w x {\displaystyle vwx} . Ebenso unterteilt der Teilbaum T j {\displaystyle T_{j}} den gesamten Ableitungsbaum in drei Teile u , v w x , y {\displaystyle u,vwx,y} . Wir erhalten also als Aufteilung die Teilstrings u , y {\displaystyle u,y} , welche im Ableitungsbaum links bzw. rechts von dem von v j {\displaystyle v_{j}} aufgespannten Teilbaum liegen, die Teilstrings v , x {\displaystyle v,x} , welche in dem Teilbaum T j {\displaystyle T_{j}} liegen nicht jedoch in T k {\displaystyle T_{k}} , und zu guter Letzt den Teilstring w {\displaystyle w} , welcher in T k {\displaystyle T_{k}} liegt. Da v j {\displaystyle v_{j}} und v k {\displaystyle v_{k}} die gleichen Variablen unserer Grammatik repräsentieren, folgt daraus, dass der Pfad von v j {\displaystyle v_{j}} nach v k {\displaystyle v_{k}} beliebig oft wiederholt werden kann. Durch eine Wiederholung des Pfades würden wir Worte der Form u v i w x i y {\displaystyle uv^{i}wx^{i}y} erzeugen, ohne unsere Sprache zu verlassen. Womit wir das Pumping-Lemma für kontextfreie Sprachen bewiesen hätten.

Beispiel

Das Wort v w x {\displaystyle vwx} enthält höchstens zwei verschiedene Buchstaben.

Ist die Sprache L = { a m b m c m m 1 } {\displaystyle L=\left\{a^{m}b^{m}c^{m}\mid m\geq 1\right\}} kontextfrei?

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

Wir betrachten das Wort z = a n b n c n {\displaystyle z=a^{n}b^{n}c^{n}} . Es muss dann eine Zerlegung z = u v w x y {\displaystyle z=uvwxy} geben, so dass | v x | 1 {\displaystyle \left|vx\right|\geq 1} , | v w x | n {\displaystyle \left|vwx\right|\leq n} , u v i w x i y L {\displaystyle uv^{i}wx^{i}y\in L} für alle i 0 {\displaystyle i\geq 0} ist. Da | v w x | n {\displaystyle \left|vwx\right|\leq n} , enthält das Wort v w x {\displaystyle vwx} höchstens zwei verschiedene Buchstaben. Deshalb, und da | v x | 1 {\displaystyle \left|vx\right|\geq 1} gilt, enthält u v 2 w x 2 y {\displaystyle uv^{2}wx^{2}y} nicht von allen drei Buchstaben gleich viele, ist also nicht in L {\displaystyle L} enthalten. Das ist ein Widerspruch; die Annahme, L {\displaystyle L} sei kontextfrei, ist also falsch.

Eine nicht-kontextfreie Sprache, die dem Pumping-Lemma genügt

Die Sprachen L 1 = { $ + ( a n b n ) n | n N } {\displaystyle L_{1}=\{\$^{+}(a^{n}b^{n})^{n}|n\in \mathbb {N} \}} und L 2 = { a k b l c m d n k , l , m , n N : k = 0  oder  l = m = n } {\displaystyle L_{2}=\left\{a^{k}b^{l}c^{m}d^{n}\mid k,l,m,n\in \mathbb {N} :k=0{\text{ oder }}l=m=n\right\}} sind nicht kontextfrei. Allerdings erfüllen L 1 {\displaystyle L_{1}} und L 2 {\displaystyle L_{2}} die Eigenschaften des Pumping-Lemmas: Enthält ein Wort z L 2 {\displaystyle z\in L_{2}} nicht den Buchstaben a {\displaystyle a} , so gilt dies auch für alle Wörter u v i w x i y {\displaystyle uv^{i}wx^{i}y} . Ist der Buchstabe a {\displaystyle a} hingegen enthalten, gibt es eine Zerlegung mit u = v = w = ε {\displaystyle u=v=w=\varepsilon } ( ε {\displaystyle \varepsilon } bezeichne das leere Wort), x = a {\displaystyle x=a} und einem Suffix y {\displaystyle y} , sodass abermals alle Wörter u v i w x i y {\displaystyle uv^{i}wx^{i}y} in L 2 {\displaystyle L_{2}} enthalten sind. Für L 1 {\displaystyle L_{1}} lässt sich v = $ {\displaystyle v=\$} und x = ε {\displaystyle x=\varepsilon } wählen, und damit ist u v i w x i y {\displaystyle uv^{i}wx^{i}y} in L 1 {\displaystyle L_{1}} enthalten.

Einzelnachweise

  1. Skript (PDF; 1,1 MB) Humboldt-Universität Berlin
  2. Jeffrey Jaffe: A necessary and sufficient pumping lemma for regular languages. doi:10.1145/990524.990528