Theoretische Informatik 1, Blatt 8

Werbung
@
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.
Herunterladen