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 Pumpinglemma.
Alternativ wird das Lemma bzw. seine Ausprägungen auch als uvw-Theorem, uvwxy-Theorem, Schleifenlemma, Iterationslemma oder Lemma von Bar-Hillel bezeichnet.
Inhaltsverzeichnis |
[Bearbeiten] Reguläre Sprachen
[Bearbeiten] Pumping-Lemma für reguläre Sprachen
Für jede reguläre Sprache
gibt es eine natürliche Zahl
, so dass gilt: Jedes Wort
in
mit Mindestlänge
hat eine Zerlegung
mit den folgenden drei Eigenschaften:
- Die beiden Wörter
und
haben zusammen höchstens die Länge n. - Das Wort
ist nicht leer. - Für jede nichtnegative Zahl
ist das Wort
in der Sprache
. Das heißt die Wörter
,
,
,
, usw. sind alle in der Sprache
.
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
die Menge aller regulärer Sprachen.
[Bearbeiten] 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.
Der folgende Beweis setzt die Mindestlänge
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
eine reguläre Sprache. Ist
endlich, dann gibt es ein Wort mit maximaler Länge
. Sei
, so ist für alle
die Prämisse
falsch und die Implikation damit wahr.
Ist
unendlich, dann sei
ein deterministischer endlicher Automat, der
akzeptiert, und sei
die Anzahl der Zustände dieses Automaten. Da
regulär ist, existiert ein solcher Automat
immer.
Sei nun
ein beliebiges Wort aus
mit mindestens
Zeichen, also
. Bezeichne mit
die Zustandsfolge, die
beim Lesen von
beginnend mit dem Startzustand
durchläuft. Insbesondere gilt
. Da
in
ist, muss
von
akzeptiert werden, d.h.
muss ein Endzustand sein. Da der Automat
gerade
Zustände hat, muss spätestens nach dem Lesen von
Zeichen eine Zustandswiederholung eintreten. Das heißt es existieren
mit
. Der Automat
durchläuft auf
also einen Zyklus.
Sei
der Teil von
, der beim Durchlaufen des Zyklus
gelesen wird. Ferner sei
der Teil von
, der beim Durchlaufen der davor liegenden Zustandsfolge
gelesen wird, und
sei der Teil von
, der beim Durchlaufen der dahinter liegenden Zustandsfolge
gelesen wird. Mit dieser Wahl gilt
.
Mit dieser Wahl von
,
und
gelten die Aussagen aus dem Pumping-Lemma:
- Die Länge von
ist
und somit nicht größer als
. - Das Wort
ist nicht leer, da
gilt, so dass beim Durchlauf des Zyklus mindestens ein Zeichen gelesen wird. - Für beliebiges
durchläuft der Automat beim Lesen des Worts
zunächst die Zustandsfolge
, dann
-mal den Zyklus
und schließlich die Zustandsfolge
. Am Ende befindet sich der Automat im Endzustand
. Somit gilt
für alle
.
[Bearbeiten] Beispiel
Ist die Sprache
regulär?
Angenommen,
sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl
, so dass sich alle Wörter
mit
wie beschrieben zerlegen lassen.
Man betrachte nun speziell das Wort
.
Gemäß Bedingung 2 ist
nicht leer, gemäß Bedingung 1 besteht
und somit auch
ausschließlich aus
s (da
und
). Mit Bedingung 3 müsste das Wort
in
liegen. Das ist aber offensichtlich falsch, denn dieses Wort hat mehr
s als
s, da
größer 0. Damit gilt:
kann nicht regulär sein.
[Bearbeiten] Eine nicht-reguläre Sprache, die das Pumping-Lemma erfüllt
Die Sprache
ist nicht regulär. Allerdings erfüllt
das Pumping-Lemma, denn jedes Wort
lässt sich so zerlegen
, dass auch für alle
. Dazu kann
einfach als erster Buchstabe gewählt werden. Dieser ist entweder ein
, die Anzahl von führenden
s ist beliebig. Oder er ist ein
oder
, ohne führende
s ist aber die Anzahl von führenden
s oder
s beliebig.
[Bearbeiten] 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 notwendige und hinreichende Bedingung zum Nachweis der Regularität einer Sprache.
Die Sprache
ist regulär genau dann, wenn eine Konstante
existiert, so dass es für alle
,
eine Zerteilung
mit
gibt, so dass für alle
und Suffixe
gilt:
.
[Bearbeiten] Kontextfreie Sprachen
[Bearbeiten] Annahmen
Sei
die Klasse aller Sprachen, die von Chomsky-Hierarchie-Typ-2-Grammatiken erzeugt werden.
bezeichnet somit die Klasse der kontextfreien Sprachen.
[Bearbeiten] Aussage des Pumping-Lemmas für kontextfreie Sprachen
Für eine kontextfreie Sprache
gibt es eine natürliche Zahl
so, dass sich alle Wörter
der Sprache mit Mindestlänge
in fünf Teilworte
zerlegen lassen, wobei das zweite und das vierte Wort
nicht beide leer sein dürfen, die drei mittleren Worte zusammen
nicht länger als
sind, und das zweite und vierte beliebig, aber gleich oft (auch keinmal) wiederholt werden dürfen, ohne dass das entstehende, aufgepumpte Wort nicht mehr in der Sprache
wäre:
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.
[Bearbeiten] Korrektheitsbeweis
Gegeben sei eine kontextfreie Grammatik G in Chomsky-Normalform mit
Variablen, für die gilt, dass sie gerade die gewünschte Sprache beschreibt. Sei nun ein Wort
aus dieser Sprache gegeben, für das gilt:
.
Betrachten wir nun einen Ableitungsbaum T für
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
in T von der Wurzel zu einem Blatt, für den gilt, dass er Länge
hat. Es existieren also zwei Knoten
auf diesem Pfad mit
, welche die gleichen Variablen von G
repräsentieren.
Betrachtet man den Teilbaum
, welcher von
aus aufgespannt wird, so bilden dessen Blätter den Teilstring
. Der Teilbaum
, welcher von
aufgespannt wird, besitzt als Teilbaum den Baum
. Man kann also die Blätter von
aufteilen in Blätter links von
und Blätter rechts von
und erhält somit eine Aufteilung der Blätter von
der Form
. Ebenso unterteilt der Teilbaum
den gesamten Ableitungsbaum in drei Teile
. Wir erhalten also als Aufteilung die Teilstrings
, welche im Ableitungsbaum links bzw. rechts von dem von
aufgespannten Teilbaum liegen, die Teilstrings
, welche in dem Teilbaum
liegen nicht jedoch in
, und zu guter Letzt den Teilstring
, welcher in
liegt. Da
und
die gleichen Variablen unserer Grammatik repräsentieren, folgt daraus, dass der Pfad von
nach
beliebig oft wiederholt werden kann. Durch eine Wiederholung des Pfades würden wir Worte der Form
erzeugen, ohne unsere Sprache zu verlassen. Womit wir das Pumping-Lemma für kontextfreie Sprachen bewiesen hätten.
[Bearbeiten] Beispiel
Ist die Sprache
kontextfrei?
Wir nehmen an,
sei kontextfrei. Sei dann
die zugehörige Konstante aus dem Pumping-Lemma.
Wir betrachten das Wort
. Es muss dann eine Zerlegung
geben, so dass
,
,
für alle
ist. Da
, enthält das Wort
höchstens zwei verschiedene Buchstaben. Da
, kann
nicht von allen drei Buchstaben gleich viele enthalten. Also kann
nicht kontextfrei sein.
[Bearbeiten] Quellen
- ↑ Jeffrey Jaffe: A necessary and sufficient pumping lemma for regular languages
ist das Wort
in der Sprache
,
,
,
, usw. sind alle in der Sprache 
und somit nicht größer als
gilt, so dass beim Durchlauf des Zyklus mindestens ein Zeichen gelesen wird.
durchläuft der Automat beim Lesen des Worts
zunächst die Zustandsfolge
-mal den Zyklus
für alle
.