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



Ähnliche Dokumente
Andererseits ist L kontextfrei, wie die einfache kontextfreie Grammatik G = ({a, b},{s}, S, P) mit den Regeln

Theoretische Grundlagen der Informatik

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

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

Wortproblem für kontextfreie Grammatiken

Grammatiken. Einführung

Programmiersprachen und Übersetzer

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

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

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

Theorie der Informatik

Grundbegriffe der Informatik

2.11 Kontextfreie Grammatiken und Parsebäume

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

Vorlesung Theoretische Informatik

Formale Sprachen und Grammatiken

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

Grundlagen der Theoretischen Informatik

Informatik IC2. Balazs Simon

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

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 )

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

10 Kellerautomaten. Kellerautomaten

Kontextfreie Sprachen

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

Kontextfreie Sprachen

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik, SoSe 2008

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

Primzahlen und RSA-Verschlüsselung

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

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

Theoretische Informatik I

1 Mathematische Grundlagen

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

Deterministischer Kellerautomat (DPDA)

Das Briefträgerproblem

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Ogden s Lemma: Der Beweis (1/5)

Informationsblatt Induktionsbeweis

Die Komplexitätsklassen P und NP

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

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

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Die mathematische Seite

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

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

WS 2009/10. Diskrete Strukturen

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

kontextfreie Sprachen: Normalformen

Mathematische Grundlagen der Informatik 2

Reguläre Sprachen Endliche Automaten

Grundbegriffe der Informatik

Codierungstheorie Rudolf Scharlau, SoSe

Grundbegriffe der Informatik

7 Rechnen mit Polynomen

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

Sprachen/Grammatiken eine Wiederholung

Theoretische Grundlagen des Software Engineering

Grundbegriffe der Informatik

Zeichen bei Zahlen entschlüsseln

Grundlagen der Theoretischen Informatik

Automaten und formale Sprachen Notizen zu den Folien

Einführung in die Algebra

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Beweis des Pumping Lemmas

Absolute Stetigkeit von Maßen

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Professionelle Seminare im Bereich MS-Office

Grundbegriffe der Informatik

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

WS 2008/09. Diskrete Strukturen

Einführung in die Computerlinguistik

Analysis I für Studierende der Ingenieurwissenschaften

Übersicht. 3 3 Kontextfreie Sprachen

Theoretische Informatik I

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

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

Zusammenfassung Grundzüge der Informatik 4

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

Programmierkurs Java

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

Logik für Informatiker

3.2 Spiegelungen an zwei Spiegeln

Grundlagen der Künstlichen Intelligenz

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

Binärbäume und Pfade

Der Zwei-Quadrate-Satz von Fermat

Theoretische Grundlagen der Informatik

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

Erfüllbarkeit und Allgemeingültigkeit

3. Zusammenhang. 22 Andreas Gathmann

Transkript:

REG versus CF Theorem REG ist echt in CF enthalten. Beweis: Wir wissen: L = {a m b m m 1} ist nicht regulär. Andererseits ist L kontextfrei, wie die einfache kontextfreie Grammatik G = ({a, b}, {S}, S, P) mit den Regeln P = {S asb ab} zeigt. Somit ist L CF REG, also REG CF. J. Rothe (HHU Düsseldorf) Informatik IV 1 / 128

Normalformen Normalformen Ziel: Vereinfachung kontextfreier Grammatiken (kurz kfgs). Ausnahmeregelung für das leere Wort: Für kfgs, und nur für diese, erlauben wir λ-regeln, d.h., Regeln der Form A λ, auch wenn A nicht das Startsymbol ist. Dies kann manchmal wünschenswert sein. Für kfgs kann man dies o.b.d.a. zulassen, denn λ-regeln können ungestraft wieder entfernt werden. J. Rothe (HHU Düsseldorf) Informatik IV 2 / 128

Normalformen Normalformen: λ-freie Grammatik Definition (λ-freie Grammatik) Eine kfg G = (Σ, N, S, P) heißt λ-frei, falls in P keine Regel A λ mit A S auftritt. Theorem Zu jeder kfg G (mit λ-regeln) gibt es eine λ-freie kfg G mit L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 3 / 128

Normalformen Normalformen: λ-freie Grammatik Beweis: Der Beweis beruht auf folgender Konstruktion: Gegeben: kfg G = (Σ, N, S, P) mit λ-regeln; o.b.d.a. sei λ L(G) (andernfalls ist die Sonderregel für λ anzuwenden). Gesucht: λ-freie kfg G mit L(G) = L(G ). Konstruktion: 1 Bestimme die Menge sukzessive wie folgt: N λ = {A N A G λ} (a) Ist A λ eine Regel in P, so ist A N λ. (b) Ist A A 1 A 2 A k eine Regel in P mit k 1 und A i N λ für alle i, 1 i k, so ist A N λ. J. Rothe (HHU Düsseldorf) Informatik IV 4 / 128

Normalformen Normalformen: λ-freie Grammatik 2 Füge für jede Regel der Form B uav mit B N, A N λ und uv (N Σ) + zusätzlich die Regel B uv zu P hinzu. 3 Entferne alle Regeln A λ aus P. Schritt 2 muss auch für neu generierte Regeln iterativ angewendet werden. Dies ergibt die gesuchte λ-freie kfg G mit L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 5 / 128

Normalformen Normalformen: λ-freie Grammatik Beispiel: Wir betrachten die Grammatik G = (Σ, N, S, P) mit dem terminalen Alphabet Σ = {0, 1}, dem nichtterminalen Alphabet N = {S, A, B, C, D, E} und der Regelmenge P = { S ABD, A ED BB, B AC λ, C λ, D 0, E 1 }. J. Rothe (HHU Düsseldorf) Informatik IV 6 / 128

Normalformen Normalformen: λ-freie Grammatik 1 Bestimme für die Grammatik G nun gemäß dem Beweis des obigen Satzes die Menge N λ : (a) N λ = {B, C}, da B λ P und C λ P; (b) N λ = {A, B, C}, da A BB P. 2 Entferne alle Regeln A λ mit A N aus P und ergänze die restlichen Regeln gemäß dem zweiten Schritt der Konstruktion im Beweis dieses Satzes. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 128

Normalformen Normalformen: λ-freie Grammatik Wir erhalten eine kontextfreie Grammatik G = (Σ, {S, A, B, C, D, E}, S, P ) mit P = { S ABD BD AD D, A ED BB B, B AC A C, D 0, E 1 } und L(G ) = L(G). (Die Regel B C ist überflüssig und kann wieder entfernt werden.) J. Rothe (HHU Düsseldorf) Informatik IV 8 / 128

Normalformen Normalformen: Eliminierung einfacher Regeln Definition (Einfache Regel) Regeln A B heißen einfach, falls A und B Nichtterminale sind. Theorem Zu jeder kfg G gibt es eine kfg G ohne einfache Regeln, so dass L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 9 / 128

Normalformen Normalformen: Eliminierung einfacher Regeln Beweis: Der Beweis beruht auf folgender Konstruktion: Gegeben: kfg G = (Σ, N, S, P) (mit einfachen Regeln). Gesucht: kfg G ohne einfache Regeln, so dass L(G) = L(G ). Konstruktion: 1 Entferne alle Zyklen B 1 B 2, B 2 B 3,..., B k 1 B k, B k B 1 mit B i N und ersetze alle B i (in den verbleibenden Regeln) durch ein neues Nichtterminal B. J. Rothe (HHU Düsseldorf) Informatik IV 10 / 128

Normalformen Normalformen: Eliminierung einfacher Regeln 2 Nummeriere die Nichtterminale als {A 1, A 2,..., A n } so, dass aus A i A j folgt: i < j. 3 Für k = n 1, n 2,..., 1 (rückwärts!) eliminiere die Regel A k A l mit k < l so: Sind die Regeln mit A l als linker Seite gegeben durch A l u 1 u 2 u m, so entferne A k A l und füge die folgenden Regeln hinzu: A k u 1 u 2 u m. Dies liefert die gesuchte kfg G ohne einfache Regeln mit L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 11 / 128

Normalformen Normalformen: Eliminierung einfacher Regeln Beispiel: Betrachte die Grammatik G = (Σ, N, S, P) mit dem terminalen Alphabet Σ = {0, 1}, dem nichtterminalen Alphabet N = {S, A, B, C, D} und der Regelmenge P = { S A 0C 00 0000, A B 11, B C 1, C D, D B }. J. Rothe (HHU Düsseldorf) Informatik IV 12 / 128

Normalformen Normalformen: Eliminierung einfacher Regeln 1 Entferne alle Zyklen über Nichtterminalsymbole gemäß dem Beweis des Satzes. B C, C D, D B werden entfernt und alle Vorkommen von B, C, D in den restlichen Regeln werden durch B ersetzt: P 1 = { S A 0B 00 0000, A B 11, B 1 }. 2 Nummeriere die Nichtterminalsymbole: S (1), A (2), B (3). J. Rothe (HHU Düsseldorf) Informatik IV 13 / 128

Normalformen Normalformen: Eliminierung einfacher Regeln 3 Eliminiere Regeln wie folgt: (a) A B wird entfernt und dafür A 1 hinzugefügt; (b) S A wird entfernt und dafür S 11 und S 1 hinzugefügt: P = { S 1 11 0B 00 0000, A 1 11, B 1 }. Die so erhaltene Grammatik G = (Σ, N, S, P ) erfüllt L(G ) = L(G). J. Rothe (HHU Düsseldorf) Informatik IV 14 / 128

Normalformen Chomsky-Normalform Definition (Chomsky-Normalform) Eine kfg G = (Σ, N, S, P) mit λ L(G) ist in Chomsky-Normalform (kurz CNF), falls alle Regeln in P eine der folgenden Formen haben: A BC mit A, B, C N; A a mit A N und a Σ. Theorem Zu jeder kfg G mit λ L(G) gibt es eine kfg G in CNF, so dass gilt: L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 15 / 128

Normalformen Chomsky-Normalform Beweis: Der Beweis beruht auf folgender Konstruktion: Gegeben: λ-freie kfg G = (Σ, N, S, P) ohne einfache Regeln; λ L(G). Gesucht: kfg G in CNF mit L(G) = L(G ). Konstruktion: 1 Regeln A a mit A N und a Σ sind in CNF und werden übernommen. Alle anderen Regeln sind von der Form: A x mit x (N Σ) und x 2. 2 Füge für jedes a Σ ein neues Nichtterminal B a zu N hinzu, ersetze jedes Vorkommen von a Σ durch B a und füge zu P die Regel B a a hinzu. J. Rothe (HHU Düsseldorf) Informatik IV 16 / 128

Normalformen Chomsky-Normalform 3 Nicht in CNF sind nun nur noch Regeln der Form A B 1 B 2 B k, wobei k 3 und jedes B i ein Nichtterminal ist. Jede solche Regel wird ersetzt durch die Regeln: A B 1 C 2, C 2 B 2 C 3,. C k 2 B k 2 C k 1, C k 1 B k 1 B k, wobei C 2, C 3,..., C k 1 neue Nichtterminale sind. Dies liefert die gesuchte Grammatik G in CNF mit L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 17 / 128

Normalformen Chomsky-Normalform: Beispiel Beispiel: Wir betrachten die transformierte Grammatik aus dem vorigen Beispiel. O.B.d.A. entfernen wir die Regeln A 1 11 und das Nichtterminal A und erhalten die Grammatik G = (Σ, N, S, P) mit dem terminalen Alphabet Σ = {0, 1}, dem nichtterminalen Alphabet N = {S, B} und der Regelmenge P = { S 1 11 0B 00 0000, B 1 }. J. Rothe (HHU Düsseldorf) Informatik IV 18 / 128

Normalformen Chomsky-Normalform: Beispiel 1 Regeln A a mit A N und a Σ sind in CNF und werden übernommen. Diese zwei Regeln werden also übernommen: S 1 und B 1. 2 Wir führen zwei neue Nichtterminalsymbole ein, X 1 und X 0, und erhalten die folgende Regelmenge: P 1 = { S 1 X 1 X 1 X 0 B X 0 X 0 X 0 X 0 X 0 X 0, B 1, X 1 1, X 0 0 }. J. Rothe (HHU Düsseldorf) Informatik IV 19 / 128

Normalformen Chomsky-Normalform: Beispiel 3 Noch nicht in Chomsky-Normalform ist die Regel S X 0 X 0 X 0 X 0. Diese Regel ersetzen wir durch die drei Regeln S X 0 C 2, C 2 X 0 C 3, C 3 X 0 X 0, wobei C 2 und C 3 neue Nichtterminalsymbole sind. J. Rothe (HHU Düsseldorf) Informatik IV 20 / 128

Normalformen Chomsky-Normalform: Beispiel Wir erhalten die Grammatik G = (Σ, N, S, P ) mit Σ = {0, 1}, N = {S, B, X 0, X 1, C 2, C 3 } und Regelmenge P = { S 1 X 1 X 1 X 0 B X 0 X 0 X 0 C 2, C 2 X 0 C 3, C 3 X 0 X 0, B 1, X 1 1, X 0 0 } in CNF mit L(G) = L(G ). J. Rothe (HHU Düsseldorf) Informatik IV 21 / 128

Normalformen Chomsky-Normalform Bemerkung: Es sei G eine Grammatik in Chomsky-Normalform, w L(G) und w λ. Jede Ableitung von w in G besteht aus genau 2 w 1 Schritten. Es wird ( w 1)-mal eine Regel der Form A BC angewandt und w -mal eine Regel der Form A a. Jeder Syntaxbaum für w in G ist ein Binärbaum. J. Rothe (HHU Düsseldorf) Informatik IV 22 / 128

Normalformen Greibach-Normalform Definition (Greibach-Normalform) Eine kontextfreie Grammatik G = (Σ, N, S, P) mit λ L(G) ist in Greibach-Normalform (kurz GNF), falls jede Regel in P die folgende Form hat: A ab 1 B 2 B k mit k 0 und A, B i N und a Σ. Theorem Zu jeder kfg G mit λ L(G) gibt es eine kfg G in GNF, so dass L(G) = L(G ). ohne Beweis J. Rothe (HHU Düsseldorf) Informatik IV 23 / 128

Normalformen Greibach-Normalform: Beispiel Beispiel: Die Grammatik G = (Σ, N, S, P) mit Σ = {0, 1}, N = {S, A} und Regelmenge P = { S 0A 0SA, A 1 } ist offensichtlich in Greibach-Normalform, und es gilt L(G) = {0 n 1 n n 1}. J. Rothe (HHU Düsseldorf) Informatik IV 24 / 128

Normalformen Greibach-Normalform: Beispiel Beispiel: Die Grammatik G = (Σ, N, S, P) mit Σ = {0, 1}, N = {S, A, B} und Regelmenge P = { S 0A 1B 0SA 1SB, A 0, B 1 } ist offensichtlich in Greibach-Normalform, und es gilt L(G) = {x sp(x) x {0, 1} + }. J. Rothe (HHU Düsseldorf) Informatik IV 25 / 128

Normalformen Greibach-Normalform Bemerkung: Grammatiken in GNF unterscheidet man bezüglich der Längen der rechten Seiten der Produktionen. Man kann zeigen, dass sich jede kontextfreie Grammatik in eine äquivalente kontextfreie Grammatik in Greibach-Normalform transformieren lässt, so dass für alle Regeln stets k 2 gilt. A ab 1 B 2 B k Für den Spezialfall k {0, 1} erhalten wir gerade die Definition rechtslinearer Grammatiken. J. Rothe (HHU Düsseldorf) Informatik IV 26 / 128

Normalformen Greibach-Normalform Bemerkung: Es sei G eine Grammatik in Greibach-Normalform, w L(G) und w λ. Dann besteht jede Ableitung von w in G aus genau w Schritten. (Es wird in jedem Ableitungsschritt genau ein Terminalsymbol von w abgeleitet.) J. Rothe (HHU Düsseldorf) Informatik IV 27 / 128

Das Pumping-Lemma Pumping-Lemma Ziel: Nachweis, dass bestimmte Sprachen nicht kontextfrei sind. Theorem (Pumping-Lemma für kontextfreie Sprachen) Sei L eine kontextfreie Sprache. Dann existiert eine (von L abhängige) Zahl n 1, so dass sich alle Wörter z L mit z n zerlegen lassen in z = uvwxy, wobei gilt: 1 vx 1, 2 vwx n, 3 ( i 0)[uv i wx i y L]. J. Rothe (HHU Düsseldorf) Informatik IV 28 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis Beweis: Es Sei L eine kontextfreie Sprache. Wir setzen voraus, dass λ L. Es sei G = (Σ, N, S, P) eine kfg für L in CNF mit k Nichtterminalen. Wir wählen n = 2 k+1. Sei z L ein beliebiges Wort mit z n. Der Syntaxbaum B der Ableitung S G z ist (bis auf den letzten Ableitungsschritt) ein Binärbaum mit z n = 2 k+1 Blättern. J. Rothe (HHU Düsseldorf) Informatik IV 29 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis: Lemma über Binärbäume Lemma Jeder Binärbaum B k mit mindestens 2 k Blättern besitzt mindestens einen Pfad der Länge a mindestens k. a Die Länge eines Pfades ist die Anzahl seiner Kanten. J. Rothe (HHU Düsseldorf) Informatik IV 30 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis: Lemma über Binärbäume Beweis: Der Beweis wird durch Induktion über k geführt. Induktionsanfang: k = 0. Jeder Binärbaum B 0 mit mindestens 2 0 = 1 Blatt besitzt mindestens einen Pfad der Länge mindestens 0. Induktionsschritt: k k + 1. Die Behauptung gelte für k. Betrachte einen beliebigen Binärbaum B k+1 mit mindestens 2 k+1 Blättern. Mindestens einer seiner Teilbäume hat mindestens 2 k+1 /2 Blätter (sonst hätte B k+1 weniger als 2 k+1 2 + 2k+1 2 Blätter); sei B k dieser Teilbaum. = 2 k+1 J. Rothe (HHU Düsseldorf) Informatik IV 31 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis: Lemma über Binärbäume Nach Induktionsvoraussetzung gibt es in B k einen Pfad α der Länge mindestens k. Verlängert man α zur Wurzel von B k+1, so ergibt sich ein Pfad der Länge mindestens k + 1 in B k+1. B 0 B k+1 Pfad α B k Induktionsanfang Induktionsschritt Abbildung: Beweis des Lemmas über Binärbäume J. Rothe (HHU Düsseldorf) Informatik IV 32 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis Weiter im Beweis des Pumping-Lemmas. Im Syntaxbaum B der Ableitung S G z gibt es nach obigem Lemma einen Pfad der Länge mindestens k + 1. Fixiere einen solchen Pfad α maximaler Länge. Nach Wahl von n = 2 k+1 muss es wegen N = k auf einem solchen Pfad α maximaler Länge ein Nichtterminal A geben, das doppelt vorkommt. J. Rothe (HHU Düsseldorf) Informatik IV 33 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis Denn: Ein Pfad mit Länge k + 1 hat k + 2 Knoten, davon darf der letzte ein Blatt sein. Die restlichen k + 1 Knoten sind mit Nichtterminalen beschriftet. Diese beiden Vorkommen von A können so gewählt werden, dass die ersten beiden Eigenschaften des Pumping-Lemmas erfüllt sind. Dazu bestimmen wir dieses doppelte Vorkommen von A auf α von unten nach oben so, dass das obere A höchstens k + 1 Schritte von der Blattebene entfernt ist. Die Teilbäume unter diesen A induzieren eine Zerlegung von z = uvwxy. J. Rothe (HHU Düsseldorf) Informatik IV 34 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis Pfad α S A A S uay A vax A w z= u v w x y Abbildung: Auf einem Pfad α der Länge mindestens k + 1 muss es ein Nichtterminal A geben, das doppelt vorkommt. J. Rothe (HHU Düsseldorf) Informatik IV 35 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis Wir verifizieren die drei Aussagen des Pumping-Lemmas. 1 Da G in CNF ist, muss das obere A mittels einer Regel A BC weiter abgeleitet werden. Also ist vx 1. 2 Da das obere A höchstens k + 1 Schritte von der Blattebene entfernt ist, gilt vwx 2 k+1 = n. Dies folgt wieder aus dem Lemma über Binärbäume: Hätte der Teilbaum unter dem oberen A mehr als 2 k+1 Blätter, so gäbe es unter ihm einen Pfad der Länge > k + 1, Widerspruch. J. Rothe (HHU Düsseldorf) Informatik IV 36 / 128

Das Pumping-Lemma Pumping-Lemma: Beweis 3 Dies folgt daraus, dass stets ein Wort in L abgeleitet wird, wenn bei der Ableitung von z die Schritte zwischen den beiden Vorkommen von A entweder weggelassen (i = 0) oder beliebig oft wiederholt (i 1) werden. Also gilt: ( i 0)[uv i wx i y L]. Das Pumping-Lemma für kontextfreie Sprachen ist bewiesen. J. Rothe (HHU Düsseldorf) Informatik IV 37 / 128

Das Pumping-Lemma Pumping-Lemma Bemerkung: Man beachte, dass das Pumping-Lemma keine Charakterisierung von CF liefert, sondern lediglich eine Implikation: L CF ( n N)( z L, z n)( u, v, w, x, y Σ ) [z = uvwxy (1) (2) (3)]. Kontextfreie Sprachen Alle Sprachen Sprachen nach PL nicht kontextfrei J. Rothe (HHU Düsseldorf) Informatik IV 38 / 128

Das Pumping-Lemma Pumping-Lemma: Anwendungen Behauptung: L = {a m b m c m m 1} ist nicht kontextfrei. Beweis: Der Beweis wird indirekt geführt. Angenommen, L CF. Sei n die Zahl, die nach dem Pumping-Lemma für L existiert. Betrachte das Wort z = a n b n c n mit z = 3n > n. J. Rothe (HHU Düsseldorf) Informatik IV 39 / 128

Das Pumping-Lemma Pumping-Lemma: Anwendungen Da z L, lässt sich z so in zerlegen, dass gilt: z = uvwxy = a n b n c n 1 vwx n, d.h., vx kann nicht aus a-, b- und c-symbolen bestehen (vx kann also höchstens zwei der drei Symbole a, b, c enthalten); 2 vx 1, d.h., vx λ; 3 ( i 0)[uv i wx i y L]. Insbesondere gilt für i = 0: uv 0 wx 0 y = uwy L, im Widerspruch zur Definition von L, denn wegen der obigen Eigenschaften kann uwy nicht die Form a m b m c m haben. Also ist die Annahme falsch und L nicht kontextfrei. J. Rothe (HHU Düsseldorf) Informatik IV 40 / 128

Das Pumping-Lemma Pumping-Lemma: Anwendungen Behauptung: L = {0 p p ist Primzahl} ist nicht kontextfrei. Beweis: Der Beweis wird indirekt geführt. Angenommen, L CF. Sei n die Zahl, die nach dem Pumping-Lemma für L existiert und p n eine Primzahl. Betrachte das Wort z = 0 p mit z = p n. J. Rothe (HHU Düsseldorf) Informatik IV 41 / 128

Das Pumping-Lemma Pumping-Lemma: Anwendungen Da z L, lässt sich z so in z = uvwxy = 0 p zerlegen, dass gilt: 1 vwx n, 2 vx 1 und 3 ( i 0)[uv i wx i y L]. Insbesondere gilt für i = p + 1: uv p+1 wx p+1 y = uvwxy + v p + x p = p + p( v + x ) = p + p( vx ) = p(1 + vx ). Da vx 1 ist uv p+1 wx p+1 y keine Primzahl, im Widerspruch zur Definition von L. Also ist die Annahme falsch und L nicht kontextfrei. J. Rothe (HHU Düsseldorf) Informatik IV 42 / 128

Das Pumping-Lemma Pumping-Lemma: Anwendungen Behauptung: L = {0 m m ist Quadratzahl} ist nicht kontextfrei. Beweis: Siehe Übungen. J. Rothe (HHU Düsseldorf) Informatik IV 43 / 128

Der Satz von Parikh Parikh-Abbildung für Wörter Definition (Parikh-Abbildung für Wörter) Es sei Σ = {a 1,...,a n } ein Alphabet und L Σ eine Sprache. Die Parikh-Abbildung Ψ : L N n für w L ist definiert durch Ψ(w) = ( w a1, w a2,..., w an ), wobei für w L und a Σ der Wert w a die Anzahl der Vorkommen des Zeichens a in w angibt. J. Rothe (HHU Düsseldorf) Informatik IV 44 / 128

Der Satz von Parikh Parikh-Abbildung für Wörter Bemerkung: Für Σ = {a, b, c, d} ist Ψ(λ) = (0, 0,..., 0). } {{ } Σ Es gilt Ψ(abbac) = (2, 2, 1, 0), Ψ(bbab) = (1, 3, 0, 0). Ψ(w 1 w 2 ) = Ψ(w 1 ) + Ψ(w 2 ), unter Verwendung der üblichen Vektoraddition, da das Ergebnis der Parikh-Abbildung unabhängig von der Reihenfolge der Zeichen in Wörtern ist. (Allerdings hängt es von der Reihenfolge der Nummerierung der Zeichen in Σ ab.) J. Rothe (HHU Düsseldorf) Informatik IV 45 / 128

Der Satz von Parikh Parikh-Abbildung für Sprachen Definition (Parikh-Abbildung für Sprachen) Für eine Sprache L Σ mit Σ = {a 1,..., a n } ist die Parikh-Abbildung Ψ : P(Σ ) P(N n ) definiert durch Ψ(L) = {Ψ(w) w L}. J. Rothe (HHU Düsseldorf) Informatik IV 46 / 128

Der Satz von Parikh Parikh-Abbildung für Sprachen Beispiel: 1 Betrachte die folgenden beiden Sprachen über Σ = {0, 1}: L 1 = {0 n 1 n n 0} und L 2 = {(01) n n 0}. Es gilt: Ψ(L 1 ) = Ψ(L 2 ) = {(i, i) i 0}. Da L 1 kontextfrei und L 2 regulär ist, unterscheidet die Parikh-Abbildung nicht zwischen kontextfreien und regulären Sprachen. J. Rothe (HHU Düsseldorf) Informatik IV 47 / 128

Der Satz von Parikh Parikh-Abbildung für Sprachen 2 Betrachte die folgenden beiden Sprachen über Σ = {0, 1, 2}: L 1 = {0 n 1 n 2 m n, m 0} {0 n 1 m 2 m n, m 0} und L 2 = {(01) n 2 m n, m 0} {0 n (12) m n, m 0}. Es gilt: Ψ(L 1 ) = Ψ(L 2 ) = {(i, j, k) i = j oder j = k}. L 1 ist kontextfrei und L 2 regulär. J. Rothe (HHU Düsseldorf) Informatik IV 48 / 128

Der Satz von Parikh Lineare und semilineare Mengen Definition Eine Menge M von Vektoren heißt linear, falls es eine natürliche Zahl k und Vektoren b 0, b 1,..., b k gibt, so dass alle Vektoren b M die Form b = b 0 + haben (und umgekehrt). k λ i b i, λ i N, Eine Menge M von Vektoren heißt semilinear, falls M eine endliche Vereinigung linearer Mengen ist. i=1 J. Rothe (HHU Düsseldorf) Informatik IV 49 / 128

Der Satz von Parikh Lineare und semilineare Mengen Beispiel: Die Menge M 1 = {(r, s) r = s} ist linear. Mit b 0 = (0, 0) und b 1 = (1, 1) lassen sich alle Vektoren aus M 1 darstellen. Die Menge M 2 = {(r, s, t) r = s oder s = t} ist die Vereinigung der zwei Mengen M 2,1 = {(r, s, t) r = s} M 2,2 = {(r, s, t) s = t}. J. Rothe (HHU Düsseldorf) Informatik IV 50 / 128

Der Satz von Parikh Lineare und semilineare Mengen Beide Mengen, M 2,1 und M 2,2, sind linear, da sie sich mittels der Vektoren b 0 = (0, 0, 0), b 1 = (1, 1, 0), b 2 = (0, 0, 1) bzw. b 0 = (0, 0, 0), b 1 = (0, 1, 1), b 2 = (1, 0, 0) darstellen lassen. Aus der Darstellung folgt, dass M 2 semilinear ist. M 2 = M 2,1 M 2,2 J. Rothe (HHU Düsseldorf) Informatik IV 51 / 128

Der Satz von Parikh Satz von Parikh Theorem (Parikh) Für jede kontextfreie Sprache L ist Ψ(L) semilinear. ohne Beweis Bemerkung: Der Satz von Parikh liefert somit (wie das Pumping-Lemma für kontextfreie Sprachen) für bestimmte Sprachen einen Nachweis, dass diese nicht kontextfrei sind. J. Rothe (HHU Düsseldorf) Informatik IV 52 / 128

Der Satz von Parikh Satz von Parikh: Anwendung Behauptung: Wir betrachten die Sprache L = {x {0, 1} x = 1 k mit k 0 oder x = 0 j 1 k 2 mit j 1 und k 1}. über Σ = {0, 1} aus einem früheren Beispiel. Die Menge Ψ(L) = {(i, j) (i = 0 und j 0) oder (i 1 und j = k 2 und k 1)} ist nicht semilinear und L somit nicht kontextfrei. J. Rothe (HHU Düsseldorf) Informatik IV 53 / 128

Der Satz von Parikh Satz von Parikh Bemerkung: 1 Die Umkehrung des Satzes von Parikh gilt nicht. Dies zeigt z.b. die Sprache L = {a m b m c m m 1}, die nach dem Pumping-Lemma nicht kontextfrei ist. Das Parikh-Bild Ψ(L) = {(i, i, i) i 1} ist jedoch offensichtlich linear und somit auch semilinear. J. Rothe (HHU Düsseldorf) Informatik IV 54 / 128

Der Satz von Parikh Satz von Parikh 2 Wir wissen bereits, dass es kontextfreie Sprachen gibt, die das gleiche Parikh-Bild haben wie eine reguläre Sprache; z.b. ist L 1 = {0 n 1 n n 0} kontextfrei und L 2 = {(01) n n 0} regulär, und es gilt Ψ(L 1 ) = Ψ(L 2 ). Diese Beobachtung gilt sogar immer. J. Rothe (HHU Düsseldorf) Informatik IV 55 / 128

Der Satz von Parikh Satz von Parikh: CF versus REG Theorem Für jede kontextfreie Sprache L gibt es eine reguläre Sprache L mit Ψ(L) = Ψ(L ). Beweis: Es sei L eine kontextfreie Sprache über Σ = {a 1,..., a n }. Da nach dem Satz von Parikh Ψ(L) semilinear ist, gibt es eine endliche Zerlegung von Ψ(L) in lineare Mengen M 1, M 2,...,M l. J. Rothe (HHU Düsseldorf) Informatik IV 56 / 128

Der Satz von Parikh Satz von Parikh: CF versus REG Jede dieser Mengen M j, 1 j l, ist von der Form M j = {b j,0 + k λ j,i b j,i λ j,i N} i=1 wobei b j,i = (x 1,j,i,..., x n,j,i ), 0 i k. Definiere für 1 j l die regulären Ausdrücke α j = a x 1,j,0 1 a x n,j,0 n (a x 1,j,1 1 a x n,j,1 n ) (a x 1,j,k 1 a x n,j,k n ). Dann erhalten wir mit l L = L(α j ) j=1 eine reguläre Sprache mit Ψ(L) = Ψ(L ). J. Rothe (HHU Düsseldorf) Informatik IV 57 / 128

Der Satz von Parikh Satz von Parikh: CF versus REG Beispiel: Wir betrachten die kontextfreie Sprache L = {a n b n c m n, m 0} {a n b m c m n, m 0} über Σ = {a, b, c}. Ψ(L) ist die Vereinigung zweier linearer Mengen M 1 und M 2, die sich durch die Vektoren b 1,0 = (0, 0, 0), b 1,1 = (1, 1, 0), b 1,2 = (0, 0, 1) bzw. b 2,0 = (0, 0, 0), b 2,1 = (0, 1, 1), b 2,2 = (1, 0, 0) darstellen lassen. J. Rothe (HHU Düsseldorf) Informatik IV 58 / 128

Der Satz von Parikh Satz von Parikh: CF versus REG Die regulären Ausdrücke α 1 und α 2 aus dem Beweis des Satzes oben sind dann: α 1 = a 0 b 0 c 0 (a 1 b 1 c 0 ) (a 0 b 0 c 1 ) (ab) c und α 2 = a 0 b 0 c 0 (a 0 b 1 c 1 ) (a 1 b 0 c 0 ) (bc) a Somit ist L = L(((ab) c + (bc) a )) eine reguläre Sprache mit Ψ(L) = Ψ(L ). J. Rothe (HHU Düsseldorf) Informatik IV 59 / 128

Der Satz von Parikh Satz von Parikh: CF versus REG Theorem Eine Sprache über Σ mit Σ = 1 ist genau dann kontextfrei, wenn sie regulär ist. Beweis: Offensichtlich sind zwei Sprachen L 1, L 2 über Σ mit Σ = 1 genau dann äquivalent, wenn gilt: Ψ(L 1 ) = Ψ(L 2 ). Es sei L Σ mit Σ = 1 eine kontextfreie Sprache. Nach dem obigen Satz existiert eine reguläre Sprache L mit Ψ(L) = Ψ(L ). Nach der Vorbemerkung gilt L = L und L ist regulär. J. Rothe (HHU Düsseldorf) Informatik IV 60 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschlusseigenschaften von CF Theorem CF ist abgeschlossen unter Vereinigung, Konkatenation, Iteration und Spiegelung, ist jedoch nicht abgeschlossen unter Schnitt, Komplement und Differenz. J. Rothe (HHU Düsseldorf) Informatik IV 61 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschlusseigenschaften von CF: Beweis Beweis: Seien L 1 und L 2 kontextfreie Sprachen und G i = (Σ, N i, S i, P i ), wobei i {1, 2}, zwei kontextfreie Grammatiken mit N 1 N 2 = und L(G i ) = L i. Vereinigung: Die Grammatik G = (Σ, N 1 N 2 {S}, S, P 1 P 2 {S S 1 S 2 }) leistet L(G) = L 1 L 2. J. Rothe (HHU Düsseldorf) Informatik IV 62 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschlusseigenschaften von CF: Beweis Konkatenation: Die Grammatik G = (Σ, N 1 N 2 {S}, S, P 1 P 2 {S S 1 S 2 }) leistet L(G) = L 1 L 2. Iteration: Die Grammatik G = (Σ, N 1 {S}, S, P 1 {S λ S 1, S 1 S 1 S 1 } {S 1 λ}) leistet L(G) = (L 1 ). J. Rothe (HHU Düsseldorf) Informatik IV 63 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschlusseigenschaften von CF: Beweis Spiegelung: Es sei G = (Σ, N, S, P) eine kontextfreie Grammatik in CNF, d.h., alle Regeln in G sind von der Form A BC oder A a, wobei A, B, C N und a Σ. Um die gespiegelten Wörter zu erzeugen, drehen wir die rechten Seiten in Regeln der Form A BC um. Wir erhalten durch G = (Σ, N, S, P ) mit P = {A CB A BC P} {A a A a P} eine kontextfreie Grammatik in CNF mit L(G ) = sp(l(g)). J. Rothe (HHU Düsseldorf) Informatik IV 64 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschlusseigenschaften von CF: Beweis Schnitt: Die Sprachen A = {a i b i c j i, j 1} und B = {a i b j c j i, j 1} sind beide kontextfrei, jedoch (nach dem Pumping-Lemma) nicht ihr Durchschnitt A B = {a i b i c i i 1}. Komplement: folgt nach de Morgan aus dem Abschluss unter Vereinigung und dem Nicht-Abschluss unter Schnitt: A B = A B. Differenz: folgt nach A = Σ A aus dem Nicht-Abschluss unter Komplement. J. Rothe (HHU Düsseldorf) Informatik IV 65 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschluss von CF unter Schnittbildung mit REG Theorem CF ist abgeschlossen unter Schnittbildung mit REG: Es seien L 1 eine kontextfreie Sprache und L 2 eine reguläre Sprache. Dann ist L 1 L 2 eine kontextfreie Sprache. Beweis: Es sei G = (Σ, N, S, P) eine kontextfreie Grammatik in Chomsky-Normalform mit L 1 = L(G). M = (Σ, Z,δ, z 0, F) sei ein DFA mit Z = {z 0,...,z n }, so dass L 2 = L(M). J. Rothe (HHU Düsseldorf) Informatik IV 66 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschluss von CF unter Schnittbildung mit REG Wir definieren die Grammatik Ĝ = (Σ, ˆN, Ŝ, ˆP) mit ˆN = {A ij für alle A N, 0 i, j n} {Ŝ} und der Regelmenge ˆP = { A ij B ik C kj für alle A BC P, 0 i, j, k n A ij a für alle A a P, 0 i, j n und δ(z i, a) = z j Ŝ S 0j für alle z j F } J. Rothe (HHU Düsseldorf) Informatik IV 67 / 128

Abschlusseigenschaften kontextfreier Sprachen Abschluss von CF unter Schnittbildung mit REG Es gilt: L(Ĝ) = L 1 L 2. Es sei x L(Ĝ), d.h., Ŝ Ĝ S 0j x. Ĝ Durch Ignorieren der Indizierung der Nichtterminale in der Ableitung S 0j x, erhalten wir eine Ableitung Ĝ für x in der Grammatik G, also x L 1. Die Indizierung impliziert, dass δ(z 0, x) F, also x L 2. Nach Konstruktion von ˆP. Fertig. J. Rothe (HHU Düsseldorf) Informatik IV 68 / 128

Der Algorithmus von Cocke, Younger und Kasami Der Algorithmus von Cocke, Younger und Kasami Ziel: Ein effizienter Algorithmus für das Wortproblem für kontextfreie Grammatiken. Definition (Wortproblem) Für i {0, 1, 2, 3} definieren wir das Wortproblem für Typ-i-Grammatiken wie folgt: Wort i = {(G, x) G ist Typ-i-Grammatik und x L(G)}. J. Rothe (HHU Düsseldorf) Informatik IV 69 / 128

Der Algorithmus von Cocke, Younger und Kasami Der Algorithmus von Cocke, Younger und Kasami Bemerkung: 1 Später werden wir sehen: (a) Wort 0 ist algorithmisch nicht lösbar. (b) Wort 1 ist algorithmisch lösbar, allerdings nur mit einem exponentiellen Aufwand. 2 Wort 2 ist sogar effizient lösbar, sofern die entsprechende kfg in Chomsky-Normalform gegeben ist. 3 Der Algorithmus von Cocke, Younger und Kasami beruht auf der Idee des dynamischen Programmierens. J. Rothe (HHU Düsseldorf) Informatik IV 70 / 128

Der Algorithmus von Cocke, Younger und Kasami Algorithmenentwurf mit dynamischer Programmierung 1 Charakterisiere den Lösungsraum und die Struktur einer erwünschten optimalen Lösung. 2 Definiere rekursiv, wie sich eine optimale Lösung (und der ihr zugeordnete Wert) aus kleineren optimalen Lösungen (und deren Werten) zusammensetzt. Dabei wird das Bellmansche Optimalitätsprinzip angewandt. 3 Konzipiere den Algorithmus bottom-up so, dass für n = 1, 2, 3,... tabellarisch optimale Teillösungen (und deren Werte) gefunden werden. Beim Finden einer optimalen Teillösung k > 1 hilft dabei, dass bereits alle optimalen Teillösungen der Größe < k bereitstehen. J. Rothe (HHU Düsseldorf) Informatik IV 71 / 128

Der Algorithmus von Cocke, Younger und Kasami Das Bellmansche Optimalitätsprinzip Die optimale Lösung eines Problems der Größe n setzt sich aus den optimalen Teillösungen der kleineren Teilprobleme zusammen. Bemerkung: Auch wenn das Wortproblem eigentlich nicht ein Optimierungsproblem ist, lässt sich dieses Prinzip hier anwenden. J. Rothe (HHU Düsseldorf) Informatik IV 72 / 128

Der Algorithmus von Cocke, Younger und Kasami Idee des CYK-Algorithmus Gegeben seien eine kfg in CNF und ein Wort x Σ. G = (Σ, N, S, P) Hat x = a Σ die Länge 1, so kann es aus einem Nichtterminal A nur abgeleitet werden, indem eine Regel der Form A a angewandt wird. J. Rothe (HHU Düsseldorf) Informatik IV 73 / 128

Der Algorithmus von Cocke, Younger und Kasami Idee des CYK-Algorithmus Ist dagegen x = a 1 a 2 a n ein Wort der Länge n 2, wobei a i Σ, so ist x aus A nur ableitbar, weil zunächst eine Regel der Form angewandt wurde, A BC aus B dann das Anfangsstück von x und aus C das Endstück von x abgeleitet wurde. J. Rothe (HHU Düsseldorf) Informatik IV 74 / 128

Der Algorithmus von Cocke, Younger und Kasami Idee des CYK-Algorithmus Es gibt also ein k mit 1 k < n, so dass gilt: die Regel A BC ist in P und B G a 1a 2 a k und C G a k+1a k+2 a n. Folglich kann das Wortproblem für ein Wort x der Länge n zurückgeführt werden auf die Lösungen des Wortproblems für zwei kleinere Wörter der Länge k und n k. Der Wert von k steht dabei nicht fest, sondern es ist jeder Wert mit 1 k < n möglich. J. Rothe (HHU Düsseldorf) Informatik IV 75 / 128

Der Algorithmus von Cocke, Younger und Kasami Idee des CYK-Algorithmus Mit dynamischer Programmierung beginnen wir also bei der Länge 1 und untersuchen systematisch alle Teilwörter von x auf ihre mögliche Ableitbarkeit aus einem Nichtterminal von G. All diese Information werden in einer Tabelle gespeichert. Wird nun ein Teilwort der Länge m n von x untersucht, so stehen die Teilinformationen über alle kürzeren Teilwörter bereits zur Verfügung. J. Rothe (HHU Düsseldorf) Informatik IV 76 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus mit dynamischer Programmierung Schritt 1: Lösungsraum und Struktur der Lösung: Sei G = (Σ, N, S, P) eine gegebene kfg in CNF, und sei x = a 1 a 2 a n ein gegebenes Wort. Der Algorithmus von Cocke, Younger und Kasami baut eine zweidimensionale Tabelle T der Größe n n auf, so dass T(i, j) genau die Nichtterminale A von G enthält, so dass A G a ia i+1 a i+j gilt. Dabei werden nicht alle Matrixelemente von T benötigt; es genügt eine untere Dreiecksmatrix. J. Rothe (HHU Düsseldorf) Informatik IV 77 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus mit dynamischer Programmierung Schritt 2: Herleitung der Rekursion: Für 1 i n ist T(i, 0) = {A N A a i ist Regel in P}. Die weiteren Einträge in die Tabelle werden Zeile für Zeile, von unten nach oben, bestimmt. Für j = 1, 2,..., n 1 enthält T(i, j) genau die Nichtterminale A N, für die es eine Regel A BC in P und ein k {0, 1,..., j 1} (also in den darunterliegenden Zeilen von T ) gibt mit B T(i, k) und C T(i + k + 1, j k 1). J. Rothe (HHU Düsseldorf) Informatik IV 78 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus mit dynamischer Programmierung Inhaltlich heißt das, dass es eine Ableitung A G BC gibt sowie darauf folgende Ableitungen B G a ia i+1 a i+k und C G a i+k+1a i+k+2 a i+j, insgesamt also A G BC G a ia i+1 a i+k C G a ia i+1 a i+k a i+k+1 a i+k+2 a i+j. J. Rothe (HHU Düsseldorf) Informatik IV 79 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus mit dynamischer Programmierung In der obersten Tabellenposition T(1, n 1) steht nach Definition das Startsymbol S genau dann, wenn gilt S G a 1a 2 a 1+(n 1) = a 1 a 2 a n = x. Also kann man die Entscheidung, ob x L(G), daran ablesen, ob S in der Position T(1, n 1) der Tabelle enthalten ist. J. Rothe (HHU Düsseldorf) Informatik IV 80 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus in Pseudocode (Schritt 3) CYK(G, x) { } // G = (Σ, N, S, P) ist kfg in CNF und x = a 1 a 2 a n Σ for (i = 1, 2,..., n) { T(i, 0) = {A N A ai ist Regel in P}; } for (j = 1, 2,..., n 1) { for (i = 1, 2,..., n j) { T(i, j) = ; for (k = 0, 1,..., j 1) { T(i, j) = T(i, j) {A N es gibt eine Regel A BC in P und B T(i, k) und C T(i + k + 1, j k 1)}; } } } if (S T(1, n 1)) return x L(G) ; else return x L(G) ; J. Rothe (HHU Düsseldorf) Informatik IV 81 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus Bemerkung: Die Komplexität des Algorithmus von Cocke, Younger und Kasami ist wegen der drei ineinander verschachtelten for-schleifen O(n 3 ). Indem man rückverfolgt, weshalb das Startsymbol S schließlich in die Tabellenposition T(1, n 1) kommt, erhält man den Syntaxbaum der entsprechenden Ableitung. J. Rothe (HHU Düsseldorf) Informatik IV 82 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus: Beispiel Beispiel: Gegeben sei die Grammatik G mit den folgenden Regeln: S ab asb asbb. Umformen in CNF ergibt zunächst die Grammatik G mit den Regeln: S AB ASB ASBB, A a, B b und schließlich die Grammatik G in CNF mit den Regeln: S AB AC DE, C SB, D AS, E BB, A a, B b. J. Rothe (HHU Düsseldorf) Informatik IV 83 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus: Beispiel Offenbar ist L(G) = {a m b n 1 m n < 2m}. Betrachte das Wort x = aaabbbb in Σ, wobei Σ = {a, b}. Dieses Wort x gehört zu L(G), und eine Ableitung (nämlich die so genannte Linksableitung) ist: S G DE G ASE G ase G aace G aace G aasbe G aaabbe G aaabbe G aaabbe G aaabbe G aaabbbb G aaabbbb G aaabbbb. J. Rothe (HHU Düsseldorf) Informatik IV 84 / 128

Der Algorithmus von Cocke, Younger und Kasami CYK-Algorithmus: Beispiel Der Algorithmus von Cocke, Younger und Kasami erzeugt dann Zeile für Zeile, von unten nach oben, die folgende Tabelle: i 1 2 3 4 5 6 7 6 S,C 5 S, D C 4 D S, C 3 S 2 D C 1 S E E E 0 A A A B B B B j a a a b b b b Der Eintrag S an der Position T(1, n 1) signalisiert, dass x = aaabbbb in L(G) ist. J. Rothe (HHU Düsseldorf) Informatik IV 85 / 128

Kellerautomaten Kellerautomaten Ziel: Automatenmodell zur Charakterisierung von CF. Dazu erweitern wir das NFA-Modell um einen Speicher (Keller bzw. Stack), der nach dem Lifo-Prinzip ( Last in first out ) arbeitet. x= a M Zustand z Lesekopf Eingabewort Programm: Überführungsfunktion δ Schreib /Lesekopf Keller A B A B B B A A B # top Abbildung: Ein Kellerautomat J. Rothe (HHU Düsseldorf) Informatik IV 86 / 128

Kellerautomaten Kellerautomaten Definition (Kellerautomat (PDA)) Ein (nichtdeterministischer) Kellerautomat (kurz PDA für push-down automaton) ist ein 6-Tupel M = (Σ,Γ, Z,δ, z 0,#), wobei Σ das Eingabe-Alphabet ist, Γ das Kelleralphabet, Z eine endliche Menge von Zuständen, δ : Z (Σ {λ}) Γ P e (Z Γ ) die Überführungsfunktion (P e (Z Γ ) ist die Menge aller endlichen Teilmengen von Z Γ ), z 0 Z der Startzustand, # Γ das Bottom-Symbol im Keller. J. Rothe (HHU Düsseldorf) Informatik IV 87 / 128

Kellerautomaten Kellerautomaten x= a M Zustand z Lesekopf Eingabewort Programm: Überführungsfunktion δ Schreib /Lesekopf Keller A B A B B B A A B # top Abbildung: Arbeitsweise eines Kellerautomaten J. Rothe (HHU Düsseldorf) Informatik IV 88 / 128

Kellerautomaten Kellerautomaten: Arbeitsweise δ-übergänge (z, B 1 B 2 B k ) δ(z, a, A) schreiben wir auch so: Dies heißt: Wird zaa z B 1 B 2 B k. im Zustand z Z das Eingabesymbol a Σ gelesen und ist A Γ das Top-Symbol im Keller, so geht M über in den Zustand z, der Lesekopf rückt ein Feld nach rechts auf dem Eingabeband und das Top-Symbol A im Keller wird ersetzt durch die Kellersymbole B 1 B 2 B k, wobei B 1 das neue Top-Symbol ist. J. Rothe (HHU Düsseldorf) Informatik IV 89 / 128

Kellerautomaten Kellerautomaten: Arbeitsweise POP-Operation: Ist k = 0 in zaa z B 1 B 2 B k, so wird A aus dem Keller gepopt. PUSH-Operation: Ist k = 2 und B 1 B 2 = BA in zaa z B 1 B 2 B k, so wird B in den Keller gepusht. zλa z B 1 B 2 B k heißt dasselbe wie oben, nur dass hier kein Eingabesymbol gelesen wird und der Lesekopf stehen bleibt. J. Rothe (HHU Düsseldorf) Informatik IV 90 / 128

Kellerautomaten Unterschiede zwischen PDA und NFA Akzeptierung erfolgt durch leeren Keller statt durch Endzustand (obwohl dies äquivalent auch möglich wäre). Takte (d.h. Rechenschritte) ohne Lesen eines Eingabesymbols sind beim PDA mit Regeln der Form zλa z B 1 B 2 B k möglich. (Für NFAs gibt es auch ein äquivalentes Modell mit λ-übergängen, so genannte λ-nfas.) Daher ist auch nur ein Startzustand nötig (man kann, wenn gewünscht, von diesem in jeden anderen Zustand gelangen, ohne ein Symbol der Eingabe zu verarbeiten). J. Rothe (HHU Düsseldorf) Informatik IV 91 / 128

Kellerautomaten Sprache eines Kellerautomaten Definition Sei M = (Σ,Γ, Z,δ, z 0,#) ein PDA. K M = Z Σ Γ ist die Menge aller Konfigurationen von M. Ist k = (z,α,γ) eine Konfiguration aus K M, so ist im aktuellen Takt der Rechnung von M: z Z der aktuelle Zustand von M; α Σ der noch zu lesende Teil des Eingabeworts; γ Γ der aktuelle Kellerinhalt. Für jedes Eingabewort w Σ ist (z 0, w,#) die entsprechende Startkonfiguration von M. J. Rothe (HHU Düsseldorf) Informatik IV 92 / 128

Kellerautomaten Sprache eines Kellerautomaten Auf K M definieren wir wie folgt eine binäre Relation M K M K M. Intuitiv: Für k, k K M gilt k M k genau dann, wenn k aus k durch eine Anwendung von δ hervorgeht. Formal: Für Zustände z, z Z, Symbole a 1, a 2,..., a n Σ und Kellersymbole A 1, A 2,..., A m, B 1, B 2,...,B k Γ ist (z, a 1 a 2 a n, A 1 A 2 A m ) M (z, a 2 a n, B 1 B 2 B k A 2 A m ) falls (z, B 1 B 2 B k ) δ(z, a 1, A 1 ) (z, a 1 a n, B 1 B 2 B k A 2 A m ) falls (z, B 1 B 2 B k ) δ(z,λ, A 1 ). J. Rothe (HHU Düsseldorf) Informatik IV 93 / 128

Kellerautomaten Sprache eines Kellerautomaten Sei M die reflexive und transitive Hülle von M, d.h., für k, k K M gilt k M k genau dann, wenn k aus k durch endlich-fache Anwendung von δ hervorgeht. Die vom PDA M akzeptierte Sprache ist definiert durch L(M) = {w Σ (z0, w,#) M (z,λ,λ) für ein z Z }. Wir bezeichnen für jedes z Z die Konfiguration (z,λ,λ) als Endkonfiguration für den PDA M. J. Rothe (HHU Düsseldorf) Informatik IV 94 / 128

Kellerautomaten Kellerautomaten: Beispiel Beispiel: Die Sprache L = {a m b m m 1} ist kontextfrei. Ein Kellerautomat, der L erkennt, ist definiert durch M = ({a, b}, {A,#}, {z 0, z 1 },δ, z 0,#), wobei die Überführungsfunktion δ durch die folgenden Regeln gegeben ist: z 0 a# z 0 A# z 1 λ# z 1 λ z 0 aa z 0 AA z 1 ba z 1 λ z 0 ba z 1 λ J. Rothe (HHU Düsseldorf) Informatik IV 95 / 128

Kellerautomaten Kellerautomaten: Beispiel Beispielsweise ist aabb L(M) = L, denn: (z 0, aabb,#) M (z 0, abb, A#) M M M M (z 0, bb, AA#) (z 1, b, A#) (z 1,λ,#) (z 1,λ,λ) J. Rothe (HHU Düsseldorf) Informatik IV 96 / 128

Kellerautomaten Kellerautomaten: Beispiel Andererseits ist abb L(M) = L, denn: (z 0, abb,#) M (z 0, bb, A#) M M (z 1, b,#) (z 1, b,λ) und keine weitere Regel ist anwendbar, da der Keller leer ist, also kein Top-Symbol existiert. Da die Eingabe jedoch nicht vollständig verarbeitet wurde, wird nicht akzeptiert. Die Überführungsfunktion von M ist sogar deterministisch (die formale Definition kommt später), denn jede Konfiguration hat nur eine mögliche Folgekonfiguration. J. Rothe (HHU Düsseldorf) Informatik IV 97 / 128

Kellerautomaten Kellerautomaten: Beispiel Beispiel: Der folgende PDA ist jedoch echt nichtdeterministisch : M = ({a, b}, {A, B,#}, {z 0, z 1 },δ, z 0,#), wobei die Überführungsfunktion δ gegeben ist durch: z 0 a# z 0 A# z 0 aa z 1 λ z 0 aa z 0 AA z 0 bb z 1 λ z 0 ab z 0 AB z 0 λ# z 1 λ z 0 b# z 0 B# z 1 aa z 1 λ z 0 ba z 0 BA z 1 bb z 1 λ z 0 bb z 0 BB z 1 λ# z 1 λ J. Rothe (HHU Düsseldorf) Informatik IV 98 / 128

Kellerautomaten Kellerautomaten: Beispiel Beispiel: Der folgende PDA ist jedoch echt nichtdeterministisch : M = ({a, b}, {A, B,#}, {z 0, z 1 },δ, z 0,#), wobei die Überführungsfunktion δ gegeben ist durch: z 0 a# z 0 A# z 0 aa z 1 λ z 0 aa z 0 AA z 0 bb z 1 λ z 0 ab z 0 AB z 0 λ# z 1 λ z 0 b# z 0 B# z 1 aa z 1 λ z 0 ba z 0 BA z 1 bb z 1 λ z 0 bb z 0 BB z 1 λ# z 1 λ J. Rothe (HHU Düsseldorf) Informatik IV 99 / 128

Kellerautomaten Kellerautomaten: Beispiel Es gilt L(M ) = {w sp(w) w {a, b} }, wobei sp(w) die Spiegelung des Wortes w ist. M hat nichtdeterministische Übergänge: z 0 AA z 0 BB z 0 aa und z 0 bb z 1 λ z 1 λ Der Nichtdeterminismus wird hier benötigt, um die Wortmitte zu raten. Es gibt keinen deterministischen PDA, der L(M ) erkennt. J. Rothe (HHU Düsseldorf) Informatik IV 100 / 128

Kellerautomaten Kellerautomaten: Beispiel Drei mögliche Folgen von Konfigurationen bei Eingabe abba sind: (z 1, abba,λ) (z 0, abba,#) (z 0, bba, A#) (z 0, ba, BA#) (z 0, a, BBA#) (z 0, λ, ABBA#) (z 1, a, A#) (z 1, λ,#) (z 1, λ, λ) Der obere Pfad führt zur Nicht-Akzeptierung, da das Eingabeband nicht leer, aber ohne Top-Symbol im leeren Keller keine weitere Regel anwendbar ist. Der mittlere Pfad führt zur Nicht-Akzeptierung, da der Keller nicht leer, aber keine weitere Regel anwendbar ist. Der untere Pfad führt zur Akzeptierung. (M wechselt nach Abarbeitung der Hälfte des Wortes in den Zustand z 1 und vergleicht den Kellerinhalt zeichenweise mit der zweiten Hälfte der Eingabe.) J. Rothe (HHU Düsseldorf) Informatik IV 101 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Theorem L ist kontextfrei es gibt einen Kellerautomaten M mit L(M) = L. Beweis: ( ) Sei L CF, und sei G = (Σ, N, S, P) eine kfg mit L(G) = L. Idee: Wir konstruieren einen Kellerautomaten M mit L(M) = L: M = (Σ, N Σ, {z},δ, z, S). Der Kellerautomat M simuliert bei Eingabe x auf dem Keller eine Linksableitung (d.h., es wird stets das am weitesten links stehende Nichtterminal ersetzt) von x in der Grammatik G. J. Rothe (HHU Düsseldorf) Informatik IV 102 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Die Überführungsfunktion δ ist wie folgt definiert: Ist A q eine Regel in P mit A N und q (N Σ), so sei (z, q) δ(z,λ, A). Das heißt, lässt sich eine Regel der Grammatik auf das Top-Symbol im Keller anwenden, so tue dies, ohne ein Eingabesymbol zu lesen. Für jedes a Σ sei (z,λ) δ(z, a, a). Das heißt, ist das Top-Symbol im Keller ein Terminalzeichen a, das auch links in der Eingabe steht, so wird a aus dem Keller gepopt. J. Rothe (HHU Düsseldorf) Informatik IV 103 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Es gilt für alle x Σ : x L(G) S G x es gibt eine Folge von Konfigurationen von M mit (z, x, S) M M (z,λ,λ) (z, x, S) M (z,λ,λ) x L(M). Somit ist L(M) = L(G) = L. J. Rothe (HHU Düsseldorf) Informatik IV 104 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken ( ) Im Beweis der Rückrichtung dieser Äquivalenz wird eine kfg G = (Σ, N, S, P) aus einem gegebenen PDA M = (Σ,Γ, Z,δ, z 0,#) konstruiert. O.B.d.A. gelte k 2 für alle δ-regeln der Form zaa z B 1 B 2 B k. J. Rothe (HHU Düsseldorf) Informatik IV 105 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Denn gilt etwa k > 2 in einer δ-regel der Form zaa z B 1 B 2 B k, dann wähle neue Zustände z 1, z 2,..., z k 2 und ersetze diese δ-regel durch die folgenden neuen δ-regeln: zaa z 1 B k 1 B k z 1 λb k 1 z 2 B k 2 B k 1. z k 2 λb 2 z B 1 B 2. J. Rothe (HHU Düsseldorf) Informatik IV 106 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Um die Arbeitsweise des PDA M auf einem Wort x mittels einer Grammatik G zu simulieren, verwenden wir in G Variablen (Nichtterminale), die (bis auf das Startsymbol S) Tripel aus Z Γ Z sind, d.h., N = {S} Z Γ Z. Ist etwa (z l,γ, z r ) N mit z l, z r Z und γ Γ, so ist z l Z der Zustand vor einer Folge von Rechenschritten des PDA M, γ Γ das dabei verarbeitete Kellersymbol, z r Z der Zustand, wenn γ aus dem Keller gepopt wird. J. Rothe (HHU Düsseldorf) Informatik IV 107 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Aus der Variablen (z l,γ, z r ) sollen alle Zeichenreihen erzeugt werden können, die bewirken, dass γ vom Stack entfernt wird, während der Automat vom Zustand z l in den Zustand z r übergeht. Das heißt, wir simulieren Zustands- und Kelleränderung von M in den Nichtterminalen von G. J. Rothe (HHU Düsseldorf) Informatik IV 108 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken P besteht aus genau den folgenden Regeln, wobei stets z, z, z 1, z 2 Z, A, B, C Γ und a Σ {λ} gilt: 1 S (z 0,#, z) für jedes z Z. Vom Startsymbol in G wollen wir alle Nichterminale erreichen, die bedeuten, dass der PDA M seinen Keller leert, wenn er mit der Startkonfiguration beginnt. (Der dabei erreichte Zustand z ist beliebig.) 2 (z, A, z ) a, falls (z,λ) δ(z, a, A). Falls der Kellerautomat die Möglichkeit hat, im Zustand z das Zeichen a aus der Eingabe zu lesen, A aus dem Keller zu entfernen und in Zustand z überzugehen, so realisieren wir dies durch die Regel (z, A, z ) a in der Grammatik. J. Rothe (HHU Düsseldorf) Informatik IV 109 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken 3 (z, A, z ) a(z 1, B, z ), falls (z 1, B) δ(z, a, A). Falls der Kellerautomat die Möglichkeit hat, im Zustand z das Zeichen a aus der Eingabe zu lesen, A aus dem Keller zu entfernen, B auf den Keller zu schreiben und in Zustand z 1 überzugehen, so realisieren wir dies durch die Regeln (z, A, z ) a(z 1, B, z ) in der Grammatik. 4 (z, A, z ) a(z 1, B, z 2 )(z 2, C, z ), falls (z 1, BC) δ(z, a, A). Falls der Kellerautomat die Möglichkeit hat, im Zustand z das Zeichen a aus der Eingabe zu lesen, A aus dem Keller zu entfernen, BC auf den Keller zu schreiben und in Zustand z 1 überzugehen, so realisieren wir dies durch die Regel (z, A, z ) a(z 1, B, z 2 )(z 2, C, z ) in der Grammatik. J. Rothe (HHU Düsseldorf) Informatik IV 110 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Die Regeln von G sind so beschaffen, dass eine Rechnung von M bei Eingabe x durch eine Linksableitung von x simuliert wird. Die Korrektheit der Regeln liefert das folgende Lemma: Lemma Für alle (z, A, z ) N und alle x Σ gilt: (z, A, z ) G x (z, x, A) M (z,λ,λ). J. Rothe (HHU Düsseldorf) Informatik IV 111 / 128

Kellerautomaten Beweis des Lemmas ( ) Der Beweis wird durch Induktion über die Anzahl n der Rechenschritte von M geführt. Induktionsanfang: n = 1. Es gilt (z, A, z ) G a (z, A, z ) a ist Regel in P (z,λ) δ(z, a, A) wegen (2) in der Konstruktion von P (z, a, A) M (z,λ,λ). J. Rothe (HHU Düsseldorf) Informatik IV 112 / 128

Kellerautomaten Beweis des Lemmas Induktionsschritt: (n 1) n. Sei n > 1, und die Behauptung gelte für n 1. Folglich ist x = ay mit a Σ {λ}, und es gilt: (z, ay, A) M (z 1, y,α) n 1 M (z,λ,λ) für einen geeigneten Zustand z 1 Z und Kellerinhalt α {λ, B, BC}. Unterscheide die folgenden drei Fälle. Fall 1: α = λ. Dieser Fall kann nicht eintreten, da (z 1, y,λ) keine Folgekonfiguration hat. J. Rothe (HHU Düsseldorf) Informatik IV 113 / 128

Kellerautomaten Beweis des Lemmas Fall 2: α = B. Nach Induktionsvoraussetzung gilt: (z 1, y,α) n 1 M (z,λ,λ), was (z 1, B, z ) G y impliziert. Außerdem muss es wegen (z, ay, A) M (z 1, y,α) eine δ-regel der Form (z 1, B) δ(z, a, A) geben. Nach (3) in der Konstruktion von P gibt es in P also eine Regel der Form Somit ergibt sich insgesamt: also (z, A, z ) G x. (z, A, z ) a(z 1, B, z ). (z, A, z ) G a(z 1, B, z ) G ay = x, J. Rothe (HHU Düsseldorf) Informatik IV 114 / 128

Kellerautomaten Beweis des Lemmas Fall 3: α = BC. Die Konfigurationenfolge (z 1, y, BC) M (z,λ,λ) kann in zwei Teile zerlegt werden: (z 1, y, BC) M (z 2, y 2, C) M (z,λ,λ), wobei y = y 1 y 2 für ein geeignetes y 1. Für dieses y 1 gilt: (z 1, y 1, B) M (z 2,λ,λ). Außerdem muss es wegen des ersten Schritts (z, ay, A) M (z 1, y, BC) eine δ-regel der Form (z 1, BC) δ(z, a, A) geben. J. Rothe (HHU Düsseldorf) Informatik IV 115 / 128

Kellerautomaten Beweis des Lemmas Nach (4) in der Konstruktion von P gibt es in P also eine Regel der Form (z, A, z ) a(z 1, B, z 2 )(z 2, C, z ). Insgesamt ergibt sich: (z, A, z ) G a(z 1, B, z 2 )(z 2, C, z ) G ay 1(z 2, C, z ) G ay 1y 2 = ay = x, also (z, A, z ) G x. J. Rothe (HHU Düsseldorf) Informatik IV 116 / 128

Kellerautomaten Beweis des Lemmas ( ) Der Beweis wird durch Induktion über k geführt, die Länge der Linksableitung von x. Induktionsanfang: k = 1. Siehe den Induktionsanfang (n = 1) im Beweis von ( ) des Lemmas. Induktionsschritt: (k 1) k. Sei k > 1, und die Behauptung gelte für k 1. Wir unterscheiden wieder drei Fälle. Fall 1: (z, A, z ) G a G k > 1. x. Dann gilt x = a, im Widerspruch zu J. Rothe (HHU Düsseldorf) Informatik IV 117 / 128

Kellerautomaten Beweis des Lemmas Fall 2: (z, A, z ) G a(z 1, B, z ) k 1 G ay = x. Dann ist (z 1, B) δ(z, a, A). Nach Induktionsvoraussetzung gilt: Somit ergibt sich: (z 1, y, B) M (z,λ,λ). (z, x, A) = (z, ay, A) M (z 1, y, B) M (z,λ,λ). J. Rothe (HHU Düsseldorf) Informatik IV 118 / 128

Kellerautomaten Beweis des Lemmas Fall 3: (z, A, z ) G a(z 1, B, z 2 )(z 2, C, z ) k 1 G ay = x. Dann ist (z 1, BC) δ(z, a, A). Nach Induktionsvoraussetzung gilt für y = y 1 y 2 : Somit ergibt sich: Das Lemma ist bewiesen. (z 1, y 1, B) M (z 2,λ,λ); (z 2, y 2, C) M (z,λ,λ). (z, x, A) = (z, ay 1 y 2, A) M (z 1, y 1 y 2, BC) M (z 2, y 2, C) M (z,λ,λ). J. Rothe (HHU Düsseldorf) Informatik IV 119 / 128

Kellerautomaten Kellerautomaten und kontextfreie Grammatiken Aus dem Lemma ergibt sich L(G) = L(M) so: x L(M) (z 0, x,#) M (z,λ,λ) für ein z Z (z 0,#, z) G x für ein z Z, nach dem Lemma S G x wegen (1) in der Konstruktion von P x L(G). Der Satz ist bewiesen. J. Rothe (HHU Düsseldorf) Informatik IV 120 / 128

Kellerautomaten Beispiel: kfg PDA Beispiel: Wir betrachten die Grammatik G = (Σ, N, S, R) aus einem früheren Beispiel mit Σ = {,+,(,), a}, N = {S} und Regeln R = {S S + S S S (S) a}. G erzeugt die Sprache aller verschachtelten Klammerausdrücke mit den Operationen + und und einem Zeichen a. J. Rothe (HHU Düsseldorf) Informatik IV 121 / 128

Kellerautomaten Beispiel: kfg PDA Konstruiere einen PDA M mit L(M) = L(G) wie folgt: M = (Σ, N Σ, {z},δ, z, S) mit der folgenden Überführungsfunktion δ: zλs zs + S z(( zλ zλs zs S z)) zλ zλs z(s) z zλ zλs za z + + zλ zaa zλ J. Rothe (HHU Düsseldorf) Informatik IV 122 / 128

Kellerautomaten Beispiel: kfg PDA Eine Ableitung von w = (a a) + a in G und M: kfg G PDA M S G S + S (z,(a a) + a, S) M (z,(a a) + a, S + S) G (S) + S M (z,(a a) + a,(s) + S) M (z, a a) + a, S) + S) G (S S) + S M (z, a a) + a, S S) + S) G (a S) + S M (z, a a) + a, a S) + S) M (z, a) + a, S) + S) M (z, a) + a, S) + S) G (a a) + S M (z, a) + a, a) + S) J. Rothe (HHU Düsseldorf) Informatik IV 123 / 128