Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen

Ähnliche Dokumente
Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

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

Kontextfreie Grammatiken

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Grundlagen der Theoretischen Informatik

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65

Theoretische Grundlagen der Informatik

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7

Die mathematische Seite

1 Eine Menge M Σ heißt (rekursiv) aufzählbar genau. 2 Die Familie aller aufzählbaren Mengen wird mit RE

Tutoraufgabe 1 (ɛ-produktionen):

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

A : z z A : z z : ( z, x, z ) δ

Grundlagen der Theoretischen Informatik

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Automatentheorie und formale Sprachen

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Das Pumping Lemma der regulären Sprachen

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Grundlagen der Theoretischen Informatik

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Chomsky-Grammatiken 16. Chomsky-Grammatiken

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Theoretische Informatik Mitschrift

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

3 kontextfreie Sprachen

5.2 Endliche Automaten

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

Zentralübung zur Vorlesung Theoretische Informatik

Formale Grundlagen der Informatik

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Motivation natürliche Sprachen

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

2.3 Abschlusseigenschaften

I.5. Kontextfreie Sprachen

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

Kontextfreie Sprachen

Übungsaufgaben zu Formalen Sprachen und Automaten

Automaten und formale Sprachen Klausurvorbereitung

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

Kontextfreie Sprachen

4.2 Die Chomsky Normalform

Deterministischer Kellerautomat (DPDA)

Grundbegriffe. Grammatiken

Beschreibungskomplexität von Grammatiken Definitionen

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Grundlagen der Theoretischen Informatik

Das Pumping-Lemma Formulierung

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Hochschule Bonn-Rhein-Sieg University of Applied Sciences Grantham-Allee Sankt Augustin

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Grundlagen der Theoretischen Informatik

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Grundlagen der Informatik II

Theoretische Informatik I

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist

Das Postsche Korrespondenzproblem

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

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Übungsblatt Nr. 3. Lösungsvorschlag

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

Algorithmen und Datenstrukturen (EI)

Theoretische Informatik Mitschrift

Pumping-Lemma 2 Pumping-Lemma Sei L eine von einem endlichen Automaten erkannte Sprache. Dann existiert eine natürliche Zahl p N derart, dass jedes Wo

Einführung in die Theoretische Informatik

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Formale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Grundlagen der Informatik II

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Grundlagen der Theoretischen Informatik

Wortproblem für kontextfreie Grammatiken

Kurz-Skript zur Theoretischen Informatik I

Typ-3-Sprachen. Das Pumping-Lemma

Kapitel IV Formale Sprachen und Grammatiken

Theorie der Informatik

Informatik IC2. Balazs Simon

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Die Nerode-Relation und der Index einer Sprache L

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

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

Vorlesung Theoretische Informatik

Musterlösung Informatik-III-Klausur

(Prüfungs-)Aufgaben zu formale Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft

Transkript:

Informales Beispiel Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de 22. April 2014 I L IL ID L a b c D 0 1 2 3 4 Eine mögliche Ableitung eines Identifiers (Ziel: abc1): I ID ILD ILLD LLLD alld abld abl1 abc1 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 2/44 Grammatiken. Formale Definition Grammatiken. Anmerkungen Definition (Grammatik) Eine Grammatik ist ein Quadrupel G = (V N, V T, P, S) mit 1 Dem endlichen Alphabet von Nonterminalen V N. 2 Dem endlichen Alphabet von Terminalen V T mit V T V N =. Das Gesamtalphabet wird mit V := V T V N bezeichnet. 3 Der endlichen Menge von Produktionen (oder Regeln) P (V \ V T ) V. 4 Dem Startsymbol S V N. Bemerkung Eine Regel (u, v) P wird meist als u v notiert. Mehreren Reglen u v und u w werden als u v w abgekürzt. Auf der linken Seite einer Regel steht stets mindestens ein Nonterminal! P (V \ V T ) V Frank Heitmann heitmann@informatik.uni-hamburg.de 3/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 4/44

Ableitung Grammatiken. Beispiel Definition (Ableitung) Die einschrittige Ableitung eines Wortes v aus einem Wort u mittels einer Produktion einer Grammatik G wird notiert als u = G v. Dabei ist die Relation = G V V für alle u, v V definert durch: u = G v gdw. u 1, u 2 V (w l, w r ) P : u = u 1 w l u 2 und v = u 1 w r u 2 Ist der Kontext klar, wird das tief gestellte G weggelassen. Ferner bedienen wir uns wieder der reflexiven, transitiven Hülle mehrschrittige Ableitungen. = G für Vorgehen Eine Ableitung funktioniert also so: Das aktuelle Wort w betrachten Treten in w linke Seiten von Regeln auf? Falls ja, wähle eine dieser Regeln und ersetze die in w auftretende linke Seite der Regel durch die rechte Seite dieser Regel Beispiel Mit S ASB AB, AB c, AcB c gilt S ASB AABB AcB c Frank Heitmann heitmann@informatik.uni-hamburg.de 5/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 6/44 Generierte Sprache. Formale Definition Definition (Generierte Sprache) Sei G = (V N, V T, P, S) eine Grammatik. Die von G generierte oder erzeugte Sprache ist L(G) := {w V T S = G w} Definition (Kontextfreie Grammatik (CFG)) Eine kontextfreie Grammatik (CFG) ist ein Quadrupel G = (V N, V T, P, S) mit 1 Dem endlichen Alphabet von Nonterminalen V N. 2 Dem endlichen Alphabet von Terminalen V T mit V T V N =. Das Gesamtalphabet wird mit V := V T V N bezeichnet. 3 Der endlichen Menge von Produktionen (oder Regeln) P V N V. 4 Dem Startsymbol S V N. werden auch als Typ-2-Grammatiken bezeichnet. Frank Heitmann heitmann@informatik.uni-hamburg.de 7/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 8/44

Sprachfamilie CF Typ-3 Grammatiken Definition (Sprachfamilie CF) Ableitung und akzeptierte Sprache ist wie bei Grammatiken definiert. Die Familie der kontextfreien Sprachen ist dann jene Familie von Sprachen, für die es eine kontextfreie Grammatik, die sie generiert. Abgekürzt wird diese Sprachfamilie mit CF. Definition (Kontextfreie Grammatik (CFG)) Eine kontextfreie Grammatik G = (V N, V T, P, S) heißt linear, falls P V N (V T V N V T V T ) linkslinear, falls P V N (V N V T V T ) rechtslinear, falls P V N (V T V N V T ) Wir werden uns auf rechtslineare Grammatiken beschränken. Diese heißen auch Typ-3-Grammatiken oder reguläre Grammatiken. Typische Produktionen rechtslinearer Grammatiken: A bcx, A by, A a Frank Heitmann heitmann@informatik.uni-hamburg.de 9/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 10/44 Automat Grammatik Satz Eine Sprache R Σ ist regulär genau dann, wenn es eine rechtslineare Grammatik G gibt mit L(G) = R. Die Beweisidee: Wird ein Buchstabe im Automaten gelesen, wird eine Kante (z, a, z ) benutzt ( entlang gegangen ). Man kann dies durch eine Produktion [z] a[z ] in der Grammatik nachbauen (wobei [z] ein Nonterminal ist). Andersherum geht das auch! R G. Sei A 1 = (Z, Σ, K, z 0, Z end ) ein DFA mit L(A 1 ) = R. Wir definieren eine rechtslineare CFG G R := (V N, V T, P, S) durch: V N := {[z] z Z} V T := Σ S := [z 0 ] P := {[z] a[z ] (z, a, z ) K} {[z] a z Z end : (z, a, z ) K} {[z 0 ] λ z 0 Z end } Frank Heitmann heitmann@informatik.uni-hamburg.de 11/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 12/44

Automat Grammatik Grammatik Automat P := {[z] a[z ] (z, a, z ) K} {[z] a z Z end : (z, a, z ) K} {[z 0 ] λ z 0 Z end } Gibt es eine Erfolgsrechnung in A 1 und hat diese bspw. die Kanten (z 0, x 1, z 1 ), (z 1, x 2, z 2 ),..., (z n 1, x n, z n ) mit z n Z end, so kann man mit den Regeln [z 0 ] x 1 z 1, [z 1 ] x 2 z 2,..., [z n 1 ] x n dieses Wort auch in der Grammatik ableiten. Die Umkehrung (zu einer Ableitung gibt es auch eine Erfolgsrechnung) gilt auch, also insgesamt L(G R ) = L(A 1 ). G R. Sei G = (V N, V T, P, S) eine rechtslineare Grammatik. Wir definieren einen NFA A 2 := (Z, Σ, K, Z start, Z end ) mit Z := {z A A V N } {z λ } Σ := V T Z start := {z S } Z end := {z λ } K := {(z Q, u, z R ) Q, R V N, u VT, Q ur P} {(z Q, u, z λ ) Q V N, u VT, Q u P} Man kann wie eben wieder einen Zusammenhang zwischen Erfolgsrechnung und Ableitung herstellen. Frank Heitmann heitmann@informatik.uni-hamburg.de 13/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 14/44 Grammatik Automat Hinweis Satz Eine Sprache C Σ ist kontextfrei genau dann, wenn es einen PDA gibt, der C mit leerem Keller akzeptiert. K := {(z Q, u, z R ) Q, R V N, u VT, Q ur P} {(z Q, u, z λ ) Q V N, u VT, Q u P} Wer sich hier daran stört, dass mehr als ein Buchstabe an der Kante steht, der kann auch Zwischenzustände für die einzelnen Buchstaben des Wortes u einführen! Frank Heitmann heitmann@informatik.uni-hamburg.de 15/44 Umfangreicher als obiges, aber ähnliche Idee... Literaturhinweis Interessierte finden den Beweis in [HMU] oder im Skript. Bemerkung Da die Akzeptanzbedingungen mit leerem Keller und mit Endzustand äquivalent sind, gilt obige Aussage auch für PDAs, die mit Endzustand akzeptieren. Man beachte aber, dass das Modell in jedem Fall nichtdeterministisch ist! Frank Heitmann heitmann@informatik.uni-hamburg.de 16/44

kontextfreier Sprachen Satz Die Familie CF ist abgeschlossen gegenüber, und. Seien für i {1, 2} kontextfreie Grammatiken G i = (V i,n, V i,t, P i, S i ) mit L(G i ) = L i. 1 Sei G 3 := (V 1,N V 2,N {S 3 }, V 1,T V 2,T, P 3, S 3 ) mit P 3 := P 1 P 2 {S 3 S 1 S 2 }, dann ist L 1 L 2 = L(G 3 ). 2 Sei G 4 := (V 1,N V 2,N {S 4 }, V 1,T V 2,T, P 4, S 4 ) mit P 4 := P 1 P 2 {S 4 S 1 S 2 }, dann ist L 1 L 2 = L(G 4 ). 3 Sei G 5 := (V 1,N {S 5 }, V 1,T, P 5, S 5 ) mit P 5 := P 1 {S 5 S 1 S 5 λ}, dann ist L 1 = L(G 5). Zur Nachbereitung Hier müsste nun noch L 1 L 2 = L(G 3 ), L 1 L 2 = L(G 4 ) und L 1 = L(G 5 ) gezeigt werden. Dies ist aber recht einfach. Mündlich... Frank Heitmann heitmann@informatik.uni-hamburg.de 17/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 18/44 kontextfreier Sprachen Satz Die Familie CF ist nicht abgeschlossen gegenüber, Komplementbildung und Mengendifferenz. Der Beweis gelingt stets durch Angabe eines Gegenbeispiels. Siehe Skript, Theorem 9.38. Wir wollen nun eine Normalform für kontextfreie Grammtiken herstellen. Dies kann uns helfen. bei Beweisen und einigen Algorithmen Frank Heitmann heitmann@informatik.uni-hamburg.de 19/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 20/44

Definition Eine kontextfreie Grammatik G = (V N, V T, P, S) ist in Chomsky-Normalform (CNF) genau dann, wenn alle Produktionen von der Form A BC A a mit A, B, C V N und a V T sind. Satz Zu jeder CFG G kann eine äquivalente CFG G = (V N, V T, P, S ) konstruiert werden für die folgendes gilt: 1 Ist λ L(G), so ist G in CNF. 2 Ist λ L(G), so ist S λ die einzige λ-produktion in P und alle anderen Produktionen sind in Chomsky-Normalform. Außerdem kommt S auf keiner rechten Seite einer Regel aus P vor. Dies nennen wir dann erweiterte Chomsky-Normalform. Frank Heitmann heitmann@informatik.uni-hamburg.de 21/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 22/44 1. λ-frei machen Im Beweis werden in sechs Schritten zu G = (V N, V T, P, S) jeweils neue, äquivalente Grammatiken erzeugt: 1 λ-frei machen 2 Reduzieren (produktiv und erreichbar) 3 Kettenregeln entfernen 4 Ersetzen langer Terminalregeln 5 Verkürzen zu langer Regeln 6 Evtl. Hinzunahme einer λ-regel Bemerkung Nachfolgend geben wir die Konstruktion an. Die Beweise, dass die einzelnen Grammatiken äquivalent sind, überspringen wir (meist sind sie aber recht einfach). Frank Heitmann heitmann@informatik.uni-hamburg.de 23/44 1 Zu jedem A V N bestimmen wir, ob A = λ gilt: M 0 := {A V N A λ P} M i+1 := M i {A V N w M i : A w P} Es gibt ein k mit M k = M k+1. Wir setzen V λ := M k und hören auf. 2 Wir definieren eine Substitution σ : V 2 V durch σ(a) := {A}, falls A (V \ V λ ) σ(a) := {λ, A}, falls A V λ 3 G 1 := (V N, V T, P 1, S) entsteht durch P 1 := {A v v λ, v σ(w) für A w P} Es ist L(G 1 ) = L(G) \ {λ}. Frank Heitmann heitmann@informatik.uni-hamburg.de 24/44

1. λ-frei machen 1. λ-frei machen Z.B. ist bei C λ, B xc ACx, A B CC M 0 = {C} M 1 = {C, A} M 2 = M 1 Beispiel für die Anwendung der Substitution (hat nichts mit obigem zu tun!): Wendet man σ auf ein Wort u an, werden in u einige (inkl. alle oder keins) Symbole aus V λ gestrichen. Z.B. mit V λ = {A, C} σ(xabcy) = {xabcy, xbcy, xaby, xby} σ(xaca) = {xaca, xca, xaa, xac, xa, xc, x} Anmerkung Man kann diese Technik auch benutzen, um λ L(G) zu entscheiden oder um eine äquivalente Grammatik zu konstruieren, die nur eine λ-produktion hat: λ L(G) gilt, wenn S V λ ist. Ist λ L(G), so fügt man zu der eben konstruierten Grammatik G 1 ein neues Startsymbol S neu hinzu sowie die neuen Produktionen S neu λ sowie S neu w für jede Produktion S w P 1. Frank Heitmann heitmann@informatik.uni-hamburg.de 25/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 26/44 2. Reduzieren 2. Reduzieren Zuerst alle nicht produktiven Nonterminal entfernen. Produktiv ist ein Nonterminal dabei, wenn es zu einem Terminalwort abgeleitet werden kann. Wir berechnen ähnlich wie eben M 0 := V T M i+1 := M i {A V N w Mi : A w P 1 } Es gibt ein k mit M k+1 = M k dort hören wir auf und bestimmen G := (V N, V T, P, S ) = ((M k V N ) {S}, V T, P 1 (M k Mk ), S) Als nächstes werden die erreichbaren Nonterminale bestimmt. M 0 := {S } M i+1 := M i {B V N A M i u, v V : A ubv P } Wieder gibt es ein k mit M k+1 = M k. Wir setzen dann G 2 := (V N2, V T2, P 2, S), indem wir von G nur solche Produktionen übernehmen, deren rechte und linke Seiten nur Nonterminale aus M k (und Terminale) enthalten. V N kann dabei u.u. auch verkleinert werden. Frank Heitmann heitmann@informatik.uni-hamburg.de 27/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 28/44

2. Reduzieren 3. Kettenregeln entfernen Anmerkung Mit dieser Technik kann zu jeder Grammatik G mit L(G) eine äquivalente reduzierte Grammatik G konstruiert werden. Alle Nonterminale sind dann produktiv und erreichbar, also umgangssprachlich nützlich. Beispiel: In den Präsenzaufgaben ;-) Im dritten Schritt ändert sich nur die Menge der Produktionen. Wir wollen keine (Ketten-)Regeln A B haben. Wir defineren A << B gdw. A B P 2 Mit << sei die reflexive, transitive Hülle von << bezeichnet. Es ist nun G 3 = (V N3, V T3, P 3, S 3 ) = (V N2, V T2, P 3, S) P 3 := {A w w V N3 B w P 2 A << B} Frank Heitmann heitmann@informatik.uni-hamburg.de 29/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 30/44 3. Kettenregeln entfernen 4. Ersetzen langer Terminalregeln Beispiel P 3 := {A w w V N3 B w P 2 A << B} Sei A B cb, B C d, C e, dann ist A << B, B << C, A << C und damit folgt als Produktionen in P 3 : A cb, B d, C e A d B e A e In der Chomsky-NF darf auf der rechten Seite stets nur genau ein Terminalzeichen stehen. Gibt es daher nun noch Produktionen, deren rechte Seite länger als 1 ist und Terminale enthalten. Dann erstezen wir auf diesen rechten Seiten jedes Terminal a durch ein Nonterminal a. Frank Heitmann heitmann@informatik.uni-hamburg.de 31/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 32/44

4. Ersetzen langer Terminalregeln 5. Verkürzen zu langer Regeln Beispiel Hat man bspw. Regeln A bc Bc c so entstehen daraus die Regeln A b c B c c Sind nun noch Regeln A w mit w > 2 vorhanden, so müssen wir diese auf die Länge 2 bringen. Wir machen das so: G 5 := (V N5, V T3, P 5, S) mit V N5 := { v u λ : A w P 4 : w = vu v 2} V N4 P 5 := {A v x A w P 4 : w 3 w = vx x V N4 } { v u y u, v (V N5 \ V N4 ) y V N4 v = uy} { v xy v (V N5 \ V N4 ) x, y V N4 v = xy} {A w A w P 4 w 2} Frank Heitmann heitmann@informatik.uni-hamburg.de 33/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 34/44 5. Verkürzen zu langer Regeln 6. λ-regel hinzunehmen Beispiel Sei z.b. A BCDE, dann werden die Produktionen A (BCD)E (BCD) (BC)D (BC) BC mit den neuen Nonterminalen (BCD) und (BC) hinzugefügt. Hinweis Um bei den letzten beiden Schritten nicht durcheinander zu kommen, lohnt es sich manchmal mit unterschiedlichen Klammertypen zu arbeiten. Galt im ersten Schritt S V λ, war also λ L(G), so fügen wir zu der zuletzt konstruierten Grammatik noch ein neues Startsymbol S neu hinzu sowie die neuen Produktionen S neu λ sowie S neu w für jede Produktion S w P 5. Die so erhaltene Grammatik G 6 erfüllt die im Satz aufgestellten Bedingungen. Frank Heitmann heitmann@informatik.uni-hamburg.de 35/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 36/44

Pumping Lemma kontextfreier Sprachen kann benutzt werden, um das Pumping Lemma kontextfreier Sprachen zu zeigen. Dies kann dann wieder benutzt werden, um die Grenzen kontextfreier Sprachen nachzuweisen, d.h. um für Sprachen zu zeigen, dass sie nicht kontextfrei sind. Lemma (Pumping Lemma II) Sei L CF eine kontextfreie Sprache. Dann gibt es ein n N, so dass jedes Wort z L mit z n in die Form z = uvwxy zerlegt werden kann, wobei 1 vwx n 2 vx 1 3 uv i wx i y L für jedes i N (inkl. der 0) Frank Heitmann heitmann@informatik.uni-hamburg.de 37/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 38/44 Pumping Lemma - Beweis Pumping Lemma - Beispiel Beweis Wie beim vorherigen Pumping Lemma ist auch dieser Beweis ein kombinatorisches Argument. Hier geht die Argumentation über eine Grammatik in Chomsky-Normalform. Man setzt dann k := V N und n := 2 k. Da jeder Knoten im Ableitungsbaum einen oder zwei Nachfolger hat (Chomsky-Normalform!), kann man dann zeigen, dass ein Nonterminal doppelt auftreten muss. Dies kann dann benutzt werden, um die Bedingungen zu zeigen. Interessierte finden den vollständigen Beweis im Skript. Behauptung L := {a n b n c n n N} ist nicht kontextfrei. Angenommen L wäre kontextfrei. Dann gilt das Pumping Lemma für kontextfreie Sprachen. Sei k die Zahl aus dem Pumping Lemma. Wir betrachten das Wort z = a k b k c k. Es gilt z L und z k. Sei nun z = uvwxy eine Zerlegung von z mit vwx k und vx 1. Es gilt nun 1 vx {a} + oder 2 vx {b} + oder 3 vx {c} + oder 4 vx {a} + {b} + oder 5 vx {b} + {c} + Frank Heitmann heitmann@informatik.uni-hamburg.de 39/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 40/44

Pumping Lemma - Beispiel Pumping Lemma - Anmerkung Behauptung L := {a n b n c n n N} ist nicht kontextfrei. Für die ersten drei Fälle führt uv 2 wx 2 y zum Widerspruch, da dann a n+j b n c n (bzw. a n b n+j c n usw.) nicht mehr in L ist. Für die letzten beiden Fälle gibt es noch zwei weitere Fallunterscheidungen: Enthält v oder x sowohl a als auch b (bzw. b als auch c), dann ist uv 2 wx 2 y nicht mehr in {a} {b} {c} und damit nicht in L. Ist bspw. v {a} + und x {b} +, so ist uv 2 wx 2 y dennoch ein Widerspruch, da die Anzahl der c nicht mit den a und bs übereinstimmt. Hinweis Anders als beim ersten Pumping Lemma gilt hier: das vwx wandert über das Wort es sind daher oft mehrere Fallunterscheidungen nötig oft so etwas wie in einem Block zu sein bzw. an der Grenze zweier Blöcke zu sein. Viele Fälle kann man aber analog behandeln! Und wie beim ersten Pumping Lemma gilt: Man darf auch das Wort uv 0 wx 0 y betrachten! Frank Heitmann heitmann@informatik.uni-hamburg.de 41/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 42/44 Ausblick Zusammenfassung Wir haben heute gesehen, dass Die Chomsky-NF ist beim Beweis des Pumping Lemmas hilfreich. Sie ist auch beim Algorithmus zur Lösung des Wortproblems für kontextfreie Sprachen wichtig. Darauf kommen wir später zu sprechen. Typ-3 Grammatiken und DFAs äquivalent sind Typ-2 Grammatiken und PDAs äquivalent sind Wir haben weiterhin von CF betrachtet hergestellt Inkl. dem Test ob λ L(G) gilt (Schritt 1) Inkl. dem Reduzieren von Grammatiken (Schritt 2) kennengelernt und damit gesehen, dass es Sprachen gibt, die nicht in CF sind Frank Heitmann heitmann@informatik.uni-hamburg.de 43/44 Frank Heitmann heitmann@informatik.uni-hamburg.de 44/44