Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten



Ähnliche Dokumente
Theoretische Grundlagen der Informatik

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theorie der Informatik

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Mathematische Grundlagen der Informatik 2

Wortproblem für kontextfreie Grammatiken

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

Vorlesung Theoretische Informatik

Programmiersprachen und Übersetzer

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Theoretische Informatik I

Grundbegriffe der Informatik

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

2.11 Kontextfreie Grammatiken und Parsebäume

Übersicht. 3 3 Kontextfreie Sprachen

Grammatiken. Einführung

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Grundbegriffe der Informatik

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Zusammenfassung Grundzüge der Informatik 4

Grundbegriffe der Informatik

Formale Sprachen und Grammatiken

Kontextfreie Sprachen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Grundlagen der Theoretischen Informatik, SoSe 2008

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Der Zwei-Quadrate-Satz von Fermat

1 Mathematische Grundlagen

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

Kontextfreie Sprachen

WS 2009/10. Diskrete Strukturen

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Primzahlen und RSA-Verschlüsselung

Erstellen von x-y-diagrammen in OpenOffice.calc

Grundbegriffe der Informatik

kontextfreie Sprachen: Normalformen

TheGI 1: Grundlagen und algebraische Strukturen Prof. Dr.-Ing. Uwe Nestmann Februar Schriftliche Leistungskontrolle (EK)

Grundlagen der Theoretischen Informatik

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Reguläre Sprachen Endliche Automaten

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Informatik IC2. Balazs Simon

Übung Theoretische Grundlagen

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

7 Rechnen mit Polynomen

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Grundbegriffe der Informatik Tutorium 7

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Grundbegriffe der Informatik

Einführung in die Algebra

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Einführung in die Computerlinguistik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

15 Optimales Kodieren

Theoretische Informatik SS 04 Übung 1

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Grundlagen der Künstlichen Intelligenz

REG versus CF. Theorem REG ist echt in CF enthalten.

Sprachen/Grammatiken eine Wiederholung

Theoretische Informatik I

Kontextfreie Sprachen werden von PDAs akzeptiert

WS 2013/14. Diskrete Strukturen

10 Kellerautomaten. Kellerautomaten

Anmerkungen zur Übergangsprüfung

Informationsblatt Induktionsbeweis

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Erfüllbarkeit und Allgemeingültigkeit

Berechnungen in Access Teil I

WS 2008/09. Diskrete Strukturen

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Grundlagen der Theoretischen Informatik

Mathematische Maschinen

Das Briefträgerproblem

Kapitel 2: Formale Sprachen Gliederung

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

5.7 Kontextfreie Grammatiken und Kellerautomaten

Analysis I für Studierende der Ingenieurwissenschaften

1 topologisches Sortieren

Professionelle Seminare im Bereich MS-Office

Codierungstheorie Rudolf Scharlau, SoSe

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Musterlösungen zur Linearen Algebra II Blatt 5

Theoretische Grundlagen des Software Engineering

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

3. Zusammenhang. 22 Andreas Gathmann

Grundlagen der Theoretischen Informatik

Algorithmen II Vorlesung am

Wie löst man Mathematikaufgaben?

Transkript:

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