Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen Grammatiken Reguläre Sprachen und endliche Automaten Kontextfreie Sprachen und Kellerautomaten Kontextsensitive und Typ 0-Sprachen 3 Berechenbarkeitstheorie 4 Komplexitätstheorie Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 80 Kontextfreie Sprachen Zur Erinnerung Kontextfreie Grammatiken/Sprachen: alle Produktionsregeln P einer kontextfreien Grammatik G = (V, Σ, P, S) haben die Form A X, wobei A eine Variable in V ist und X eine Satzform in (V Σ) ist nach regulären Sprachen nächsthöhere Klasse in der Chomsky Hierarchie Grundlage im Compilerbau Beispiel (L = {a n b n n N}). Kontextfreie Grammatik G mit L(G) = L: S ab asb Wir zeigten bereits mit dem Pumping Lemma, dass L nicht regulär ist. Somit gibt es kontextfreie, nicht reguläre Sprachen. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 81
Normalformen allgemeine Form von kontextfreien Grammatiken eignet sich kaum für algorithmische Fragestellungen Normalformen geben einfache und einheitliche Struktur vor Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 82 Chomsky Normalform Definition 56 (Chomsky Normalform (CNF)). Sei G = (V, Σ, P, S) eine kontextfreie Grammatik, in der jede Regel die Form A BC oder A a oder S ε hat, wobei A V, B, C V \ {S} und a Σ ist. Dann sagen wir, dass G in Chomsky Normalform (CNF) vorliegt. Beobachtung. Falls G in CNF vorliegt und w L(G), dann besteht jede Ableitung von w aus genau 2 w 1 Schritten. Jeder Syntaxbaum (Ableitungsbaum) ist ein Binärbaum. Satz 57. Für jede kontextfreie Grammatik G existiert eine kontextfreie Grammatik G in Chomsky Normalform, so dass L(G) = L(G ). Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 83
Beispiel: L = {a n b n n 1} Kontextfreie Grammatik für L Grammatik für L in CNF G : S ab asb G : S AB AF E AB AF F EB A a B b Ableitung von aabb aus G S S AF af A F aeb aabb E B aabb aabb A B aabb a a b b Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 84 Beweis: Sei eine kontextfreie Grammatik G = (V,Σ, P, S) gegeben. Wir werden sukzessive die Produktionen/Regeln, die die Chomsky Regeln verletzen, durch äquivalente Regeln ersetzen. 0 Neue Startvariable S 0 und Regel S 0 S hinzufügen. Somit erscheint die Startvariable nie auf der rechten Seite 1 ε-regeln entfernen: Für jede Variable A S 0 entferne A ε, und für jede Regel der Form B X AY (X, Y (V Σ) ) füge zusätzlich eine Regel ohne A, also B XY, ein. Beachte: Für jedes Auftreten von A auf der rechten Seite fügen wir eine Extraregel ein. Z.B. für B X AY AZ fügen wir zusätzlich B X Y AZ, B XAY Z und B XY Z ein. 2 Einzelproduktionen entfernen: Entferne Regeln der Form A B (mit A, B V {S 0 }), und für jede Regel B X (X (V Σ) ) füge die Regel A X hinzu. Es sei denn, A X war eine Einzelproduktion, die bereits entfernt wurde. 3 Ersetze letztendlich jede Regel der Form mit x i V Σ für jedes i = 1,...,k: A x 1...x k Falls k 3, dann ersetze A x 1... x k durch A x 1 A 1, A 1 x 2 A 2,..., A k 2 x k 1 x k, wobei A 1,...,A k 2 neue Variablen sind. Falls k = 2, dann ersetze jedes Terminal x i Σ (i = 1, 2) in A x 1 x 2 durch X i, und füge X i x i als neue Regel hinzu, wobei X i eine neue Variable ist. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 85
Beispiel V = {S, A}, Σ = {a} S ASA A ε A aa ε 0-neue Startvariable S 0 S S ASA A ε A aa ε 1a-S ε eliminieren S 0 S ε S ASA A AA A aa ε 1b-A ε eliminieren S 0 S ε S ASA A AA AS SA A aa 2a-Einzelregel S A S 0 S ε S ASA aa AA AS SA A aa 2b-Einzelregel S 0 S S 0 ASA aa AA AS SA ε S ASA aa AA AS SA A aa 3a-S, S 0 ASA eliminieren (kurz) S 0 AX 1 aa AA AS SA ε S AX 1 aa AA AS SA A aa X 1 SA 3b- aa eliminieren (kurz) S 0 AX 1 A 1 A 1 AA AS SA ε S AX 1 A 1 A 1 AA AS SA A A 1 A 1 X 1 SA A 1 a Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 86 Greibach Normalform Definition 58 (Greibach Normalform (GNF)). Sei G = (V, Σ, P, S) eine kontextfreie Grammatik, in der jede Regel die Form A ab 1... B k (k 0) oder S ε hat, wobei A V, B 1,... B k V \ {S} und a Σ ist. Dann sagen wir, dass G in Greibach Normalform (GNF) vorliegt. Satz 59. Für jede kontextfreie Grammatik G existiert eine kontextfreie Grammatik G in Greibach Normalform, so dass L(G) = L(G ). Bemerkung. GNF kann als Erweiterung von regulären Grammatiken betrachtet werden. In regulären Grammatiken sind nur Regeln mit k = 0, 1 erlaubt. Jede kontextfreie Grammatik kann algorithmisch in eine GNF umgeformt werden. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 87
Pumping Lemma für kontextfreie Sprachen Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 88 Pumping Lemma für kontextfreie Sprachen Wie kann man beweisen, dass eine Sprache nicht kontextfrei ist? Satz 60 (Pumping Lemma für kontextfreie Sprachen). Sei L eine kontextfreie Sprache über ein beliebiges Alphabet Σ. Dann existiert eine Zahl n N, so dass für alle Wörter w L mit w n eine Zerlegung w = uvxyz mit folgenden Eigenschaften existiert: 1 vy 1, 2 vxy n, 3 uv k xy k z L für alle k N. Bemerkung. Für unäre Alphabete sind beide Pumping Lemmata äquivalent, da bei Wörtern über unären Alphabeten die Reihenfolge keine Rolle spielt und somit uv k xy k z = x(vy) k uz. Wir werden noch sehen, dass jede kontextfreie Sprache über einem unären Alphabet in der Tat regulär ist. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 89
Beispiel Beispiel. Die Sprache L = {a m b m c m m N} ist nicht kontextfrei. Beweis: Beweis durch Widerspruch mit Hilfe des Pumping-Lemmas. Angenommen L wäre kontextfrei. Dann gäbe es eine Pumping-Zahl n, so dass jedes Wort w = a m b m c m mit w n eine Zerlegung zulässt mit 1 vy 1, 2 vxy n, 3 uv k xy k z L für alle k N. w = uvxyz Betrachte insbesondere den Fall m = n, d.h. w = a n b n c n. Teil 2 impliziert vy kann nicht sowohl a s als auch b s und c s enthalten. Wegen Teil 1 gilt vy ε, und aus Teil 3 (angewandt mit k = 0) folgern wir uxz L. Also gibt es ein l < n mit uxz = a l b l c l, so dass vy doch a s und b s und c s enthalten muss, denn sonst w = uvxyz L. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 90 Beweis von Satz 60 Beweis: Sei G = (V,Σ, P, S) eine Grammatik für L in CNF und V = k. Setze n = 2 k. Sei w L(G) ein Wort mit w n. Jeder Syntaxbaum von w in G ist bis auf die letzte Ebene ein Binärbaum B: D.h. innerhalb des Binärbaumes B stehen Ableitungen der Form A BC: A und in der untersten Ebene stehen Ableitungen der Form B A a mit a Σ. Weil der Binärbaum B mindestens n = 2 k Blätter hat, gibt es einen Pfad der Länge k von der Wurzel S zu einem Blatt in B. Betrachtet man also einen Pfad P maximaler Länge in B, so sind (k + 1) Knoten mit Variablen beschriftet. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 91 C
Beweis von Satz 60 Teil 2 Weil G nur k Variablen hat, gibt es eine Variable, die doppelt auf P vorkommt. Genauer gibt es sogar auf dem unteren Teilstück der Länge k von P eine Variable A, die doppelt vorkommt: Betrachte nun die Teilwörter, die innerhalb des Baumes aus den beiden A s abgeleitet werden. Dies liefert eine Zerlegung w = uvxyz. Da das obere A nur k Schritte von der Blattebene entfernt ist, folgt vxy 2 k = n. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 92 Beweis von Satz 60 Teil 3 Weil die Grammatik CNF hat, gilt ferner vy 1. Weil A doppelt vorkommt, kann der Ableitungsbaum auf folgende Art modifiziert werden, um uxz = uv 0 xy 0 z abzuleiten: Dafür führe von dem oberen A aus die Ableitung durch, die in B von dem unteren A aus durchgeführt wird. Also folgt uxz L. Ferner kann man auch an das untere A in B nochmals die Ableitung anfügen, die von dem oberen A aus durchgeführt wurde. Also folgt uv 2 xy 2 z L. Entsprechend erhält man uv k xy k z L (k 2), so dass die Behauptung folgt. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 93
Weiteres Beispiel für Satz 60 Beispiel. Die Sprache L = {a h b i c j 0 h i j} {a, b, c} ist nicht kontextfrei. Beweis: Wir führen den Beweis durch Widerspruch mit Hilfe des Pumping-Lemmas. Angenommen L wäre kontextfrei. Dann gäbe es eine Pumping-Zahl n, so dass jedes Wort w = a h b i c j mit w n eine Zerlegung zulässt mit w = uvxyz 1 vy 1, 2 vxy n, 3 uv k xy k z L für alle k N. Betrachte insbesondere den Fall h = i = j = n, d.h. w = a n b n c n. Fall 1 (v oder y enthält mindestens zwei verschiedene Zeichen): Dann kann uv 2 xy 2 z nicht die Form a... ab... bc... c haben. Fall 2 (v und y enthalten jeweils höchstens Zeichen eines Typs): Da v und y jeweils nur Zeichen eines Typs enthalten, gibt es ein Zeichen, welches weder in v noch in y erscheint. Wir behandeln die drei offensichtlichen Unterfälle separat. Falls a nicht in vy enthalten ist, dann betrachte uv 0 xy 0 z = uxz, welches immer noch h = n a s, aber entweder weniger als i = n b s oder weniger als j = n c s enthält. Falls b nicht in vy enthalten ist, dann enthält vy entweder a s oder c s. Falls vy a s enthält dann ist die Anzahl der a s in uv 2 xy 2 z größer als die Anzahl der b s. Falls vy c s enthält dann ist die Anzahl der b s in uv 0 xy 0 z größer als die Anzahl der c s. Falls c nicht in vy enthalten ist, dann betrachte uv 2 xy 2 z, welches immer noch j = n c s, aber entweder mehr als h = n a s oder mehr als i = n b s enthält. In jedem Fall erhalten wir einen Widerspruch. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 94 Gibt es nichtreguläre, kontextfreie Sprachen über Σ = {a}? Satz 61 (Unäre kontextfreie Sprachen sind regulär). Sei L eine kontextfreie Sprache über dem Alphabet Σ = {a}. Dann ist L regulär. Beweis: Sei L eine kontextfreie Sprache über Σ = {a} und sei n die Pumping-Zahl aus Satz 60. D.h. jedes Wort w L mit w n hat eine Zerlegung w = uvxyz mit 1 vy 1, 2 vxy n, 3 uv k xy k z L für alle k N. Daraus folgt, dass es zu jedem w L {a}, w n zwei Zahlen s w := uxz, l w := vy gibt, so dass w = a s w +lw und 1 l w 1, 2 l w n, 3 a s w +klw L für alle k N. Wegen Teil 2 ist die Menge M := {l w w L und w n} endlich und für q := n! gilt Sei l teilt q für alle l M. (4) R := { r q a r L und für alle i mit 1 i r/q gilt a r iq L }. Dann gilt wegen Teil 3 und (4), dass R q. Setze nun L = {w L w q} {a r+iq r R und i N}. Da {w L w q} < und R <, gibt es einen Automaten der L akzeptiert (siehe Übungsblatt). Aus der Definition von R folgt, dass für alle r R das Wort w = a r in L ist. Da r n, existiert l w n für alle Wörter der Form w = a r mit r R. Wegen (4) folgt, dass es für jedes i N ein j i gibt, so dass iq = j i l w. Demnach gilt a r+iq = a r+j i lw L für alle i N wegen Teil 3 und somit L L. Ist ferner w = a m L mit m q, so gibt es ein r R und ein i N mit m = r + iq. Also folgt, dass w L, weshalb L L. Zusammenfassend folgt, dass L regulär ist, da L regulär ist, L L, und L L. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 95
CYK-Algorithmus Wortproblem für kontextfreie Sprachen Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 96 Wortproblem für kontextfreie Sprachen Wie löst man das Wortproblem für kontextfreie Sprachen? Eingabe: Kontextfreie Grammatik G = (V, Σ, P, S) in CNF und Wort w Σ Ziel: Entscheide, ob w L(G). Idee: dynamische Programmierung Für ein Wort w der Länge n sei w ij die Teilsequenz der Länge j von w, die an der i-ten Stelle beginnt. Der CYK-Algorithmus berechnet eine Tabelle (T ), deren ij-eintrag (T ij ) alle Variablen A V mit A G w ij enthält. Die Tabelle wird schrittweise für i = 1,... n und j = 1,..., n aufgebaut. Frage Was ist schlecht an einem rekursiven Ansatz für den CYK-Algorithmus? Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 97
Algorithmus von Cocke, Younger und Kasawi ALGORITHMUS: CYK. Eingabe: Ausgabe: kontextfreie Grammatik G = (V, Σ, P, S) in CNF und w = a 1... a n Σ JA, falls w L(G), und NEIN sonst 1 Initialisiere T i1 := {A V A a i P} für jedes i = 1,..., n. 2 Für j = 2,..., n (Schleife über Spalten) Für i = 1,..., n + 1 j Setze T ij :=. Für k = 1,..., j 1 T ij := T ij { A V (Schleife über Zeilen) A BC P mit B T ik und C T i+k,j k } Ende Schleife über k. Ende Schleife über i. Ende Schleife über j. 3 Wenn S T 1n, dann gib JA aus und sonst NEIN. (Schleife über Zeilen) (Schleife über Spalten) Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 98 Beispiel: CYK-Algorithmus Beispiel (L = {a n b n c m n, m 1}). Grammatik G für L äquivalente Grammatik G in CNF S XC X ab axb C c cc S XZ X AB AY A a Z c CZ Y XB B b C c T ij für w = aaabbbcc: 1 2 3 4 5 6 7 8 1 A X S S 2 A X Y 3 A X Y 4 B 5 B 6 B 7 C, Z Z 8 C, Z S XZ AY Z AXBZ AAY BZ AAX BBZ AAABBBZ AAABBBCZ Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 99
Kellerautomaten Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 100 Kellerautomaten Anforderungen Gesucht: Automaten, die kontextfreie Sprachen akzeptieren. Benötigt: Unbegrenzten Speicher, um z.b. Sprachen wie {a n b n n N} zu erkennen. Idee: Statte NFA s mit einem Keller/Stack aus, welcher bei Übergängen manipuliert (PUSH- und POP-Operationen) werden kann. Akzeptiert: Wörter, die so abgearbeitet werden können, dass der Stack am Ende leer ist, sind in der akzeptierten Sprache ( keine Endzustände). a, A AA a, A z a ε, ε ε b, A ε ε, ε z b Akzeptiert: L = {a n b n n N} Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 101
PDA-Kellerautomat Definition 62 (PDA). Ein Kellerautomat (PushDown Automata) ist ein 6-Tupel Dabei ist Z eine endliche Menge von Zuständen, M = (Z, Σ, Γ, δ, z 0, ). Σ ein Alphabet, das sog. Eingabealphabet, mit Σ Z =, Γ ein Alphabet, das sog. Kelleralphabet, mit Γ Z =, δ : Z (Σ {ε}) Γ P e (Z Γ ) die Überführungsfunktion, wobei P e (Z Γ ) = {Y Z Γ Y < } die Menge der endlichen Teilmengen von Z Γ ist, z 0 Z der Startzustand und Γ das unterste Kellerzeichen ist. Wie funktioniert δ? (z a, A B 1... B k, B 1... B k ) δ(z, a, A) z z Wenn M in Zustand z ist, das Eingabesymbol a liest und A das oberste Kellerzeichen ist, dann kann M in z übergehen und A auf dem Keller durch B 1... B k ersetzen, wobei dann B 1 oberstes Kellerzeichen ist. Falls a = ε, dann spricht man vom spontanen Übergang. Falls B k = A, dann pusht man B 1... B k 1 auf den Stack/Keller. Falls k = 1 und B 1 = ε, dann popt man A vom Stack/Keller. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 102 Konfigurationen, Relationen, PDA und Sprachen Definition 63 (Konfiguration). Eine Konfiguration eines Kellerautomaten M = (Z, Σ, Γ, δ, z 0, ) ist ein Tupel K = (z, σ, γ) Z Σ Γ, wobei (z, σ, γ) den aktuellen Zustand beschreibt. Genauer ist z der aktuelle Zustand von M, σ der noch zu lesende Teil des Eingabewortes und γ der aktuelle Kellerinhalt. Definition 64 (Relationen: M, M ). Sei M = (Z, Σ, Γ, δ, z 0, ) ein PDA. Wir definieren die Relation M (kurz ) auf der Menge der Konfigurationen von M wie folgt: Sei z, z Z, σ = aσ Σ, γ = Aγ Γ und ν Γ, dann (z, σ, γ) M (z, σ, νγ ), falls (z, ν) δ(z, a, A) (z, σ, γ) M (z, σ, νγ ), falls (z, ν) δ(z, ε, A). Mit M (kurz ) bezeichnen wir die reflexive und transitive Hülle von M. Definition 65 (akzeptierte Sprache (PDA)). Sei M = (Z, Σ, Γ, δ, z 0, ) ein PDA. Die von M akzeptierte Sprache ist N(M) := {w Σ (z 0, w, ) M (z, ε, ε) für irgendein z Z }, die Menge der Wörter, die M so abarbeiten kann, dass der Keller/Stack am Ende leer ist. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 103
Kontextfreie Sprachen Satz 66 (PDA s und kontextfreie Sprachen). Sei L eine Sprache über einem beliebigen Alphabet Σ. PDA M mit N(M) = L L ist kontextfrei. Beweis ( ): Sei L eine kontextfreie Sprache, die von der kontextfreien Grammatik G = (V, Σ, P, S) erzeugt wird. Definiere M = ({z}, Σ, V Σ, δ, z, S), wobei δ genau folgende Übergänge zulässt: (z, X) δ(z, ε, A), für jede Regel A X P (z, ε) δ(z, a, a), für alle a Σ. Sei nun w Σ. Dann gilt: w L(G) es gibt eine Ableitung S w, es gibt eine Folge von Konfigurationen (z, w, S) (z, ε, ε), w N(M). Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 104 Rückrichtung von Satz 66 Sei ein PDA M = (Z, Σ, Γ, δ, z 0, ) gegeben. Wir nehmen an, dass für jeden Übergang (z, B 1... B k ) δ(z, a, A) gilt, dass k 2. Andernfalls ersetzen wir den Übergang (z, a, A) (z, B 1... B k ) durch (z, a, A) (z 1, B k 1 B k ) (z 1, ε, B k 1 ) (z 2, B k 2 B k 1 ). a, A B k 1B k z z 1 ε, B k 1 B k 2B k 1... (z k 2, ε, B 2 ) (z, B 1 B 2 ) z z ε, B 3 B 2B 3 k 2 ε, B 2 B 1B 2 Wir definieren nun G = (V, Σ, P, S), wobei V = {S} Z Γ Z, und P die folgenden Produktionen enthält: S (z 0,, z), für alle z Z, (z, A, z ) a, für alle (z, ε) δ(z, a, A), (z, A, z ) a(z 1, B, z ), für alle (z 1, B) δ(z, a, A) und z Z, (z, A, z ) a(z 1, B, z 2 )(z 2, C, z ), für alle (z 1, BC) δ(z, a, A) und z 2, z Z. Offensichtlich ist G eine kontextfreie Grammatik. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 105
Rückrichtung von Satz 66 Teil 2 Behauptung 67 (Hilfslemma für Satz 66). Für alle z, z Z, A Γ und w Σ gilt: (z, A, z ) w gdw. (z, w, A) (z, ε, ε). Bevor wir die Behauptung zeigen, reduzieren wir Satz 66 auf diese. Sei also w Σ beliebig, dann gilt w N(M) (z 0, w, ) (z, ε, ε) für ein z Z, (z 0,, z ) w für ein z Z, S (z 0,, z ) w für ein z Z, w L(G). Es bleibt noch die Behauptung zu zeigen. Der Beweis spaltet sich wieder in zwei Teile (Hin- und Rückrichtung). Aber zuvor stellen wir fest, dass für alle a Σ {ε} gilt: (z, A, z ) a gdw. (z, A, z ) a P gdw. (z, ε) δ(z, a, A) (5) gdw. (z, a, A) (z, ε, ε). Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 106 Hinrichtung der Behauptung 67 Beweis ( ): Wir führen Induktion über k, die Länge einer Linksableitung von w. Der Induktionsanfang (k = 1) ergibt sich aus (5). Betrachten wir nun also eine Ableitung mit k > 1. Fall 1 ((z, A, z ) a w): Dann ist w = a. Dies ist bei k > 1 unmöglich. Fall 2 ((z, A, z ) a(z 1, B, z ) aw = w): Dann ist (z 1, B) δ(z, a, A) und nach Induktionsvoraussetzung gilt (z 1, w, B) (z, ε, ε). Daraus folgt (z, aw, A) (z 1, w, B) (z, ε, ε). Fall 3 ((z, A, z ) a(z 1, B, z 2 )(z 2, C, z ) aw = w): Dann ist (z 1, BC) δ(z, a, A) und nach Induktionsvoraussetzung gilt (z 1, u, B) (z 2, ε, ε) und (z 2, v, C) (z, ε, ε), wobei w = uv. Daraus folgt (z, auv, A) (z 1, uv, BC) (z 2, v, C) (z, ε, ε). Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 107
Rückrichtung der Behauptung 67 Beweis ( ): Angenommen (z, w, A) (z, ε, ε) Wir zeigen mit Induktion über die Zahl n der Schritte von M, dass dann (z, A, z ) w gilt. Der Induktionsanfang n = 1. Für a Σ {ε} gilt: (z 1, A, z ) a (z, A, z ) a P (z, ε) δ(z, a, A) (z, a, A) (z, ε, ε) Sei nun also n > 1. Wir können w zerlegen in w = au, a Σ {ε}, so dass gilt: (z, au, A) (z 1, u, γ) + (z, ε, ε) (z 1 Z, γ Γ ). Fall 1 (γ = ε): Dies kann nicht sein, weil dann (z 1, a, γ) keine Folgekonfiguration hätte (d.h. n = 1). Fall 2 (γ = B Γ): Nach Induktion gilt: (z 1, B, z ) u. Nach Definition von P gibt es ferner eine Regel (z, A, z ) a(z 1, B, z ) P. Also folgt: (z, A, z ) a(z 1, B, z ) au = w. Fall 3 (γ = BC Γ 2 ): Die Berechnung (z 1, u, BC) (z, ε, ε) wird in zwei Teile zerlegt: (z 1, u 1, BC) (z 2, u 2, C) (z 2, u 2, C) (z, ε, ε), mit u = u 1 u 2, so dass (z 1, u 1, B) (z 2, ε, ε). Daher zeigt die Induktionsvoraussetzung, dass Also ermöglicht P die Ableitung (z 1, B, z 2 ) u 1 und (z 2, C, z ) u 2. (z, A, z ) a(z 1, B, z 2 )(z 2, C, z ) au 1 (z 2, C, z ) au 1 u 2 = au = w. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 108 Deterministisch kontextfreie Sprachen Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 109
Deterministischer Kellerautomat Definition 68 (DPDA - deterministischer Kellerautomat). Ein deterministischer Kellerautomat ist ein Tupel M = (Z, Σ, Γ, δ, z 0,, E), wobei (Z, Σ, Γ, δ, z 0, ) ein Kellerautomat ist, für alle z Z, a Σ und A Γ gilt: δ(z, a, A) + δ(z, ε, A) 1, E Z eine Menge von Endzuständen ist. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 110 Determinismus vs. Nichtdeterminismus DPDA für L = {w w R w {a, b} } {a, b, } a, push A b, push B a, A ε b, B ε, ε ε z 0 z 1 ε, ε z 2 PDA für L = {ww R w {a, b} } {a, b} a, push A b, push B a, A ε b, B ε ε, ε ε, ε ε z 0 z 1 Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 111
Deterministisch kontextfreie Sprachen Definition 69 (akzeptierte Sprache (DPDA)). Eine Konfiguration von M ist ein Tripel (z, w,γ) Z Σ Γ, und die Relation M ist wie für PDA s definiert. M akzeptiert w Σ, falls es einen Zustand z E gibt, so dass (z 0, w, ) M (z,ε, γ) mit γ Γ. Mit N(M) bezeichnen wir die von M akzeptierte Sprache. Definition 70. Eine Sprache L heißt deterministisch kontextfrei, falls es einen deterministischen Kellerautomaten mit L = N(M) gibt. Bemerkung. Eine Sprache L ist deterministisch kontextfrei gdw. es eine sogenannte LR(k)-Grammatik (k > 0) gibt, die L erzeugt. LR(k)-Grammatiken sind kontextfreie Grammatiken für die jeder Ableitungsschritt eindeutig durch k Terminale der Eingabe bestimmt ist. Ferner gilt LR(0) LR(1)= =LR(k). Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 112 Abschlusseigenschaften det. kf. Sprachen Satz 71. 1 Falls L deterministisch kontextfrei ist, so ist auch L deterministisch kontextfrei. 2 Falls R regulär und L deterministisch kontextfrei ist, ist auch R L deterministisch kontextfrei. Insbesondere ist jede reguläre Sprache deterministisch kontextfrei. 3 Jede deterministisch kontextfreie Sprache ist kontextfrei. 4 Die Klasse der deterministisch kontextfreien Sprache ist weder unter Vereinigung noch unter Schnittbildung abgeschlossen. Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 113
Zusammenfassung Chomsky Normalform Greibach Normalform Pumping Lemma für kontextfreie Sprachen Das Wortproblem und der CYK Algorithmus Kellerautomaten (PDA s), Konfigurationen, deterministische Kellerautomaten (DPDA s) deterministisch kontextfreie Sprachen, LR(k)-Grammatik Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten 114