Grundlagen der Theoretischen Informatik

mitgeschrieben von Martin Lenders
Dieses Dokument vom 6. Juli 2009 steht unter einer Creative Commons BY-NC-ND 3.0 Deutschland Lizenz f¨ r die Seite http://page.mi.fu-berlin.de/mlenders/mitschriften/gti/ u

Inhaltsverzeichnis
1 Turing-Maschine, Berechenbarkeit, Entscheidbarkeit 1.1 Definition der Turing-Maschine . . . . . . . . . . . . . . 1.2 Church’sche These . . . . . . . . . . . . . . . . . . . . . 1.3 Registermaschinen . . . . . . . . . . . . . . . . . . . . . 1.4 Formale Sprachen . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Multiplikation von W¨rtern . . . . . . . . . . . . o 1.4.2 Multiplikation von Sprachen . . . . . . . . . . . . 1.4.3 Potenz von W¨rtern und von Sprachen . . . . . . o 1.5 Konfiguration (Momentaufnahme einer Turingmaschine) 1.6 Turingmaschine mit mehreren B¨ndern . . . . . . . . . . a 1.7 Die universelle Turingmaschine . . . . . . . . . . . . . . 1.8 Unentscheidbarkeit . . . . . . . . . . . . . . . . . . . . . 1.8.1 Universelle Sprache und Diagonalsprache . . . . 1.8.2 Das Halteproblem . . . . . . . . . . . . . . . . . 1.8.3 Reduzierbarkeit von Problemen . . . . . . . . . . 1.8.4 Das Post’sche Korrespondenzproblem (PKP) . . 1.8.5 Andere unentscheidbare Probleme . . . . . . . . 1.8.6 Satz von RICE (1953) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 7 8 8 8 8 9 10 10 10 12 13 13 16 16 17 17 18 20 22 22 23 25 26 27 29 30 31 31 32 32 33 34 35 35 35 36 37 38 40 41 42 43 44 44

2 Regul¨re Sprachen und endliche Automaten a 2.1 Deterministische endliche Automaten . . . . . . . . . . . . . . 2.2 Regul¨re Ausdr¨ cke . . . . . . . . . . . . . . . . . . . . . . . a u 2.3 Nichtdeterministische endliche Automaten . . . . . . . . . . . ¨ 2.4 NEA mit ε-Uberg¨ngen . . . . . . . . . . . . . . . . . . . . . a ¨ 2.4.1 Elimination von ε-Uberg¨ngen . . . . . . . . . . . . . a 2.5 Minimierung deterministischer endlicher Automaten . . . . . 2.5.1 Algorithmus zur Bestimmung des Minimalautomaten: 2.5.2 Satz von Nerode . . . . . . . . . . . . . . . . . . . . . 2.6 Das Pumping-Lemma f¨ r regul¨re Sprachen . . . . . . . . . . u a 2.7 Abschlusseigenschaften regul¨rer Sprachen . . . . . . . . . . . a 2.8 Zusammenfassung: regul¨re Sprachen . . . . . . . . . . . . . . a 3 Grammatiken 3.1 Definition von Grammatiken . . . . . . . . . . . 3.2 Die Chomsky-Hierarchie . . . . . . . . . . . . . . 3.3 Typ-0-Sprachen (rekursiv aufz¨hlbare Sprachen) a 3.4 Typ-3-Sprachen (regul¨re Sprachen) . . . . . . . a 3.5 Typ-1-Sprachen (kontextsensitive Sprachen) . . . 4 Kontextfreie Sprachen (Typ-2-Sprachen) 4.1 Tiefenstruktur von Sprachen . . . . . . . . . . . 4.2 Dyck-Sprache . . . . . . . . . . . . . . . . . . . . 4.3 Kontextfreie Grammtiken als Gleichungssysteme 4.4 Eindeutigkeit . . . . . . . . . . . . . . . . . . . . 4.5 Chomsky-Normalform . . . . . . . . . . . . . . . 4.6 Algorithus von CYK“ . . . . . . . . . . . . . . . ” 4.7 (Erweiterte) Backus-Naur-Form (E)BNF . . . . . 4.8 Pumping-Lemma f¨ r kontextfreie Sprachen . . . u 4.9 Abschlusseigenschaften kontextfreier Sprachen . . 4.10 Entscheidungsprobleme kontextfreier Sprachen . 4.11 Kellerautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

Inhaltsverzeichnis

4.12 Abschlusseigenschaften kontextfreier Sprachen gegen¨ ber regul¨ren Sprachen u a 4.13 Deterministische kontextfreie Sprachen . . . . . . . . . . . . . . . . . . . . . . 4.14 Deterministische Zweiwege-Kellerautomaten . . . . . . . . . . . . . . . . . . . 4.14.1 Teilwortproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

48 48 48 49

4

1 Turing-Maschine, Berechenbarkeit, Entscheidbarkeit
1.1 Definition der Turing-Maschine
Steuerung

Zustand (Programmzähler)

(q, a)

Programm

Schreib−/Lesekopf

(q ′ , a′ , b)
1
X

B

B

B

0

B

B

B

Zweiseitiges, unendliches Band

Eine Turingmaschine wird beschrieben durch: • Ein Eingabealphabet Σ • ein Bandalphabet Γ ⊃ Σ • ein Leerzeichen B ∈ Γ \ Σ • eine endliche Menge Q von Zust¨nden a ¨ • eine Uberf¨ hrungsfunktion δ : Q × Γ → Q × Γ × {−1, 0, 1} u • ein Anfangszustand q0 ∈ Q • (eventuell) eine Menge von akzeptierenden Zust¨nden F ⊆ Q a δ 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 ist m¨glich), das Band wird um b verschoben und die o Maschine geht in den Zustand q ′ • Die Eingabe ist eine Folge von Symbolen aus Σ (ein Wort uber Σ). Sie steht am Anfang auf dem Band; ¨ der Kopf steht uber dem ersten Symbol. Der Zustand ist q0 . ¨ Beispiel: Σ = {0, 1}, Γ = {0, 1, B, X} Erkenne die Eingabe der Form: 0 1 , f¨ r n ≥ 1 u 01, 0011, 000111, ... (richtig) 001, 1100, 0100101, ... (falsch) rechts und links von der Eingabe stehen unendlich viele B-Symbole • Phase 1: laufe einmal von links nach rechts uber das Band und uberpr¨ fe, ob dort eine Folge von 0en u ¨ ¨ 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 bleibt ¨
n n

5

0) • Die Maschine h¨lt. q1 . 0) (q− . q+ . u der Variablen. 0) (q+ . 0) (q+ . f¨ hrende Nullen sind egal) a u Ausgabe: bin(x + y)#bin(y)$ Programmiertechniken: • Verwenden mehrerer Spuren: Jedes Feld des Bandes wird als aus mehreren Unterfeldern bestehend betrachtet. ersetze sie durch X fahre nach rechts und suche 1. unmarkierten Ziffer a. ENTSCHEIDBARKEIT δ q0 q1 q2 q3 q4 0 (q0 . a) = (q. B. akzeptiere wenn keine 1 mehr vorhanden ist. −1) (q2 . −1) (q− . 0. 1. #. 1. 0. a ¨ Q = {q0 . . 1. 1} ¨ Eingabealphabet: Σ = {0. V . 1) (q+ . B. Haltezustand: h ¨ ¨ s ∈ {0. q− q+ (q− . 0. s := a (merken) Markiere diese Ziffer auf dem Band. X. a 1. TURING-MASCHINE. a. . wenn sie in einem Zustand aus F h¨lt. X. 1. 1} 6 . B. wenn sie in einen Zustand q uber einen Symbol a mit δ(q. x} × {0. 1) (q1 . Wandere nach rechts zur 1.: {’ ’. 0) (q− . 1. u := Ubertrag. 0) X egal egal (q2 . ¨ 4. 1) (q4 . q3 . 1) (q2 . . 0) (q+ . Γi . u z. 1) 1 (q1 . X. 1) (q4 . X. . 1. 2. . akzeptiert die Eingabe. B. 1. was man intuitiv unter algorith” misch berechenbar“ versteht.KAPITEL 1. L¨sche alle Markierungen o s qu . 0) steht. 0. Bandalphabet f¨ r die i-te Spur. B. 1} u ∈ {0. 0. entspricht dem. B. q4 . q− } q0 = q0 F = {q+ } • Die T. 0. × Γk . M. q2 . B. Wandere nach links zur 1. 1) (q3 . 0) (q2 . Zustand (Programmzeile) q mit Werten s. 0) (q3 . 1) Kommentar fahre nach rechts uber Nullen ¨ fahre nach rechts uber Einsen ¨ fahre nach links und suche 0. $} Bandalphabet: Γ = Σ ∪ {B. 0) (q+ . 1. . X. X. 1) (q− . formal: Q = Q0 × V . 0) (q− . ¯ ¯ 0. BERECHENBARKEIT. unmarkierten Ziffer b von x ¨ Ersetze b durch b + s + u. −1) (q4 . 1) (q4 . −1) (q3 . Wertebereich der Variablen.2 Church’sche These Das was von einer Turing-Maschine berechnet werden kann. Gehe zu 1 solange noch Ziffern ubrig sind. B. X 1 X 0 X 1 0 1 formal: Γ = Γ1 × Γ2 × Γ3 × . (Markiere diese Ziffer) ¨ ¨ 3.} • Speichern von Variablen mit endlichen Wertebereich als Teil des Zustandes. Beispiel: Addition zweier Bin¨rzahlen a Eingabe: bin(x)#bin(y)$ (bin(x) := Bin¨rdarstellung einer positiven Zahl. 1. 1) B (q− . . . ersetze sie durch X fahre nach rechts und suche 1. X. B. .

¯ + ¨ 0. 0. ¯ 1 0 qu . #. #. REGISTERMASCHINEN δ 0 qu ¨ 0 ru ¨ s0 u ¨ ti u ¨ ui 0 u0 0 u1 . 1. 0. − p.. + ¨ 0 ru . + z. B. ¯ 0. ¯ − u 0. die man mit den Buchstaben aus Σ bilden kann. 1. ¯ − u 1. ¯ − u 1.3 Registermaschinen Simulation eines RAM-Speichers auf einer TM: ##x1 #y1 ##x2 #y2 ##. ¨ 0 y0 . . . al . ¯ − 1. + ¨ t1 . . 0 q1 . − 0 wu .4 Formale Sprachen Σ . 0 q0 . $. ¯ − u 1. + ¨ 0 yu . s0 . + z. ¯ − u 1.+ 2 3 z. u0 0 1 u1 1 0 vu ¨ 0 wu ¨ 0 xu ¨ 0 y0 0 y1 z p 0 0 qu . 0 v0 . ¯ + ¨ 0. − p. alle W¨rter endlicher L¨nge l.###[Programmcode] xi . endliches Alphabet (Vorrat an Zeichen) Σ∗ . − u ¨ B Schritt 1 0 vu . + 0 ru . ¨ 0 y0 . Inhalt auf Adresse xi 1. 0.. ¯ + ¨ 1. − z. 0 q1 . ¯ − u 0. + ¨ 1 0 q0 .1. ¯ + 0. ¨ 0 q0 .+ 1 v0 . . + ¨ 0 ru . − 0 vu . 1. 0. + 4 • Unterprogrammtechnik 1. ¨ ui . . #. 0 ¯ y1 . + ¨ 0 ru . Adresse. 0 ¯ y1 . + ¨ ¯ 0 0 qu . + z. − u ¨ $ s0 . 0 vu . 0. ¨ t1 . ¯ + 0. o a w = a 1 a 2 a 3 . + ¨ u0 . + p. s0 .. B. #. + ¨ t0 . x0 . 0. − h. − ¨ 0 v0 . ¯ + 0.3. 1.. # 0 ru . ¯ + 0. $.. ¨ t0 . #. 1. yi . ¯ + 1. ¨ 0 q0 . ¨ ui . + p. ¯ − 0 0. #. 1. ¯ − u 0. 0 vu . 1. x0 . a i ∈ Σ l = |w| L¨nge des Wortes l ≥ 0 a ε ist das leere Wort |ε| = 0 Definition: Eine formale Sprache L ist eine Teilmenge von Σ∗ Beispiel: L = {0n 1n |n ≥ 1} L=∅ L = {ε} 7 . 0 q0 . ¯ 1. ¯ + 1. ¯ − 0 1. ¯ − u 0. 0. ¯ − 0. 1. − u ¨ ui . ¯ + ¨ 1. ¯ + 1.. #. .

. · u i−mal u =u u0 = ε Li = L · L · . .1 Multiplikation von W¨rtern o u · v = uv (Buchstaben von u und v nebeneinander geschrieben) Rechenregeln: 1. ∗ 8 . ui ∈ L} i−mal 1 L1 = L L0 = {ε} L∗ := L0 ∪ L1 ∪ L2 ∪ .ba} L1 · L2 = {aa. .4. ∀u ∈ Σ∗ : u · ε = ε · u = u Beispiel: u = abra v = kadabra u · v = abrakadabra v = kad ·u 1. u · (v · w) = (u · v) · w 2. dass auf k1 nach beliebig vielen Schritten (≥ 0) die Konfiguration k2 folgt.5 Konfiguration (Momentaufnahme einer Turingmaschine) Definition: Eine Konfiguration einer Turingmaschine ist ein Wort aus Γ∗ QΓ∗ . y ∈ Γ∗ und q ∈ Q beschreibt den Zustand der Turingmaschine wo xy auf dem Band steht und der Kopf uber dem ersten Zeichen von y steht F¨ r zwei Konfigurationen k1 und k2 schreibt man u ¨ k1 ⊢ k2 wenn die Turingmaschine in einem Schrittvon k1 nach k2 ubergeht. .3 Potenz von W¨rtern und von Sprachen o ui = u · u · u · . L · ∅ = ε · u = u 3. L1 · (L2 · L3 ) = (L1 · L2 ) · L3 2.4.aba. (Nachfolgerrelation zwischen ¨ Konfigurationen. L · {ε} = L Beispiel: L1 = {a. = Menge der W¨rter.KAPITEL 1. ENTSCHEIDBARKEIT 1. . . . die man aus bel.2 Multiplikation von Sprachen L1 · L2 = {uv|u ∈ L1 . v ∈ L2 } Rechenregeln: 1. o Das Wort xqy mit x. o 1.4. · L = {u1 · u2 · . BERECHENBARKEIT. u2 ∈ L.ab} L2 = {a. .abba} 1. . vielen (≥ 0) Bestandteilen ∈ L zusammen multiplizieren kann. das nicht mit B anf¨ngt oder a aufh¨rt (ein Wort ∈ Γ∗ QΓ∗ \ (B(Γ ∪ Q)∗ ∪ (Γ ∪ Q)∗ B)). TURING-MASCHINE. . .) k1 ⊢ k2 bedeutet. · ui |u1 ∈ L. .

log n Schritten multipliziert a o werden (Martin F¨hrer 2008. . mit y. a a • Die simulierte Maschine kann in T Schritten h¨chstens T Schritte nach links und rechts gehen. bestehender Rekord vorher const. .6.T Schritten T -mal ⇒ T 2 ∗ • 2 n-Bit Bin¨rzahlen k¨nnen auf einem k-Band-TM in n · log n · const. In einer konstanten Anzahl von Fahrten uber das gesamte Band (ausgehend a ¨ von L) kann die Turingmaschine die Band¨nderungen auf den k B¨ndern simulieren. a L(M ) = x ∈ Σ∗ q0 x ⊢ yqz. Die Kopfposition der B¨nder ist af der a a jeweiligen Spur vermerkt. o a Beweis: Simulation der k B¨nder auf k Spuren eines einzigen Bandes. und dann bitweise von rechts nach links addiert. log2 n ≤ 1} -mal 22 . o • Die L¨nge des uberstrichenen Bandinhalts in jedem Simulationsschritt ist ≤ 2T + 1 a ¨ • Ein Simulationsschritt geht in ≤ const. z ∈ Γ∗ und q ∈ F ∗  M h¨lt in q ∈ F a → x ∈ L(M )  Eingabe x M h¨lt in q ∈ F a / → x ∈ L(M ) /   M terminiert nicht → x ∈ L(M ) / 9 .¨ 1. . Satz: Eine k-Band-Turingmaschine die nach T Schritten h¨lt kann durch eine 1-Band-Turinmaschine simuliert a werden. TURINGMASCHINE MIT MEHREREN BANDERN 1. die in h¨chstens const. 0. (n)) (mit einem a a Band in O(n2 ) Schritten). a o • Das erste Band ist das Eingabeband. ’ ’})k ∪ {L} • L markiert die Position links neben der linkesten Position die die simulierte Turingmaschine auf allen B¨ndern besucht hat. Zuerst wird bin(y) auf das 2. . 2 i-mal Die Umkehrfunktion von log ist 2 ∗ =2↑i Definition: Die von einer Turingmaschine M mit einer Teilmenge F ⊆ Q von akzeptierenden Zust¨nden akzepa tierte Sprache L(M ) ist die Menge der W¨rtern bei deren Eingabe die Maschine einen akzeptierenden o Zustand erreicht (und dann anh¨lt).n·log n log log n (Arnold Sch¨ nu o hage ≈ 1970)) log∗ n := min{i| log2 log2 log2 . a ¨ ¨ • Die Ubergangsfunktion δ : Q × Γk → Q × Γk × {−1. +1}k Beispiel: bin¨re Addition von 2 n-Bit Zahlen geht mit 2 B¨ndern in O(n) Schritten (≤ konst. Band kopiert. Γ1 = Γ ∪ (Γ × {X.6 Turingmaschine mit mehreren B¨ndern a • Eine Turingmaschine mit k B¨ndern hat k Schreib-/Lesek¨pfe. • Die ubrigen B¨nder sind zu Beginn leer.T 2 Schritten h¨lt.

8. wenn es eine Turingmaschine M mit f = fM gibt. • Man nennt M die G¨delnummer von M . a a • Die Beschreibung von M wird als M ∈ {0. L heißt entscheidbar (rekursiv). a Jetzt m¨ ssen wir nur noch δ kodieren: u als Liste von 5-Tupeln: δ(q. B. ⇒ M = 111010100100010110000100000100100000100011.. 1.1 Universelle Sprache und Diagonalsprache Definition: Die universelle Sprache LU ist die Sprache LU = { M x|M akzeptiert x} ⊆ {0. TURING-MASCHINE. u Dann simuliert sie M mit dieser Eingabe und h¨lt genau dann. steht ein Wort y ∈ Σ∗ auf dem Ausgabeband (bzw. −1).. δ(q4 . . . Die Eingabe f¨ r M . B. auf dem einzigen Band). 1. γj1 . und kann anschließend die Maschine M Schritt f¨ r u Schritt simulieren. 0) = (q2 . γ5 . γ5 ) = (q2 .. wenn M h¨lt. o Konventionen: a) M hat das Eingabealphabet {0.. m) wird als (q. 1}∗ bezeichnet. (qi1 . die auf allen Eingaben h¨lt und a mit L = L(M ) Unterscheide: abz¨hlbare (denumerable) Mengen: endlich oder gleichm¨chtig mit N a a Turingmaschine die etwas berechnet: x ∈ Σ∗ steht auf dem Eingabeband. Die Beschreibung einer beliebigen Turingmaschine M 2. m1 ). engl. a • Die von der Turingmaschine berechnete (partielle) Funktion fM ist definiert auf der Menge A = {x ∈ Σ ∗ |M h¨lt bei Eingabe um x} a fM : A → Σ∗ mit A ⊆ Σ∗ • Eine partielle Funktion f : A → Σ∗ mit A ⊆ Σ∗ oder eine totale Funktion f : Σ∗ → Σ∗ heißt berechenbar.8 Unentscheidbarkeit 1. • Wenn die Maschine h¨lt. b. BERECHENBARKEIT... 5. ⇒ |111|0i1 10j1 10j1 10k1 10l1 10m1 |11|0i2 10j2 10j2 10k2 10l2 10m2 |11|. 3. je nach M ).. +1). qk1 . m) geschrieben. 1} b) M hat Zustandsmenge Q = {q1 . dann h¨lt auch MU (in einem akzeptierenden oder nicht akzepa a tierenden Zustand. |Γ| − 1} (keine wesentlichen Einschr¨nkungen). .. b. .). .111 1..7 Die universelle Turingmaschine Eine universelle Turingmaschine liest als Eingabe: 1. Wenn die simulierte Maschine M h¨lt. wenn es eine Turingmaschine M gibt. . q2 . .. u o MU kopiert die Beschreibung auf ein zweites Band.. recursiv enumerable) wenn es a eine Turingmaschine M mit L = L(M ) gibt..KAPITEL 1. 1}∗ Satz: Es gibt eine universelle Turingmaschine MU mit L(MU ) = LU Beweisskizze: MU muss zun¨chst den Anfang der Eingabe bis zum zweiten 111-Block lesen und entscheiden a ob es sich um eine g¨ ltige G¨delnummer handelt. ENTSCHEIDBARKEIT Definition: Eine Sprache L heißt rekursiv aufz¨hlbar (semi-entscheidbar. γl1 . qk } q1 ist der Startzustand q2 ist der einzige akzeptierende Zustand c) M hat Bandalphabet {0. 4.. . 10 . (qi1 . γj1 . q ′ . a) = (q ′ .|111| Beispiel: δ(q1 . a.

.. 3. .. aber nicht entscheidbar a 11 . . es gibt eine Turingmaschine Mk die D akzeptiert: D = L(Mk ) = {w|Mk akzeptiert w} Betrachtet das Wort wk : wk ∈ D Definition von D ⇐⇒ wk ∈ L(MK ) / wk ∈ D / Annahme: Mk akzeptiert die Sprache D ⇐⇒ Satz: Das Komplement D der Diagonalsprache D = {wi |wi ∈ L(Mi )} ist rekursiv aufz¨hlbar.  Turingmaschine M . UNENTSCHEIDBARKEIT Aufz¨hlung aller W¨rter aus {0. a D = {wi | wi ∈ L(Mi ) / falls wi = M ist Mi falls wi keine g¨ ltige G¨delnummer ist u o Definition: Die Diagonalsprache D ist . . 1}∗ und aller Turingmaschinen: a o w1 = ε w2 = 0 w3 = 1 w4 = 00 w5 = 01 w6 = 10 w7 = 11 w8 = 000 . . i = 1. Mi . und dann in einem    akzeptierenzen Zustand anh¨lt. M1 .. 2. die einen Schritt = nach links macht. a Beweis durch Widerspruch: Angenommen..} Mi akzeptiert wi nicht. M1 M2 M3 M4 . Mi D w1 +− + − + + − w2 +− + − +− − w3 −+ − + + ··· wi ··· wk ··· + Satz: D ist nicht rekursiv aufz¨hlbar und damit auch nicht entscheidbar.   Turingmaschine. . M2 .1... .8..

1. Wir wollen untersuchen. – wenn nein → Antwort: JA. Java. Frage: H¨lt die Turingmaschine nach endlich vielen Schritten? a Formuliereung des Problems als formale Sprache: H = { M |M h¨lt bei Eingabe von x} a Satz: Das Halteproblem ist unentscheidbar Beweis: indirekt. wenn die Komplement¨rsprache L = Σ∗ − L a entscheidbar ist. Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar. nicht entscheidbar a nicht rekursiv aufz¨hlbar a nicht rekursiv aufz¨hlbar a rekursiv aufz¨hlbar. a Beweis: 1. dann terminiert M1 . ob die Eingabe eine g¨ ltige G¨delnummer M ist.. L entscheidbar ⇒ L entscheidbar ⇒ L.8. ob wi ∈ D ist. a L L entscheidbar entscheidbar rekursiv aufz¨hlbar. u u o ¨ wenn nein. ENTSCHEIDBARKEIT Beweis: 1.KAPITEL 1. BERECHENBARKEIT. wenn sowohl L als auch L rekursiv aufz¨hlbar sind. a ⇐ M1 akzeptiert L. M h¨lt bei Eingabe von x in einem akzeptierenden Zustand} a 12 .. MD uberpr¨ ft. TURING-MASCHINE. mit einer Eingabe). o U = { M x|x ∈ L(M ). . Beweis: Mit der Entscheidbarkeit von U k¨nnte man auch die Diagonalsprache D = {wi |wi ∈ L(Mi )} entscheio / den. ¨ Uberpr¨ fe ob wi die G¨delnummer einer g¨ ltigen Turingmaschine M ist. Wenn ja. L ist genau dann entscheidbar. ist die Antwort bekannt. L rekursiv aufz¨hlbar. verdopple die Eingabe und starte die universelle Turingmaschine: Mi wi =wi akzeptiert genau dann. Annahme: Es gibt einen Algorithmus. der das Halteprolem entscheidet. M2 akeptiert L Lasse M1 und M2 parallel“ laufen (abwechselnd) auf derselben Eingabe x ∈ Σ∗ ” Wenn x ∈ L. a Satz: 1. wenn wi ∈ L(Mi ) / Nichtentscheidbarkeit folgt aus dem n¨chsten Satz. Wenn x ∈ L. 2. Sobald eine der simulierten Turingmaschinen M1 und M2 anh¨lt. nicht entscheidbar a nicht rekursiv aufz¨hlbar a nicht rekursiv aufz¨hlbar a Satz: Die universelle Sprache U ist unentscheidbar. 2.2 Das Halteproblem Gegeben: Eine Turingmaschine M und eine Eingabe x ∈ Σ∗ (oder ein Programm in C. Drehe die Angabe des Entscheidungsalgorithmus um. u o u • Wenn nein: L(Mi ) = Σ∗ wi ∈ Σ∗ → Antwort: JA • Wenn ja: Mi = M ¨ Uberpr¨ fe ob Mi wi ∈ U ⇔ wi ∈ L(Mi ) u – wenn ja → Antwort: NEIN. 2. dann akzeptiere. dann terminiert M2 . Behauptung: Dann k¨nnten wir auch die universelle Sprache U entscheiden.

. (101. dann nach links zur¨ ckkehrt und dann wie M weitermacht.. die nie h¨lt. 10). ob f (x) ∈ B ist. der Hε entscheidet. simuliere M auf der Eingabe / x. (10111.yik ? @ @= @ x @111 @ @ y @@@@ @= 111111111 i4 = 3 x = 10111 1 1 10 i1 = 2 i2 = 1 i3 = 1 y = 10 111 111 0 (10. Wenn nein. 011) (001. A ≤ B und B entscheidbar ⇒ A entscheidbar 3. ∀x ∈ Σ∗ Beispiel: H ≤ Hε f ( M x) = M ′ f (y) = M ∞ . Wenn ja. . . falls y nicht mit der g¨ ltigen Codierung einer Turingmaschine beginnt u M ∞ := eine Turingmaschine. A ≤ B und A unentscheidbar ⇒ B unentscheidbar Beweis: 1.4 Das Post’sche Korrespondenzproblem (PKP) Gegeben: Eine Folge von Paaren von W¨rtern (x1 . 11). logisch ¨quivalent zu 2..8. 011). dann ist M x ∈ U . (01. a ( y ist keine korrekte Eingabe f¨ r das Halteproblem“) u ” Beispiel: D ≤ U Satz: 1. diese Simulation muss terminieren.xik = yi1 yi2 .1. ob M x ∈ H ist. 0) @ @@@ i1 = @@@@@1 ⇒ i3 = 1 1 i2 = @ @@ xi .8. o M x sei Eingabe f¨ r H. geh¨rt M x zu U oder nicht. Transitivit¨t a 2. A ≤ B ∧ B ≤ C ⇒ A ≤ C 2. i2 . 101). (011..8. Wir wollen entscheiden. Je nachdem. ob M ∈ Hε M ′ ∈ Hε ⇔ M x ∈ H 1. u Konstruiere eine neue Turingmaschine M ′ die am Anfang das Wort x auf das Band schreibt. ik Beispiel (1. (01.. (y1 .3 Reduzierbarkeit von Problemen Definition: A. x2 )... ob x ∈ A ist: Berechne f (x) und entscheide. yn ) o Frage: Gibt es eine Folge von Indizes i1 . (10. UNENTSCHEIDBARKEIT Teste zuerst.. ob der Haltezustand von M ein akzeptierender Zustand ist oder nicht. o Das spezielle Halteproblem Hε = { M |M h¨lt bei Eingabe ε} a Folgerung: Hε ist unentscheidbar. (xn . yi ∈ Σ∗ (k ≥ 1) mit xi1 xi2 xi3 . y2 ). B ⊆ Σ∗ A ist auf B reduzierbar A≤B wenn es eine berechenbare Funktion f : Σ∗ → Σ∗ gibt mit x ∈ A ⇔ f (x) ∈ B. a 1. 111). a Behauptung: Dann k¨nnten wir H entscheiden. Indirekter Beweis: Annahme wir h¨tten einen Algorithmus A. 001) k¨ rzeste L¨sung k = 66 u o 13 .. 0). 3. u Teste mit dem Algorithmus A.. 101). (10.

y2 ). a) f¨ r a ∈ Γ ∪ {#} u Zustands¨berg¨nge: u a (qa. . 0. #q0 x#) Kopierpaare: (xi . TURING-MASCHINE.. ↑ y1 yi Beispiel xi + 1 xi ↓ ↓ # 0 0 #0010q110# 0 0 ↑ ↑ yi yi + 1 xj 1 1 0 0 q1 10# 0q ′ 10# yi δ(a..KAPITEL 1. #q ′ Bb#).. a) = (q ′ . B) = (q ′ .. −1) M P KP ≤ P KP Gegeben: Eingabe f¨ r M P KP u (x1 . a) = (q ′ . b. falls δ(q. −1) (#q#. #q ′ Bb). (x′ .. falls δ(q.. b.. 1) (q#. 1) = (q ′ . 0) (qa. b. y0 ). B) = (q ′ . ym ) Frage f¨r MPKP: Gibt es eine Folge u i 1 .yik ′ ′ ′ Reduktion: Wir konstruieren uns eine Eingabe (x′ . 1) (cqa. falls δ(q. b. bq ′ ). falls δ(q. yn+1 ). . falls δ(q. b. x ∈ Σ∗ Alphabet f¨ r PKP = Γ ∪ Q ∪ {#} u Anfangspaar: (x1 . x1 x1 #q0 v# u1 q 1 v1 #u2 q 2 v2 #u3 q 3 v3 #. bq ′ #). −1) (cq#. falls δ(q.. yi ) = (a. i2 . BERECHENBARKEIT. B) = (q ′ . −1) (#qa. Folge von Konfigurationen einer Turingmaschine xi ↓ q0 v#u1 q 1 v1 #u2 q 2 v2 #u3 q 3 v3 #. b. o u o 14 . . . B) = (q ′ b. b. (x′ . q ′ b#). y1 ). . q ′ cb)..xik = yi1 .. q ′ cb#). ENTSCHEIDBARKEIT Satz: PKP ist unentscheidbar Beweis: U ≤ P KP Zwischenschritt: Modifiziertes PKP zus¨tzliche Bedingung: i1 = 1 M P KP ≤ P KP a U ≤ P KP . falls δ(q. ik k ≥ 1 mit i1 = 1 Sodass xi1 xi2 . 0) (q#. y1 ). a) = (q ′ .. falls δ(q. +1) Gegeben: M. . q ′ b). (xn . . . (x2 . a) = (q ′ . 0 1 n+1 Dieses PKP hat eine L¨sung ⇔ Das urspr¨ ngliche MPKP hat eine L¨sung. y1 ) = (#.

b. y3 ) = (1#0#1#. 01) x′ = xi i ′ yi = yi ′ (x′ . b. dann frisst“ dieser Zustand den Bandinhalt a ” (qa. q) ∀q ∈ F. vi ∈ Γ∗ L¨schregeln: o Wenn M in einen akzeptierenden Zustand q ∈ F ger¨t. #) Satz: Das Post’sche Korrespondenzproblem ist unentscheidbar. ui . dass Ki+1 aus Ki o durch einen Schritt vom M entsteht. y1 ) = (0#. q ′ b#) δ(q. yn ) berechenbar. b... q cb#)   (#q#. dadurch k¨nnen wir sicherstellen. #q0 x#) Anfangsregel (a. #q ′ Bb)  ′ (q ...01 → #0#1#$ Die Eingabe Lemma: U ≤ M P KP ′ ′ (x′ . (x′ . UNENTSCHEIDBARKEIT Beispiel: (0. Kopierregel Zustandsregeln:  ′ (q . y1 ).. #0#1) 3 x′ = #x′ 0 1 ′ Dieses PKP kann nur min(x′ . #0#1#0) 1 Eingabe f¨ r MPKP u mit einem neuen Symbol # nach jedem Buchstaben mit einem neuen Symbol # vor jedem Buchstaben ′ (x′ .. y2 ) = (1#1#.. (11. 0) ⇒ (qa.yik = #K1 #|K2 #|K3 #K4 #| Das y-Wort ist immer einen Schritt vorraus. (x1 . bq ′ )   ′ (q ... y0 ). a ∈ Γ (aq. +1) ⇒ (q#. b.. b.. .. y0 ) beginnen 0 x′ = #0# 0 ′ ′ ′ y0 = y1 y0 = #0#1#0 x1 x3 = 0101 x′ x′ = #0#1#0#1# 0 3 ′ ′ y0 y3 = #0#1#0#0#1y1 y3 = 01001 ′ x′ n+1 = $yn+1 = #$ . q) Abschlusspaar: (q##. ∀q ∈ F 15 ...1. (xn . b. o Ki aufeinanderfolgende Konfigurationen von M Ki = ui q i vi xi1 xi2 .8. a) a ∈ Γ ∪ {#}. bq ′ #)   ′ (q . −1) ⇒ (cq#. y1 ) = (#.. a) = ′  ′ (q . #0) 2 ′ (x′ . q ′ b) δ(q.. Beweis: Gegeben ist eine Eingabe M x f¨ r U u Wir konstruieren daraus eine Eingabe f¨ r MPKP mit folgenden Eigenschaften u MPKP hat eine L¨sung ⇔ M x ∈ U o (M akzeptiert x) Idee: MPKP simuliert die Berechnung von M L¨sungswort: #K0 #K1 #K2 #. 0). (101..01 → 0#1#$ . #q ′ Bb#) K0 = q0 x qi ∈ Q. .. B) = ′  ′ (q . −1) ⇒ (cqa. q cb)   (#qa.. yn+1 ) 0 n+1 ist aus (x1 . 010).xik = #|K1 #|K2 #K3 #| yi1 yi2 . +1) ⇒ (qa.. 0) ⇒ (q#.

a wenn M + akzeptiert. Frage: Hat L(M ) die Eigenschaft S? Annahme: ∅ hat nicht Eigenschaft S Es gibt eine Sprache L+ . TURING-MASCHINE. S sei eine Eigenschaft von formalen Sprachen L.8. und akzeptiert genau dann. die Eigenschaft S hat und eine Turingmaschine M + mit L(M + ) = L+ Wir reduzieren das spezielle Halteproblem Hε auf das Entscheidungsproblem f¨ r S: u Gegeben: Turingmaschine M Frage: H¨lt M bei Eingabe ε? a Wir konstruieren daraus eine neue Turingmaschine M ′ mit der Eigenschaft L(M ′ ) hat Eigenschaft S ⇔ M h¨lt bei Eingabe ε a • M ′ bekommt die Eingabe x ∈ Σ∗ • M ′ simuliert zun¨chst M mit leerer Eingabe. a ” 16 .8. . Fall 1: M h¨lt nicht bei Eingabe ε a ⇒ M ′ h¨lt nie ⇒ L(M ) = ∅ ⇒ L(M ) hat Eigenschaft S nicht. a • Wenn M h¨lt. . die von einigen aber nicht von allen rekursiv aufz¨hlbaren a erf¨ llt wird: u Beispiele: Ist S = ∅? Ist S = {ε}? ε ∈ S? Ist S endlich? Ist S = {0n 1n |n ≥ 1} 1. 1970) o c ¨  x = 3y − z 2   z 2 + u3 y − x4 = 0 . dann simuliert M ′ die M + mit der Eingabe x. dann betrachte die komplement¨re Eigenschaft S ( nicht S“). ENTSCHEIDBARKEIT 1. a Fall 2: M h¨lt bei Eingabe ε a ⇒ M ′ verh¨lt sich wie M + ⇒ L(M ) = L(M + ) = L+ ⇒ L(M ) hat Eigenschaft S. a ¯ Wenn ∅ die Eigenschaft S hat. ′ M ist aus M berechenbar.6 Satz von RICE (1953) Satz: F¨ r jede nichttriviale Eigenschaft S (im obigen Sinn) ist das folgende Problem unentscheidbar: u Gegeben: Turingmaschine M .5 Andere unentscheidbare Probleme • L¨sbarkeit von Polynomgleichungen uber Z.KAPITEL 1. BERECHENBARKEIT. (Matijasevi´.

1 Deterministische endliche Automaten A = (Q. 1}∗|x enth¨lt eine gerade Anzahl an 0en und eine ungrade Anzahl an 1en} a Wir erweitern δ : Q × Σ → Q auf δ : Q × Σ∗ → Q δ(q.. q1 .an ) = δ(δ(q. wenn er sich nach dem Lesen des letzten Bucha stabens in einem Zustand ∈ F befindet. a1 a2 . DFA) hat: • eine endliche Zustandsmenge Q • ein endliches Eingabealphabet Σ • eine Zustands¨ berf¨ hrungsfunktion δ : Q × Σ → Q u u • einen Startzustand q0 ∈ Q • eine Menge von akzeptierenden Zust¨nden F ⊆ Q a Arbeitsweise: Der Automat beginnt in q0 und liest in jedem Schritt das n¨chste Eingabesymbol und ¨ndert a a denm Zustand gem¨ß δ. q0 .an−1 . q3 } q0 = q0 δ q0 q1 q2 q3 Zustandsdiagramm: 0 q1 q0 q3 q2 1 q2 q3 q0 q1 Σ = {0. ε) = q. δ. F ) Ein (deterministischen) endlicher Automat (DEA) (engl. Er akzeptiert das Eingabewort...: deterministic finite automaton. Beispiel: Q = {q0 .2 Regul¨re Sprachen und endliche Automaten a 2.. a1 a2 . q2 . 1} F = {q3 } Eingabe: x = 0 0 1 1 0 0 1 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ q0 q1 q0 q2 q0 q1 q0 q2 ∈ L(A) / ∈F / L(A) = die von A akzeptierte Sprache = {x ∈ {0. δ(q. (∀q ∈ Q) (n ≥ 1) 17 . an )). Σ.

ε). 0i ) = δ(q0 ... sind regul¨re Ausdr¨ cke u a u 2. 0j ) δ(δ(q0 . a u 1. 010) = q0 = δ(δ(δ(δ(q2 . 0j ). . Nach h¨chstens |Q| Schritten muss sich ein Zustand wiederholen o ∃i ≤ j : δ(q0 . a u Beispiele: ((0) + (1))∗ = {0.} schreiben Jeder regul¨re Ausdruck beschreibt eine Sprache: a • L(∅) = ∅ • L(ε) = {ε} • L(a) = {a} f¨ r a ∈ Σ u • L((A) · (B)) = L(A) · L(B) • L((A) + (B)) = L(A) ∪ L(B) 18 . .¨ KAPITEL 2.. 1i ) = δ(q0 . ∅. δ(q0 .0i ) Definition: Die von DEA akzeptierten Sprachen heißen regul¨re Sprachen. 00)... a Andere Charakteresierungen von regul¨ren Sprachen: a • regul¨re Ausdr¨ cke a u • NEA: nichtdeterministische endliche Automaten • Typ-3-Grammatiken 2. 0j 1i ) = δ(δ(q0 . 0i ). 3. dann + o a ¨ u 2. δ(q0 .) Uberfl¨ ssige Klammern kann man weglassen. 0). x) ∈ F } Kann ein DEA die Sprache L = {0n 1n |b ≥ 0} akzeptieren? Wir betrachten δ(q0 . dann sind auch a u • (A) · (B) • (A) + (B) • (A)∗ regul¨re Ausdr¨ cke.) · kann man weglassen 4.. 0) L(A) = die von A akzeptierte Sprache = {x ∈ Σ∗ |δ(q0 .) Endliche Mengen kann man auch als {. 0i 1i ) ∈ F weil A das Wort 0i 1i akzeptieren soll. 1). 1}∗ (((((0)∗ ) + ((0) · ((1)∗ ))) · (1)) · (0)) · ((1)∗ ) Man verwendet folgende Vereinfachungsregeln: 1.. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Beispiel: δ(q2 .... . ε. 0).2 Regul¨re Ausdr¨cke a u Beispiele f¨ r regul¨re Ausdr¨ cke: u a u (0 + 1)∗ (0∗ + 01∗ )10(1∗ ) Definition: regul¨re Ausdr¨ cke sind induktiv folgendermaßen definiert. dann ·. 1i ) = δ(q0 . 0i 1i ) ∈ F ⇒ A akzeptiert 0j 1i =δ(q0 .) ∗ hat h¨chste Priorit¨t. a f¨ r a ∈ Σ. δ(q0 . 000). Wenn A und B regul¨re Ausdr¨ cke sund.

2. 1}∗|Anzahl der Nullen ist gerade} Satz: Jede regul¨re Sprache wird durch einen regul¨ren Ausdruck beschrieben: a a Beweis mit Kleene-Algorithmus: (Kleene. δ.. qn }. 1. . keine Einschr¨nkung der Zwischenzust¨nde a a L(A) = qj ∈F Ln 1j ¨ k = 0.xl ) ∈ {q1 . qk−1 . nur direkten Ubergang a L0 = {a ∈ Σ|δ(qi ... a) = qi } ∪ {ε} ii Die Lk k¨nnen induktiv f¨ r k = 0.xn ) = qj . q2 ... x1 .. . qk } f¨ r 1 ≤ l < n} u ij k = n... wo der Zustand qk erreicht wird.... die von qi nach qj f¨ hren. keine Zwischenzust¨nde. δ(qi . 1953) L = L(A) Lk ij A = ({q1 ..... dann kann man die Formel vereinfachen: k−1 k−1 Beispiel: Lk = Lik · (Lkk ) ik k−1 k−1 k−1 ∗ k Lkk = (Lkk ) Lk = ((Lkk )∗ Lkj kj 19 . x1 .. ausgehend a ij ” von qi besucht... beginnend ij ” in qi nur Zust¨nde q1 . qk besuchen und in qj enden. F ) = Menge der W¨rter.. k−1 Fall 1: qk tritt nicht als Zwischenzustand auf ⇒ x ∈ Li j Fall 2: Zerlege x in Bestandteile an jeder Stelle. q2 . ein Wort aus dieser Sprache wird.. REGULARE AUSDRUCKE • L((A)∗ ) = (L(A))∗ Beispiel: 1∗ (01∗ 01∗ ) = {x ∈ {0. . u ij o k−1 k−1 k−1 k−1 Lemma: Lk = Lij ∪ Lik (Lkk )∗ Lkj ij Beweis: k−1 k−1 k−1 k−1 ⊇“ Lij ⊆ Lk nach Definition. Σ.. . q1 . qk a Lk = {x1 x2 ... a) = qj } ij i=j L0 = {a ∈ Σ|δ(qi . a ⊆“ Betrachte ein Wort x ∈ Lk und die Folge der Zust¨nde die der Automat beim Lesen von x. n definiert werden.... k−1 Lkk k−1 beliebig vielen (≥ 0) Zwischenst¨ cken ∈ Lkk und einem u Wenn i = k oder j = k ist.¨ ¨ 2.xn |δ(qi . . qk qk qk qk qi k−1 ∈ Lik qj k−1 ∈ Lkj ∈ x besteht aus einem Anfangsst¨ ck ∈ u k−1 Endst¨ ck ∈ Lkj u k−1 Lik . und dabei als Zwischenzust¨nde (außer dem ersten o u a und letzen Zustand) nur die Zust¨nde q1 .2... Lik (Lkk )∗ Lkj .

a) Alternativer Formalismus δ ⊆ Q × Σ × Q (dreistellige Relation) (q.. q ′ ) ∈ δ 20 . a2 . • Eine akzeptierende Berechnung ist eine Berechnung mit qn ∈ F . .1 0 q1 1 q2 0 q3 1 q4 0. wenn es eine akzeptierende Berechnung f¨ r x gibt. ai+1 ) f¨ r i = u 0. a)| = 1 f¨ r alle q und a. NFA) A = (Q. .¨ KAPITEL 2. • Ein Wort x ∈ Σ∗ wird von A akzeptiert. außer dass: a δ : Q × Σ → 2Q (Potenzmenge von Q) Wenn ein Automat sich im Zustand q ∈ Q befindet und das Symbol a ∈ Σ liegt.. a) gehen.1 → q0 L(A) = {W¨rter.. q1 .: nondeterministic finite automaton.3 Nichtdeterministische endliche Automaten DEA → ↑ NEA ←− regul¨rer Ausdruck a ↓ (NEA + ε) Definition: Ein nichtdeterministischer endlicher Automat (NEA) (engl.. die 0101 enthalten} = (0 + 1)∗ 0101(0 + 1)∗ o δ q0 q1 q2 q3 q4 0 {q0 . n − 1. u u 2. q0 ..an ∈ Σ∗ ist eine Folge (q0 . REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Durch Induktion nach k ergibt sich: Alle Sprachen Lk sind durch regul¨re Ausdr¨ cke darstellbar. an . u Urspr¨ nglicher Formalismus u δ : Q × Σ → 2Q q ′ ∈ δ(q.Gesund K¨lte a Gesund • Eine Berechnung des Automaten bei Eingabe von x = a1 a2 . kann er in irgendeinem der Zust¨nde aus der Menge δ(q. und a u ij sonst auch L(A). 011110000111 ∈ L(A) jedoch nicht. qn−1 . q1 } ∅ {q3 } ∅ {q4 } 1 {q0 } {q2 } ∅ {q4 } {q4 } Beispiel: 010 0101 0010000 w¨ rde akzeptiert werden. Σ. a Gesund Hochdruckwetter Gesund Kopfweh Gewitter Kopfweh.. a1 . q2 .. F ) ist ¨hnlich wie ein DEA. a.) a o Der Algorithmus von Floyd-Warshall f¨ r k¨ rzeste Wege in Graphen beruht auf dem gleichen Prinzip. u L(A) = Menge der akzeptierten W¨rter o 0.. δ. u / Ein DEA entspricht dem Spezialfall wo |δ(q. qn ) mit qi ∈ Q mit q0 = Anfangszustand und qi+1 ∈ δ(qi . Schranke f¨ r die L¨nge des Ausdrucks: u a (|Σ| + 1) · 4|Q| · |Q| ¨ (beim Ubergang von k auf k + 1 wird die L¨nge h¨chstens mit 4 multipliziert.

0) = δ(q0 . q′ 0 1 ′ q0 {q0 } {q0 .. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN ′ Konstruktion eines ¨quivalenten DEA A′ = (Q′ .1 q2 0. q4 } {q0 . q4 } F ′ = {q ′ ∈ {q0 . 0) ∪ δ(q4 . δ ′ . 0) = δ(q1 . q1 } {q0 . q4 } ′ q6 {q0 . Σ. q4 }|q4 ∈ q ′ } ′ Beweis: δ ′ (q0 . q0 . q4 } {q0 .1 q4 ⇒ NEA hat k + 1 Zust¨nde a Jeder DEA ben¨tigt mindestens 2k−1 Zust¨nde o a 21 . q4 }. q2 .1 → q0 1 q1 0. ′ In der Praxis beginnt man mit q0 = {q0 } und erzeugt nur diejenigen Zustandsmengen. a1 a2 . q4 } {q0 .. δ. qq } {q0 . q2 } {q0 . deren 4-letzter Buchstabe eine 1 ist} o 0. q2 . q1 } ∪ ∅ ∪ {q4 } = {q0 . q1 . q3 . q2 . 0) ∪ δ(q2 . F ′ ) zu einem gegebenen NEA A = (Q.3. 0) = {q0 . q4 } {q0 . q4 } ′ q4 {q0 .} = m¨gliche Zust¨nde nach Lesen der ersten k Eingabezeichen. q3 . q4 } ′ q5 {q0 . q4 } {q0 . q0 . q2 } ′ q2 {q0 .1 q3 0. q1 . q1 . 0) = ∅ ∪ {q3 } = {q3 } δ ′ ({q0 . q1 . q4 } ′ q7 {q0 . q1 . q1 .. 0) ∪ δ(q1 . q4 } {q0 . q4 } {q0 . q3 . o a ” Beweis durch Induktion nach k. q2 .ak ) = {q ∈ Q | es gibt eine Berechnung f¨ r a1 . q1 . q3 } {q0 . F ) a (Potenzmengenkonstruktion) Q′ = 2 Q δ ′ : Q′ × Σ → Q′ δ(q. die von q0 erreichbar sind.ak die im Zustand q0 beginnt und in q u endet. q1 . q1 . q4 } 0 q1 0 0 1 1 q2 0 → q0 0 q7 1 q3 1 0 q4 1 0 0 q6 q5 1 1 0 L = {W¨rter. q2 }. q2 . a) δ ′ (q ′ . q2 } {q0 } ′ q1 {q0 . q1 } {q0 . q1 . Σ. q3 } {q0 } ′ q3 {q0 . q1 . a) = q∈q′ ′ q0 == {q0 } F ′ = {q ′ ∈ Q|q ′ ∩ F = ∅} Behauptung: L(A′ ) = L(A) δ ′ ({q1 .2. q4 } {q0 ..

bk . Eine akzeptierende u Berechnung f¨ r x ∈ Σ∗ ist eine Folge (q0 . q2 .. 0 1 q5 0 ε. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN ¨ 2. x = b1 b2 . einen ε-Ubergang durchf¨ hren. qk ∈ F ¨ Satz: Zu jedem regul¨ren Ausdruck S. statt einen Buchstaben zu lesen.. q1 .. 1 q2 ε. qk ) mit q0 = Startzustand.1 Elimination von ε-Uberg¨ngen a ¨ ¨ Idee: Zusammenpacken einer Folge von ε-Uberg¨ngen mit dem nachfolgenden Ubergang wo ein Buchstabe a ¨ gelesen wir. u bi ∈ Σ ∪ {ε}.. qi ∈ δ(qi−1 . gibt es einen NEA A mit ε-Uberg¨ngen und einem einzigen akzepa a tierenden Zustand mit L(A) = L(S) Beweis: Induktion nach der Struktur von S S=a∈Σ S=∅ S=ε → → → A1 a ε S = S1 + S2 → → ε ε A2 ε ε ε L(A) = L(A1 ) ∪ L(A2 ) S = S1 · S2 A1 A2 ε A1 L(A) = L(A1 ) · L(A2 ) S = (S1 )∗ → Kleene-Algorithmus L(A) = L(A1 )∗ DEA regul¨re Ausdr¨ cke a u Potenzmengenkonstruktion NEA ¨ Elimination von ε-Uberg¨ngen a ¨ NEA mit ε-Uberg¨ngen a ¨ 2. . 0 q3 0 22 1 q4 . in einem einzigen Ubergang.4. 0 → q1 ε 1 0 ε. bi )..4 NEA mit ε-Uberg¨ngen a Unterschied: δ : Q × (Σ ∪ {ε}) → 2Q ¨ Der Automat kann auch. b1 . b2 .¨ KAPITEL 2.

δ ′ . q4 }F ′ = {q1 .Ergebnismenge Q := {q}. Σ.5 Minimierung deterministischer endlicher Automaten 0 → 1 a 0 1 b 1 c 0 d e 1 f 1 0 0 1 g 0 1 1 0 h 0 23 . q5 } Gegeben: A = (Q. erreicht werden. } a a R := {q}. a) r∈Rε (q) Beispiel: δ ′ (q1 . 0) ∪ δ(q2 . und a ¨ einen Ubergang wo a gelesen wird. Σ. F ) δ : Q × (Σ ∪ {ε}) → 2Q ¨ neuer Automat: A′ = (Q.. q1 .. 0) ∪ δ(q5 . } ¨ F ′ = {q ∈ Q | Von q aus kann der Automat A in k ≥ 0 ε-Uberg¨ngen einen akzeptierenden Zustand r ∈ F a erreichen } Der Automat A′ kann jede akzeptierende Berrechnung von A durch eine akzeptierende Berechnung ohne ε¨ Uberg¨ngen simulieren“ und umgekehrt. die von q aus durch ε-Uberg¨nge erreichbar sind.2. F ′ ) ohne ε-Uberg¨nge a ¨ δ ′ (q. epsilon): if !(s aus R) then R := R + {s} Q := Q + {s} → q0 ε ε q1 ε q4 ε q2 δ ′ (q. δ. a) = {r ∈ Q | r kann im Automaten A von q aus durch eine Folge von k ≥ 0 ε-Uberg¨ngen. q3 . 0) ∪ δ(q3 . a ” ¨ Berechnung der Menge Rε (q) = { Zust¨nde. q5 . q0 . q0 . q2 .. .5.Liste der zu bearbeitedenden Zust¨nde a while !isEmpty(Q) entferne einen Zustand r aus Q forall s aus delta(r. a) = q3 δ(r. 0) = δ(q1 . 0) = {q3 . MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN δ ′ (q1 .. 0) F ′ = {q|Rε (q) ∩ F = ∅} 2. .

e. c. 0) ∈ K3 δ(h. y) ∈ F ) ∨ (δ(q. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN 1. g. x) ∈ F (∗) (XOR) def 1 e 0 1 1 g 0 0 h ⊕ δ(r. wenn es keine Rolle spielt. da δ(c. x) ∈ F ∧ δ(r. f. f. e. a q ≡ r ⇐⇒ ∀x ∈ Σ∗ . a Invariante: Wenn q und r nicht in derselben Klasse sind. g. 0) = g ∈ K2 δ(h. 0) = a ∈ K1 δ(e. a a a a in welchem der beiden Zust¨nde man ist. 0) ∈ K4 24 . h} K1 K2 K3 K4 δ(b. 0) ∈ K3 δ(e. e. 0) ∈ K3 Zerlege K3 = {f } ∪ {b. 0) Zerlege K2 = A ∪ B. x) ∈ F ) / / Beispiel: Q = {a} ∪ {b. g. 0) ∈ K4 δ(g. x) ∈ F ∧ δ(r. 0) = g ∈ K2 ⇒ c unterscheidet sich vom Rest. h} = K1 ∪ K2 δ(b. Zusammenfassen von ¨quivalenten Zust¨nden. 0) = c ∈ K2 δ(g. x) ∈ F ⇔ δ(r. Entfernen unerreichbarer Zust¨nde: Zust¨nde die nicht von q0 erreichbar sind a a 0 1 a b c 0 1 → 0 1 f 1 0 2. 0) ∈ K3 δ(f. 0) ∈ K4 δ(h.¨ KAPITEL 2. g. e. je nachdem in welche (bisherige) Klasse δ(q. x) ∈ F Der Algorithmus beginnt mit einer ganz groben Klasseneinteilung in zwei Klassen Q = F ∪ (Q − F ). f. wenn sich herrausstellt. δ(q. δ(q. h} Neue Zerlegung: Q = {a} ∪ {c} ∪ {f } ∪ {b. e. e. h}. g. h} K1 K2 K3 δ(b. dann gilt (∗): ∃x ∈ Σ∗ : (δ(q. dass Zust¨nde in der gleichen a Klasse nicht ¨quivalent sind. 0) = g ∈ K2 δ(c. Zwei Zust¨nde heißen ¨quivalent. Diese Klasseneinteilung wird nach und nach verfeinert. 0) ist K2 = {c} ∪ {b. 0) ∈ K1 ∧ δ({b. h} neue Klasseneinteilung: Q = {a} ∪ {c} ∪ {b. g. 0) ∈ K4 δ(e. 0) ∈ K2 δ(g. 0) = h ∈ K2 δ(f. x) ∈ F q ≡ r ⇐⇒ ∃x ∈ Σ∗ . f.

. 0) ∈ K6 δ(b.1 Algorithmus zur Bestimmung des Minimalautomaten: • Beginne mit der Terlegung Q = K1 ∪ K2 in zwei Klassen K1 = F K2 = Q − F Q = K1 ∪ K2 ∪ . ∪ Kj Solange es zwei Zust¨nde q. 0) = h und h ≡ a weil h ∈ F. δ(g. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN δ(b. 1) = c ∈ K2 Zerlege K4 = {e} ∪ {g} ∪ {b. 1) = f ∈ K3 δ(g. a a 2 • Der Minimalautomat kann in O(|Q| · |Σ|) Schritten berechnet werden. 1) = c. a ∈ F / weil δ(h. 0) ∈ K6 δ(h.. h} K1 K2 K3 K4 K5 K6 δ(b.. r in derselben Klasse Ki gibt und einen Buckstaben a ∈ Σ mit: a Klasse δ(q. a • Dieser hat unter allen ¨quivalenten DEA’s die kleinste Anzahl von Zust¨nden.5. a) und δ(r. 1) = e und c ≡ e weil δ(c. a) geh¨rt (q ∈ Ki ) o Abbruchbedingung: ∀Ki ∀q. δ(e. der die gleiche Sprache akzeptiert. . o Zust¨nde des neuen Automaten: {K1 . 1) ∈ K3 Es ergibt sich keine weitere Verfeinerung 0 1 a 0 {b. f¨ r irgendein q ∈ Ki (unabh¨ngig von der Wahl von q). a) geh¨rt. Kj } a δ ′ (Ki . δ(g. zu der δ(q.. o u a Satz: Zu jedem DEA (zu jeder regul¨ren Sprache) gibt es einen eindeutig bestimmten (eindeutig bis auf a Bennenung der Zust¨nde) Minimalautomaten. 10) ∈ F. 0) = a.5. a) geh¨ren zur gleichen Klasse. a) = KLasse. 1) = e ∈ K4 δ(h. 25 . 10) ∈ F / 2. h} Neue Zerlegung: Q = {a} ∪ {c} ∪ {e} ∪ {f } ∪ {g} ∪ {b.2. 1) = c ∈ K2 δ(e. 1) ∈ K3 δ(h. h} 1 c → e 0 1 f 1 0 1 0 1 g 0 a≡c h≡g c≡e h≡a h≡g wenn x = ε weil δ(h. r ∈ Ki . ∀a ∈ Σ: δ(q..

def 2.5. A. u hat dort eine 0. v ∈ Σk . B. v) dann u ≡L v ∀x ∈ Σ∗ : ux ∈ L ⇔ δ(q0 . v hat dort eine 1. 1) ?    δ(q3 . u Definition: Zwei W¨rter u und v heißen Nerode-¨quivalent. d. x) ∈ F ⇔ δ(δ(q0 . q3 } ∪ {q4 . ux) ∈ F ⇔ δ(δ(q0 . a Beweis: ⇒“ ” L = L(A) f¨ r DEA A = (Q. δ. 0) in der selben Klasse?  δ(q3 . Σ. q7 } ∪ {q5 }  δ(q1 .¨ KAPITEL 2. wenn o a u ≡L v ⇐⇒ ∀x ∈ Σ∗ : ux ∈ L ⇔ vx ∈ L ¨ ¨ Diese Relation ist eine Aquivalenzrelation. wenn die Nerode-Relation endlich viele Aquivalenzklassen hat. F¨ r x = 0i−1 ux ∈ L. a ¨ Die Anzahl der Aquivalenzklassen ist in diesem Fall die Anzahl der Zust¨nde des Minimalautomaten. vx) ∈ F ⇔ vx ∈ L ¨ Folgerung: ≡L hat h¨chstens |Q| Aquivalnzklassen. 0) δ(q2 . u). 1}∗ | k-letzter Buchstabe ist eine 1.2 Satz von Nerode ¨ Satz: Eine Sprache L ist genau dann regul¨r. u) = δ(q0 . x) ∈ F ⇔ δ(δ(q0 . 1) ein Verfeinerungsschritt O(|Q| · |Σ|)   δ(q2 . Hopcroft: Die Nerode-Relation bez¨ glich einer Sprache L. wie ≡L o a ¨ Aquivalenzklassen hat. u v x = 1000100100000 ∈ L / = 1000110100000 ∈ L Beweis der Behauptung: u = v unterscheiden sich in der i-ten Position. Beispiel: L = {x ∈ {0. q0 . o. Jeder DEA hat mindestens so viele Zust¨nde. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN [l]Q = {q1 . q2 . vx ∈ L u / 26 . F ) u Wenn δ(q0 . Daher k¨nnen wir die Aquivalenzklassen [u]L = {v ∈ Σ∗ | v ≡L u} o bilden. |x| ≥ k} = Σ∗ · 1 · Σk−1 Behauptung: u. 0) Man kann h¨chstens (|Q| − 1)-mal verfeinern o Zus¨tzlich: Verwalten der Kalssen Einteilung a        δ(q1 . v). 1) ∪{q6 } q1 1 q2 1 q3 1 q4 2 q5 3 q6 4 q7 2 Entfernen der unerreichbaren Zust¨nde O(|Q| · |Σ|) a Es geht auch in O(|Q| · log |Q| · |Σ|) Zeit. u = v u ≡L v ¨ ⇒ ≡L hat mindestens 2k Aquivalenzklassen.

a Beispiel: L = {0n 1n | n ≥ 1} nicht regul¨r. v = ε. sodass ∀i: uv i w ∈ L Fall 1: v enth¨lt nur Einsen uv 0 w enth¨lt weniger Einsen als Nullen. [[ui ]L ] ≡ [v]L ⇒ (ui ∈ L ⇔ v ∈ L) ⇔ ∀x ∈ Σ∗ : (ui x ∈ L ⇔ vx ∈ L) ⇒ F¨ r x = ε: ui ∈ L ⇔ v ∈ L u 2) Der Automat akzeptiert L.6. dass eine Sprache nicht regul¨r ist. a) = [ya] = [x] Weil Definition von δ unabh¨ngig von der Wahl des Representanten y in der Klasse [y] ist. y). x) = δ(q0 .. |uv| ≤ n0 Sogar diese st¨rkere Aussage gilt a In Worten: In einer rgul¨ren Sprache hat jedes gen¨ gend lange Wort eine Stelle. um zu zeigen. DAS PUMPING-LEMMA FUR REGULARE SPRACHEN Beweis: ⇐“ ” ¨ [u1 ]L [u2 ]L .. . u a a ∀x ∈ L: |x| ≥ n0 ∃u.. a Annahme: L w¨re regul¨r ⇒ Pumping-Lemma ist anwendbar a a ∃n0 : W¨hle x = 0n0 1n0 a ∃x = uvw.. a δ: v ≡ ui ([v]L = [ui ]L ) ⇒ [va]L = [ui a]L ⇔ va ≡L ui a v ≡L ui . v. . δ(q0 . w ∈ Σ∗ : x = u · v · w. . a) = [ui a]L q0 = [ε]L F = {[ui ]L | ui ∈ L} zu zeigen: 1) Dieser Automat ist wohldefiniert : ¨ Das Ergebnis von δ. a a ⇒∈ L Widerspruch / 00001 11 u v 1 w 00001|1 00001111 00001 1111 1 v2 i=0 i=1 i=2 ∈L .. ya) = δ(δ(q0 . ∀i ≥ 0: u · v i · w ∈ L. a ∈ Σ ⇒ va ≡L ui a def ∀x ∈ Σ∗ : vax ∈ L ⇔ ui ax ∈ L ∀y ∈ Σ∗ : vy ∈ L ⇔ ui y ∈ L ↑ y = a · x F : z. f¨ r y ist die Aussage bewiesen. ε) = q0 = [ε]L IS: x = y · a a ∈ Σ. . [uk ]L } Σ δ([ui ]L .z. a) = u δ([y]. welcher Representant ui aus der Aquivalenza klasse [ui ]L gew¨hlt wird. an der man pumpen“ kann. Behauptung: δ(q0 .¨ ¨ 2.6 Das Pumping-Lemma f¨r regul¨re Sprachen F¨ r jede Regul¨re Sprache L gibt es eine n0 ∈ N (∀L ⊆ Σ∗ : L regul¨r ⇒ ∃n0 ∈ N).. [uk ]L seine Aquivalenzklassen von ≡L Q = {[u1 ]L [u2 ]L . die Menge F h¨ngt nicht davon ab. v = ε. a ! ⇔ui ≡L v u a 2. 27 . a u ” Das Lemma wird in der Regel dazu verwendet. x) = [x]L Beweis durch Induktion nach |x| IA: |x| = 0 x=ε δ(q0 .

xi+1 ... x1 .. x1 x2 ) . DEA mit L(A) = L a n0 := |Q| |x| ≥ 0 x = x1 x2 .¨ KAPITEL 2... x1 ) δ(q0 . x1 ...xn q0 Betrachte die Zust¨nde: a δ(q0 .xi+1 . ε) = q0 δ(q0 .xi ) = δ(q ′ . x1 x2 . . dessen L¨nge (n2 )2 < |uv i w| < (n2 + 1)2 ist..xi ).. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Fall 2: v enth¨lt nur Nullen . die vor Nullen stehen....xJ )=q′ =q′ q′ ∃0 ≤ i < j ≤ n0 : δ(q0 .xj ) δ(δ(q0 ..xn0 ) q0 u v δ(q0 . A. x1 ... a 001 001 ⇒∈ L / L = {0n 1n | n ≥ 1} ist nicht regul¨r a 2 ∈L n0 0n0 = uvw uv i w Die L¨ngen der W¨rter uv i w bilden eine arithmetische Folge mit Abstand |v| ≤ n2 a o 0 Abstand zwischen zwei Quadratzahlen: (n2 + 1)2 − (n2 )2 = ¨¨2 + 2(n2 ) + 1 − (n2 )2 = 2n2 + 1 > n2 (n2¨ 0 0 0) 0 0 0 0 > n2 0 0n0 +(i−1)·|v| Es gibt ein Wort uv i w.xj ) = q ′ 28 + + + + + + + + + + + q′ .        Ein Zustand q ′ muss mehrfach vorkommen       δ(q0 . ⇒ Widerspruch a 0 0 Beweis: L sei regul¨r (L ∈ L3 )..... . a Fall 3: v enth¨lt Nullen und Einsen a uv 2 w = u v v w enth¨lt Einsen.

1}∗ | x enth¨lt gleich viele Einsen und Nullen} a L′ = L ∩ 0∗ 1∗ = {0n 1n |n ≥ 0} nicht regul¨r a nicht regul¨r a • Homomorphismus Definition: Ein Homomorphismus h zwischen Σ∗ und Γ∗ ist eine Abbildung h : Σ∗ → Γ∗ mit der Eigenschaft h(x..¨ 2. *-Operation: regul¨re Ausdr¨ cke a u • Komplement: a Wenn L regul¨r ist. y) = h(x) · h(y) (∀x..7. dann ist auch L = Σ∗ − L regul¨r. δ...σ(xn ). Beispiel: h(a) = 01 h(b) = ε h(c) = 01 h(x1 . Vereinigung mit DEA ¨ Produkt zweier Automaten“ (Ubung) ” Anwendungsbeispiel L = {x ∈ {0.. y ∈ Σ∗ ) Ein Homomorphismus ist durch eine beliebige Abbildung h : Σ∗ → Γ∗ eindeutig gegeben (Σ∗ = Γ∗ ) ist nicht ausgeschlossen.: L1 . uv w) = δ(q0 . Produkt. Komplement. Q − F ) akzeptiert L • Umkehrung (alle W¨rter von hinten nach vorne gelesen) o regul¨re Ausdr¨ cke Bsp.. j ≥ 0} 1 2 ⊲ q0 · 2. B.xn ∈ L} 29 ... h. ABSCHLUSSEIGENSCHAFTEN REGULARER SPRACHEN u = x1 .. uvw) ∈ F x i L = {01} n0 = 3 0 L = {0i 1j | i ≥ 0.: (a + b)(ab)∗ a∗ b∗ → b∗ a∗ (ba)∗ (a + b) a u Beispiel: k-te Buchstabe von rechts = 1 DEA ben¨tigt 2k Zust¨nde o a k-te Buchstabe von links = 1 DEA kommt mit k + 2 Zust¨nde aus. Substitution mit regul¨ren Sprachen.xi v = xi+1 . x1 x2 x3 . Durchschnitt. L2 ∈ L3 ⇒ L1 ∪ L2 ∈ L3 Beweise: • Vereinigung. Σ..xn ) = h(x2 ) · h(x2 ) · . Σδ.. z. Homomorphismen und inverse Homoa morphismen.. a u Umkehrung. F ) akzeptiert L A′ = (Q.xn ∀i ≥ 0: δ(q0 .7 Abschlusseigenschaften regul¨rer Sprachen a Satz: Die regul¨ren Sprachen sind abgeschlossen gegen¨ ber Vereinigung. a Beweis: DEA A = (Q. Produkt..xj = ε w = xj+1 . ∗ Substution ist gegeben durch die Abbildung σ : Σ → 2Γ σ(L) = {y | y ∈ σ(x1 ) · σ(x2 )σ(x3 ). q0 . *-Operation. a • Durchschnitt: L1 ∩ L2 = L1 ∪ L2 • Durchschnitt.. D. q0 . · h(xn ) xi ∈ Σ h(abaabaab) = 0101010101 • Substitution Definition: Bei einer Substitution σ wird ein Buchstabe a ∈ Σ durch die Sprache σ(a) ersetzt.

8 Zusammenfassung: regul¨re Sprachen a ¨ • DEA. a ∈ Σ a u a u Ersetze in R jedes Vorkommen eines Buchstaben a ∈ Σ durch Ra • inverse Homomorphismen h : Σ∗ → Γ∗ Homomorphismus Satz: (L ⊆ Γ∗ ) ∈ L3 ⇒ h−1 := {x ∈ Σ∗ | h(x) ∈ L} ∈ L3 Beispiel: h(a) = 0 h(b) = 10 abaab Beweis: DEA A = (Q.} = σ(a(ab∗ b))∗ = (aab∗ b)∗ Satz: L ⊆ Σ∗ regul¨r a σ(a).} = (a(b + c))∗ —— σ(0) = a σ(1) = ab∗ b σ(L) = {aabbbbbaabaabbbb. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Beispiel: L = (01)∗ σ(0) = {a} σ(1) = {b. Homomorphismus. ac. δ. q0 . x) = δ(q. NEA: Uberpr¨ fen ob x ∈ L u • NEA.¨ KAPITEL 2. regul¨re Ausdr¨ cke: Erzeugen der W¨rter aus L a u o 30 . . a ∈ Σ seien regul¨r ⇒ σ(L) regul¨r a a Spezialfall: |σ(a)| = 1. Ra regul¨rer Ausdruck f¨ r σ(a). F ) δ ′ (q. Γ. b 0 b 1 b b 0a 0 a neuer DEA A′ = (Q. Σ.. δ ′ .. . 1 a a. abacacab... F ) 1 ⊲ 0. ababac. h(x)). ε.. x ∈ Σ b 2.. q0 . Beweis: requl¨re Ausdr¨ cke a u R: regul¨rer Ausdruck f¨ r L. c} σ(L) = {ababab.

a. 1... Z.. S → (S) S → S/S. S) beschriebene Spache L(G) ist L(G) = {x ∈ Σ∗ | S → x} ∗ 31 . . S. dann sind auch A + B.. o u ∈ (V ∪ Σ)∗ . b. 0. y) ∈ P durch die rechte Seite (Konklusion) ersetzt. U →9 Σ = {(.. y) ∈ P. U. V ′ ... ⇒U → 0|1|. u → v ⇔ ∃(x. (A) arithmetische u Ausdr¨ cke u S → V. A/B. u2 ∈ (Σ ∪ V )∗ : u = u1 xu2 ∧ v = u1 yu2 Wenn v aus u in k ≥ 0 Schritten abgeleitet werden kann. ∃u1 . → S + S. U → 0. V ′ → V ′ B. V ′ → V ′U B → c. dann schreibt man u → v: ∃v0 . wenn v aus u dadurch entsteht. . S → Z. Z → U. S → S − S.. /.. P ∈ V + × (V ∪ Σ)∗ • einem Startsymbol S ∈ V W¨rter aus (V ∪ Σ)∗ nennt man auch Satzformen. ∗.3 Grammatiken 3.. +. . dass man ein Vorkommen einer linken Seite (Pr¨misse) x einer a Regel (x. ). arithmetische Ausd¨ cke: u • Zahlen und Variablen sind arithmetische Ausdr¨ cke u • wenn A und B arithmetische Ausdr¨ cke. P. vk : u = v0 → v1 → v2 → ... −. S → S ∗ S.1 Definition von Grammatiken Beispiel: in Programmiersprachen.|9 B → B. c. ..} V = {S. A ∗ B. ⇒B → a|b|c|.. v1 ... Z → U. U → 1. A − B. B → b.. . 9. B → a. → vk = v eine Ableitung ∗ V + = V ∗ − {ε} Definition: Die von einer Grammatik G = (V. Σ. B} Beispiel: 5 + (13 ∗ 2) ∈ L(G) 3 ∗ (−4) ∈ 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).. dann schreibt man u → {ε} v ist aus u in einem Schritt ableitbar..

b. x ∈ Σ∗ .. −1) ⇒ q ′ Vb → qVa ⇒ Vb q ′ → qVa ⇒ q ′ Vc Vb → Vc qVa ... b. |x| ≤ |y|} ∪ {(S. 1. ε)} D.. L2 . Σ. +1) δ(q. ⊢ k2 Simulation durch G: x ← $q0 x# ← .. y ∈ (Σ ∪ V \ {S})∗ . x ∈ L(G) (andernfalls kann er nicht terminieren).. L1 .. die Konklusionen der Regeln sind mindestest so lang wie die Pr¨missen. GRAMMATIKEN 3. kontext-sensitive Grammtiken P ⊆ {(x. ∀c ∈ Γ {Va | a ∈ Γ} neue Variablen... ← $kn−1 # ← $kn # ← . ← S V = Q ∪ {$.. q0 .2 Die Chomsky-Hierarchie Nach Noam Chomsky (zeitgen¨ssischer Linguist) o • Typ-0-Grammatiken: beliebige Grammtiken • Typ-1-Grammatiken: monotone bzw. a • 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¨ren Sprachen (es gibt auch linkslina eare Grammatiken) Entsprechend gibt es Typ-0-Sprachen. Ist x ∈ L(G)? ” Algorithmus: Probiere alle Ableitungen der L¨nge k systematisch durch und pr¨ fe. a) = (q ′ . u Dieser Algorithmus akzeptiert gdw. ⇐“ Gegeben TM M = (Q. Γ. a) = (q ′ . F ) ” Idee: q0 x ⊢ k1 ⊢ k2 ⊢ . a) = (q ′ . a Beweis: ⇒“ G = (V. L3 seien die Typ-0-Sprachen.. L0 . Typ-1-Sprachen. . S.. P ) sei gegeben.. h. 0) δ(q..... trivial L3 ⊂ L2 ⊂ L1 ⊂ L0 regul¨r = kontextfrei = kontextsensitiv = rekursiv aufz¨hlbar a a L= {0n 1n } L= {0n 1n 0n } Die Sprachen aus L1 sind entscheidbar 3. #} ∪ Produktionen P : δ(q.KAPITEL 3. b. . B.3 Typ-0-Sprachen (rekursiv aufz¨hlbare Sprachen) a Satz: Typ-0-Sprachen sind genau die rekursiv aufz¨hlbaren Sprachen.. ob dabei x hera u auskommt. f¨ r k = 0. 3. Σ. δ. . y) | x ∈ V + . 2. Typ-1-Sprachen.. die dem Bandalphabet entsprechen ∪{S} 32 .

∀q ∈ F Endregeln: B-Symbole an den R¨ndern l¨schen. a)} ∪ {q → ε | q ∈ F } q′ ∈δ(q. Σ. 3. P.a) S = q0 ⇒“ Gegeben: G = (V. $. q0 . Symbole Vx in Terminalsymbole x a o o uberf¨ hren.4 Typ-3-Sprachen (regul¨re Sprachen) a Satz: Typ-3-Sprachen sind genau die regul¨ren Sprachen a Beispiel: S → aT |bS T → bT |bS|aS|ε V = {S. q ′ = δ(q. L = {0n 1n |n ≥ 0} ist keine Typ-3-Sprache. a Berechnungen des Automaten werden durch Ableitungen der Grammatik dargestellt und umgekehrt. Vx → x. S) ” Gesucht: NEA A mit L(A) = L(G) A: Q=V Σ=Σ δ(q. Σ. F ) ” Gesucht: Typ-3-Grammatik f¨ r L(A) u G: V =Q Σ=Σ a q q′ q → aq ′ P = {q → aq ′ | q ∈ Q. TYP-3-SPRACHEN (REGULARE SPRACHEN) Anfangsregeln: Erzeuge eine beliebige Konfiguration mit einem akzeptierenden Zustand und gen¨ gend u vielen B-Symbolen rechts und links. u Jede Ableitung eines Wortes x entspricht einer akzeptierenden Berechnung. S → $T # T → T Va |Va T. a) = {q ′ | (q → aq ′ ) ∈ P } F = {q ∈ V | (q → ε) ∈ P } q0 = S Zust¨nde des Automaten entsprechen den Variablen der Grammatik.4. aber sie ist eine Typ-2-Sprache G: S → 0S1|ε S → 0S1 → 00S11 → 000S111 → 000111 33 . q0 l¨schen u o ¨ VB # → #. x∈Σ #→ε $q0 → ε Jede akzeptierende Berechnung f¨ r w ∈ Σ∗ kann in eine Ableitung von w transformiert werden. δ. NEA) A = (Q.¨ 3. $VB → $. # l¨schen. b} S → aT → abS → abbS → abbaT → abbabT → abbab ∈L(G) Beweis: ⇐“ Gegeben: DEA (bzw. ∀a ∈ Γ T → q. a ∈ Σ. T } Σ = {a.

S → y. W. Daher muss die Schleife irgendwann terminieren x ∈ L(G) ⇔ x ∈ M 34 . dass immer nur eine einzelne Variable durch etwas Neues ersetzt wird. S darf jedoch in keiner Konklusion vorkommen. |z| ≤ |x| . 1} S → ε|V0 T V1 V0 |010 T → V0 V1 U V0 → 0 U V1 → V1 U V1 → 1 ∗ U V0 → W V0 V0 |00 V1 W → W V1 V1 W → W V1 U 1 → 1U V0 W → V0 T U V1 → V1 U S → 0T 10 → 001U10 → 0011U0 → 0011W 00 → 00W 1100 → 00T 1100 → 000W 111000 → 00001111U000 → 000011110000 L(G) = {0n 1n 0n | n ≥ 0} Bemerkung: Man kann die Regeln einer kontextsensitiven Grammatik in die Form bringen. aber o diese Ableitung ist in einem Schritt zu Ende. Beweis: G. y = ε} M kann folgendermaßen induktiv konstruiert werden: Beginne mit M := {S} Schleife : ∀y ∈ M : ∀z ∈ (V ∪ Σ∗ ): y → z. die h¨chstend so lang wie x.KAPITEL 3. M := M ∪ {z} w i e d e r h o l e . X1 X2 X3 → BX2 X3 BX2 X3 → BAX3 BAX3 → BAD ABC → X1 BC X1 BC → X1 X2 C X1 X2 C → X1 X2 X3 Satz: Typ-1Sprachen sind entscheidbar. Beispiel: V = {S. |x| ∗ |M | ≤ i=1 (|Σ| + |V |)i endlich. B. T. V1 } Σ = {0.5 Typ-1-Sprachen (kontextsensitive Sprachen) Bei alle Regeln ist die Konklusion mindestens so lang wie die Pr¨misse.. U. a Ausnahme: S → ε ist erlaubt. X2 . z. außer bei der Ableitung S → ε. x ∈ Σ∗ Frage: x ∈ L(G) (auch bekannt als das Wortproblem) Wenn x = ε x ∈ L(G) ⇔ (S → ε) ∈ P Andernfalls k¨nnen in der Ableitung von x nur Satzformen auftreten. s o l a n g e neue Elemente zu M dazugekommen s i n d . GRAMMATIKEN 3. V0 . Folgerung: in einer Ableitung k¨nnen die Satzformen nicht schrumpfen.. X3 .. Gramatik. . o o M = {y ∈ (V ∪ Σ)∗ | |y| ≤ |x|. ABA C Kontext ∗ ∗ ∗ ∗ A Kontext → ABAA01DA Beispiel: Regel ABC → BAD wird ersetzt durch: neue Variablen X1 ..

1 Tiefenstruktur von Sprachen Das Wetter war gestern regnerisch. 35 . ” Gestern hat | es | geregnet.4 Kontextfreie Sprachen (Typ-2-Sprachen) 4.2 Dyck-Sprache D1 S → SS | (S) | ε ∗ 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 ց. Subjekt (Im Deutschen kann das Pr¨dikat zerlegt werden ⇒ Analyse kann sehr schwer sein!) a 4. Satz Subjektgruppe Pr¨dikatgruppe a Nominalgruppe Verb Adverb Pr¨dikat a Artikel Hauptwort war“ ” gestern“ ” Adjektiv das“ Wetter“ regnerisch“ ” ” ” Bei einer kontextfreien Grammatik wird bei der Syntaxanalyse ein solcher Syntax-Baum“ aufgebaut. der oberhalb der x-Achse bleibt wird Dyck-Weg genannt.

KAPITEL 4. o S S ( S ( S ε ) ( S ) S S ε ( ( ) S S S ε ) ) ∗ ∗ ∗ 36 .. ) = b o ” N. a a b b S → SS | (S) | [S] | ε L = {x ∈ {a... KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) D2 ⇒ ([()()])[] ∈ D2 Dk . positive“ Dyck-W¨rter (= a. b}∗ | x enth¨lt gleich viele as wie bs} a a b b b S → SS|ε|aP b|bN a P → P P |aP b|ε N → N N |bN a|ε a b a a a b P. ” VS = {x ∈ Σ∗ | S → x} = L VP = {x ∈ Σ∗ | P → x} VN = {x ∈ Σ∗ | N → x} sind eine L¨sung des Gleichungssystems (nicht unbedingt eindeutig).3 Kontextfreie Grammtiken als Gleichungssysteme Man kann eine kontextfreie Grammatik auch als Gleichungssystem. (= b o ” 4.. VP . k verschiedene Klammerpaare. negative“ Dyck-W¨rter ) = a... VN sind unbekannte“ Sprachen. dessen L¨sungen unbekannte Sprachen sind o interpretieren VS = VS · VS ∪ {ε} ∪ a · Vp · b ∪ b · Vn · a VP = VP · VP ∪ a · VP · b ∪ {ε} VN = VN · VN ∪ b · VN · a ∪ {ε} VS .

Beispiel: S → if B then S | if B then S else S | while .4 Eindeutigkeit Definition: Eine kontextfreie Sprache ist eindeutig. welche Variable be einer Ableitung als n¨chstes ersetzt wird. wenn jedes Wort eine eindeutige Linksableitung / eine eideutige Rechtsableitung / einen eindeutigen Syntaxbaum hat. Bl¨tter sind Terminalsymbole. a S S ( S ε ) ( S S ε ) ( S S S ε ) ∗ S S S ( S ε anders arithmetische Ausdr¨ cke (am Beispiel 3 − 5 + 5): u S S 3 + 4 5 ) ( S S ε ( ) S S ε ) ¨ ¨ ¨¨ ¨ . Linksableitung: Es wird immer die linkeste Variable ersetzt 2... dargestelltes Wort wird durch die Folge a der Bl¨tter gegeben. a ()()() kann durch 2 verschiedene Syntaxb¨ume / Linksableitungen / Rechtsableitungen dargestellt werden. Rechtsableitung: Es wird immer die rechteste Variable ersetzt 3. 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.4..¨¨S 3 ¨ ¨¨ ¨ ¨ + 4 5 S 4.. | . Kinder einses Variablenknotens sind die Symbole auf der rechten Seite einer Regel in der passenden Reihenfolge. if B1 then (if B2 then )S1 else S2 if B1 then (if B2 then S1 else S2 ) Grammatik nicht eindeutig! 37 .4. Syntaxbaum: Wurzel = S. kann auf drei a Arten aus der Welt geschafft werden: 1.

. b ∈ Σ Ausnahme: Die Regel S → ε ist erlaubt... A → b. bbeliebige Anweisung. A → BC. Elimination von Terminalsymbolen auf der rechten Seite: • F¨ hre f¨ r jedes a ∈ Σ eine neue Variable Va ein. f¨ r die A → ε.KAPITEL 4.. inklusive einer bedingten Anweisung mit else-Klausel.. ” T. a (mehrdeutig) (eindeutig) 4. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) A. | andere Anweisungen.. ” Solche Sprachen heißen inh¨rent mehrdeutig. bedingte Anweisung. in der ein Vorkommen dieser Variablen a gestrichen wird. die noch auf else“ wartet. Elimination von ε-Regeln ∗ Konstruiere die Menge M aller Variablen A ∈ V . Zerlegung von Regeln mit mehr als 2 Variablen auf der rechten Seite • Einf¨ hren von zus¨tzlichen Zwischenvariablen in mehreren Schritten u a Beispiel: A → BAAS.. u u • Ersetze a durch Va auf allen rechten Seiten • F¨ ge Regeln Va → a hinzu.. S → V( SV) V( → ( V) →) 2. S → S + S|S − S|Z S → Z|S + Z|S − Z Es gibt Sprachen. B. A → BSV1 V1 → AV2 V2 → AS 3. C ∈ V A ∈ V. erstelle eine neue Regel.. 2. 38 . A. die eine Variable u u aus M auf der rechten Seite enth¨lt. wenn jede Regel lediglich folgende Gestalt haben: 1. Satz: Zu jeder kontextfreien Grammatik G gibt es eine Grammatik G′ in CNF mit L(G′ ) = L(G) − {ε} 1.5 Chomsky-Normalform Definition: Eine kontextfreie Grammatik ist in Chomsky-Normalform (CNF). die eindeutig ist.. aber S darf nie auf der rechten Seite einer Regel vorkommen.. u Beispiel: S → (S). 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 . F¨ r jede Regel. a ¨quivalente Grammatik.. f¨ r die es keine eindeutige Grammatik gibt: u {0i 1j 01k | i = j ∨ j = k} = {0n 1n }0∗ ∪ 0∗ {1n 0n } 0n 1n 0n sind in beiden Teilsprachen“ enthalten.

u F¨ r die n¨chsten Ableitungsschritte geht man genauso vor. X → x f¨ r alle X ∈ VA . u • Auf der rechten Seite aller Regeln wird wird jede diese Variablen A durch A′ ersetzt. U. A → x ∈ Σ berechne die Variablenmenge u VA = {X ∈ V | X → A}. u X → Y Z: Eventuell wird Y oder Z in der Ableitung zu ε gemacht. u u Am Beispiel: U → V ′W ′ | V ′ | W ′ | ε U ′ → V ′W ′ | V ′ | W ′ V → W ′ | V ′V ′ | V ′ | ε V ′ → W ′ | V ′V ′ | V ′ . u • Erstelle f¨ r jede Variable A aus M eine neue Variable A′ . .. In diesem Fall enth¨lt die a neue Grammatik eine Regel X ′ → Y ′ oder X ′ → Z ′ ..4. Beispiel: Angenommen f¨ r alle Regeln K → L ergeben folgenden Zusammenhang: u ∗ A B D C E In einer Ableitung kann eine Kette von Anwendungen derartiger REgeln vorkommen.5. u a Lasse die Regeln f¨ r die urspr¨ nglichen Variablen A ∈ M weg. Elimination von K → L • F¨ r jede Regel der Form A → BC. . S = ε Betrachte die rechte Seite der ersten Regel dieser Ableitung. A} f¨ r u U →VW | V | W | ε V →W | VV | ε | V A→U | VV | ε | V (B → AU BV | ABV | AU B | AB | BV | U B | B) ↓ ↓ ε ε U →VW U →W ∗ • M wird initialisiert mit den Variablen A f¨ r die es eine Regel A → ε gibt. u • Anschließend entferne alle Regeln der Form A → B. Falls S ∈ M ist. wo das bereits ber¨ cksichtigt ist. u o • Die entsprechende Variablen werden dann zu M hinzugef¨ gt... • Die Regeln f¨ r A’ sind dieselben wie f¨ r A. → U V DU U ) B→V A AB a 39 . S → S ′ ein u 4.. A→B→C→A→B→B→C→A→B→C →D (U V A U U → U V BU U → . nur die ε-Regel wird gestrichen. f¨ ge u u u u daf¨ r die Regeln S → ε. Behauptung: F¨ r alle A ∈ M gilt u LA′ = LA − {ε} ∗ (LX = {s ∈ Σ∗ | X → s}) ∗ Begr¨ndung: X → S.. CHOMSKY-NORMALFORM Beispiel: M := {V. • Erstelle neue Regeln X → BC bzw. außer f¨ r S. u ∗ • Durch das Aufstellen neuer verk¨ rzter Regeln k¨nnen neue Regeln der Form A → ε entstehen..

sj Vii = {X | (X → si ) ∈ P } Vij = {X | ∃(X → BC) ∈ P. Ist s ∈ L(G) ∗ Vij := {X ∈ V | X → si si+1 . +} S → 0 | SP P → MS | + M → 0 | 1 | PP Ist das Wort s = 0 + 1 + 0 = s1 s2 s3 s4 s5 in der Sprache L(G)? i..j } vorher berechnet Beispiele: Gegeben sei folgende Grammatik in CNF: Σ = {0. B..sk |sk+1 .. (D → AB)..sn s ∈ L(G) ⇔ s ∈ V1n Berechne Mengen Vij induktiv. (basiert auf dem Prinzip dynamischer Programmierung) Eingabe: s = s1 s2 ..6 Algorithus von CYK“ ” Der CYK-Algorithmus (Cocke. Younger) wird zur L¨sung des Wortproblems f¨ r kontextfreie o u Sprachen in CNF angewandt..sn ∈ Σ∗ ..sj . j 1 2 3 4 5 1 M. E} A → AB.. Folgerung: Typ-2-Sprachen sind Typ-1-Sprachen... Grund: CNF-Grammatik erf¨ llt die Forderungen von Typ-1-Grammatiken u 4.. V12 = {S} V13 = ∅ oder k = 2 k=1 oder k = 2 oder V11 = {M. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) D → AB VD = {A.. Kasami. a A → BC. von denen aus A erreichbar ist. nach L¨nge j − i + 1 der Teilkette si . 1. S} V11 = {M. S 2 S P 3 − − M 4 − − − P 5 − − − − M. S} V12 = {S} V22 = {P } V23 = ∅ V33 = {M } oder 40 .sj } (1 ≤ i ≤ j ≤ n)..sj ..KAPITEL 4.... D. S ⇒ 0 + 1 + 0 ist nicht in der Sprache L(G). E → AB Die Menge VA k¨nnen durch umgekehrte Graphensuche bestimmt werden: Suche alle Variablen o X. Teilprobleme s1 s2 . si . C → AB... C. B → AB.. → si si+1 . ∃k: i ≤ k ≤ j: B ∈ Vik ∧ C ∈ Vk+1.

7.} beliebig viele Wiederholungen (auch 0) des Inhalts [..j−1 P M P + S 0 {X | ∃(X → BC) ∈ P : B ∈ Vik ∧ C ∈ Vk+1. S 0 i < j: Vij = k=i.7 (Erweiterte) Backus-Naur-Form (E)BNF Beispiel: (hypothetische) Grammatik eines Ausschnitts einer Programmiersprache arithmetischer Ausdruck ::= Term { Additionsoperator Term } ↑ Variable der Grammatik → Additonsoperator ::= Terminalsymbol oder“ Terminalsymbol ” + | − Term ::= Faktor { Multiplikationsoperator Faktor } Multiplikationsoperator ::= ∗ | / Faktor ::= Zahl | Variable | ( Arithmetischer Ausdruck | Funltionsaufruf ) Funktionsaufruf ::= Name () | Name ( Argumentliste ) Argumentliste ::= Argument {.] Optional.. (ERWEITERTE) BACKUS-NAUR-FORM (E)BNF S S S 0 P + P + s=0+++0 i.j } Laufzeit: Es m¨ ssen h¨chstens n2 Mengen Vij berechnet werden... Der Inhalt kann auch weggelassen werden. 41 .. Argument } ::= | { } [ ] Metasymbole {..4.. Jede Berechnung ist eine Schleife uber u o ¨ h¨chstens n Werte k.. ⇒ O(n3 ) o 4. j 1 2 3 4 5 1 M.i+1. S 0 2 S P + 3 S M P + 4 S − M P + 5 S M P − M.

a ¨ z 2 . 0n0 enthalten. 1n0 .KAPITEL 4. a a a a ⇒yz i uv i w ∈ L f¨ r i = 1 / u ⇒ L ist nicht kontextfrei Beweis: Sei L(G). u. mindestens ein Block ¨ndert seine L¨nge nicht.. u Der Ableitungsbaum ist ein bin¨rer Baum a Wenn jeder Weg von der Wurzel zu einem Knoten. G in CNF Ein Ableitungsbaum f¨ r x mit |x| = n hat n − 1 innere Knoten A mit je zwei Kindern.. z 3 . . v.8 Pumping-Lemma f¨r kontextfreie Sprachen u F¨ r jede kontextfreie Sprache L gibt es eine Schranke n0 ∈ N.mindestens ein Block ¨ndert seine L¨nge. u ∀x ∈ L: |x| ≥ n0 ∃y. a Also ist z und v jeweils in einem der drei Bl¨cke 0n0 . a {abc} ↔ (abc)∗ [abc] ↔ (abc + ε) als regul¨rer Ausdruck a |↔+ 4.. aus dem ein Terminalsymbol entsteht.enth¨lt mehr Uberg¨nge zwischen 0 und 1 als z a a 2 2 ¨ ⇒yz uv w enth¨lt mehr als 2 Uberg¨nge a a ⇒yz 2 uv 2 w ∈ L / Fall 2: v enth¨lt 0 und 1 analog. z.. ≤ h Variablenknoten enth¨lt. v = ε z Beispiel: L = {0n 1n | n ∈ N} Annahme: L sein kontextfrei ⇒ n0 x = 0n0 1n0 0n0 = yzuvw Fall 1: z enth¨lt sowohl 0 als auch 1. w ∈ Σ∗ : x = yzuvw ∈ L ∧ (∀i ≥ 0)yz i uv i w ∈ L ∧ z. dann |x| ≤ 2h−1 a v 1 2 3 4 X a X 0 X X S X X X 1 b X c 42 . durch Einf¨ hren von u o u neuen Variablen und zus¨tzlichen Regeln. o yz i uv i w. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) ¨ { } [ ] m¨ ssen bei der Ubersetzung in eine kontextfreie Grammatik aufgel¨st werden.

43 . L3 ⊂ L2 ⊂ L1 ⊂ L0 regul¨r = kontextfrei = kontextsensitiv = rekursiv aufz¨hlbar a a L= {0n 1n } L= {0n 1n 0n } ⊂ entscheidbare Sprachen Halteproblem 4. der h Variablenknoten enth¨lt a h := |V | + 1 → Dieser Weg muss eine Variable A mehrfach enthalten. dann gibt es einen Weg von der Wurzel. n ∈ N}... ABSCHLUSSEIGENSCHAFTEN KONTEXTFREIER SPRACHEN Wenn |x| > 2h−2 . L3 seien die Typ-0-Sprachen. die unter diesen beiden a Knoten h¨ngen heißen T1 und T2 a T2 ⊂ T1 A T2 A y z u v w ∗ S → yAw T1 : A → zAv T2 : A → u ∗ ∗ (zv = ε) S → yAw→yzAvw → yzuvw beliebig oft wiederholen S → yAw → yuw (= yz 0 uv 0 w) (i=0) ∗ ∗ ∗ ∗ ∗ S → yAw → yzAvw → yzzAvvw → yz i Av i w → yz i uv i w (i≥1) ∗ ∗ ∗ ∗ ∗ Folgerung: Die Chomsky-Hierarchie ist echt: L0 . L1 = {0n 1m 0m | m. Typ-1-Sprachen. ·. dann w¨re sie auch abgeschlossen u a a bez¨ glich ∩ u Das Komplement von {0n 1n 0n } ist kontextsensitiv. ∗ u u Kontextfreie Sprachen sind nicht abgeschlossen bez¨ glich ∩ und Komplement Beweis: L1 = {0n 1n 0m | m.9 Abschlusseigenschaften kontextfreier Sprachen Satz: Kontextfreie Sprachen sind abgeschlossen bez¨ glich ∪.4. L1 . n ∈ N} L1 ∩ L2 = {0n 1n 0n | b ∈ N} nicht kontextfrei. L1 ∩ L2 = L1 ∪ L2 (de-Morgan) Wenn kontextfreie Sprachen abgeschlossen bez¨ glich Komplement w¨ren. L2 .9. S n := 2|V |−1 + 1 funktioniert T1 Die beiden Teilb¨ume. .

Definition: Eine Variable heißt ¨ berfl¨ ssig.. dann setzte M := M ∪ {A}. dass G1 in CNF vorliegt.. den nur das erste Variablensymbol wird durch etwas anderes ersetzt. a Beispiel: A → AB (einzige Regel f¨ r A) u • Menge M : Initialisiere M := {A ∈ V | (A → x) ∈ P } • Wenn ses eine Regel A → BC mit B. Ubung 11) Wir nehmen an. Aus der Variable l¨sst sich kein Terminalwert erzeugen. Variablen in M = V − M sind uberfl¨ ssig aus dem zweiten Grund. S → AB → ABA → . ¨ Streiche Variablen in V − M2 . • • • • Initialisiere M2 := {S} Wenn es eine Regel A → BC mit A ∈ M2 gibt. C ∈ M gibt. wenn sie in keiner Ableitung eines Wortes ∈ Σ∗ vorkommt. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) 4. G2 kontextfreie Grammatiken • • • • • • • • L(G1 ) = 0? L(G1 ) = 0? Ist L(G1 ) regul¨r? a 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. Das Ergebnis ist eine Grammatik ohne Uberfl¨ ssige Variablen. C}. u 2. bis M3 sich stabilisiert.KAPITEL 4. u u 2 Gr¨nde: 1. h. u 4.11 Kellerautomaten Typ-0-Sprachen (Typ-1-Sprachen Typ-2-Sprachen Typ-3-Sprachen Linksableitung: S → ABC → bAABC → bbAAABC → bbAABC → bb B BSBC ⇐⇒ ∼ ⇐⇒ ⇐⇒ Turingmaschinen Turingmaschinen mit linearem Platzbedarf) Kellerautomaten endliche Automaten Terminalsymbole des endg¨ ltigen Wortes u aktuelle Variable zuk¨ nftige Variablen“ u ” ¨ D. Anderung nur am Anfang. von S nicht ereichbar. 44 .10 Entscheidungsprobleme kontextfreier Sprachen Seien G1 . Wiederhole. die von S aus erreichbar sind. u ¨ • Entferne die Variablen in M und alle Reglen. dann setze M2 = M2 ∪ {B. bis keine neuen Varaiblen mehr in M aufgenommen werden. • Wiederhole. ¨ S →¨ AC (A ∈ M ) M2 := Menge der Variablen. die M enthalten aus der Grammatik.

. q1 . 10Z0 ) ⊢ (q1 .. 0. noch nicht gelesener Teil des Eingabewortes und • z ∈ Γ∗ . #10. . Z0} a) Q = {q0 . ε..wn ∈ Σ∗ . 00)} δ(q0 ... z) ∈ δ(q.. Z0 ) (b) ⊢ (q2 . 1.zk ) (q. ε. .. Z0 ) = {(q1 . 1) = ∅ . q2 } mit F = {q2 } δ(q0 . zz2 .. 1.4. transitive reflexive H¨ lle von ⊢ u ∗ falls (q ′ ..wn . 11)} δ(q0 . ε} δ(q1 . Z0 ){q2 . 1}} Σ = {0. 1#10. 1Z0 )} δ(q0 .zk ) ⊢ (q ′ . w1 w2 . Z0 )} δ(q1 . z) ∈ δ(q..11.. w1 . 10)} δ(q0 . 0Z0 )} δ(q0 . a. ε) (q0 . 0Z0 ) ⊢ (q0 . 0) = {(q0 .. ε} a)δ(q1 .) Beispiel: (a) ⊢ (q1 . 10. Z0 ) = {(q0 ..wn .wn . 0. w1 w2 . die durch eine Menge F ⊆ Q von akzeptierenden Zust¨nden akzeptieren a Beispiel: L = {w#wR | w ∈ {0.. γ) bedeutet: Wenn der PDA im Zustand q ist. Z0 ) ⊢ (q0 . zz2 . 1) = {(q1 . dann kann er in den Zustand q ′ wechseln und die Spitze des Kellers durch z ersetzen (z = ε: Das oberste Symbol γ wird gel¨scht). #.. Definition: Eine Konfiguration eines Kellerautomaten ist ein Tripel (q. Z0 } δ(q1 .. 0) = {(q1 . ε. ε. z1 ) 45 . Inhalt des Stapels (Spitze ist links. w1 . 0. #} Γ = {0. #. w1 ∈ Σ falls (q ′ . z) mit • q ∈ Q. 0. ε} a)δ(q1 . 10Z0 ) ⊢ (q1 . o Es gibt zwei Arten von Kellerautomaten: a) solche. Z0 ) = {(q0 . z1 . KELLERAUTOMATEN Definition: Ein (nichtdeterministischer) Kellerautomat (Push-down automaton. nichts liest.. z) ∈ δ(q.zk ) ⊢ (q ′ . Z0 ) Nachfolgerelation ⊢ f¨ r Konfiguration u (q. 0. 0. 1.wn .. 01#10. q1 } b) Q = {q0 .. 1)} δ(q0 ..wm . 1) = {q1 .. w2 . 1) = {(q0 . • w1 . 0)} δ(q0 . ε. b) solche. PDA) hat • • • • • • ein Eingabealphabet Σ eine Zustandsmenge Q ein Kelleralphabet Γ ein Bodensymbol Z0 ∈ Γ einen Anfangszustand q0 ∈ Q ∗ ¨ eine Ubergangsrelation δ: Q × (Σ ∪ {ε}) × Γ → 2Q×Γ (q ′ .. und er den Buchstaben a liest (bzw.zk ) ⊢ . Z0 ){q1 . 01)} δ(q0 . 1. 1) = {(q0 . falls a = ε ist). die mit leerem Keller akzeptieren. w1 .. 1... #. ε.. 0Z0 ) ⊢ (q1 . usw. 0) = {q1 . z1 ).. as obere Kellersymbol γ ist.. augenblicklicher Zustand. 1. z1 . 0) = {(q0 .

vuv.. q0 }. h. δ) ein PDA. q ′ ) Tripelkonstruktion“ ” 46 . ε. B1 . w. u. S) ⊢ (q0 . der mit leerm Keller akzeptiert. F = {qF }) ein PDA. Z0 Z0 )} ′ δ ′ (q. 10.KAPITEL 4.. a ∈ Σ: |δ(q. Z0 ) ⊢ (q ′ .. akzeptiert durch F ⊆ Q von akzeptierenden Zust¨nden. ohne die Eingabe gelesen wird. weil M den a Keller leert. B1 . unser obiges Beispiel ist eigentlich ein DPDA Beispiel: L2 = {wwR | w ∈ {0. uvuv. 10Z0) ⊢ (q1 . Z0 . Z0 . 0110. ε. Z0 ) = {(q0 . Satz: Die PDAs. ε). Z. γ) wie oben (w ∈ {0. der nach b) akzeptiert ′ ′ ′ δ ′ (q0 . 0Z0 ) STOP. x. 0110. u u δ(q0 . F¨ r jede Regel A → B1 B2 .) wie oben. z). 1. vuv. S → ABC → uBC → uAAC → uAC → uvC → uvBC → uvuC → uvuv (q0 . γ)| ≤ 1 (Dann gibt es zu jeder Konfiguration h¨chstens eine Nachfolgekonfiguration. Σ. q0 . dass M ′ nicht nur deshalb akzeptiert..Bk f¨ ge (q0 . u ∈ Σ Der Kellerautomat kann nun genau die Linksableitung der Grammatik nachbilden. ǫ. Automat akzeptiert mit leerem Keller. BC) ⊢ (q0 . Z0 ) = {(qF . u u F¨ r jede Regel A → u ∈ Σ f¨ ge (q0 . Γ.. Beweis: ⇒“ Seien M = (Q.. A) := {(q0 . Σ. 1}) δ(q0 .. Γ = V. a ¨ ′ ′ • M f¨ gt ein zus¨tzliches Kellersymbol Z0 als unterstes ein. Σ. u a ⇐“ M = (Q.. 110. ε.. .. A) ein. Σ. ε. ABC) ⊢ (q0 . KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) Die vom PDA M akzeptierte Sprache ist: a) L(M ) = {x ∈ Σ∗ : (q0 . {q0 }. u. ⇐“ Gegeben: Kellerautomat. ε) | (A → u) ∈ P }. γ)} f¨ r γ ∈ {0. AAC) ⊢ .. q0 . Satz: Die kontextfreien Sprachen sind genau die Sprachen. Γ ∪ {Z0 }. Z0} δ(q0 . ε... 1}∗} Σ = {0. δ. A) := {(q0 . (q0 . ε. akzeptieren dieselbe Klasse von Sprachen. a ” Gesucht: Grammatik G. ε. 110. der nach b) akzeptiert ” neuer Automat M ′ : • f¨ gt ein zus¨tzliches unterestes Kellersymbol ein. ε)} ∗ ∗ ¨ • Alle Uberg¨nge von δ werden ubernommen. V = Q × Γ × Q ∪ {S} Variablen haben die Form (q. wo der Keller geleert wird. die nach (a) und nach (b) akzeptieren. z ∈ Γ∗ } Definition: Ein PDA ist ein deterministischer Kellerautomat (DPDA) wenn: ∀q ∈ Q. uvuv. Γ.. A) ein. q ′ ∈ F. die Grammatik ist in CNF. 0Z0) ⊢ (q1 . Z0 . a. γ) = {(q1 . und ” ′ ′ ′ ′ ′ M = (Q ∪ {qF . 1.weiter wie bisher ⊢ (q0 . ¨ • Das zus¨tzliche Kellersymbol stellt sicher.Bk ) ∈ δ(q0 . x. 110. 10Z0) ⊢ . δ ′ .) o D. γ ∈ Γ. 1} Γ = {0. q0 . Z0 ) ⊢ (q ′ . 10.Bk ) | (A → B1 . Z0} u δ(q1 . Z0) ⊢ (q0 . 0Z0) ⊢ (q0 . Z0) ⊢ (q0 . Z0 = S. F ) sei ein Automat. γ)| + |δ(q. q ′ ∈ Q} b) L(M ) = {x ∈ Σ∗ : (q0 . Wenn M in einem akzeptierenden Zustand u a ubergehen. Beweis: ⇒“ ” • • • Wir nehmen an. die von Kellerautomaten akzeptiert werden.Bk ∈ V ∗ ) ∈ P } δ(q0 . ε) ∈ δ(q0 .

q1 } δ(q0 . was unter Z auf dem Stapel ist. q1 ) (2) am Beispiel δ(q0 .. 10. q ) f¨ r alle q ∈ Q ¯ u ¯ Aus der Behauptung folgt: L(G) = L(M ) q ¯ q q w ∈ L(G) ⇔ S w⇔ ∃¯: (q0 . z0} δ(q0 . 0. 0. Z0 ) ⊢ (q1 . 1}. ε) ∈ δ(q.. x ∈ {0. 0. Z0 ) ⊢ (¯. Z1 Z2 . Beweis durch Induktion nach der L¨nge der Ableitung bzw. KELLERAUTOMATEN ∗ Idee: S → w1 w2 . Z0 . q1 ) → 0110(q1 . z2 . 0Z0) ⊢ (q0 . ε. Z1 . 1. q ¯ (a ∈ Σ ∪ {ε}) (1) (2) (3) 47 . ε. Z0 .. Z0 .. 1. q0 )(q0 . q1 )(q1 . Z0 . 1}} δ(q1 . Z3 . q1 ) (3) am Beispiel δ(q0 . q3 )(q3 . 0110. q0 ) (q0 . x. Z0) ⊢ (q0 .(ql . q1 )(q1 . 0)} (q0 . 1}∗ } Q = {q0 . 0Z0 )} (q0 . q1 )(q1 ..zl u ¯ (q. 0Z0) ⊢ (q1 . q1 ) → 0(q0 . 10. . q0 ) (q0 ..(ql−1 ..wn . z0 ) = {(q1 . q ) → w ⇐⇒ ∃¯: (q0 . • q2 . q ′ ) → a Behauptung: (q.... 0. 0)} (q1 . x.. Z ′ = z1 z2 .wn . q0 ) → 0(q0 . w1 . q ′ ) → w ∈ Σ∗ ⇔ (q.. wk+1 . w. z ∈ {0. zl . ∗ ∗ ∗ ∀q1 . q0 ) → (q1 . Regeln: F¨ r alle (q ′ . ql+1 ) das soll folgende Rechnung widerspiegeln (q0 . q1 )(q1 . 1. Z0 . ε. 0) = {(q1 . z) mit |z ′ | ≥ 1. q1 ) → (q1 . z. Z2 . Z) ⊢ (q ′ . z) = {(q1 . ql−1 . 10Z0) ⊢ (q1 . a. q4 ). q3 . q2 )(q2 . sobald Zi als oberstes Startsymbol erscheint. z) = {(q0 . werden geraten. Z0 . 110. z)} δ(q1 . 1. q1 )(q1 . Z. q) → a(q ′ . z. Z0 ) = {(q0 . Z0 . ε. nach der L¨nge der Rechnung. der in der weiteren Rechnung angenommen wird. Z0 .) • qi>1 ist der Zustand.11. ε) S → (q0 . q1 )(q1 . x) = {(q1 . ε.. Z0 . a. q1 )(q1 . w. q1 ) → 01(q0 . q0 ) −→ (q0 . ε)} Also werden die folgenden Produktionen gebildet (1) am Beispiel δ(q0 . ¯ F¨ r alle (q ′ . 0. Z0 . a a Beispiel: L = {wwT | w ∈ {0. q1 )(q1 . 0) = {(q1 . q1 ) → 1 (q0 . z1 . q1 ) −→ (q0 . q1 ) → 011(q1 ....Zl ) ∗ (die ersten k Symbole sind gelesen. 0. xz)}.4. q1 ) → 01(q1 . Z0 ) ⊢ (q1 . Z0 .wk (q1 . Z0 . Z0 . z ′ ) ∈ δ(q. Z0 . q ). x ∈ {x ∈ {0. q1 ) → 0(q0 . 0. q1 ) → 0110 Annahme: Automat akzeptiert durch leeren Keller Startregeln: S → (q0 . 0. 0.. Zl . q1 )(q1 . Z0 . q0 )(q0 . ε. 0. ε) Der Automat hat w gelesen und sieht das erste Mal. 0. q2 . 0. ε. q2 ). . ε) ⇔ w ∈ L(M ) ∗ ∗ Beh. q0 ) → 0(q0 . 0. z) u (q. ε.. 10Z0) ⊢ (q1 . Z0 . 0.. ε)}. q1 ) → 0(q0 .

13 Deterministische kontextfreie Sprachen Definition: Eine deterministische kontextfreie Sprache ist eine Sprache. sind genauso m¨chtig wie Turingmaschinen. a)). ε. u • PDA: M mit Q = Q1 × Q2 δ((q1 . z) = (q ′ .. q2 ). a. a Deterministische Zweiwege-Kellerautomaten k¨nnen auf dem Eingabeband beliebig nach links uder nach rechts o fahren. A2 sei ein u a DEA f¨ r L2 . z ′ ) : (q ′ . u a Bew. a ∈ Σ ∪ {%. $}. q0 ) a∈Σ 4. b). Z)} δ((q1 . Z) := {((q ′ . aber nicht deterministisch kontextfrei Bemerkung: Deterministisch kontextfreie Sprachen sind abgeschlossen unter Komplement. %w1 w2 . b ∈ {0. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) 4. z ′ : (q ′ . a.. a. der durch akzeptierende Zust¨nde akzeptiert. δ(q. 1}∗} ist kontextfrei. q2 ).12 Abschlusseigenschaften kontextfreier Sprachen gegen¨ber regul¨ren u a Sprachen Satz: Die kontextfreien Sprachen sind abgeschlossen gegen¨ ber dem Durchschnitt mit regul¨ren Sprachen.: M1 sei ein PDA f¨ r die kontextfreie Sprache L1 . −1}: Bewegung des Kopfes Die Eingabe ist durch % und $ auf dem Eingabeband begrenzt.KAPITEL 4..14 Deterministische Zweiwege-Kellerautomaten ⇐⇒ K1 K2 K1 K2 Kellerautomaten mit zwei Kellern. Z1 Z2 . z ′ ) ∈ δ1 (q1 . 4.Zk . Z) := {((q ′ . die von einem deterministischen Kellerautomaten mit einer akzeptierenden Zustandsmenge akzeptriert werden. q2 ).wn $ Lesekopf Ausgangskonfiguration 48 . z ′ ) ∈ δ1 (q1 . +1. ε. aber nicht unter Umkehrung. Z))} q0 = F = F1 × F2 Produkt der Automaten: Der neue Kellerautomat M simuliert M1 und A2 gleichzeitig: ” L(M )) = L(M1 ) ∩ L(A2 ) 1 2 (q0 . δ2 (q2 . Beispiele: • {0n #1n | n ∈ N} ist deterministisch kontextfrei • {w#wR | w ∈ Σ∗ } ist deterministisch kontextfrei • {wwR | w ∈ {0..

14. Z ∈ Γ. o Beweis: Entladefunktion Eingabe: %w1 .14. (q ′ . Z. memorization) Laufzeit: O(n) Jeder Eintrag von ENT wird h¨chstens einmal berechnet. Die Technik heißt Tabellieren (engl. die Symbole werden vom Stapel gel¨scht. j) q.Zk ... L¨sche u u o erstes Symbol des Stapels und gehe zu (A). die von enem deterministischen Zweiwege-Kellerautomaten akzeptiert wird. Z. v ∈ (Σ0 )∗ } % x # $ . i ] = 0 then return ENT[ q. Z. i] der Gr¨ße O(n) sobald sie berechnet o wurden (Initialisiere zu 0). DETERMINISTISCHE ZWEIWEGE-KELLERAUTOMATEN 4. ⇒ Algorithmus terminiert nicht. Z. // Wort wir d n i c h t a k z e p t i e r t 49 . Z.. kann ein rekura siver Aufruf mit denselben Parametern (q. dann ist er zu dem Zeitpunkt. i ] := f a l s e return ( q ’ . j ) ENT[ q. wi . . Zl . kann in linearer Zeit von einer Registermaschine (RAM) entschieden werden. weil sich die Konfiguration (q.wn $ 0 1 ↑ ↑ . z. 0 ≤ i. in Zustand q ′ und an Position j e n t ( q. z. Der Stapel wird dabei immer weiter wachsen oder konstant bleiben. i) gestartet werden. i) = (q ′ . j ) Idee: Speichere die Werte der Entladefunktion in einem Feld ENT[q.. wo das darunterliegende Stapelsymbol sichtbar wird. i f ENT[ q. W¨hrend ent(q. Folgerung: Teilwortproblem ist in linearer Zeit l¨sbar. o Problem: Bei rekursiven Aufrufen kann die Laufzeit ∞ sein. j ≤ n + 1 Wenn der Automat im Zustand q an Position i ist. i) unendlich oft wiederholt. ↑ n+1 ent(q. i ] then STOP . i ] := (q. z. . • Kopiere y auf den Stapel. u. k (q ′ . Z.. und das oberste Stapelsymbol Z ist... j) i n A r b e i t [ q. i ] i n A r b e i t [ q. i ] := true .. Z. Z1 . 2. Satz: Jede Sprache. b) := δ(q. Z. von rechts nach links • Fahre zur ersten Position von x . . i) aufgerufen ist. • (A) Vergleiche die Symbole von x mit dem Sybol auf dem Stapel. q ′ ∈ Q. j) := e n t ( q ′ .. ⇒ Kellerautomat terminiert nicht. o • Wenn # gelesen wird → Teilwort vorhanden → akzeptiere • Bei einem Konflikt fahre zur¨ ck zum Anfang und f¨ lle den Stapel mit den Symbolen von x auf.1 Teilwortproblem Eingabe: x#y Frage: Kommt das Muster x im Text y vor? L = {x#uxv | x.. i ) i f i n A r b e i t [ q.4. Z. Z) j := i + b for l := 1.

in einen akzeptierenden o Zustand geht und dann der Keller leert. Wir k¨nnen annehmen. z. Wort wird akzeptiert ⇐⇒ ent(q0 . 1) = (q ′ . j) mit q ′ ∈ F 50 .KAPITEL 4. z0 . i] (am Anfang false) wird endlose Rekursion vermieden. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) Durch ein Boolsches Feld inArbeit[q. wenn er ein Wort akzeptieren will. dass der Kellerautomat.

Sign up to vote on this title
UsefulNot useful