Zum Inhalt springen

Pumping-Lemma

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Oktober 2005 um 23:26 Uhr durch 62.214.227.110 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Das Pumping-Lemma ist eine Methode der Theoretischen Informatik, mit der überprüft werden kann, ob sog. formale Sprachen bestimmte Ausprägungen haben. Sie weist ggf. nach, dass eine formale Sprache nicht regulär bzw. nicht kontextfrei (uvwxy-Theorem) ist.

Die Methode wird alternativ als auch uvw-Theorem, Schleifenlemma, Iterationslemma oder Lemma von Bar-Hillel bezeichnet. Ihren Namen hat sie vom englischen Begriff to pump, zu deutsch aufpumpen.

In der Literatur sind Pumping-Lemmata auch für Erweiterungen der kontextfreien Sprachen anzutreffen. Für kontextsensitive und sogar wachsend kontextsensitive Sprachen ist bekannt, dass hier kein Pumping-Lemma möglich ist.

Von Ogden ist das Pumping-Lemma verschärft worden, siehe Ogdens Lemma.

Idee

Das Pumping-Lemma ist eine Methode, um nachzuweisen, ob eine formale Sprache nicht regulär (Variante 1) bzw. nicht kontextfrei (Variante 2) ist. Es liefert für diesen Beweis eine notwendige Bedingung. So wird der Beweis dann als Widerspruchsbeweis geführt. Es wird angenommen, dass eine Sprache regulär oder kontextfrei sei. Diese Aussage wird mit Hilfe eines Pumping-Lemmas zum Widerspruch geführt.

Eine notwendige und hinreichende Bedingung liefert der Satz von Myhill-Nerode.

Variante 1: Prüfung auf Regularität von Sprachen

Annahmen

Sei eine Grammatik des Chomsky-Hierarchie-Typ 3. Diese bezeichnet die regulären Sprachen.

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

Sei eine reguläre Sprache, also . Dann gibt es eine Zahl , sodass sich alle Wörter mit in zerlegen lassen, sodass gilt:

Beispiel

Ist die Sprache regulär?

Angenommen, sei eine reguläre Sprache. Dann gibt es gemäß Pumping-Lemma eine Zahl , sodass sich alle Wörter mit wie beschrieben zerlegen lassen.

Man betrachte nun speziell das Wort .

Gemäß Bedingung 1 ist nicht leer, gemäß Bedingung 2 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. Damit gilt: ist nicht regulär.

Variante 2: Prüfung auf Kontextfreiheit von Sprachen

Annahmen

Sei eine Chomsky-Hierarchie-Typ-2-Grammatik. Diese bezeichnet die kontextfreien Sprachen.

Aussage des Pumping-Lemmas für kontextfreie Sprachen

Sei eine kontextfreie Sprache, also . Dann gibt es eine Zahl , sodass sich alle Wörter mit in zerlegen lassen, sodass gilt:

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, sodass , , 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 ist nicht kontextfrei.

Beim Beweis sollte man am Besten folgende Fälle betrachten:

  1. oder enthalten verschiedene Buchstabensorten.
  2. und enthalten die gleiche Buchstabensorte.
  3. und enthalten die gleiche Buchstabensorte und eins von beiden ist leer.