@ TECHNISCHE UNIVERSITÄT CAROLO-WILHELMINA ZU BRAUNSCHWEIG Institut für Theoretische Informatik Prof. J. Adámek, Dr. J. Koslowski Braunschweig, 2008-01-10 Theoretische Informatik 1, Blatt 8 Abgabetermin 2008-01-17 Neuer Stoff: Das Pumping Lemma für reguläre Sprachen besagt, daß es für jede reguläre Sprache L eine positive Zahl n ∈ IN gibt, so daß jedes Wort w ∈ L mit |w| ≥ n eine Zerlegung w = xyz zuläßt, die drei Bedingungen erfüllt: - y 6= ε - |xy| ≤ n - xy m z ∈ L für jedes m ∈ IN . Dies ist eine notwendige Bedingung für die Regularität der Sprache L , aber keine hinreichende Bedingung: d.h., es gibt Sprachen, die nicht regulär sind, aber obiges Kriterium dennoch erfüllen. Andererseits sind Sprachen, die dieses Kriterium verletzen, automatisch nicht regulär. Folglich kann dieses Ergebnis immer nur im negativen Sinne angewendet werden, nämlich um die Regularität einer Sprache L zu widerlegen: unter der Annahme der Regularität wählt man für die laut Pumping Lemma existierende Zahl n ein konkretes Wort w1 ∈ L mit |w1 | ≥ n und weist nach, daß jede den ersten beiden Bedingungen genügende Zerlegung w1 = xyz die dritte Bedingung verletzen muß. Aufgabe 32 (Übung) (a) Beweisen Sie mit Hilfe des Pumping Lemmas, daß folgende Sprache über Σ = {0, 1} nicht regulär ist: L = { w1|w| : w ∈ {0, 1}∗ } (b) Man kann zeigen, daß die Sprache L = {a, b}∗ ∪ {c}+ { w sp(w) : w ∈ {a, b}∗ } über Σ = {a, b, c} nicht regulär ist. Kann man zu diesem Zweck das Pumping Lemma für reguläre Sprachen direkt verwenden? Lösungsvorschlag: (a) Wir nehmen an, L ist regulär, und n ist die vom Pumping Lemma gelieferte Zahl. Betrachte w = 0n q n ∈ L und eine Zerlegung w = xyz , die den ersten beiden Bedingungen des Pumping Lemmas genügt. Insbesondere folgt wegen |xy| ≤ n , daß das nichtleere Teilwort y nur aus Nullen besteht. Aber damit gehört xy 2 z nicht mehr zu L , denn dieses Wort enthält weniger Einsen als Nullen; insbesondere kann die zweite Hälfte nicht ausschließlich aus Einsen bestehen. Damit ist die dritte Bedingung des Pumping Lemmas verletzt, Widerspruch. Falls Formeln das Argument klarer machen: da y 6= ε nur aus Nullen besteht, gilt w = xyz = 0n−|y|+|y| 1n und xy 2 z = 0n+|y| 1n . (b) Wähle n = 1 . Wir zeigen, daß jedes Wort w ∈ L der Länge ≥ 1 eine Zerlegung w = xyz mit den geforderten Eigenschaften hat. Falls w = s0 s1 . . . sn−1 ∈ {a, b}+ , wählen wir die Zerlegung x=ε , y = s0 , z = s1 . . . sn−1 Andernfalls hat w die Form w = ck v sp(v) mit k > 0 und v ∈ {a, b}∗ . Wir setzen x=ε , y = c , z = ck−1 v sp(v) In beiden Fällen gilt y 6= ε , |xy| ≤ 1 und xy m z ∈ L für alle m ∈ IN . Damit sind alle drei Bedingungen des Pumping Lemmas für reguläre Sprachen erfüllt, was keine Schlußfolgerung über die Regularität der Sprache L zuläßt. Nun wollen wir noch zeigen, daß L tatsächlich nicht regulär ist. L ist offenbar die disjunkte Vereinigung der Sprachen {a, b}∗ und {c}∗ { w sp(w):w ∈ {a, b}∗ } . Nach Aufgabe 34(b) ist { w sp(w):w ∈ {a, b}∗ } nicht regulär. Gemäß Aufgabe 20(b) kann dann aber auch {c}∗ { w sp(w) : w ∈ {a, b}∗ } nicht regulär sein. Mit {a, b}∗ ist bekanntlich auch das Komplement K := {a, b, c} \ {a, b} regulär. Aber der Durchschnitt K ∩ L = {c}∗ { w sp(w) : w ∈ {a, b}∗ } ist nicht regulär. Damit kann L auch nicht regulär sein. Aufgabe 33 (Hausaufgabe) Wiederlegen Sie mit Hilfe des Pumping Lemmas die Regularität der folgenden Sprachen: (a) [4 punkte] L0 = { 0n 1m 2k : n, m, k ∈ IN, n ≤ k } (b) [4 punkte] L1 = { 0n 1m 2k : n, m, k ∈ IN, n ≥ k } Lösungsvorschlag: (a) Wir nehmen an, L0 ist regulär und n ist die vom Pumping Lemma gelieferte Zahl. Betrachte w = 0n 2n ∈ L und eine Zerlegung w = xyz mit |xy| ≤ n und y 6= ε . Dann besteht y nur aus Nullen und xy 2 z gehört nicht mehr zu L0 , da mehr Nullen als Zweien auftreten; Widerspruch. (b) Wir nehmen an, L1 ist regulär und n ist die vom Pumping Lemma gelieferte Zahl. Betrachte w = 0n 2n ∈ L und eine Zerlegung w = xyz mit |xy| ≤ n und y 6= ε . Dann besteht y nur aus Nullen und xz gehört nicht mehr zu L1 , da weniger Nullen als Zwien auftreten; Widerspruch. Aufgabe 34 (Hausaufgabe) Untersuchen Sie die folgenden Sprachen auf Regularität: (a) [2 punkte] L2 = L0 ∪ L1 , die Vereinigung der Sprachen aus Aufgabe 33. (b) [3 punkte] L3 = { w sp(w) : w ∈ {a, b}∗ } (c) [5 punkte] L4 = { w ∈ {0, 1, . . . , 9}∗ : w ist die Dezimaldarstellung für ein Schaltjahr } . [Hinweis: Nach dem derzeit verwendeten Gregorianischen Kalender haben Schaltjahre eine Jahreszahl, die durch 4 teilbar sind, mit Ausnahme der durch 100 aber nicht durch 400 teilbaren Jahreszahlen. So waren etwa 1800 und 1900 keine Schaltjahre, 2000 aber doch.] Lösungsvorschlag: (a) Offenbar gilt L2 = { 0n 1m 2k : n, m, k ∈ IN } = L(0∗ 1∗ 2∗ ) , was als Semantik eines regulären Ausdrucks eine reguläre Sprache ist. (b) Wir nehmen an, L3 ist regulär, und n ist die vom Pumping Lemma gelieferte Zahl. Betrachte w = an b2n an ∈ L und eine Zerlegung w = xyz mit |xy| ≤ n und y = 6 ε . Folglich kommt in y kein b vor, und das maximale Präfix von zy 2 z , das kein b enthält, ist länger als das maximale Postfix mit dieser Eigenschaft. Damit gilt xy 2 z ∈ / L3 , Widerspruch. (c) Wir betrachten folgende Hilfssprachen: M0 = L(0 + (1 + 2 + . . . + 0)(0 + 1 + 2 + . . . + 9)∗ ) M1 = { w ∈ {0, 1, . . . , 9}∗ : w stellt eine durch 4 teilbare Dezimalzahl dar } M2 = L(0 + (0 + 1 + . . . + 9)∗ 00) M3 = {0} ∪ M1 {00} Offenbar besteht M0 aus den Dezimaldarstellungen aller natürlichen Zahlen ohne führende Nullen. M2 bzw. M3 besteht aus den Dezimaldarstellung, potentiell mit führeden Nullen, aller durch 100 bzw. 400 teilbaren natürlichen Zahlen. Nun gilt L3 = M0 ∩ ((M1 \ M2 ) ∪ M3 ) Die Regularität von M0 und M2 folgt aus der Darstellung mit Hilfe regulärer Ausdrücke. Wenn wir die Regularität von M1 zeigen können, folgt aufgrund der Abschlußeigenschaften regulärer Sprachen auch die Regularität von M3 und L4 (man beachte, daß M1 \ M2 als Durchschnitt von M1 mit dem Komplement von M2 dargestellt werden kann). Die Teilbarkeit von n durch 4 ist bekanntlich äquivalent zur Teibarkeit von n0 durch 4 , wobei die Dezimaldarstellung von n0 aus den letzten beiden Ziffern von n besteht (ggf. mit führender Null). Folglich gilt M1 = {0, 1, . . . , 9}∗ M10 mit M10 = { s0 s1 ∈ {0, 1, . . . , 9}2 : 10s0 + s1 ist durch 4 teilbar } Als endliche Sprache ist M10 regulär, woraus die Regularität von M1 als Konkatenation regulärer Sprachen folgt.