Grundlagen der Theoretischen Informatik mitgeschrieben von Martin Lenders
Dieses Dokument Dokument vom 6. Juli 2009 steht unter unter einer Creative Commons BY-NC-ND 3.0 Deutschland Lizenz f ur u http://page.mi.fu-berlin.de/mlenders/mitschrift s/mitschriften/gti/ en/gti/ ¨ r die Seite http://page.mi.fu-berlin.de/mlender
Inhaltsverzeichnis 1 Turing-Maschine, Berechenbarkeit, Berechenbarkeit, Entscheidbarkeit Entscheidbarkeit 1.1 Definition Definition der Turing-Masc uring-Maschine hine . . . . . . . . . . . . . . 1.2 Church’ Church’sche sche These . . . . . . . . . . . . . . . . . . . . . 1.3 Registermas Registermaschin chinen en . . . . . . . . . . . . . . . . . . . . . 1.4 Formale Sprachen Sprachen . . . . . . . . . . . . . . . . . . . . . . 1.4.1 1.4.1 Multip Multiplik likatio ation n von von Wortern ¨ortern . . . . . . . . . . . . 1.4.2 Multiplik Multiplikation ation von Sprachen Sprachen . . . . . . . . . . . . 1.4.3 1.4.3 Pote Potenz nz von von Wortern o¨rtern und von Sprachen . . . . . . 1.5 Konfiguration Konfiguration (Momen (Momentaufna taufnahme hme einer Turingm Turingmasch aschine) ine) 1.6 Turingmasch uringmaschine ine mit mehrer mehreren en Bandern ¨andern . . . . . . . . . . 1.7 Die unive universelle rselle Turingmasch uringmaschine ine . . . . . . . . . . . . . . 1.8 Unentsch Unentscheidba eidbarkei rkeitt . . . . . . . . . . . . . . . . . . . . . 1.8.1 Universel Universelle le Sprache Sprache und und Diagonal Diagonalsprac sprache he . . . . 1.8.2 1.8.2 Das Hal Haltep teprobl roblem em . . . . . . . . . . . . . . . . . 1.8.3 Reduzierba Reduzierbarkei rkeitt von Problemen Problemen . . . . . . . . . . 1.8.4 Das Post’sch Post’schee Korrespon Korrespondenzp denzproblem roblem (PKP) . . 1.8.5 Andere Andere unentsch unentscheidbar eidbaree Probleme Probleme . . . . . . . . 1.8.6 1.8.6 Satz Satz von von RICE RICE (1953) (1953) . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
5 5 6 7 7 8 8 8 8 9 10 10 10 12 13 13 16 16
2 Regul gul¨ are Sprachen und endliche Automaten are 2.1 Determinis Deterministisc tische he endlic endliche he Automat Automaten en . . . . . . . . . . . . . . 2.2 2.2 Regu Regullare a¨re Ausdrucke u cke . . . . . . . . . . . . . . . . . . . . . . . ¨ 2.3 Nichtde Nichtdetermin terministisc istische he endlich endlichee Automaten Automaten . . . . . . . . . . . ¨ 2.4 2.4 NEA NEA mit mit ε-Ubergangen ¨angen . . . . . . . . . . . . . . . . . . . . . ¨ 2.4.1 2.4.1 Elimin Eliminati ation on von ε-Uberg angen ¨angen . . . . . . . . . . . . . 2.5 Minimierun Minimierung g deterministi deterministisch scher er endliche endlicherr Automaten Automaten . . . . . 2.5.1 Algorithmu Algorithmuss zur Bestimmung Bestimmung des Minimal Minimalautoma automaten: ten: 2.5.2 2.5.2 Satz Satz von von Nerod Nerodee . . . . . . . . . . . . . . . . . . . . . 2.6 Das Pumpin Pumping-Le g-Lemma mma f ur u regulare ¨ r regul¨ ¨are Sprachen . . . . . . . . . . 2.7 Abschlusse Abschlusseigens igenschaf chaften ten regul¨ regularer ¨arer Sprachen . . . . . . . . . . . 2.8 Zusammenfass Zusammenfassung: ung: regul¨ regulare ¨are Sprachen . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
17 17 18 20 22 22 23 25 26 27 29 30
3 Gramma Grammatik tiken en 3.1 Definition Definition von Grammatike Grammatiken n . . . . . . . . . . . 3.2 Die Chomsky-Hie Chomsky-Hierarch rarchie ie . . . . . . . . . . . . . . 3.3 Typ-0-Sprac Typ-0-Sprachen hen (rekursiv (rekursiv aufz¨ aufzahlbare ¨ahlbare Sprachen) 3.4 Typ-3-Sprac Typ-3-Sprachen hen (regul¨ (regulare ¨are Sprachen) . . . . . . . 3.5 Typ-1-Sprac Typ-1-Sprachen hen (konte (kontextsens xtsensitiv itivee Sprachen) Sprachen) . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
31 31 32 32 33 34
. . . . . . . . . . .
35 35 35 36 37 38 40 41 42 43 44 44
4 Kontextfre Kontextfreie ie Sprachen Sprachen (Typ-2(Typ-2-Spra Sprachen) chen) 4.1 Tiefenstruk Tiefenstruktur tur von Sprachen Sprachen . . . . . . . . . . . 4.2 Dyck-Sp Dyck-Sprac rache he . . . . . . . . . . . . . . . . . . . . 4.3 Kontextfrei Kontextfreiee Grammtike Grammtiken n als Gleichun Gleichungssyste gssysteme me 4.4 Eindeu Eindeutigk tigkeit eit . . . . . . . . . . . . . . . . . . . . 4.5 Chomsk Chomsky-N y-Norm ormalf alform orm . . . . . . . . . . . . . . . 4.6 Alg Algori orith thus us von von CYK“ . . . . . . . . . . . . . . . ” 4.7 (Erweiter (Erweiterte) te) Backus-Na Backus-Naur-F ur-Form orm (E)BNF (E)BNF . . . . . 4.8 Pumpin Pumping-Le g-Lemma mma f ur u ¨r kontextfreie Sprachen . . . 4.9 Abschlusse Abschlusseigens igenschaf chaften ten kontextf kontextfreier reier Sprache Sprachen n. . 4.10 Entscheidungsprobleme kontextfreier Sprachen Sprachen . 4.11 Kellerautoma Kellerautomaten ten . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
3
Inhaltsverzeichnis
4.12 Abschlusseigenschaften Abschlusseigenschaften kontextfreier Sprachen Sprachen 4.13 Deterministische kontextfreie kontextfreie Sprachen Sprachen . . . . 4.14 Deterministische Zweiwege-Kellerautomaten . 4.14.1 Teilwortproblem . . . . . . . . . . . .
4
gegen¨ gegen uber u regularen ¨ ber regul¨ ¨aren Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
48 48 48 49
1 Turing-Maschin uring-Maschine, e, Berechenba Berechenbark rkeit, eit, Entscheidbarkeit 1.1 Definition Definition der Turing-Masc uring-Maschine hine Steuerung
(q, a)
Zustand (Programmzähler)
(q′ , a′ , b)
Schreib−/Lesekopf B
B
0
B
Programm
1
X
B
B
B
Zweiseitiges, unendliches Band
Eine Turingmaschine wird beschrieben durch:
• Ein Eingabealphabet Σ • ein Bandalphabet Γ ⊃ Σ • ein Leerzeichen B ∈ Γ \ Σ anden • eine endliche Menge Q von Zust ¨ ¨ ¨ uhrungsfunktion δ : Q × Γ → Q × Γ × {−1, 0, 1} • eine Uberf ¨ ¨
• ein Anfangszustand q0 ∈ Q anden F ⊆ Q • (eventuell) eine Menge von akzeptierenden Zust ¨ ¨ δ ist das Programm “ der TM ” • δ(q, a) = (q′ , a′ , b) bedeutet: Wenn die Maschine im Zustand q ist und unter dem Kopf das Symbol a steht, dann wird a durch a′ auf dem Band ersetzt (a ( a′ = a ist moglich), ¨oglich), das Band wird um b verschoben und die Maschine geht in den Zustand q ′ u • Die Eingabe ist eine Folge von Symbolen aus Σ (ein Wort uber ¨ ber Σ). Sie steht am Anfang auf dem Band; der Kopf steht u uber ¨ ber dem ersten Symbol. Der Zustand ist q0 .
Beispiel: Σ = {0, 1}, Γ = {0, 1, B , X } Erkenne die Eingabe der Form: 0 n 1n , f ur u ¨r n ≥ 1 01, 0011, 000111, ... (richtig) 001, 1100, 0100101, ... (falsch) (falsch) rechts und links von der Eingabe stehen unendlich viele B -Symbole u u u • Phase 1: laufe einmal von links nach rechts uber ¨ ber das Band und uberpr ¨ berprufe, ¨ fe, ob dort eine Folge von 0en gefolgt von eine Folge von 1en steht. • Phase 2: Fahre abwechselnd nach links und nach rechts und ersetze jeweils 0 und eine 1 durch X. Akzeptiere, wenn am Ende alles durch X erstzt ist und kene 0, 1 ubrig u ¨ brig bleibt
5
KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT
δ q0 q1 q2
0 (q0 , 0, 1) (q− , 0, 0) (q3 , X, 1)
1 (q1 , 1, 1) (q1 , 1, 1) (q2 , 1, −1)
B (q− , B, 0) (q2 , B, −1) (q4 , B, 1)
X egal egal (q2 , X, −1)
q3
(q3 , 0, 1)
(q2 , X, −1)
(q4 , B, 1)
(q3 , X, 1)
q4
(q4 , 0, 1)
(q− , 1, 1)
(q+ , B, 0)
(q4 , X, 1)
q− q+
(q− , 0, 0) (q+ , 0, 0)
(q− , 1, 0) (q+ , 1, 0)
(q− , B, 0) (q+ , B, 0)
(q− , X, 0) (q+ , X, 0)
Kommentar fahre nach rechts u ¨ber Nullen fahre nach rechts u ¨ber Einsen fahre nach links und suche 0, ersetze sie durch X fahre nach rechts und suche 1, ersetze sie durch X fahre nach rechts und suche 1; akzeptiere wenn keine 1 mehr vorhanden ist.
• Die Maschine h ¨alt , wenn sie in einen Zustand q u ¨ ber einen Symbol a mit δ(q, a) = (q,a, 0) steht. Q = {q0 , q1 , q2 , q3 , q4 , q+ , q− } q0 = q0 F = {q+ }
• Die T. M. akzeptiert die Eingabe, wenn sie in einem Zustand aus F h¨alt.
1.2 Church’sche These Das was von einer Turing-Maschine berechnet werden kann, entspricht dem, was man intuitiv unter algorith” misch berechenbar “ versteht.
Beispiel: Addition zweier Bin¨arzahlen Eingabe: bin(x)#bin(y)$ (bin(x) := Bina¨rdarstellung einer positiven Zahl, f u ¨ hrende Nullen sind egal) Ausgabe: bin(x + y)#bin(y)$
Programmiertechniken: • Verwenden mehrerer Spuren: Jedes Feld des Bandes wird als aus mehreren Unterfeldern bestehend betrachtet.
0
1
X 1
X 0
X 1
formal: Γ = Γ1 × Γ2 × Γ3 × . . . × Γk , Γi . . . Bandalphabet f u ¨ r die i-te Spur. z. B.: {’ ’, x} × {0, 1, B , . . .} • Speichern von Variablen mit endlichen Wertebereich als Teil des Zustandes. formal: Q = Q0 × V , V . . . Wertebereich der Variablen. 1. Wandere nach rechts zur 1. unmarkierten Ziffer a. s := a (merken) Markiere diese Ziffer auf dem Band. 2. Wandere nach links zur 1. unmarkierten Ziffer b von x ¨ Ersetze b durch b + s + u¨, u ¨ := Ubertrag. (Markiere diese Ziffer) 3. Gehe zu 1 solange noch Ziffern u ¨brig sind. 4. L¨osche alle Markierungen qus¨ , Zustand (Programmzeile) q mit Werten s, u ¨ der Variablen, Haltezustand: h s ∈ { 0, 1} ¨ ∈ { 0, 1} u Eingabealphabet: Σ = {0, 1, #, $} Bandalphabet: Γ = Σ ∪ {B, ¯0, ¯1}
6
1.3. REGISTERMASCHINEN
δ qu0¨ ru0¨ s0u¨ tiu¨ ui0 u00 u10 , u01 u11 vu0¨ wu0¨ x0u¨ y00 y10 z p
0 0 qu¨ , 0, + ru0¨ , 0, + t0u¨ , ¯0, − t0u¨ , ¯0, −
1 0 q0 , 1, + ru0¨ , 1, + t1u¨ , ¯1, − t1u¨ , ¯1, −
q00 , ¯0, + q00 , ¯1, + q10 , ¯0, + vu0¨ , 0, + ru0¨ , 0, +
q00 , ¯1, + q00 , ¯0, + q10 , ¯1, + vu0¨ , 1, + ru0¨ , 1, +
0, p,−
¯0 qu0¨ , ¯0, + s0u¨ , ¯0, −
¯1 qu0¨ , ¯1, + s0u¨ , ¯1, −
ui0 , ¯0, −
ui0 , ¯1, −
vu0¨ , ¯0, + x0u¨ , ¯0, −
vu0¨ , ¯1, + x0u¨ , ¯1, −
y00 , ¯0, − y10 , ¯0, −
y00 , ¯1, − y10 , ¯1, −
z, 0, +
z, 1, +
p, 1, −
# ru0¨ , #, + u0u¨ , #, −
$
B
s0u¨ , $, −
Schritt 1
uiu¨ , #, − v00 , ¯0, + v00 , ¯1.+ v01 , ¯0.+
wu0¨ , #, + yu0¨ , #, − z, #, + p, #, −
2
3 z,B, + z, 1, + p, $, −
4 h,B, +
• Unterprogrammtechnik
1.3 Registermaschinen
Simulation eines RAM-Speichers auf einer TM: ##x1 #y1 ##x2 #y2 ##...###[Programmcode] xi ... Adresse, yi ... Inhalt auf Adresse xi
1.4 Formale Sprachen Σ . . . endliches Alphabet (Vorrat an Zeichen) Σ∗ . . . alle Wo¨rter endlicher L¨ ange l, die man mit den Buchstaben aus Σ bilden kann. w = a1 a2 a3 . . . al , ai ∈ Σ l = |w| La¨nge des Wortes l ≥ 0 ε ist das leere Wort |ε| = 0
Definition: Eine formale Sprache L ist eine Teilmenge von Σ ∗ Beispiel: L = {0n 1n |n ≥ 1} L=∅ L = {ε}
7
KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT
1.4.1 Multiplikation von W¨ ortern u · v = uv
(Buchstaben von u und v nebeneinander geschrieben)
Rechenregeln: 1. u · (v · w) = (u · v) · w 2. ∀u ∈ Σ∗ : u · ε = ε · u = u Beispiel: u = abra v = kadabra u · v = abrakadabra v = kad ·u
1.4.2 Multiplikation von Sprachen L1 · L2 = {uv|u ∈ L1 , v ∈ L2 }
Rechenregeln: 1. L1 · (L2 · L3 ) = (L1 · L2 ) · L3 2. L · ∅ = ε · u = u 3. L · {ε} = L L2 = {a,ba} Beispiel: L1 = {a,ab} L1 · L2 = {aa,aba,abba}
1.4.3 Potenz von W¨ ortern und von Sprachen ui = u · u · u · . . . · u
i−mal
u1 = u u0 = ε
Li = L · L · . . . · L = {u1 · u2 · . . . · ui |u1 ∈ L, u2 ∈ L , . . . , u i ∈ L}
i−mal
L1 = L
L0 = {ε}
L∗ := L0 ∪ L1 ∪ L2 ∪ . . . = Menge der W¨orter, die man aus bel. vielen ( ≥ 0) Bestandteilen ∈ L zusammen multiplizieren kann.
1.5 Konfiguration (Momentaufnahme einer Turingmaschine)
Definition: Eine Konfiguration einer Turingmaschine ist ein Wort aus Γ ∗ QΓ∗, das nicht mit B anf ¨angt oder aufh¨ort (ein Wort ∈ Γ∗ QΓ∗ \ (B(Γ ∪ Q)∗ ∪ (Γ ∪ Q)∗ B)). Das Wort xqy mit x, y ∈ Γ∗ und q ∈ Q beschreibt den Zustand der Turingmaschine wo xy auf dem Band steht und der Kopf u ¨ber dem ersten Zeichen von y steht Fu ¨ r zwei Konfigurationen k1 und k2 schreibt man k1 ⊢ k2 wenn die Turingmaschine in einem Schrittvon k1 nach k2 u ¨bergeht. (Nachfolgerrelation zwischen Konfigurationen.) ∗
k1 ⊢ k2 bedeutet, dass auf k1 nach beliebig vielen Schritten (≥ 0) die Konfiguration k2 folgt.
8
¨ 1.6. TURINGMASCHINE MIT MEHREREN B ANDERN
1.6 Turingmaschine mit mehreren B¨ andern • Eine Turingmaschine mit k B¨andern hat k Schreib-/Lesek¨opfe. • Das erste Band ist das Eingabeband. • Die u ¨ brigen B¨ander sind zu Beginn leer. ¨ δ : Q × Γk → Q × Γk × {−1, 0, +1}k • Die Ubergangsfunktion
Beispiel: bin¨are Addition von 2 n-Bit Zahlen geht mit 2 B¨andern in O(n) Schritten (≤ konst. (n)) (mit einem Band in O(n2 ) Schritten).
Zuerst wird bin(y) auf das 2. Band kopiert, und dann bitweise von rechts nach links addiert.
Satz: Eine k-Band-Turingmaschine die nach T Schritten ha¨lt kann durch eine 1-Band-Turinmaschine simuliert werden, die in h ¨ochstens const.T 2 Schritten h¨alt. Beweis: Simulation der k Ba¨nder auf k Spuren eines einzigen Bandes. Die Kopfposition der B a¨nder ist af der jeweiligen Spur vermerkt.
Γ1 = Γ ∪ (Γ × {X, ’ ’})k ∪ {L}
• L markiert die Position links neben der linkesten Position die die simulierte Turingmaschine auf allen
• • • •
B¨andern besucht hat. In einer konstanten Anzahl von Fahrten u ¨ ber das gesamte Band (ausgehend von L) kann die Turingmaschine die Band ¨anderungen auf den k B¨andern simulieren. Die simulierte Maschine kann in T Schritten h¨ochstens T Schritte nach links und rechts gehen. Die La¨nge des u ¨ berstrichenen Bandinhalts in jedem Simulationsschritt ist ≤ 2T + 1 Ein Simulationsschritt geht in ≤ const.T Schritten T -mal ⇒ T 2 ∗ 2 n-Bit Bin¨arzahlen k¨onnen auf einem k-Band-TM in n · log n · const.log n Schritten multipliziert werden (Martin F¨ uhrer 2008, bestehender Rekord vorher const.n · log n loglog n (Arnold Sch¨ onhage ≈ 1970)) log∗ n := min{i| log2 log2 log2 . . . log2 n ≤ 1} ..2 2.
2 ∗
Die Umkehrfunktion von log ist 2
-mal
i-mal
=2↑i
Definition: Die von einer Turingmaschine M mit einer Teilmenge F ⊆ Q von akzeptierenden Zust¨anden akzeptierte Sprache L(M ) ist die Menge der W¨ortern bei deren Eingabe die Maschine einen akzeptierenden Zustand erreicht (und dann anh¨alt). L(M ) =
∗
∗
∗
x ∈ Σ q0 x ⊢ yqz, mit y, z ∈ Γ und q ∈ F
Eingabe x
M h¨alt in q ∈ F M h¨alt in q ∈ / F M terminiert nicht
→ x ∈ L(M ) / L(M ) →x∈ / L(M ) →x∈
9
KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT
(semi-entscheidbar, engl. recursiv enumerable) wenn es Definition: Eine Sprache L heißt rekursiv aufz ¨ahlbar eine Turingmaschine M mit L = L(M ) gibt. L heißt entscheidbar (rekursiv), wenn es eine Turingmaschine M gibt, die auf allen Eingaben h¨alt und mit L = L(M ) Unterscheide: abz¨ ahlbare (denumerable) Mengen: endlich oder gleichm¨achtig mit N
Turingmaschine die etwas berechnet: x ∈ Σ∗ steht auf dem Eingabeband.
• Wenn die Maschine h ¨alt, steht ein Wort y ∈ Σ∗ auf dem Ausgabeband (bzw. auf dem einzigen Band). • Die von der Turingmaschine berechnete (partielle) Funktion f M ist definiert auf der Menge A = {x ∈ Σ ∗ |M h¨alt bei Eingabe um x} f M : A → Σ∗ mit A ⊆ Σ∗ • Eine partielle Funktion f : A → Σ∗ mit A ⊆ Σ∗ oder eine totale Funktion f : Σ∗ → Σ∗ heißt berechenbar, wenn es eine Turingmaschine M mit f = f M gibt.
1.7 Die universelle Turingmaschine Eine universelle Turingmaschine liest als Eingabe: 1. Die Beschreibung einer beliebigen Turingmaschine M 2. Die Eingabe f u ¨r M . Dann simuliert sie M mit dieser Eingabe und h¨alt genau dann, wenn M h¨alt.
• Die Beschreibung von M wird als M ∈ {0, 1}∗ bezeichnet. von M . • Man nennt M die G ¨odelnummer
Konventionen: a) M hat das Eingabealphabet {0, 1} b) M hat Zustandsmenge Q = {q1 , q2 ,...,qk } q1 ist der Startzustand q2 ist der einzige akzeptierende Zustand c) M hat Bandalphabet {0, 1, B, 3, 4, 5, . . . , |Γ| − 1} (keine wesentlichen Einschr¨ankungen). Jetzt mu ¨ ssen wir nur noch δ kodieren: als Liste von 5-Tupeln: δ(q, a) = (q′ , b , m) wird als (q,a,q′ , b , m) geschrieben. (qi1 , γ j1 , qk1 , γ l1 , m1 ), (qi1 , γ j1 ,...),... ⇒ | 111|0i1 10j1 10j1 10k1 10l1 10m1 |11|0i2 10j2 10j2 10k2 10l2 10m2 |11|...|111|
Beispiel: δ(q1 , 0) = (q2 , B, −1), δ(q4 , γ 5 ) = (q2 , γ 5 , +1),...
⇒ M = 111010100100010110000100000100100000100011...111
1.8 Unentscheidbarkeit 1.8.1 Universelle Sprache und Diagonalsprache Definition: Die universelle Sprache LU ist die Sprache LU = {M x|M akzeptiert x} ⊆ { 0, 1}∗
Satz: Es gibt eine universelle Turingmaschine M U mit L(M U ) = LU Beweisskizze: M U muss zun¨achst den Anfang der Eingabe bis zum zweiten 111-Block lesen und entscheiden ob es sich um eine g u ¨ ltige Go¨delnummer handelt. M U kopiert die Beschreibung auf ein zweites Band, und kann anschließend die Maschine M Schritt f u ¨r Schritt simulieren. Wenn die simulierte Maschine M h¨alt, dann h¨alt auch M U (in einem akzeptierenden oder nicht akzeptierenden Zustand, je nach M ).
10
1.8. UNENTSCHEIDBARKEIT
Aufz¨ahlung aller W¨orter aus {0, 1}∗ und aller Turingmaschinen: w1 = ε w2 = 0 w3 = 1 w4 = 00 w5 = 01 w6 = 10 w7 = 11 w8 = 000 .. .
M 1 , M 2,...,M i ,...
M i
=
Turingmaschine M , Turingmaschine, die einen Schritt nach links macht, und dann in einem akzeptierenzen Zustand anh ¨alt.
falls wi = M ist
falls wi keine gu ¨ ltige G¨odelnummer ist
Definition: Die Diagonalsprache D ist D = {wi |
wi ∈ / L(M i )
, i = 1, 2, 3,...}
M i akzeptiert wi nicht.
M 1 M 2 M 3 M 4 .. . M i D
w1 +− +
w2
−
+− +
+
−
+
+−
−
−
w3
···
wi
···
wk
···
−+ − + +
+
Satz: D ist nicht rekursiv aufz¨ahlbar und damit auch nicht entscheidbar. Beweis durch Widerspruch: Angenommen, es gibt eine Turingmaschine M k die D akzeptiert: D = L(M k ) = {w|M k akzeptiert w} Betrachtet das Wort wk : wk ∈ D Definition von D
⇐⇒
Annahme: M k akzeptiert die Sprache D
⇐⇒
wk ∈ / L(M K ) wk ∈ /D
Satz: Das Komplement D der Diagonalsprache D = {wi |wi ∈ L(M i )} ist rekursiv aufz¨ahlbar, aber nicht entscheidbar
11
KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT
Beweis:
1. M D u uft, ob die Eingabe eine g¨ ultige G¨odelnummer M ist, ¨berpr¨ wenn nein, dann akzeptiere. 2. Wenn ja, verdopple die Eingabe und starte die universelle Turingmaschine:
M i wi
=wi
akzeptiert genau dann, wenn wi ∈ / L(M i )
Nichtentscheidbarkeit folgt aus dem n¨achsten Satz.
Satz:
1. Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar, wenn die Komplement¨arsprache L = Σ∗ − L entscheidbar ist. 2. L ist genau dann entscheidbar, wenn sowohl L als auch L rekursiv aufz¨ahlbar sind.
Beweis:
1. Drehe die Angabe des Entscheidungsalgorithmus um. 2. L entscheidbar ⇒ L entscheidbar ⇒ L, L rekursiv aufz¨ahlbar.
⇐ M 1 akzeptiert L, M 2 akeptiert L Lasse M 1 und M 2 parallel“ laufen (abwechselnd) auf derselben Eingabe x ∈ Σ∗ ” Wenn x ∈ L, dann terminiert M 1 . Wenn x ∈ L, dann terminiert M 2 . Sobald eine der simulierten Turingmaschinen M 1 und M 2 anh¨alt, ist die Antwort bekannt. L L entscheidbar entscheidbar rekursiv aufz¨a hlbar, nicht entscheidbar nicht rekursiv aufz¨ahlbar nicht rekursiv aufz¨ahlbar rekursiv aufz¨ahlbar, nicht entscheidbar nicht rekursiv aufza¨hlbar nicht rekursiv aufza¨hlbar
Satz: Die universelle Sprache U ist unentscheidbar. / L(M i )} entscheiBeweis: Mit der Entscheidbarkeit von U k¨onnte man auch die Diagonalsprache D = {wi |wi ∈ den. Wir wollen untersuchen, ob wi ∈ D ist. ¨ Uberpr¨ ufe ob wi die G¨odelnummer einer g¨ ultigen Turingmaschine M ist. wi ∈ Σ∗ → Antwort: JA • Wenn nein: L(M i ) = Σ∗ • Wenn ja: M i = M ¨ Uberpr¨ ufe ob M i wi ∈ U ⇔ wi ∈ L(M i) – wenn ja → Antwort: NEIN. – wenn nein → Antwort: JA.
1.8.2 Das Halteproblem Gegeben: Eine Turingmaschine M und eine Eingabe x ∈ Σ∗ (oder ein Programm in C, Java, ... mit einer Eingabe). Frage: H¨alt die Turingmaschine nach endlich vielen Schritten? Formuliereung des Problems als formale Sprache: H = {M |M h¨alt bei Eingabe von x}
Satz: Das Halteproblem ist unentscheidbar Beweis: indirekt. Annahme: Es gibt einen Algorithmus, der das Halteprolem entscheidet. Behauptung: Dann ko¨nnten wir auch die universelle Sprache U entscheiden. U = {M x|x ∈ L(M ), M h¨alt bei Eingabe von x in einem akzeptierenden Zustand }
12
1.8. UNENTSCHEIDBARKEIT
Teste zuerst, ob M x ∈ H ist. Wenn nein, dann ist M x ∈ / U . Wenn ja, simuliere M auf der Eingabe x, diese Simulation muss terminieren. Je nachdem, ob der Haltezustand von M ein akzeptierender Zustand ist oder nicht, geh¨ort M x zu U oder nicht. Das spezielle Halteproblem H ε = {M |M h¨alt bei Eingabe ε}
Folgerung: H ε ist unentscheidbar. Indirekter Beweis: Annahme wir h¨atten einen Algorithmus A, der H ε entscheidet. Behauptung: Dann k¨onnten wir H entscheiden.
M x sei Eingabe f u ¨r H . Konstruiere eine neue Turingmaschine M ′ die am Anfang das Wort x auf das Band schreibt, dann nach links zuru ¨ ckkehrt und dann wie M weitermacht. Teste mit dem Algorithmus A, ob M ∈ H ε
M ′ ∈ H ε ⇔ M x ∈ H
1.8.3 Reduzierbarkeit von Problemen Definition: A, B ⊆ Σ∗ A ist auf B reduzierbar A≤B wenn es eine berechenbare Funktion f : Σ ∗ → Σ∗ gibt mit x ∈ A ⇔ f (x) ∈ B, ∀x ∈ Σ∗
Beispiel: H ≤ H ε f (M x) = M ′ f (y) = M ∞ , falls y nicht mit der g¨ ultigen Codierung einer Turingmaschine beginnt M ∞ := eine Turingmaschine, die nie h ¨alt. ( y ist keine korrekte Eingabe f u ¨ r das Halteproblem“) ” Beispiel: D ≤ U
Satz:
1. A ≤ B ∧ B ≤ C ⇒ A ≤ C 2. A ≤ B und B entscheidbar ⇒ A entscheidbar 3. A ≤ B und A unentscheidbar ⇒ B unentscheidbar
Beweis:
1. Transitivita¨t 2. Wir wollen entscheiden, ob x ∈ A ist: Berechne f (x) und entscheide, ob f (x) ∈ B ist. 3. logisch ¨aquivalent zu 2.
1.8.4 Das Post’sche Korrespondenzproblem (PKP) Gegeben: Eine Folge von Paaren von W ¨ortern (x1 , x2 ), (y1 , y2 ), ..., (xn , yn ) Frage: Gibt es eine Folge von Indizes i1 , i2 ,...,ik
xi , yi ∈ Σ∗
(k ≥ 1) mit xi1 xi2 xi3 ...xik = yi1 yi2 ...yik ?
0) Beispiel (1, 111), (10111, 10), (10, @ @ @ @
@ @ i1 = @ 1 @ @ i @ 2 = 1 ⇒ i3 = 1
@ @
@ @ @ @
x = 111
@ @ @ @ @ @ @
y = 111111111
i1 = 2
i2 = 1
i3 = 1
i4 = 3 x = 10111 1
1
10
y = 10 111 111 0 (10, 101), (011, 11), (101, 011)
(001, 0), (01, 011), (01, 101), (10, 001) k¨ urzeste L¨osung k = 66
13
KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT
Satz: PKP ist unentscheidbar Beweis: U ≤ P KP Zwischenschritt: Modifiziertes PKP zus¨ atzliche Bedingung: i1 = 1 M P K P ≤ P KP U ≤ P KP . Folge von Konfigurationen einer Turingmaschine xi
↓
1
x1 q0 v#u1 q v1 #u2 q2 v2 #u3 q3 v3 #...
x1
#q0 v# u1 q1 v1 #u2 q2 v2 #u3 q3 v3 #...
↑
y1
yi
Beispiel
xi
↓
xi + 1
↓
xj
# 0 #0010q110# 0
↑
yi
0 0
1 1
↑
0 0
q1 10# 0q ′ 10# yi
yi + 1
δ(a, 1) = (q ′ , 0, +1)
Gegeben: M, x ∈ Σ∗ Alphabet f u ¨ r PKP = Γ ∪ Q ∪ {#} Anfangspaar: (x1 , y1 ) = (#, #q0 x#) Kopierpaare: (xi , yi ) = (a, a) f u ¨r a ∈ Γ ∪ {#} Zustands¨ uberg¨ ange: (qa,q′ b), falls δ(q, a) = (q′ , b, 0) (q#, q ′ b#), falls (qa,bq′ ), falls (q#, bq ′ #), falls (cqa,q ′ cb), falls
δ(q, B) = (q ′ b, 0) δ(q, a) = (q′ , b, 1) δ(q, B) = (q ′ , b, 1) δ(q, a) = (q′ , b, −1)
(cq#, q′ cb#), falls δ(q, B) = (q ′ , b, −1) (#qa, #q′ Bb), falls δ(q, a) = (q′ , b, −1) (#q#, #q ′ Bb#), falls δ(q, B) = (q ′ , b, −1)
M P K P ≤ P KP
Gegeben: Eingabe f u ¨r M P K P (x1 , y1 ), (x2 , y2 ), . . . (xn , ym )
Frage f ¨ ur MPKP: Gibt es eine Folge i1 , i2 , . . . , i k
k ≥ 1 mit i1 = 1
Sodass xi1 xi2 ...xik = yi1 ...yik Reduktion: Wir konstruieren uns eine Eingabe (x′0 , y0′ ), (x′1 , y1′ ),..., (x′n+1 , yn′ +1 ), Dieses PKP hat eine L¨osung ⇔ Das urspr¨ ungliche MPKP hat eine L¨osung.
14
1.8. UNENTSCHEIDBARKEIT
Beispiel: (0, 010), (11, 0), (101, 01) x′i = xi yi′ = yi
Eingabe f u ¨ r MPKP
mit einem neuen Symbol # nach jedem Buchstaben mit einem neuen Symbol # vor jedem Buchstaben
(x′1 , y1′ ) = (0#, #0#1#0)
(x′2 , y2′ ) = (1#1#, #0) x′0 = #x′1
(x′3 , y3′ ) = (1#0#1#, #0#1)
x′0 = #0#
y0′ = y1′ y0′ = #0#1#0 Dieses PKP kann nur min(x′0 , y0′ ) beginnen x′0 x′3 = #0#1#0#1# x1 x3 = 0101 y0′ y3′ = #0#1#0#0#1y1 y3 = 01001 x′n+1 = $yn′ +1
= #$ ....01 → 0#1#$ ....01 → #0#1#$
Die Eingabe (x′0 , y0′ ), ..., (x′n+1 , yn′ +1 ) ist aus (x1 , y1 ), ..., (xn , yn ) berechenbar.
Lemma: U ≤ M P K P Beweis: Gegeben ist eine Eingabe M x f u ¨ r U Wir konstruieren daraus eine Eingabe f u ¨r MPKP mit folgenden Eigenschaften MPKP hat eine L¨osung ⇔ M x ∈ U (M akzeptiert x)
Idee: MPKP simuliert die Berechnung von M Ki aufeinanderfolgende Konfigurationen von M L¨ osungswort: #K 0 #K 1 #K 2 #... i
K i = ui q vi
K 0 = q0 x qi ∈ Q, ui , vi ∈ Γ∗
xi1 xi2 ...xik = # |K 1 #|K 2 #K 3 #| yi1 yi2 ...yik = #K 1 #|K 2 #|K 3 #K 4 #| Das y-Wort ist immer einen Schritt vorraus; dadurch k¨onnen wir sicherstellen, dass K i+1 aus K i durch einen Schritt vom M entsteht. (x1 , y1 ) = (#, #q0 x#) Anfangsregel (a, a) a ∈ Γ ∪ {#}... Kopierregel Zustandsregeln: (q′ , b, +1) ⇒ (qa,bq′ ) (q′ , b, 0) ⇒ (qa,q′ b) δ(q, a) = (cqa,q′ cb) (q′ , b, −1) ⇒ (#qa, #q ′ Bb)
δ(q, B) =
(q′ , b, +1) ⇒ (q#, bq ′ #) (q′ , b, 0) ⇒ (q#, q′ b#) (cq#, q ′ cb#) (q′ , b, −1) ⇒ (#q#, #q ′ Bb#)
L¨oschregeln: Wenn M in einen akzeptierenden Zustand q ∈ F ger¨at, dann frisst“ dieser Zustand den Bandinhalt ” (qa,q) ∀q ∈ F, a ∈ Γ (aq,q) Abschlusspaar:
(q##, #)
∀q ∈ F
Satz: Das Post’sche Korrespondenzproblem ist unentscheidbar.
15
KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT
1.8.5 Andere unentscheidbare Probleme • L¨osbarkeit von Polynomgleichungen u ¨ber Z. (Matijasevi´c, 1970)
x = 3y − z 2 z 2 + u3 y − x4 = 0 .. .
S sei eine Eigenschaft von formalen Sprachen L, die von einigen aber nicht von allen rekursiv aufz ¨ahlbaren erf u ¨ llt wird:
Beispiele: Ist S = ∅? Ist S = {ε}? ε ∈ S ? Ist S endlich? Ist S = {0n 1n |n ≥ 1}
1.8.6 Satz von RICE (1953) Satz: Fu ¨r jede nichttriviale Eigenschaft S (im obigen Sinn) ist das folgende Problem unentscheidbar: Gegeben: Turingmaschine M . Frage: Hat L(M ) die Eigenschaft S ? Annahme: ∅ hat nicht Eigenschaft S Es gibt eine Sprache L+ , die Eigenschaft S hat und eine Turingmaschine M + mit L(M +) = L+ Wir reduzieren das spezielle Halteproblem H ε auf das Entscheidungsproblem f u ¨r S : Gegeben: Turingmaschine M Frage: H¨alt M bei Eingabe ε? Wir konstruieren daraus eine neue Turingmaschine M ′ mit der Eigenschaft L(M ′ ) hat Eigenschaft S ⇔ M ha¨lt bei Eingabe ε
• M ′ bekommt die Eingabe x ∈ Σ∗ • M ′ simuliert zun¨achst M mit leerer Eingabe. • Wenn M h¨alt, dann simuliert M ′ die M + mit der Eingabe x, und akzeptiert genau dann, wenn M + akzeptiert. M ist aus M berechenbar. Fall 1: M h¨alt nicht bei Eingabe ε ⇒ M ′ h¨alt nie ⇒ L(M ) = ∅ ⇒ L(M ) hat Eigenschaft S nicht. Fall 2: M h¨alt bei Eingabe ε ⇒ M ′ verha¨lt sich wie M + ⇒ L(M ) = L(M + ) = L+ ⇒ L(M ) hat Eigenschaft S . ¯ ( nicht S “ ). Wenn ∅ die Eigenschaft S hat, dann betrachte die komplement¨are Eigenschaft S ” ′
16
2 Regul¨ are Sprachen und endliche Automaten 2.1 Deterministische endliche Automaten A = (Q, Σ, δ , q0 , F ) Ein (deterministischen) endlicher Automat (DEA) (engl.: deterministic finite automaton , DFA) hat:
• eine endliche Zustandsmenge Q • ein endliches Eingabealphabet Σ • eine Zustands¨uberf u ¨hrungsfunktion δ : Q × Σ → Q • einen Startzustand q0 ∈ Q • eine Menge von akzeptierenden Zust¨anden F ⊆ Q Arbeitsweise: Der Automat beginnt in q0 und liest in jedem Schritt das n a¨chste Eingabesymbol und a¨ndert denm Zustand gem¨aß δ. Er akzeptiert das Eingabewort, wenn er sich nach dem Lesen des letzten Buchstabens in einem Zustand ∈ F befindet. Beispiel: Q = {q0 , q1 , q2 , q3 } q0 = q0
Σ = {0, 1} F = {q3 } δ q0 q1 q2 q3
0 q1 q0 q3 q2
1 q2 q3 q0 q1
Zustandsdiagramm:
Eingabe: x =
/ L(A) ∈
0 0 1 1 0 0 1
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ q0 q1 q0 q2 q0 q1 q0 q2
/ F ∈
L(A) = die von A akzeptierte Sprache = {x ∈ { 0, 1}∗|x enth¨alt eine gerade Anzahl an 0en und eine ungrade Anzahl an 1en } Wir erweitern δ : Q × Σ → Q auf δ : Q × Σ∗ → Q δ(q, ε) = q, δ(q, a1 a2 ...an ) = δ(δ(q, a1 a2 ...an−1 , an )),
(∀q ∈ Q) (n ≥ 1)
17
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
Beispiel: δ(q2 , 010) = q0 = δ(δ(δ(δ(q2 , ε), 0), 1), 0) L(A) = die von A akzeptierte Sprache = {x ∈ Σ∗ |δ(q0 , x) ∈ F } Kann ein DEA die Sprache L = {0n 1n |b ≥ 0} akzeptieren? Wir betrachten δ(q0 , 0), δ(q0 , 00), δ(q0 , 000),... Nach h¨ochstens |Q| Schritten muss sich ein Zustand wiederholen
∃i ≤ j : δ(q0 , 0i ) = δ(q0 , 0j ) δ(δ(q0 , 0i ), 1i ) = δ(q0 , 0i 1i ) ∈ F weil A das Wort 0i 1i akzeptieren soll. δ(q0 , 0j 1i ) = δ(δ(q0 , 0j ), 1i ) = δ(q0 , 0i 1i ) ∈ F ⇒ A akzeptiert 0j 1i
=δ (q0 ,0i )
Definition: Die von DEA akzeptierten Sprachen heißen regul ¨are Sprachen . Andere Charakteresierungen von regul ¨aren Sprachen:
• regul¨are Ausdru ¨cke • NEA: nichtdeterministische endliche Automaten • Typ-3-Grammatiken
2.2 Regul¨ are Ausdr¨ ucke Beispiele f u ¨ r regul¨are Ausdru ¨cke:
(0 + 1)∗
(0∗ + 01∗)10(1∗ )
Definition: regul¨are Ausdru ¨cke sind induktiv folgendermaßen definiert. 1. ∅, ε , a f u ¨r a ∈ Σ, sind regul¨are Ausdru ¨cke 2. Wenn A und B regul¨are Ausdru ¨ cke sund, dann sind auch • (A) · (B) • (A) + (B) • (A)∗ regul¨are Ausdru ¨cke.
Beispiele: ((0) + (1))∗ = {0, 1}∗ (((((0)∗ ) + ((0) · ((1)∗ ))) · (1)) · (0)) · ((1)∗ ) Man verwendet folgende Vereinfachungsregeln: 1.) ∗ hat h¨ochste Priorit¨at, dann ·, dann + ¨ 2.) Uberfl u ¨ssige Klammern kann man weglassen. 3.) · kann man weglassen 4.) Endliche Mengen kann man auch als {..., ..., ...} schreiben Jeder regul¨are Ausdruck beschreibt eine Sprache:
• L(∅) = ∅ • L(ε) = {ε} • L(a) = {a} f u ¨r a ∈ Σ • L((A) · (B)) = L(A) · L(B) • L((A) + (B)) = L(A) ∪ L(B)
18
¨ ¨ 2.2. REGULARE AUSDRUCKE
• L((A)∗ ) = (L(A))∗ Beispiel: 1∗ (01∗ 01∗ ) = {x ∈ { 0, 1}∗|Anzahl der Nullen ist gerade} Satz: Jede regul¨are Sprache wird durch einen regul ¨aren Ausdruck beschrieben: A = ( {q1 , q2 ,...,qn }, Σ, δ , q1, F )
Beweis mit Kleene-Algorithmus: (Kleene, 1953) L = L(A)
Lkij = Menge der W¨orter, die von qi nach qj f u ¨ hren, und dabei als Zwischenzust¨ande (außer dem ersten und letzen Zustand) nur die Zust¨ande q1 , q2 ,...,qk Lkij = {x1 x2 ...xn |δ(qi , x1 ....xn ) = qj , δ(qi , x1 ...xl ) ∈ { q1 ,...,qk } f u ¨ r 1 ≤ l < n}
k = n... keine Einschr¨ankung der Zwischenzust¨ande L(A) =
Ln1j
qj ∈F
¨ k = 0... keine Zwischenzust¨ande, nur direkten Ubergang L0ij = {a ∈ Σ|δ(qi , a) = qj }
i =j
L0ii = {a ∈ Σ|δ(qi , a) = qi } ∪ {ε} Die Lkij ko¨nnen induktiv f u ¨r k = 0, 1, 2,...,n definiert werden.
Lemma: Lkij = Lkij−1 ∪ Lkik−1 (Lkkk−1 )∗ Lkkj−1 Beweis:
⊇“ Lkij−1 ⊆ Lkij nach Definition. Lkik−1 (Lkkk−1 )∗ Lkkj−1 ... ein Wort aus dieser Sprache wird, beginnend ” in qi nur Zust¨ande q1 ,...,qk−1 , qk besuchen und in qj enden.
⊆“ Betrachte ein Wort x ∈ Lkij und die Folge der Zust¨ande die der Automat beim Lesen von x, ausgehend ” von qi besucht. Fall 1: qk tritt nicht als Zwischenzustand auf ⇒ x ∈ Lki −1 j Fall 2: Zerlege x in Bestandteile an jeder Stelle, wo der Zustand qk erreicht wird.
qi
qk
∈ Lkik−1
qk
qk
qk
∈ Lkkk−1
qj
∈ Lkkj−1
x besteht aus einem Anfangsstu ¨ck ∈ Lkik−1 , beliebig vielen ( ≥ 0) Zwischenstu ¨cken ∈ Lkkk−1 und einem Endstu ¨ck ∈ Lkkj−1 Wenn i = k oder j = k ist, dann kann man die Formel vereinfachen:
Beispiel: Lkik = Lkik−1 · (Lkkk−1 ) Lkkk = (Lkkk−1 )∗ Lkkj = ((Lkkk−1 )∗ Lkkj−1
19
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
Durch Induktion nach k ergibt sich: Alle Sprachen Lkij sind durch regul¨are Ausdr¨ ucke darstellbar, und sonst auch L(A). Schranke f u ¨ r die L¨ange des Ausdrucks: (|Σ| + 1) · 4|Q| · |Q| ¨ (beim Ubergang von k auf k + 1 wird die La¨nge ho¨chstens mit 4 multipliziert.) Der Algorithmus von Floyd-Warshall f u ¨ r ku ¨ rzeste Wege in Graphen beruht auf dem gleichen Prinzip.
2.3 Nichtdeterministische endliche Automaten DEA
→
regul¨arer Ausdruck
↑
↓
NEA ←−
(NEA + ε)
Definition: Ein nichtdeterministischer endlicher Automat (NEA) (engl.: nondeterministic finite automaton , NFA) A = (Q, Σ, δ , q0 , F ) ist ¨ahnlich wie ein DEA, außer dass: δ : Q × Σ → 2Q (Potenzmenge von Q) Wenn ein Automat sich im Zustand q ∈ Q befindet und das Symbol a ∈ Σ liegt, kann er in irgendeinem der Zust¨ande aus der Menge δ(q, a) gehen. Gesund
Kopfweh,Gesund
Hochdruckwetter
K¨alte Gesund
Kopfweh Gewitter
Gesund
• Eine Berechnung des Automaten bei Eingabe von x = a1 a2 ...an ∈ Σ∗ ist eine Folge (q0 , a1 , q1 , a2 , q2 ,...,qn−1 , an , qn ) mit qi ∈ Q mit q0 = Anfangszustand und qi+1 ∈ δ(qi , ai+1 ) f u ¨r i = 0,...,n − 1. • Eine akzeptierende Berechnung ist eine Berechnung mit qn ∈ F . • Ein Wort x ∈ Σ∗ wird von A akzeptiert , wenn es eine akzeptierende Berechnung f u ¨r x gibt. L(A) = Menge der akzeptierten W ¨orter 0,1
0,1
→q
0
0
1
1
0
q1
q2
q3
q4
L(A) = {W¨orter, die 0101 enthalten} = (0 + 1)∗ 0101(0 + 1)∗ δ q0 q1 q2 q3 q4
0 {q0 , q1 }
∅
1 {q0 } {q2 }
{q3 } ∅ {q4 }
∅ {q4 } {q4 }
/ L(A) jedoch nicht. Beispiel: 010 0101 0010000 wu ¨rde akzeptiert werden, 011110000111 ∈ Ein DEA entspricht dem Spezialfall wo |δ(q, a)| = 1 f u ¨ r alle q und a. Urspru ¨ nglicher Formalismus δ : Q × Σ → 2Q q′ ∈ δ(q, a)
20
Alternativer Formalismus δ ⊆ Q × Σ × Q (dreistellige Relation) (q,a,q′ ) ∈ δ
2.3. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN
Konstruktion eines ¨aquivalenten DEA A′ = (Q′ , Σ, δ ′ , q0′ , F ′ ) zu einem gegebenen NEA A = (Q, Σ, δ , q0 , F ) (Potenzmengenkonstruktion) Q′ = 2Q δ′ : Q′ × Σ → Q′ δ′ (q ′ , a) = δ(q, a)
q0′ == {q0 } F ′ = {q′ ∈ Q|q′ ∩ F = ∅}
q ∈q ′
Behauptung: L(A′ ) = L(A)
δ′ ({q1 , q2 }, 0) = δ(q1 , 0) ∪ δ(q2 , 0) = ∅ ∪ {q3 } = {q3 } ′ δ ({q0 , q1 , q4 }, 0) = δ(q0 , 0) ∪ δ(q1 , 0) ∪ δ(q4 , 0) = {q0 , q1 } ∪ ∅ ∪ {q4 } = {q0 , q1 , q4 } F ′ = {q ′ ∈ { q0 , q1 , q2 , q3 , q4 }|q4 ∈ q′ }
Beweis: δ ′ (q0′ , a1 a2 ...ak ) = {q ∈ Q | es gibt eine Berechnung f u ¨r a1 ...ak die im Zustand q0 beginnt und in q endet.} = mo¨gliche Zusta¨nde nach Lesen der ersten k Eingabezeichen. ” Beweis durch Induktion nach k. In der Praxis beginnt man mit q0′ = {q0 } und erzeugt nur diejenigen Zustandsmengen, die von q0 erreichbar sind. q′ 0 1 ′ q0 {q0} {q0 , q2 } {q0 } ′ q1 {q0 , q1 } {q0 , qq } {q0 , q2 } ′ q2 {q0 , q2 } {q0 , q1 , q3 } {q0 } q3′ {q0 , q1 , q3 } {q0 , q1 } {q0 , q2 , q4 } q4′ {q0 , q2 , q4 } {q0 , q1 , q3 , q4 } {q0 , q4 } ′ q5 {q0 , q1 , q3 , q4 } {q0 , q1 , q4 } {q0 , q2 , q4 } ′ q6 {q0 , q4 } {q0 , q1 , q4 } {q0 , q4 } q7′ {q0 , q1 , q4 } {q0 , q1 , q4 } {q0 , q2 , q4 } 0 1
q1
0
q2
0 0 1
→q
1
0
q3 1
0
0 q7
q4 1 0 0 q6
1
q5 1
0 L = {W¨orter, deren 4-letzter Buchstabe eine 1 ist } 0,1
→q
0
0,1
1 q1
0,1
0,1 q2
q3
q4
⇒ NEA hat k + 1 Zust¨ande
Jeder DEA ben¨otigt mindestens 2k−1 Zust¨ande
21
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
¨ 2.4 NEA mit ε-Uberg angen ¨ Unterschied: δ : Q × (Σ ∪ {ε}) → 2Q ¨ Der Automat kann auch, statt einen Buchstaben zu lesen, einen ε-Ubergang durchf u ¨hren. Eine akzeptierende ∗ Berechnung f u ¨r x ∈ Σ ist eine Folge (q0 , b1 , q1 , b2 , q2 ,...,qk ) mit q0 = Startzustand, bi ∈ Σ ∪ {ε}, qi ∈ δ(qi−1 , bi ), x = b1 b2 ...bk , qk ∈ F ¨ Satz: Zu jedem regul¨aren Ausdruck S , gibt es einen NEA A mit ε-Uberg ¨angen und einem einzigen akzeptierenden Zustand mit L(A) = L(S )
Beweis: Induktion nach der Struktur von S S = a ∈ Σ
→
S = ∅
→
S = ε
→
a
ε
A1 S = S 1 + S 2
→
ε ε
→
S = S 1 · S 2
ε ε
A2
A1
→
ε
L(A) = L(A1 )∗
A1
Kleene-Algorithmus
DEA
L(A) = L(A1 ) · L(A2 )
A2
ε
S = (S 1 )∗
L(A) = L(A1 ) ∪ L(A2 )
regula¨re Ausdru ¨cke
Potenzmengenkonstruktion NEA
¨ Elimination von ε-Uberg ¨angen
¨ NEA mit ε-Uberg ¨angen
¨ 2.4.1 Elimination von ε-Uberg¨ angen ¨ ¨ wo ein Buchstabe Idee: Zusammenpacken einer Folge von ε-Uberg ¨angen mit dem nachfolgenden Ubergang ¨ gelesen wir, in einem einzigen Ubergang. 0
→q
ε, 1
1
q2 ε, 0
ε 1
0
q5
1 ε, 0 0
q3 0 22
1
q4
2.5. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN
δ ′ (q1 , 0) = {q3, q5 , q1 , q4 }F ′ = {q1 , q2 , q3 , q5 }
Gegeben: A = (Q, Σ, δ , q0 , F ) δ : Q × (Σ ∪ {ε}) → 2Q ¨ ange neuer Automat: A′ = (Q, Σ, δ′ , q0 , F ′ ) ohne ε-Uberg¨ ′ ¨ δ (q, a) = {r ∈ Q | r kann im Automaten A von q aus durch eine Folge von k ≥ 0 ε-Uberg¨ angen, und ¨ einen Ubergang wo a gelesen wird, erreicht werden. } ¨ F ′ = {q ∈ Q | Von q aus kann der Automat A in k ≥ 0 ε-Uberg¨ angen einen akzeptierenden Zustand r ∈ F erreichen } Der Automat A′ kann jede akzeptierende Berrechnung von A durch eine akzeptierende Berechnung ohne ε¨ Uberg¨ angen simulieren“ und umgekehrt. ” ¨ Berechnung der Menge Rε (q) = { Zust¨ande, die von q aus durch ε-Uberg¨ ange erreichbar sind. } R := {q}; ...Ergebnismenge Q := {q}; ...Liste der zu bearbeitedenden Zust¨ande
!isEmpty(Q) entferne einen Zustand r aus Q forall s aus delta(r, epsilon): if !(s aus R) then R := R + { s } Q := Q + { s } while
→q
q1
ε
0
ε ε q4 ε
q2
q3
δ ′ (q, a) =
δ(r, a)
r ∈Rε (q)
Beispiel: δ ′ (q1 , 0) = δ(q1 , 0) ∪ δ(q2 , 0) ∪ δ(q3 , 0) ∪ δ(q5 , 0)
F ′ = {q|Rε (q) ∩ F = ∅}
2.5 Minimierung deterministischer endlicher Automaten 0
→
1 a
b
0
1
c
d
0
0
1
0
1
1 e
1
f
1
g
0
h
0 1 0
23
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
1. Entfernen unerreichbarer Zust¨ande: Zust¨ande die nicht von q0 erreichbar sind 0 1 a b c 0 1
→
0
1
1 0
e
f
1
g
1
0
h
0 1 0 2. Zusammenfassen von ¨aquivalenten Zust¨anden. Zwei Zust¨ande heißen ¨aquivalent, wenn es keine Rolle spielt, in welchem der beiden Zust a¨nde man ist. def
q ≡ r ⇐⇒ ∀ x ∈ Σ∗ ; δ(q, x) ∈ F ⇔ δ(r, x) ∈ F q ≡ r ⇐⇒ ∃ x ∈ Σ∗ ; δ(q, x) ∈ F ⊕ δ(r, x) ∈ F (XOR)
(∗)
Der Algorithmus beginnt mit einer ganz groben Klasseneinteilung in zwei Klassen Q = F ∪ (Q − F ). Diese Klasseneinteilung wird nach und nach verfeinert, wenn sich herrausstellt, dass Zust ¨ande in der gleichen Klasse nicht ¨aquivalent sind. Invariante: Wenn q und r nicht in derselben Klasse sind, dann gilt ( ∗): / F ) ∨ (δ(q, x) ∈ / F ∧ δ(r, x) ∈ F ) ∃x ∈ Σ∗ : (δ(q, x) ∈ F ∧ δ(r, y) ∈ Beispiel: Q = {a} ∪ {b,c,e,f,g,h} = K 1 ∪ K 2
δ(b, 0) = g ∈ K 2 δ(c, 0) = a ∈ K 1 δ(e, 0) = h ∈ K 2 δ(f, 0) = c ∈ K 2 δ(g, 0) = g ∈ K 2 δ(h, 0) = g ∈ K 2
⇒ c unterscheidet sich vom Rest, da δ(c, 0) ∈ K 1 ∧ δ({b,e,f,g,h}, 0) Zerlege K 2 = A ∪ B, je nachdem in welche (bisherige) Klasse δ(q, 0) ist K 2 = {c} ∪ {b,e,f,g,h} neue Klasseneinteilung: Q = {a} ∪ {c} ∪ {b,e,f,g,h} K1
K2
K3
δ(b, 0) ∈ K 3 δ(e, 0) ∈ K 3 δ(f, 0) ∈ K 2 δ(g, 0) ∈ K 3 δ(h, 0) ∈ K 3 Zerlege K 3 = {f } ∪ {b,e,g,h} Neue Zerlegung: Q = {a} ∪ {c} ∪ {f } ∪ {b,e,g,h} K1
K2
K3
K4
δ(b, 0) ∈ K 4 δ(e, 0) ∈ K 4 δ(g, 0) ∈ K 4 δ(h, 0) ∈ K 4
24
2.5. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN
δ(b, 1) = c ∈ K 2 δ(e, 1) = f ∈ K 3 δ(g, 1) = e ∈ K 4 δ(h, 1) = c ∈ K 2 Zerlege K 4 = {e} ∪ {g } ∪ {b, h} Neue Zerlegung: Q = {a} ∪ {c} ∪ {e} ∪ {f } ∪ {g } ∪ {b, h} K1
K2
K3
K4
K5
K6
δ(b, 0) ∈ K 6 δ(h, 0) ∈ K 6 δ(b, 1) ∈ K 3 δ(h, 1) ∈ K 3 Es ergibt sich keine weitere Verfeinerung 0
→
1 a
0
{b, h}
1
c
0
0
0
e
1
1
f
1
g 0
1 a ≡c h ≡g c ≡e
wenn x = ε weil δ(h, 1) = c, δ(g, 1) = e und c ≡e weil δ(c, 0) = a, δ(e, 0) = h und h ≡a
h ≡a h ≡g
weil h ∈ / F, a ∈ F weil δ(h, 10) ∈ F, δ(g, 10) ∈ / F
2.5.1 Algorithmus zur Bestimmung des Minimalautomaten: • Beginne mit der Terlegung Q = K 1 ∪ K 2 in zwei Klassen K 1 = F K 2 = Q − F Q = K 1 ∪ K 2 ∪ ... ∪ K j Solange es zwei Zust¨ande q, r in derselben Klasse K i gibt und einen Buckstaben a ∈ Σ mit: Klasse δ(q, a) geh¨ort (q ∈ K i )
Abbruchbedingung: ∀K i ∀q, r ∈ K i , ∀a ∈ Σ: δ(q, a) und δ(r, a) geh¨oren zur gleichen Klasse. Zusta¨nde des neuen Automaten: {K 1 ,...,K j } δ′ (K i , a) = KLasse, zu der δ(q, a) geh¨ort, f u ¨r irgendein q ∈ K i (unabh¨angig von der Wahl von q).
Satz: Zu jedem DEA (zu jeder regul ¨aren Sprache) gibt es einen eindeutig bestimmten (eindeutig bis auf Bennenung der Zust¨ande) Minimalautomaten , der die gleiche Sprache akzeptiert.
• Dieser hat unter allen ¨aquivalenten DEA’s die kleinste Anzahl von Zust¨anden. • Der Minimalautomat kann in O(|Q|2 · |Σ|) Schritten berechnet werden.
25
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
[l]Q = {q1 , q2 , q3 } ∪ {q4, q7 } ∪ {q5 }
δ(q1 , 0) δ(q2 , 0) δ(q3 , 0)
in der selben Klasse?
∪{q6 } δ(q1 , 1) δ(q2 , 1) δ(q3 , 1)
Man kann h¨ochstens (|Q| − 1)-mal verfeinern Zus¨atzlich: Verwalten der Kalssen Einteilung
ein Verfeinerungsschritt O(|Q| · |Σ|)
?
q1 1 q2 1 q3 1 q4 2 q5 3 q6 4 q7 2 Entfernen der unerreichbaren Zust¨ande O(|Q| · |Σ|) Es geht auch in O(|Q| · log |Q| · |Σ|) Zeit, Hopcroft: Die Nerode-Relation bez¨ uglich einer Sprache L. aquivalent , wenn Definition: Zwei W¨orter u und v heißen Nerode- ¨ def
u ≡L v ⇐⇒ ∀x ∈ Σ∗ : ux ∈ L ⇔ vx ∈ L ¨ ¨ Diese Relation ist eine Aquivalenzrelation. Daher k ¨onnen wir die Aquivalenzklassen [u]L = {v ∈ Σ∗ | v ≡L u} bilden.
2.5.2 Satz von Nerode ¨ hat. Satz: Eine Sprache L ist genau dann regul ¨ar, wenn die Nerode-Relation endlich viele Aquivalenzklassen ¨ Die Anzahl der Aquivalenzklassen ist in diesem Fall die Anzahl der Zust ¨ande des Minimalautomaten.
Beweis: ⇒“ ” L = L(A) f u ¨ r DEA A = (Q, Σ, δ , q0 , F ) Wenn δ(q0 , u) = δ(q0 , v) dann u ≡L v
∀x ∈ Σ∗ : ux ∈ L ⇔ δ(q0 , ux) ∈ F ⇔ δ(δ(q0 , u), x) ∈ F ⇔ δ(δ(q0 , v), x) ∈ F ⇔ δ(δ(q0 , vx) ∈ F ⇔ vx ∈ L ¨ Folgerung: ≡L hat h¨ochstens |Q| Aquivalnzklassen. Jeder DEA hat mindestens so viele Zust ¨ande, wie ≡L ¨ Aquivalenzklassen hat.
Beispiel: L = {x ∈ { 0, 1}∗ | k-letzter Buchstabe ist eine 1, |x| ≥ k} = Σ∗ · 1 · Σk−1 =v u Behauptung: u, v ∈ Σk , u ≡L v k ¨ ⇒ ≡L hat mindestens 2 Aquivalenzklassen. x u = 1000100100000 ∈ /L v = 1000110100000 ∈ L Beweis der Behauptung: u = v unterscheiden sich in der i-ten Position, o. B. d. A. u hat dort eine 0, v hat dort eine 1. F¨ ur x = 0i−1 ux ∈ / L,vx ∈ L
26
¨ REGULARE ¨ 2.6. DAS PUMPING-LEMMA FUR SPRACHEN
Beweis: ⇐“ ” ¨ [u1 ]L [u2 ]L , ..., [uk ]L seine Aquivalenzklassen von ≡L Q = {[u1 ]L [u2 ]L , ..., [uk ]L } Σ δ([ui ]L , a) = [ui a]L q0 = [ε]L F = {[ui ]L | ui ∈ L} zu zeigen: 1) Dieser Automat ist wohldefiniert : ¨ Das Ergebnis von δ, die Menge F h¨angt nicht davon ab, welcher Representant ui aus der Aquivalenzklasse [ui ]L gew¨ahlt wird. δ: v ≡ ui ([v]L = [ui ]L ) ⇒ [va]L = [ui a]L ⇔ va ≡L ui a v ≡L ui , a ∈ Σ ⇒ va ≡L ui a def
∀x ∈ Σ∗ : vax ∈ L ⇔ ui ax ∈ L ∀y ∈ Σ∗ : vy ∈ L ⇔ ui y ∈ L ↑ y = a · x
F : z.z. [[ui ]L ] ≡ [v]L ⇒ (ui ∈ L ⇔ v ∈ L)
⇔ui ≡L v
⇔ ∀ x ∈ Σ∗ : (ui x ∈ L ⇔ vx ∈ L) ⇒ Fu ¨ r x = ε: ui ∈ L ⇔ v ∈ L 2) Der Automat akzeptiert L. Behauptung: δ(q0 , x) = [x]L Beweis durch Induktion nach |x|
x=ε IA: |x| = 0 ! δ(q0 , ε) = q0 = [ε]L
a ∈ Σ, f u IS: x = y · a ¨r y ist die Aussage bewiesen. δ(q0 , x) = δ(q0 , ya) = δ(δ(q0 , y), a) = δ([y], a) = [ya] = [x] Weil Definition von δ unabh¨angig von der Wahl des Representanten y in der Klasse [y] ist.
2.6 Das Pumping-Lemma f u are Sprachen ¨r regul¨ F¨ ur jede Regul¨are Sprache L gibt es eine n0 ∈ N (∀L ⊆ Σ∗ : L regul¨ar ⇒ ∃ n0 ∈ N). = ε, ∀i ≥ 0: u · vi · w ∈ L, ∀x ∈ L: |x| ≥ n0 ∃u,v,w ∈ Σ∗ : x = u · v · w, v
|uv | ≤ n0
Sogar diese st¨ arkere Aussage gilt
In Worten: In einer rgul ¨aren Sprache hat jedes genu ¨ gend lange Wort eine Stelle, an der man pumpen“ kann. ” Das Lemma wird in der Regel dazu verwendet, um zu zeigen, dass eine Sprache nicht regul ¨ar ist.
Beispiel: L = {0n 1n | n ≥ 1} nicht regul¨ar. Annahme: L w¨are regul¨ar ⇒ Pumping-Lemma ist anwendbar ∃n0 : W¨ahle x = 0 n0 1n0 = ε, sodass ∀i: uv i w ∈ L ∃x = uvw, v Fall 1: v enth¨alt nur Einsen uv 0 w enth¨alt weniger Einsen als Nullen. / L Widerspruch ⇒∈ 00001 11
1
u
v
w
00001|1 00001111
i=0 i=1
00001 1111 1
i=2
v2
.. .
∈L
27
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
Fall 2: v enth¨alt nur Nullen ... Fall 3: v enth¨alt Nullen und Einsen uv 2 w = u v v w enth¨alt Einsen, die vor Nullen stehen. 001
n n
/L ⇒∈
001
L = {0 1 | n ≥ 1} ist nicht regul¨ar 2 n0 0n0 = uvw uvi w ∈ L 0n0 +(i−1)·|v|
Die L¨angen der W¨orter uv i w bilden eine arithmetische Folge mit Abstand |v| ≤ n20 Abstand zwischen zwei Quadratzahlen: 2 ¨ 2 2 2 2 2 2 (n20 + 1)2 − (n20 )2 = ¨ (n ¨ 0 ) + 2(n0 ) + 1 − (n0 ) = 2n0 + 1 > n 0
> n 20 + + + ++ + ++ + ++
Es gibt ein Wort uv i w, dessen L¨ange (n20 )2 < |uv i w| < (n20 + 1)2 ist. ⇒ Widerspruch Beweis: L sei regul¨ar (L ∈ L 3 ), A... DEA mit L(A) = L n0 := |Q| |x| ≥ 0 x = x1 x2 ....xn
q0
Betrachte die Zust¨ande: δ(q0 , ε) = q0 δ(q0 , x1 ) δ(q0 , x1 x2 ) .. .
Ein Zustand q′ muss mehrfach vorkommen
δ(q0 , x1 x2 ...xn0 )
q0
u v
q′
∃0 ≤ i < j ≤ n0 : δ(q0 , x1 ...xi ) =
δ(q0 , x1 ...xj )
δ(δ(q0 , x1 ...xi ),xi+1 ...xJ )=q′ =q′ q′
δ(q ′ , xi+1 ...xj ) = q ′
28
¨ 2.7. ABSCHLUSSEIGENSCHAFTEN REGULARER SPRACHEN
u = x1 ...xi v = xi+1 ...xj = ε w = xj+1 ...xn
∀i ≥ 0: δ(q0 , uvi w) = δ(q0 ,uvw) ∈ F
x
L = {01}
2
L = {0i 1j | i ≥ 0, j ≥ 0}
n0 = 3
⊲
q0
1
0
·
2.7 Abschlusseigenschaften regul¨ arer Sprachen Satz: Die regul¨aren Sprachen sind abgeschlossen gegen u ¨ber Vereinigung, Durchschnitt, Produkt, *-Operation, Umkehrung, Komplement, Substitution mit regula¨ren Sprachen, Homomorphismen und inverse Homomorphismen. D. h. z. B.: L1 , L2 ∈ L 3 ⇒ L1 ∪ L2 ∈ L 3 Beweise: • Vereinigung, Produkt, *-Operation: regul¨are Ausdr¨ucke • Komplement: Wenn L regul¨ar ist, dann ist auch L = Σ∗ − L regul¨ar. Beweis: DEA A = (Q, Σ, δ , q0 , F ) akzeptiert L A′ = (Q, Σδ, q0 , Q − F ) akzeptiert L • Umkehrung (alle W¨orter von hinten nach vorne gelesen) regul¨are Ausdr¨ ucke Bsp.: (a + b)(ab)∗ a∗ b∗ → b∗ a∗ (ba)∗ (a + b) Beispiel: k-te Buchstabe von rechts = 1 DEA ben¨otigt 2k Zust¨ande k-te Buchstabe von links = 1 DEA kommt mit k + 2 Zusta¨nde aus. • Durchschnitt: L1 ∩ L2 = L1 ∪ L2 • Durchschnitt, Vereinigung mit DEA ¨ Produkt zweier Automaten“ ( Ubung) ” Anwendungsbeispiel L = {x ∈ { 0, 1}∗ | x enth¨alt gleich viele Einsen und Nullen } L′ = L ∩ 0∗1∗ = {0n 1n |n ≥ 0} nicht regul¨ ar
nicht regul¨ ar
• Homomorphismus Definition: Ein Homomorphismus h zwischen Σ∗ und Γ∗ ist eine Abbildung h : Σ∗ → Γ∗ mit der Eigenschaft h(x, y) = h(x) · h(y)
(∀x, y ∈ Σ∗ )
Ein Homomorphismus ist durch eine beliebige Abbildung h : Σ∗ → Γ∗ eindeutig gegeben (Σ∗ = Γ∗ ) ist nicht ausgeschlossen. Beispiel: h(a) = 01 h(b) = ε h(c) = 01
h(abaabaab) = 0101010101
h(x1 ...xn ) = h(x2 ) · h(x2 ) · ... · h(xn )
xi ∈ Σ
• Substitution Definition: Bei einer Substitution σ wird ein Buchstabe a ∈ Σ durch die Sprache σ(a) ersetzt. ∗ Substution ist gegeben durch die Abbildung σ : Σ → 2Γ σ(L) = {y | y ∈ σ(x1 ) · σ(x2 )σ(x3 )...σ(xn ), x1 x2 x3 ...xn ∈ L}
29
¨ KAPITEL 2. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN
Beispiel: L = (01)∗ σ(0) = {a} σ(1) = {b, c} σ(L) = {ababab, ababac, ac, abacacab, ε, ...} = (a(b + c))∗ —— σ(0) = a σ(1) = ab∗ b σ(L) = {aabbbbbaabaabbbb, ...} = σ(a(ab∗ b))∗ = (aab∗ b)∗ Satz: L ⊆ Σ∗ regul¨ar σ(a), a ∈ Σ seien regul¨ar ⇒ σ(L) regul¨ar Spezialfall: |σ(a)| = 1... Homomorphismus. ucke Beweis: requl¨are Ausdr¨ R: regul¨arer Ausdruck f u ¨r L, Ra regul¨arer Ausdruck f u ¨ r σ(a), a ∈ Σ Ersetze in R jedes Vorkommen eines Buchstaben a ∈ Σ durch Ra • inverse Homomorphismen h : Σ∗ → Γ∗ Homomorphismus Satz: (L ⊆ Γ∗ ) ∈ L 3 ⇒ h−1 := {x ∈ Σ∗ | h(x) ∈ L} ∈ L3 Beispiel: h(a) = 0 h(b) = 10 abaab Beweis: DEA A = (Q, Γ, δ , q0 , F ) 1 ⊲
0, 1 a
a, b 0 b 1
b
0 a neuer DEA A′ = (Q, Σ, δ ′ , q0 , F ) δ ′ (q, x) = δ(q, h(x)), x ∈ Σ
2.8 Zusammenfassung: regul¨ are Sprachen ¨ ufen ob x ∈ L • DEA, NEA: Uberpr ¨
• NEA, regul¨are Ausdru ¨cke: Erzeugen der W¨orter aus L
30
b 0a
b
3 Grammatiken 3.1 Definition von Grammatiken Beispiel: in Programmiersprachen; arithmetische Ausd u ¨cke:
• Zahlen und Variablen sind arithmetische Ausdr u ¨cke • wenn A und B arithmetische Ausdr¨ucke, dann sind auch A + B, A − B, A ∗ B,A/B, (A) arithmetische Ausdr¨ ucke S → V, S → S − S, Z → U, U → 0,
S → Z, S → S ∗ S, Z → U, U → 1,
⇒U → 0|1|...|9 B → B, B → a, ⇒B → a|b|c|...
S → (S ) S → S/S,
S, → S + S,
U → 9
...,
V ′ → V ′ B, B → b,
V ′ → V ′ U B → c,
...
Σ = {(, ), +, −, ∗, /, 0, 1, ..., 9,a,b,c,...} V = {S, V ′ , Z , U , B} 3 ∗ (−4) ∈ / L(G) Beispiel: 5 + (13 ∗ 2) ∈ L(G) S → S + S → Z + S → U + S → 5 + S → 5 + (S ) → 5 + (S ∗ S ) → 5(S ∗ Z ) → 5 + (Z ∗ Z ) → 5 + (U Z ∗ Z ) → 5 + (U U ∗ Z ) → 5 + (1U ∗ U ) → 5 + (13 ∗ U ) → 5 + (13 ∗ 2)
Definition: Eine Grammatik G besteht aus:
• • • •
einer Menge V aus Variablensymbolen einer Menge Σ aus Terminalsymbolen (Σ ∩ V = ∅) einer Menge P von Ersetzungsregeln (Produktionen), P ∈ V + × (V ∪ Σ)∗ einem Startsymbol S ∈ V
V + = V ∗ − {ε}
Wo¨rter aus (V ∪ Σ)∗ nennt man auch Satzformen . u ∈ (V ∪ Σ)∗ , wenn v aus u dadurch entsteht, dass man ein Vorkommen einer linken Seite (Pr a¨misse) x einer Regel (x, y) ∈ P durch die rechte Seite (Konklusion) ersetzt, dann schreibt man u → { ε} v ist aus u in einem Schritt ableitbar. u → v ⇔ ∃ (x, y) ∈ P, ∃u1 , u2 ∈ (Σ ∪ V )∗ : u = u1 xu2 ∧ v = u1 yu 2 ∗
Wenn v aus u in k ≥ 0 Schritten abgeleitet werden kann, dann schreibt man u → v:
∃v0 , v1 ,...,vk : u = v0 → v1 → v2 → ... → vk = v
eine Ableitung
Definition: Die von einer Grammatik G = (V, Σ, P , S ) beschriebene Spache L(G) ist ∗
L(G) = {x ∈ Σ∗ | S → x}
31
KAPITEL 3. GRAMMATIKEN
3.2 Die Chomsky-Hierarchie Nach Noam Chomsky (zeitgen¨ossischer Linguist)
• Typ-0-Grammatiken: beliebige Grammtiken • Typ-1-Grammatiken: monotone bzw. kontext-sensitive Grammtiken P ⊆ { (x, y) | x ∈ V + , y ∈ (Σ ∪ V \ {S })∗ , |x| ≤ |y | } ∪ {(S, ε)} D. h. die Konklusionen der Regeln sind mindestest so lang wie die Pr a¨missen.
• Typ-2-Grammatiken: kontextfreie Grammatiken P ⊆ V × (Σ ∪ V )∗
• Typ-3-Grammatiken: rechtslineare Grammatiken P ⊆ V × (ΣV ∪ {ε})
Beispiel: S → aT |bS T → +V T → ε Die beschriebenen Sprachen dieser Grammatiken entsprechen den regul ¨aren Sprachen (es gibt auch linkslineare Grammatiken) Entsprechend gibt es Typ-0-Sprachen, Typ-1-Sprachen, ... L0 , L1 , L2 , L3 seien die Typ-0-Sprachen, Typ-1-Sprachen, ... trivial
L3 ⊂ L2 ⊂ L1 ⊂ L0 = kontextfrei = kontextsensitiv = rekursiv aufz¨ regul¨ ar ahlbar L= {0n 1n }
L= {0n 1n 0n }
Die Sprachen aus L1 sind entscheidbar
3.3 Typ-0-Sprachen (rekursiv aufz¨ ahlbare Sprachen) Satz: Typ-0-Sprachen sind genau die rekursiv aufza¨hlbaren Sprachen.
⇒“ G = (V, Σ, S , P ) sei gegeben, x ∈ Σ∗ . Ist x ∈ L(G)? ” Algorithmus: Probiere alle Ableitungen der L ¨ange k systematisch durch und pr u ¨ fe, ob dabei x herauskommt, f u ¨r k = 0, 1, 2, 3,.... Dieser Algorithmus akzeptiert gdw. x ∈ L(G) (andernfalls kann er nicht terminieren). ⇐“ Gegeben TM M = (Q, Σ, δ, Γ, q0 , B , F ) ” Idee: q0 x ⊢ k1 ⊢ k2 ⊢ ... ⊢ k2 Simulation durch G: x ← $q0 x# ← ...... ← $kn−1 # ← $kn # ← ...... ← S
Beweis:
V = Q ∪ {$, #} ∪
{V a | a ∈ Γ}
∪{S }
neue Variablen, die dem Bandalphabet entsprechen
Produktionen P : δ(q, a) = (q′ , b, 0) δ(q, a) = (q′ , b, +1) δ(q, a) = (q′ , b, −1)
32
⇒ q ′ V b → qV a ⇒ V b q′ → qV a ⇒ q′ V c V b → V c qV a , ∀c ∈ Γ
¨ 3.4. TYP-3-SPRACHEN (REGULARE SPRACHEN)
Anfangsregeln: Erzeuge eine beliebige Konfiguration mit einem akzeptierenden Zustand und gen¨ ugend vielen B-Symbolen rechts und links. S → $T # T → T V a |V a T, ∀a ∈ Γ T → q, ∀q ∈ F Endregeln : B-Symbole an den Ra¨ndern lo¨schen, $, # lo¨schen, Symbole V x in Terminalsymbole x u ¨ berf u ¨hren, q0 l¨oschen V B # → #, $V B → $,
#→ε $q0 → ε
V x → x,
x∈Σ
Jede akzeptierende Berechnung f ¨ ur w ∈ Σ∗ kann in eine Ableitung von w transformiert werden. Jede Ableitung eines Wortes x entspricht einer akzeptierenden Berechnung.
3.4 Typ-3-Sprachen (regul¨ are Sprachen) Satz: Typ-3-Sprachen sind genau die regul¨aren Sprachen Beispiel: S → aT |bS T → bT |bS |aS |ε
V = {S, T } Σ = {a, b}
S → aT → abS → abbS → abbaT → abbabT → abbab
∈L(G)
Beweis:
⇐“ Gegeben: DEA (bzw. NEA) A = (Q, Σ, δ , q0, F ) ” Gesucht: Typ-3-Grammatik f u ¨ r L(A) G : V = Q Σ=Σ a q q′
q → aq ′
P = {q → aq′ | q ∈ Q, a ∈ Σ, q′ = δ(q, a)} ∪ {q → ε | q ∈ F } q′ ∈δ(q,a)
S = q0
⇒“ Gegeben: G = (V, Σ, P , S ) ” Gesucht: NEA A mit L(A) = L(G) A : Q = V Σ=Σ δ(q, a) = {q ′ | (q → aq ′ ) ∈ P } F = {q ∈ V | (q → ε) ∈ P } q0 = S Zust¨ande des Automaten entsprechen den Variablen der Grammatik. Berechnungen des Automaten werden durch Ableitungen der Grammatik dargestellt und umgekehrt. L = {0n 1n |n ≥ 0} ist keine Typ-3-Sprache, aber sie ist eine Typ-2-Sprache G: S → 0S 1|ε S → 0S 1 → 00S 11 → 000S 111 → 000111
33
KAPITEL 3. GRAMMATIKEN
3.5 Typ-1-Sprachen (kontextsensitive Sprachen) Bei alle Regeln ist die Konklusion mindestens so lang wie die Pr ¨amisse. Ausnahme: S → ε ist erlaubt, S darf jedoch in keiner Konklusion vorkommen.
Folgerung: in einer Ableitung k¨onnen die Satzformen nicht schrumpfen, außer bei der Ableitung S → ε, aber diese Ableitung ist in einem Schritt zu Ende. Beispiel: V = {S,T,U,W,V 0 , V 1 } Σ = {0, 1} S → ε|V 0 T V 1 V 0 |010 T → V 0 V 1 U
U V 1 → V 1 U V 1 → 1
V 0 → 0
U V 0 → W V 0 V 0 |00 V 1 W → W V 1
V 1 W → W V 1
V 0 W → V 0 T
U 1 → 1U
U V 1 → V 1 U
∗
S → 0T 10 → 001U 10 ∗
→ 0011U 0 → 0011W 00 ∗
→ 00W 1100 → 00T 1100 ∗
∗
→ 000W 111000 → 00001111U 000 → 000011110000 L(G) = {0n 1n 0n | n ≥ 0}
Bemerkung: Man kann die Regeln einer kontextsensitiven Grammatik in die Form bringen, dass immer nur eine einzelne Variable durch etwas Neues ersetzt wird. z. B.
ABA C
Kontext
Beispiel: Regel ABC → BAD wird ersetzt durch:
A
→ ABAA01DA
Kontext
neue Variablen X 1 , X 2 , X 3 ,...
ABC → X 1 BC X 1 BC → X 1 X 2 C X 1 X 2 C → X 1 X 2 X 3
X 1 X 2 X 3 → BX 2 X 3 BX 2 X 3 → BAX 3 BAX 3 → BAD
Satz: Typ-1Sprachen sind entscheidbar. Beweis: G... Gramatik, x ∈ Σ∗ Frage: x ∈ L(G) (auch bekannt als das Wortproblem) Wenn x = ε x ∈ L(G) ⇔ (S → ε) ∈ P Andernfalls k¨onnen in der Ableitung von x nur Satzformen auftreten, die h¨ochstend so lang wie x. ∗
M = {y ∈ (V ∪ Σ)∗ | |y | ≤ |x|, S → y, y = ε} M kann folgendermaßen induktiv konstruiert werden: B e g in n e m i t M := {S } Schl eife : ∀y ∈ M : ∀z ∈ (V ∪ Σ∗ ): y → z, |z | ≤ | x| . M := M ∪ {z } w i e d er h o l e , s o l a n g e n eu e E le me nt e z u M dazugekommen si nd . |x|
|M | ≤
(|Σ| + |V |)i endlich. Daher muss die Schleife irgendwann terminieren
i=1
x ∈ L(G) ⇔ x ∈ M
34
4 Kontextfreie Sprachen (Typ-2-Sprachen) 4.1 Tiefenstruktur von Sprachen Das Wetter war gestern regnerisch. Satz
Subjektgruppe
Pr¨adikatgruppe
Nominalgruppe
Artikel
Hauptwort
Verb
Adverb
Pr¨adikat
war“ ”
gestern“ ”
Adjektiv
das“ Wetter“ regnerisch“ ” ” ” Bei einer kontextfreien Grammatik wird bei der Syntaxanalyse ein solcher Syntax-Baum“ aufgebaut. ” Gestern hat | es | geregnet.
Subjekt
(Im Deutschen kann das Pr¨adikat zerlegt werden ⇒ Analyse kann sehr schwer sein!)
4.2 Dyck-Sprache S → SS | (S ) | ε
D1
∗
S → SS → (S )S → (SS )S → ((S )S )S → (()S )S → (()(S ))S → (()())S → (()())((S )) → (()())(()) ∈ D1 ())(() ∈ / D1 Klammertiefe: Dyck-Weg
(
(
)
(
)
)
(
(
)
)
Definition: Der Weg mit n Schritten nach oben ր und n Schritten nach unten ց, der oberhalb der x-Achse bleibt wird Dyck-Weg genannt.
35
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
S → SS | (S ) | [S ] | ε
D2
⇒ ([()()])[] ∈ D2 Dk ... k verschiedene Klammerpaare. L = {x ∈ { a, b}∗ | x enth¨alt gleich viele as wie bs}
a a
a
b
a
b
a
b a
b b
b
a b
S → SS |ε|aP b|bN a P → P P |aP b|ε N → N N |bNa|ε P... positive“ Dyck-Wo¨rter (= a, ) = b ” N... negative“ Dyck-W¨orter ) = a, (= b ”
4.3 Kontextfreie Grammtiken als Gleichungssysteme Man kann eine kontextfreie Grammatik auch als Gleichungssystem, dessen L ¨osungen unbekannte Sprachen sind interpretieren V S = V S · V S ∪ {ε} ∪ a · V p · b ∪ b · V n · a V P = V P · V P ∪ a · V P · b ∪ {ε} V N = V N · V N ∪ b · V N · a ∪ {ε} V S , V P , V N sind unbekannte“ Sprachen. ” ∗
V S = {x ∈ Σ∗ | S → x} = L ∗
V P = {x ∈ Σ∗ | P → x} ∗
V N = {x ∈ Σ∗ | N → x} sind eine L¨osung des Gleichungssystems (nicht unbedingt eindeutig). S S (
S )
S
S (
S ε
36
)
(
(
S
)
S
(
S
)
S
)
ε
ε
4.4. EINDEUTIGKEIT ∗
Rechtsableitung: S → SS → S (S ) → S ((S )) → S (()) → (S )(()) → (SS )(()) → (()())(()) entspricht der bottom-up-Syntaxanalyse ∗
Linksableitung: S → SS → (S )S → (SS )S → ((S )S )S → (()S )S → (()(S ))S → (()())S → (()())((S )) → (()())(()) entspricht der top-down-Syntaxanalyse Die Beliebigkeit bei der Auswahl, welche Variable be einer Ableitung als n ¨achstes ersetzt wird, kann auf drei Arten aus der Welt geschafft werden: 1. Linksableitung: Es wird immer die linkeste Variable ersetzt 2. Rechtsableitung: Es wird immer die rechteste Variable ersetzt 3. Syntaxbaum: Wurzel = S , Kinder einses Variablenknotens sind die Symbole auf der rechten Seite einer Regel in der passenden Reihenfolge, Bl¨atter sind Terminalsymbole, dargestelltes Wort wird durch die Folge der Bl¨atter gegeben. ()()() kann durch 2 verschiedene Syntaxb¨aume / Linksableitungen / Rechtsableitungen dargestellt werden. S S (
S
S
)
S
ε
(
S
S )
(
ε
ε
S
S
S
S (
)
S
)
S
(
ε
S
(
S
S
)
ε
)
ε
anders arithmetische Ausdru ¨ cke (am Beispiel 3 − 5 + 5): S
3
S
+
-
4
S
5
¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨
3
-
S
4
+
5
4.4 Eindeutigkeit Definition: Eine kontextfreie Sprache ist eindeutig , wenn jedes Wort eine eindeutige Linksableitung / eine eideutige Rechtsableitung / einen eindeutigen Syntaxbaum hat. Beispiel: S → if B then S | if B then S else S | while ... | ... if B1 then (if B2 then )S 1 else S 2 if B1 then (if B2 then S 1 else S 2 )
Grammatik nicht eindeutig!
37
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
A... bedingte Anweisung, die noch auf else“ wartet. ” T... bbeliebige Anweisung, inklusive einer bedingten Anweisung mit else-Klausel, die abgeschlossen ist S → A|T A → if B then S | if B then T else A T → if B then T else T | while ... | andere Anweisungen... a¨quivalente Grammatik, die eindeutig ist. S → S + S |S − S |Z S → Z |S + Z |S − Z
(mehrdeutig) (eindeutig)
Es gibt Sprachen, f u ¨ r die es keine eindeutige Grammatik gibt:
{0i 1j 01k | i = j ∨ j = k } = {0n1n }0∗ ∪ 0∗ {1n0n } 0n 1n 0n sind in beiden Teilsprachen“ enthalten. ” Solche Sprachen heißen inh ¨arent mehrdeutig .
4.5 Chomsky-Normalform Definition: Eine kontextfreie Grammatik ist in Chomsky-Normalform (CNF), wenn jede Regel lediglich folgende Gestalt haben: 1. A → BC, 2. A → b,
A, B, C ∈ V A ∈ V, b ∈ Σ
Ausnahme: Die Regel S → ε ist erlaubt, aber S darf nie auf der rechten Seite einer Regel vorkommen. Satz: Zu jeder kontextfreien Grammatik G gibt es eine Grammatik G′ in CNF mit L(G′ ) = L(G) − {ε} 1. Elimination von Terminalsymbolen auf der rechten Seite: • Fu ¨ hre f u ¨ r jedes a ∈ Σ eine neue Variable V a ein. • Ersetze a durch V a auf allen rechten Seiten • Fu ¨ ge Regeln V a → a hinzu.
Beispiel: S → (S )...
S → V ( SV ) V ( → ( V ) →)
2. Zerlegung von Regeln mit mehr als 2 Variablen auf der rechten Seite • Einf u ¨ hren von zus¨atzlichen Zwischenvariablen in mehreren Schritten
Beispiel: A → BAAS...
A → BSV 1 V 1 → AV 2 V 2 → AS
3. Elimination von ε-Regeln ∗ Konstruiere die Menge M aller Variablen A ∈ V , f u ur jede Regel, die eine Variable ¨ r die A → ε. F¨ aus M auf der rechten Seite enth¨alt, erstelle eine neue Regel, in der ein Vorkommen dieser Variablen gestrichen wird.
38
4.5. CHOMSKY-NORMALFORM
Beispiel: M := {V, U, A} f u ¨r U → V W | V | W | ε V → W | V V | ε | V A → U | V V | ε | V (B → AU BV | ABV | AU B | AB | BV | U B | B)
↓
↓
ε
ε
U → V W U → W ∗ • M wird initialisiert mit den Variablen A f u ¨ r die es eine Regel A → ε gibt. ∗ • Durch das Aufstellen neuer verk¨urzter Regeln k¨onnen neue Regeln der Form A → ε entstehen. • Die entsprechende Variablen werden dann zu M hinzugef u ¨gt. ′ • Erstelle f u ¨r jede Variable A aus M eine neue Variable A . • Auf der rechten Seite aller Regeln wird wird jede diese Variablen A durch A′ ersetzt. • Die Regeln f u ¨ r A’ sind dieselben wie f u ¨r A, nur die ε-Regel wird gestrichen. Am Beispiel: U → V ′ W ′ | V ′ | W ′ | ε U ′ → V ′ W ′ | V ′ | W ′ V → W ′ | V ′ V ′ | V ′ | ε V ′ → W ′ | V ′ V ′ | V ′ .. . ur alle A ∈ M gilt Behauptung: F¨ LA′ = LA − {ε}
∗
(LX = {s ∈ Σ∗ | X → s})
∗
= ε Betrachte die rechte Seite der ersten Regel dieser Ableitung. Begru ¨ndung: X → S, S X → Y Z : Eventuell wird Y oder Z in der Ableitung zu ε gemacht; In diesem Fall entha¨lt die neue Grammatik eine Regel X ′ → Y ′ oder X ′ → Z ′ , wo das bereits ber u ¨ cksichtigt ist. Fu ¨ r die n¨achsten Ableitungsschritte geht man genauso vor. Lasse die Regeln f u ¨ r die urspru ¨nglichen Variablen A ∈ M weg, außer f u ¨r S . Falls S ∈ M ist, f u ¨ge ′ daf u ¨ r die Regeln S → ε, S → S ein 4. Elimination von K → L
• F¨ur jede Regel der Form A → BC,A → x ∈ Σ berechne die Variablenmenge ∗
V A = {X ∈ V | X → A}.
• Erstelle neue Regeln X → BC bzw. X → x f u ¨ r alle X ∈ V A . Anschließend entferne alle Regeln der Form A • → B. Beispiel: Angenommen f u ¨ r alle Regeln K → L ergeben folgenden Zusammenhang:
A
B
D
C
E
In einer Ableitung kann eine Kette von Anwendungen derartiger REgeln vorkommen. A → B → C → A → B → B → C → A → B → C → D
AB a
(U V A U U → U V B U U → ........ → U V D U U ) B →V A
39
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
D → AB V D = {A,B,C,D,E } A → AB,B → AB,C → AB, (D → AB), E → AB Die Menge V A k¨onnen durch umgekehrte Graphensuche bestimmt werden: Suche alle Variablen X , von denen aus A erreichbar ist.
Folgerung: Typ-2-Sprachen sind Typ-1-Sprachen. Grund: CNF-Grammatik erf u ¨llt die Forderungen von Typ-1-Grammatiken
4.6 Algorithus von CYK“ ” Der CYK-Algorithmus ( Cocke, Kasami, Younger) wird zur Lo¨sung des Wortproblems f u ¨ r kontextfreie Sprachen in CNF angewandt. (basiert auf dem Prinzip dynamischer Programmierung)
Eingabe: s = s1 s2 ...sn ∈ Σ∗ . Ist s ∈ L(G) ∗
V ij := {X ∈ V | X → si si+1 ...sj }
(1 ≤ i ≤ j ≤ n)... Teilprobleme s1 s2 ... si ...sj ...sn s ∈ L(G) ⇔ s ∈ V 1n
Berechne Mengen V ij induktiv, nach L¨ange j − i + 1 der Teilkette si ...sj . A → BC... → si si+1 ...sk |sk+1 ...sj
V ii = {X | (X → si ) ∈ P } V ij = {X | ∃(X → BC ) ∈ P, ∃k: i ≤ k ≤ j: B ∈ V ik ∧ C ∈ V k+1,j } vorher berechnet
Beispiele: Gegeben sei folgende Grammatik in CNF: Σ = {0, 1, +} S → 0 | SP P → MS | + M → 0 | 1 | P P Ist das Wort s = 0 + 1 + 0 = s1 s2 s3 s4 s5 in der Sprache L(G)? i, j
1
2
3
4
5
1 2 3 4 5
M, S
S P
− −
− − −
− − − −
M
P
M, S
⇒ 0 + 1 + 0 ist nicht in der Sprache L(G). V 12 = {S } V 13 = ∅
40
oder
k=2
oder V 11 = {M, S }
V 22 = {P }
oder
k=1 k=2
V 11 = {M, S } oder V 12 = {S }
V 23 = ∅ V 33 = {M }
4.7. (ERWEITERTE) BACKUS-NAUR-FORM (E)BNF
S S
P
S
P
0
+
M
S
P
P
+
+
0
s=0+++0 i, j
1
2
3
4
5
1
M, S
S
S
S
S
P
M
−
M
P
M
P
P
−
2
0
3
+
4
+
5
+
M, S 0
i < j: V ij =
{X | ∃(X → BC ) ∈ P : B ∈ V ik ∧ C ∈ V k+1,j }
k=i,i+1,...,j −1
ussen h¨ochstens n2 Mengen V ij berechnet werden. Jede Berechnung ist eine Schleife u Laufzeit: Es m¨ ¨ber h¨ochstens n Werte k. ⇒ O(n3 )
4.7 (Erweiterte) Backus-Naur-Form (E)BNF Beispiel: (hypothetische) Grammatik eines Ausschnitts einer Programmiersprache
arithmetischer Ausdruck ::= Term {AdditionsoperatorTerm} ↑ Variable der Grammatik →
Additonsoperator ::=
|
+
−
Terminalsymbol oder“ Terminalsymbol ”
Term ::= Faktor {MultiplikationsoperatorFaktor} Multiplikationsoperator ::= ∗ | / Faktor ::= Zahl | Variable | (Arithmetischer Ausdruck | Funltionsaufruf ) Funktionsaufruf ::= Name() | Name (Argumentliste) Argumentliste ::= Argument {, Argument} | { } [ ]
::=
Metasymbole
{...} beliebig viele Wiederholungen (auch 0) des Inhalts [...] Optional. Der Inhalt kann auch weggelassen werden.
41
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
¨ in eine kontextfreie Grammatik aufgel¨ost werden, durch Einf u { } [ ] m¨ussen bei der Ubersetzung ¨ hren von neuen Variablen und zus¨atzlichen Regeln.
{abc} ↔ (abc)∗ [abc] ↔ (abc + ε)
als regul¨ arer Ausdruck
|↔ +
4.8 Pumping-Lemma f u ¨r kontextfreie Sprachen Fu ¨r jede kontextfreie Sprache L gibt es eine Schranke n0 ∈ N.
=ε ∀x ∈ L: |x| ≥ n0 ∃y , z , u , v , w ∈ Σ∗ : x = yzuvw ∈ L ∧ (∀i ≥ 0)yz i uv i w ∈ L ∧ z, v z
v
Beispiel: L = {0n 1n | n ∈ N} Annahme: L sein kontextfrei ⇒ n0 x = 0 n0 1n0 0n0 = yzuvw
Fall 1: z enth¨alt sowohl 0 als auch 1. ¨ z 2 , z 3 ,...enth¨alt mehr Uberg¨ ange zwischen 0 und 1 als z ¨ ⇒yz 2 uv 2 w enth¨alt mehr als 2 Uberg ¨ange /L ⇒yz 2 uv 2 w ∈
Fall 2: v enth¨alt 0 und 1 analog. Also ist z und v jeweils in einem der drei Bl¨ocke 0n0 , 1n0 , 0n0 enthalten. yz i uv i w...mindestens ein Block ¨andert seine L¨ange, mindestens ein Block ¨andert seine L¨ange nicht. / L f u =1 ⇒yz i uv i w ∈ ¨r i
⇒ L ist nicht kontextfrei Beweis: Sei L(G), G in CNF Ein Ableitungsbaum f u ¨r x mit |x| = n hat n − 1 innere Knoten A mit je zwei Kindern. Der Ableitungsbaum ist ein bin¨arer Baum Wenn jeder Weg von der Wurzel zu einem Knoten, aus dem ein Terminalsymbol entsteht, ≤ h Variablenknoten entha¨lt, dann |x| ≤ 2h−1
1
S
2
42
X
3
X
4
a
X X
X
X
0
1
X
X
b
c
4.9. ABSCHLUSSEIGENSCHAFTEN KONTEXTFREIER SPRACHEN
Wenn |x| > 2h−2 , dann gibt es einen Weg von der Wurzel, der h Variablenknoten enth¨alt h := |V | + 1
→ Dieser Weg muss eine Variable A mehrfach enthalten. S
A
n := 2|V |−1 + 1 funktioniert Die beiden Teilb¨a ume, die unter diesen beiden Knoten h¨angen heißen T 1 und T 2
T 1
T 2 ⊂ T 1 A
y
z
u
T 2
v
w ∗
S → yAw ∗
T 1 : A → zAv
(zv = ε)
∗
T 2 : A → u
∗
∗
∗
S → yAw →yzAvw → yzuvw beliebig oft wiederholen ∗
∗
S → yAw → yuw (= yz 0uv 0 w) (i=0) ∗
∗
∗
∗
∗
S → yAw → yzAvw → yzzAvvw → yz i Avi w → yz i uv i w
(i≥1)
Folgerung: Die Chomsky-Hierarchie ist echt: L0 , L1 , L2 , L3 seien die Typ-0-Sprachen, Typ-1-Sprachen, ...
L3 ⊂ L2 ⊂ L1 ⊂ L0 = kontextfrei = kontextsensitiv = rekursiv aufz¨ regul¨ ar ahlbar L= {0n 1n }
L= {0n 1n 0n }
⊂ entscheidbare Sprachen
Halteproblem
4.9 Abschlusseigenschaften kontextfreier Sprachen Satz: Kontextfreie Sprachen sind abgeschlossen bez u ¨glich ∪, ·, ∗ Kontextfreie Sprachen sind nicht abgeschlossen bez u ¨glich ∩ und Komplement Beweis: L1 = {0n 1n 0m | m, n ∈ N}, L1 = {0n 1m 0m | m, n ∈ N} L1 ∩ L2 = {0n 1n 0n | b ∈ N} nicht kontextfrei. L1 ∩ L2 = L1 ∪ L2 (de-Morgan) Wenn kontextfreie Sprachen abgeschlossen bez¨ uglich Komplement w¨aren, dann w¨are sie auch abgeschlossen bezu glich ∩ ¨ Das Komplement von {0n 1n 0n } ist kontextsensitiv.
43
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
4.10 Entscheidungsprobleme kontextfreier Sprachen Seien G1 , G2 kontextfreie Grammatiken
• • • • • • • •
L(G1 ) = 0? L(G1 ) = 0? Ist L(G1 ) regul¨a r? L(G1 ) = Σ∗ ? L(G1 ) = L(G2 )? L(G1 ) ⊆ L(G2 )? L(G1 ) ∩ L(G2 ) = ∅? L(G1 ) = ∅?
entscheidbar entscheidbar unentscheidbar unentscheidbar unentscheidbar unentscheidbar unentscheidbar
(ohne Beweis) (ohne Beweis) (ohne Beweis) ¨ (s. Ubung 11)
Wir nehmen an, dass G1 in CNF vorliegt. uberfl ussig Definition: Eine Variable heißt ¨ ¨ , wenn sie in keiner Ableitung eines Wortes ∈ Σ∗ vorkommt.
2 Gr¨ unde: 1. S → AB → ABA → ... von S nicht ereichbar. 2. Aus der Variable l¨asst sich kein Terminalwert erzeugen. Beispiel: A → AB (einzige Regel f u ¨ r A)
• Menge M : Initialisiere M := {A ∈ V | (A → x) ∈ P } • Wenn ses eine Regel A → BC mit B, C ∈ M gibt, dann setzte M := M ∪ {A}. • Wiederhole, bis keine neuen Varaiblen mehr in M aufgenommen werden. Variablen in M = V − M sind u ¨berflu ¨ ssig aus dem zweiten Grund. • Entferne die Variablen in M und alle Reglen, die M enthalten aus der Grammatik. ¨ S → ¨ AC
(A ∈ M )
M 2 := Menge der Variablen, die von S aus erreichbar sind.
• • • •
Initialisiere M 2 := {S } Wenn es eine Regel A → BC mit A ∈ M 2 gibt, dann setze M 2 = M 2 ∪ {B, C }. Wiederhole, bis M 3 sich stabilisiert. ¨ Streiche Variablen in V − M 2 . Das Ergebnis ist eine Grammatik ohne Uberfl¨ ussige Variablen.
4.11 Kellerautomaten Typ-0-Sprachen (Typ-1-Sprachen Typ-2-Sprachen Typ-3-Sprachen
⇐⇒ ∼ ⇐⇒ ⇐⇒
Turingmaschinen Turingmaschinen mit linearem Platzbedarf) Kellerautomaten
endliche Automaten
Linksableitung: S → ABC → bAABC → bbAAABC → bbAABC → bb B BSBC
Terminalsymbole des endgu ¨ ltigen Wortes
aktuelle Variable
zuku ¨nftige Variablen“ ”
¨ D. h. Anderung nur am Anfang, den nur das erste Variablensymbol wird durch etwas anderes ersetzt.
44
4.11. KELLERAUTOMATEN
Definition: Ein (nichtdeterministischer) Kellerautomat (Push-down automaton, PDA) hat
• • • • • •
ein Eingabealphabet Σ eine Zustandsmenge Q ein Kelleralphabet Γ ein Bodensymbol Z 0 ∈ Γ einen Anfangszustand q0 ∈ Q ∗ ¨ eine Ubergangsrelation δ: Q × (Σ ∪ {ε}) × Γ → 2Q×Γ
(q′ , z) ∈ δ(q,a,γ ) bedeutet: Wenn der PDA im Zustand q ist, as obere Kellersymbol γ ist, und er den Buchstaben a liest (bzw. nichts liest, falls a = ε ist), dann kann er in den Zustand q′ wechseln und die Spitze des Kellers durch z ersetzen (z = ε: Das oberste Symbol γ wird gel¨oscht). Es gibt zwei Arten von Kellerautomaten: a) solche, die mit leerem Keller akzeptieren. b) solche, die durch eine Menge F ⊆ Q von akzeptierenden Zust¨anden akzeptieren
Beispiel: L = {w#wR | w ∈ { 0, 1}} Σ = {0, 1, #} Γ = {0, 1, Z 0} a) Q = {q0 , q1 } b) Q = {q0 , q1 , q2 } mit F = {q2 } δ(q0 , 0, Z 0 ) = {(q0 , 0Z 0 )} δ(q0 , 1, Z 0 ) = {(q0 , 1Z 0 )} δ(q0 , 0, 0) = {(q0 , 00)} δ(q0 , 0, 1) = {(q0 , 01)} δ(q0 , 1, 0) = {(q0 , 10)} δ(q0 , 1, 1) = {(q0 , 11)} δ(q0 , #, 1) = {(q1 , 1)}
δ(q1 , 0, 0) = {q1 , ε} δ(q1 , 1, 1) = {q1 , ε} a)δ(q1 , ε , Z0 ){q1 , ε} a)δ(q1 , ε , Z0 ){q2 , Z 0 } δ(q1 , 0, 1) = ∅ .. . usw.
δ(q0 , #, 0) = {(q1 , 0)} δ(q0 , #, Z 0 ) = {(q1 , Z 0)}
Definition: Eine Konfiguration eines Kellerautomaten ist ein Tripel (q, w1 ...wm , z) mit
• q ∈ Q... augenblicklicher Zustand, • w1 ...wn ∈ Σ∗ ... noch nicht gelesener Teil des Eingabewortes und • z ∈ Γ∗ ... Inhalt des Stapels (Spitze ist links.) Beispiel: (a) ⊢ (q1 , ε , ε) (q0 , 01#10, Z 0 ) ⊢ (q0 , 1#10, 0Z 0 ) ⊢ (q0 , #10, 10Z 0 ) ⊢ (q1 , 10, 10Z 0 ) ⊢ (q1 , 0, 0Z 0 ) ⊢ (q1 , ε , Z0 ) (b) ⊢ (q2 , ε , Z0 ) Nachfolgerelation ⊢ f u ¨r Konfiguration (q, w1 w2 ...wn , z1 ...zk ) ⊢ (q′ , w2 ...wn , zz 2 ...zk )
falls (q′ , z) ∈ δ(q, w1 , z1 ), w1 ∈ Σ
(q, w1 w2 ...wn , z1 ...zk ) ⊢ (q′ , w1 ...wn , zz 2 ...zk )
falls (q′ , z) ∈ δ(q,ε,z1 )
∗
⊢ ... transitive reflexive Hu ¨lle von ⊢
45
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
Die vom PDA M akzeptierte Sprache ist: ∗
a) L(M ) = {x ∈ Σ∗ : (q0 , x , Z0 ) ⊢ (q′ , ε , ε), q ′ ∈ Q} ∗
b) L(M ) = {x ∈ Σ∗ : (q0 , x , Z0 ) ⊢ (q′ , ε , z), q′ ∈ F, z ∈ Γ∗ }
Definition: Ein PDA ist ein deterministischer Kellerautomat (DPDA) wenn:
∀q ∈ Q, γ ∈ Γ, a ∈ Σ: |δ(q,a,γ )| + |δ(q,ε,γ )| ≤ 1 (Dann gibt es zu jeder Konfiguration h¨ochstens eine Nachfolgekonfiguration.) D. h. unser obiges Beispiel ist eigentlich ein DPDA
Beispiel: L2 = {ww R | w ∈ { 0, 1}∗} Σ = {0, 1} Γ = {0, 1, Z 0} δ(q0 , w , γ ) wie oben (w ∈ { 0, 1}) δ(q0 , ε , γ ) = {(q1 , γ )} f u ¨r γ ∈ { 0, 1, Z 0} δ(q1 ,...) wie oben. (q0 , 0110, Z 0) ⊢ (q0 , 110, 0Z 0) ⊢ (q0 , 10, 10Z 0) ⊢ (q1 , 10, 10Z 0) ⊢ ...weiter wie bisher ⊢ (q0 , 0110, Z 0) ⊢ (q0 , 110, 0Z 0) ⊢ (q1 , 110, 0Z 0 ) STOP.
Satz: Die PDAs, die nach (a) und nach (b) akzeptieren, akzeptieren dieselbe Klasse von Sprachen. Beweis:
⇒“ Seien M = (Q, Σ, Γ, q0 , Z 0 , δ) ein PDA, der mit leerm Keller akzeptiert, und ” ′ M = (Q ∪ {qF , q0′ }, Σ, Γ ∪ {Z 0′ }, q0′ , Z 0′ , δ′ , F = {qF }) ein PDA, der nach b) akzeptiert δ ′ (q0′ , ε , Z0′ ) = {(q0 , Z 0 Z 0′ )}
δ′ (q,ε,Z 0′ ) = {(qF , ε)}
¨ • Alle Uberg ¨ange von δ werden u ¨bernommen. ′ • M f u ¨ gt ein zus¨atzliches Kellersymbol Z 0′ als unterstes ein.
⇐“ M = (Q, Σ, Γ, q0 , Z 0 , δ , F ) sei ein Automat, der nach b) akzeptiert ” neuer Automat M ′ : • f u ¨ gt ein zusa¨tzliches unterestes Kellersymbol ein. Wenn M in einem akzeptierenden Zustand u ¨ bergehen, wo der Keller geleert wird, ohne die Eingabe gelesen wird. • Das zus¨atzliche Kellersymbol stellt sicher, dass M ′ nicht nur deshalb akzeptiert, weil M den Keller leert.
Satz: Die kontextfreien Sprachen sind genau die Sprachen, die von Kellerautomaten akzeptiert werden. Beweis:
⇒“ ” • • •
Wir nehmen an, die Grammatik ist in CNF. Σ, Γ = V, Z 0 = S, {q0 }, Automat akzeptiert mit leerem Keller. Fu ¨ r jede Regel A → B1 B2 ...Bk f u ¨ ge (q0 , B1 ...Bk ) ∈ δ(q0 , ǫ , A) ein. Fu ¨ r jede Regel A → u ∈ Σ f u ¨ ge (q0 , ε) ∈ δ(q0 , u , A) ein. δ(q0 , ε , A) := {(q0 , B1 ...Bk ) | (A → B1 ...Bk ∈ V ∗ ) ∈ P } δ(q0 , u , A) := {(q0 , ε) | (A → u) ∈ P }, u ∈ Σ
Der Kellerautomat kann nun genau die Linksableitung der Grammatik nachbilden. S → ABC → uBC → uAAC → uAC → uvC → uvBC → uvuC → uvuv
(q0 ,uvuv,S ) ⊢ (q0 ,uvuv,ABC ) ⊢ (q0 ,vuv,BC ) ⊢ (q0 ,vuv,AAC ) ⊢ ...
⇐“ Gegeben: Kellerautomat, akzeptiert durch F ⊆ Q von akzeptierenden Zust¨anden. ” Gesucht: Grammatik G. V = Q × Γ × Q ∪ {S } Variablen haben die Form (q,Z,q ′ ) Tripelkonstruktion“ ”
46
4.11. KELLERAUTOMATEN ∗
Idee: S → w1 w2 ...wk (q1 , Z 1 , q2 )(q2 , Z 2 , q3 )(q3 , Z 3 , q4 )...(ql , Z l , ql+1 )
das soll folgende Rechnung widerspiegeln ∗
(q0 , w1 ...wn , Z 0 ) ⊢ (q1 , wk+1 ...wn , Z 1 Z 2 ...Z l )
(die ersten k Symbole sind gelesen.)
• qi>1 ist der Zustand, der in der weiteren Rechnung angenommen wird, sobald Z i als oberstes Startsymbol erscheint. • q2 , q3 ,... werden geraten. ur alle (q′ , z ′ ) ∈ δ(q,a,z) mit |z ′ | ≥ 1, Z ′ = z1z2 ...zl Regeln: F¨ (q,z, q¯) → a(q′ , z1 , q1 )(q1 , z2 , q2 )...(ql−1 , zl , q¯),
∀q1 , q2 ,...,ql−1 , q¯
(a ∈ Σ ∪ {ε})
Fu ¨ r alle (q ′ , ε) ∈ δ(q,a,z) (q , z , q′ ) → a ∗
∗
Behauptung: (q,Z,q ′ ) → w ∈ Σ∗ ⇔ (q,w,Z ) ⊢ (q′ , ε , ε) Der Automat hat w gelesen und sieht das erste Mal, was unter Z auf dem Stapel ist. Beweis durch Induktion nach der La¨nge der Ableitung bzw. nach der L a¨nge der Rechnung. Q = {q0 , q1 } Beispiel: L = {ww T | w ∈ { 0, 1}∗ } δ(q0 , x , z) = {(q0 , xz)}, x ∈ { 0, 1}, z ∈ { 0, 1, z0} δ(q0 , ε , z) = {(q1 , z)} δ(q1 , x , x) = {(q1 , ε)}, x ∈ { x ∈ { 0, 1}}
(1) (2) (3)
δ(q1 , ε , z0 ) = {(q1 , ε)} Also werden die folgenden Produktionen gebildet (1) am Beispiel δ(q0 , 0, Z 0 ) = {(q0 , 0Z 0 )} (q0 , Z 0 , q0 ) → 0(q0 , 0, q0)(q0 , Z 0 , q0 ) (q0 , Z 0 , q0 ) → 0(q0 , 0, q1)(q1 , Z 0 , q0 )
−→ (q0 , Z 0 , q1 ) → 0(q0 , 0, q0)(q0 , Z 0 , q1 ) −→ (q0 , Z 0 , q1 ) → 0(q0 , 0, q1)(q1 , Z 0 , q1 ) (2) am Beispiel δ(q0 , ε, 0) = {(q1 , 0)} (q0 , 0, q0 ) → (q1 , 0, q0 ) (q0 , 0, q1 ) → (q1 , 0, q1 ) (3) am Beispiel δ(q0 , ε, 0) = {(q1 , 0)} (q1 , 1, q1 ) → 1 (q0 , 0110, Z 0) ⊢ (q0 , 110, 0Z 0) ⊢ (q0 , 10, 10Z 0) ⊢ (q1 , 10, 10Z 0) ⊢ (q1 , 0, 0Z 0) ⊢ (q1 , ε , Z0 ) ⊢ (q1 , ε , ε) S → (q0 , Z 0, q1 ) → 0(q0 , 0, q1 )(q1 , Z 0 , q1 ) → 01(q0 , 1, q1 )(q1 , 0, q1 )(q1 , Z 0 , q1 ) → 01(q1 , 1, q1)(q1 , 0, q1 )(q1 , Z 0, q1 ) → 011(q1 , 0, q1 )(q1 , Z 0, q1 ) → 0110(q1 , Z 0, q1 ) → 0110 Annahme: Automat akzeptiert durch leeren Keller
Startregeln: S → (q0 , Z 0 , q¯) f u ¨ r alle q¯ ∈ Q Aus der Behauptung folgt: L(G) = L(M ) ∗
∗
Beh.
∗
w ∈ L(G) ⇔ S w⇔ ∃ q¯: (q0 , Z 0 , q¯) → w ⇐⇒ ∃q¯: (q0 , w , Z0 ) ⊢ (¯ q ,ε,ε) ⇔ w ∈ L(M )
47
KAPITEL 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN)
4.12 Abschlusseigenschaften kontextfreier Sprachen gegenu aren ¨ber regul¨ Sprachen Satz: Die kontextfreien Sprachen sind abgeschlossen gegen u ¨ ber dem Durchschnitt mit regula¨ren Sprachen. Bew.: M 1 sei ein PDA f u ¨ r die kontextfreie Sprache L1 , der durch akzeptierende Zust a¨nde akzeptiert. A2 sei ein DEA f u ¨ r L2 .
• PDA: M mit Q = Q1 × Q2 δ((q1 , q2 ), ε , Z ) := {((q ′ , q2 ), z ′ ) : (q′ , z ′ ) ∈ δ1 (q1 , ε , Z ) } δ((q1 , q2 ), a , Z ) := {((q ′ , δ2 (q2 , a)), z ′ : (q′ , z ′ ) ∈ δ1 (q1 , a , Z ) )}
a∈Σ
q0 = (q01 , q02 ) F = F 1 × F 2 Produkt der Automaten: Der neue Kellerautomat M simuliert M 1 und A2 gleichzeitig: ” L(M )) = L(M 1 ) ∩ L(A2 )
4.13 Deterministische kontextfreie Sprachen Definition: Eine deterministische kontextfreie Sprache ist eine Sprache, die von einem deterministischen Kellerautomaten mit einer akzeptierenden Zustandsmenge akzeptriert werden. Beispiele: • {0n#1n | n ∈ N} ist deterministisch kontextfrei • {w#wR | w ∈ Σ∗ } ist deterministisch kontextfrei • {wwR | w ∈ { 0, 1}∗} ist kontextfrei, aber nicht deterministisch kontextfrei Bemerkung: Deterministisch kontextfreie Sprachen sind abgeschlossen unter Komplement, aber nicht unter Umkehrung.
4.14 Deterministische Zweiwege-Kellerautomaten
⇐⇒
K 1
K 1
K 2
K 2
Kellerautomaten mit zwei Kellern, sind genauso ma¨chtig wie Turingmaschinen. Deterministische Zweiwege-Kellerautomaten k¨onnen auf dem Eingabeband beliebig nach links uder nach rechts fahren. δ(q,a,z) = (q′ , Z 1 Z 2 ...Z k , b), a ∈ Σ ∪ {%, $}, b ∈ { 0, +1, −1}: Bewegung des Kopfes Die Eingabe ist durch % und $ auf dem Eingabeband begrenzt. %w1 w2 ...wn $ Lesekopf
48
Ausgangskonfiguration
4.14. DETERMINISTISCHE ZWEIWEGE-KELLERAUTOMATEN
4.14.1 Teilwortproblem Eingabe: x#y Frage: Kommt das Muster x im Text y vor? L = {x#uxv | x,u,v ∈ (Σ0 )∗ } %
x
#
$
..
.
• Kopiere y auf den Stapel, von rechts nach links • Fahre zur ersten Position von x • (A) Vergleiche die Symbole von x mit dem Sybol auf dem Stapel, die Symbole werden vom Stapel gel o¨scht. • Wenn # gelesen wird → Teilwort vorhanden → akzeptiere • Bei einem Konflikt fahre zur u ¨ ck zum Anfang und f u ¨ lle den Stapel mit den Symbolen von x auf. L¨osche erstes Symbol des Stapels und gehe zu (A).
Satz: Jede Sprache, die von enem deterministischen Zweiwege-Kellerautomaten akzeptiert wird, kann in linearer Zeit von einer Registermaschine (RAM) entschieden werden. Folgerung: Teilwortproblem ist in linearer Zeit l o¨sbar. Beweis: Entladefunktion Eingabe: %w1 ...wn $ ↑
↑
0 1
...
↑
n+1
ent(q,Z,i) = (q′ , j)
q, q ′ ∈ Q, Z ∈ Γ, 0 ≤ i, j ≤ n + 1
Wenn der Automat im Zustand q an Position i ist, und das oberste Stapelsymbol Z ist, dann ist er zu dem Zeitpunkt, wo das darunterliegende Stapelsymbol sichtbar wird, in Zustand q′ und an Position j e n t ( q,Z,i ) i f i n A r b e i t [ q,Z,i ] then STOP ; = 0 then i f ENT[ q,Z,i ] return ENT[ q,Z,i ] i n A r b e i t [ q,Z,i ] := true
// Wort w ir d ni c ht a k z e pt i e r t
.. . (q′ , Z 1 ...Z k , b) := δ(q, wi , Z ) j := i + b for l := 1, 2,...,k (q′ , j) := e n t ( q′ , Z l , j ) ENT[ q,Z,i ] := (q, j) i n A r b e i t [ q,Z,i ] := f a l s e return (q ’ , j )
Idee: Speichere die Werte der Entladefunktion in einem Feld ENT[ q,Z,i] der Gr¨oße O(n) sobald sie berechnet wurden (Initialisiere zu 0). Die Technik heißt Tabellieren (engl. memorization)
Laufzeit: O(n) Jeder Eintrag von ENT wird h¨ochstens einmal berechnet. Problem: Bei rekursiven Aufrufen kann die Laufzeit ∞ sein. W¨ahrend ent(q , z , i) aufgerufen ist, kann ein rekursiver Aufruf mit denselben Parametern (q , z , i) gestartet werden. ⇒ Algorithmus terminiert nicht. ⇒ Kellerautomat terminiert nicht, weil sich die Konfiguration (q , z , i) unendlich oft wiederholt. Der Stapel wird dabei immer weiter wachsen oder konstant bleiben.
49