Kellerautomaten u. kontextfr. Spr.

Ähnliche Dokumente
Theoretische Grundlagen der Informatik

Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:

Informatik III - WS07/08

Grundlagen der Theoretischen Informatik

10 Kellerautomaten. Kellerautomaten

Übersicht. 3 3 Kontextfreie Sprachen

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

ADS-EI 5.2 Struktur einer Turing-Maschine 120/451 ľernst W. Mayr

Ogden s Lemma: Der Beweis (1/5)

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

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

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

Kontextfreie Sprachen werden von PDAs akzeptiert

Automaten und Formale Sprachen 14. Vorlesung

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Erzeugende Grammatiken akzeptierende Automaten.

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

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

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

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

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

Grundlagen der Theoretischen Informatik

Deterministische PDAs

Das Halteproblem für Turingmaschinen

Zusammenfassung. Endliche Sprachen. Fazit zu endlichen Automaten. Teil 4: Grammatiken und Syntaxanalyse

Theoretische Informatik I

Einführung in die Computerlinguistik

{a i b i i 0} FORMALE SYSTEME. Kellerautomaten. (Nicht)Abschlusseigenschaften für Typ 2. Ein Berechnungsmodell für Typ-2-Sprachen

Automaten und formale Sprachen Klausurvorbereitung

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

Kontextfreie Sprachen

5.2 Endliche Automaten

Kontextfreie Sprachen

Akzeptierende Turing-Maschine

WS07/08 Automaten und Formale Sprachen 14. Vorlesung

Teil IV. Kontextfreie Sprachen, Teil 4: Kellerautomaten

DisMod-Repetitorium Tag 4

8. Turingmaschinen und kontextsensitive Sprachen

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

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

(z', B 1...B k ) δ(z,a,a):

Nichtdeterministischer Kellerautomat

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Äquivalenzrelation R A zu DFA A. Rechtsinvarianz. Relation R L zur Sprache L

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Grundlagen der Informatik II

Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)

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

Rekursiv aufzählbare Sprachen

H MPKP. Beispiel für eine Rechnung. Reduktion H MPKP. Überführungsregeln

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

Einführung in die Theoretische Informatik

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

2. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

Theorie der Informatik

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

Spracherkennung (Syntaxanalyse)

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

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Formale Grundlagen der Wirtschaftsinformatik

Informatik 3 Theoretische Informatik WS 2016/17

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

Theoretische Grundlagen der Informatik

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

Teil 4: Grammatiken und Syntaxanalyse. (Kapitel T5-T7)

Grundlagen der Theoretischen Informatik

Automatentheorie und formale Sprachen

2.4 Kontextsensitive und Typ 0-Sprachen

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

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Theoretische Informatik 2

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

kontextfreie Sprachen: Normalformen

11.1 Kontextsensitive und allgemeine Grammatiken

Klammersprache Definiere

Seien M 1,M 2 NFAs f. die Sprachen L 1 und L 2. Konstruktion eines NFAs für L 1 L 2 : Erzeuge Kopien von M 1 und M 2. p 1

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Deterministischer Kellerautomat (DPDA)

Typ-1-Sprachen. Satz 1 (Kuroda ( ) 1964)

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

F2 Zusammenfassung Letzte Tips zur Klausur

Musterlösung Informatik-III-Nachklausur

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

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

Grundlagen der Theoretischen Informatik

Formale Sprachen und Automaten

Theoretische Informatik II

Theoretische Grundlagen der Informatik

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

Theoretische Grundlagen der Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017

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

Grundlagen der Theoretischen Informatik

Transkript:

Kellerautomaten u. kontextfr. Spr. Ziel: Maschinenmodell für die kontextfreien Sprachen. Überblick Greibach-Normalform für kontextfreie Grammatiken Kellerautomaten Beziehung zwischen Kellerautomaten und kontextfreien Sprachen 558

Greibach-Normalform Definition T 7.1.1: Eine kontextfreie Grammatik ist in Greibach-Normalform, wenn alle Regeln von der Form A bα mit A V, b T, α V* sind. Beispiele: A abcde, A ab, A a Anmerkung: Erzeugung des leeren Worts nicht möglich (wie auch bei der Chomsky- Normalform) 559

Umformung in Greibach-NF Satz T7.1.2: Sei G eine kontextfreie Grammatik, so dass ε L(G). Es gibt einen Algorithmus, der eine kontextfreie Grammatik G in Greibach-Normalform mit L(G )=L(G) konstruiert. 560

Bemerkungen: Grammatiken können bei der Umformung in Greibach-Normalform viel größer werden. Linksableitungen haben bei Grammatiken in Greibach-Normalform eine besondere Form: In jedem Schritt wird ein Buchstabe abgeleitet und die Buchstaben werden von links nach rechts abgeleitet. 561

Beispiel für eine Ableitung Grammatik in Greibach-Normalform: S asa, S bsb, S aa, S bb A a, B b. Akzeptierte Sprache: L={ww R w {a,b} + }. S asa absba abaaba abaaba abaaba abaaba 562

Arbeitsw. des zug. Maschinenmodells S asa absba abaaba abaaba abaaba abaaba Eingabeband: a b a a b a Speicher: S asa, S bsb, S aa, S bb A a, B b 563

Maschinenmodell ergibt sich auf natürliche Weise als nichtdeterministisches Modell Name: NPDA nondeterministic pushdown automaton bzw. nichtdeterministischer Kellerautomat Ungewöhnlicher Akzeptanzmodus: Es muss gleichzeitig das Wortende erreicht werden und der Stack leer sein. Hilfreich: ε-übergänge. 564

NPDAs werden beschrieben durch Q endliche Zustandsmenge Σ endliches Eingabealphabet Γ endliches Stackalphabet q 0 Q Startzustand Z 0 Γ Initialisierung des Stacks δ: (Q (Σ {ε}) Γ) P(Q Γ*) Übergangsfkt. alter Zustand gelesenes Zeichen gelesenes Kellersymbol neuer Zustand geschriebene Kellersymbole 565

Konfigurationen von NPDAs bestehen aus Zustand q, dem noch zu lesenden Rest w der Eingabe und dem Stackinhalt Z. Schreibweise: (q,w,z). (q,w,z) (q,w,z ), falls der Konfig.übergang in einem Schritt möglich ist. (q,w,z) * (q,w,z ), falls der Konfig.übergang in endlich vielen Schritten möglich ist. 566

Akzeptanzmodi Variante 1 leerer Stack: Es wird akzeptiert, wenn nach dem Lesen der Eingabe der Stack leer ist. Formaler: Das Wort w wird akzeptiert, wenn es einen zulässigen Rechenweg mit (q 0,w,Z 0 ) * (q,ε,ε) gibt. 567

Variante 2 akzeptierende Zustände: Es gibt zusätzlich eine Menge F Q und es wird akzeptiert, wenn nach dem Lesen der Eingabe ein Zustand aus F erreicht werden kann. Formaler: Das Wort w wird akzeptiert, wenn es einen zulässigen Rechenweg mit (q 0,w,Z 0 ) * (q,ε,γ) und q F gibt. Nach dem Erreichen von q F darf noch in einen nichtakzeptierenden Zustand gewechselt werden und es wird trotzdem akzeptiert. 568

Beispiel: L={ww R w {a,b} + }. Q={q 0 }, Σ={a,b}, Γ={S,A,B}, Z 0 =S, δ(q 0,a,S)={(q 0,SA),(q 0,A)} δ(q 0,b,S)={(q 0,SB),(q 0,B)}, δ(q 0,a,A)={(q 0,ε)}, δ(q 0,b,B)={(q 0,ε)} ergibt sich direkt aus der kontextfreien Grammatik in Greibach-Normalform. ist nichtdeterministisch. ein Zustand reicht. S asa, S bsb, S aa, S bb, A a, B b 569

Beispiel: L={w#w R w {a,b}*}. Q={q 0,q 1 }, Σ={a,b,#}, Γ={S,A,B}, Z 0 =S, δ(q 0,a,S)=(q 0,SA), δ(q 0,b,S)=(q 0,SB), δ(q 0,#,S)=(q 1,ε), δ(q 1,a,A)=(q 1,ε), δ(q 1,b,B)=(q 1,ε) ergibt sich auch direkt aus der kontextfreien Grammatik in Greibach-Normalform. ist deterministisch. Naheliegende Vermutung: für L={ww R w {a,b} + } gibt es keinen DPDA. S asa, S bsb, S #, A a, B b 570

DPDAs Wir nennen einen NPDA deterministisch, wenn q Q, a Σ, Z Γ: δ(q,a,z) + δ(q,ε,z) 1. Bedeutung: Der Automat hat keine Wahlmöglichkeiten. Name: DPDA (deterministic pushdown automaton) 571

Fragen zu Kellerautomaten Zeige, dass die beiden Akzeptanzmodi für NPDAs äquivalent sind [T7.2]. Zeige, dass NPDAs genau die kontextfreien Sprachen akzeptieren [T7.3]. Benutze DPDAs, um Algorithmen für das Parsing zu entwerfen. 572

Akz. Zustände leerer Stack Satz T7.2.3: Sei A ein NPDA, der L mit Hilfe der Menge F von akzeptierenden Zuständen erkennt. Dann kann in lin. Zeit ein NPDA B für L konstruiert werden, der mit leerem Stack akzeptiert. Probleme: Stack von A kann leer werden, ohne dass akzeptiert wird neues unterstes Symbol Am Ende der Rechnung von A ist der Stack nicht leer Zustand, um d. Stack zu leeren. 573

Formalisierung Sei A=(Q A,Σ,Γ A,q A,Z A,δ A,F ). Erzeuge B: Q B = Q A {q B,q E } Γ B =Γ A {Z B } Startzustand von B Zustand, um Stack zu leeren Initialisierung des Stacks für B δ B : Übergangsrelation für B Erzeugt Stackinhalt Z A Z B am Anfang, entspricht während der Rechnung δ A, leert den Stack, wenn Zustand aus F erreicht wird. 574

Angabe von δ B δ B (q B,ε,Z B )={(q A,Z A Z B )} erzeugt Stackinhalt Z A Z B am Anfang δ B (q,a,z) δ A (q,a,z) für alle q Q A, a Σ {ε}, Z Γ A. δ B (q,ε,z) {(q E,ε)} für alle q F, Z Γ B δ B (q E,ε,Z)={(q E,ε)} für alle Z Γ B entspricht während der Rechnung δ A Entleeren des Stacks, falls Zustand aus F erreicht. 575

Leerer Stack akzept. Zustände Satz T7.2.3: Sei A ein NPDA (DPDA), der L mit leerem Stack akzeptiert. Dann kann in linearer Zeit ein NPDA (DPDA) B konstruiert werden, der L mit akzeptierenden Zuständen erkennt. Idee: Lege zu Beginn Symbol Z B unten auf den Stack. Wenn in A Stack leer, wird nun Z B gelesen PDA kann in akzept. Zustand gehen. 576

Formalisierung Sei A=(Q A,Σ,Γ A,q A,Z A,δ A ). Erzeuge B: Q B = Q A {q B,q F } Γ B =Γ A {Z B } F={q F } δ B : Übergangsrelation für B Startzustand von B akzeptierender Zustand Initialisierung des Stacks für B 577

Angabe von δ B δ B (q B,ε,Z B )={(q A,Z A Z B )} erzeugt Stackinhalt Z A Z B am Anfang δ B (q,a,z)=δ A (q,a,z) für alle q Q A, a Σ {ε}, Z Γ A. entspricht während der Rechnung δ A δ B (q,ε,z B )={(q F,ε)} für alle q Q A Bei Stackinhalt Z B in q F gehen Beobachtung: B ist deterministisch, falls A deterministisch ist. 578

Kontextfreie Grammatik NPDA Satz T7.3.1: Sei G eine kontextfreie Grammatik für L in Greibach-Normalform. Dann kann in linearer Zeit ein NPDA A konstruiert werden, der L mit leerem Stack akzeptiert. 579

Kontextfreie Grammatik NPDA Sei G=(V,Σ,P,S) in Greibach-Normalform. Konstruiere NPDA (Akz. mit leerem Stack): Q={q 0 }, q 0 : Startzustand, Γ=V (Variablenmenge) Z 0 =S (Startsymbol) δ(q 0,a,A)={(q 0,α) (A aα) P} Zwischenbehauptung: i S w 1 w i A 1 A m Der NPDA kann beim Lesen von w 1 w i den Stackinhalt A 1 A m erzeugen. 580

Korrektheit Induktion über i. i=0. Trivial i S w 1 w i A 1 A m Der NPDA kann beim Lesen von w 1 w i den Stackinhalt A 1 A m erzeugen. 581

i 1 S w 1 w i A 1 A m S w 1 w i 1 A A r A m w 1 w i A 1 A m NPDA kann beim Lesen von w 1 w i 1 den Stackinhalt A A r A m erzeugen und es gibt die Regel A w i A 1 A r 1. NPDA kann beim Lesen von w 1 w i den Stackinhalt A 1 A m erzeugen. I.V. i i 1 i S w 1 w i A 1 A m Der NPDA kann beim Lesen von w 1 w i den Stackinhalt A 1 A m erzeugen. 582

Also gilt: n S w 1 w n Der NPDA kann beim Lesen von w 1 w n den Stackinhalt ε erzeugen. Es gibt eine akzeptierende Rechnung des NPDAs auf w 1 w n. i S w 1 w i A 1 A m Der NPDA kann beim Lesen von w 1 w i den Stackinhalt A 1 A m erzeugen. 583

NPDA kontextfreie Grammatik Satz T7.3.2: Jede von einem NPDA akzept. Sprache ist kontextfrei. Beweis: O.B.d.A. sei ein NPDA A für L gegeben, der mit leerem Stack akzeptiert. Angabe der Grammatik: Startsymbol S, V = {S} { [q,x,p] p,q Q, X Γ}, T = Σ. Tripelkonstruktion [q,x,p] w * NPDA kann Zustand p mit leerem Stack nach Lesen von w erreichen, wenn er im Zustand q mit Stackinhalt X gestartet wird. 584

Ableitungsregeln S [q 0,Z 0,q] für alle q Q. Falls (q 1,Y 1 Y m ) δ(q,a,x) mit m>0: Erzeuge für alle q 2,,q m+1 Q die Regeln [q,x,q m+1 ] a[q 1,Y 1,q 2 ][q 2,Y 2,q 3 ] [q m,y m,q m+1 ]. Falls (q 1,ε) δ(q,a,x): Erzeuge Regel [q,x,q 1 ] a. a=ε möglich [q,x,p] w * NPDA kann Zustand p mit leerem Stack nach Lesen von w erreichen, wenn er im Zustand q mit Stackinhalt X gestartet wird. 585

Bsp. L={w#w R w {a,b}*} δ(q 0,a,Z)=(q 0,ZA) δ(q 0,b,Z)=(q 0,ZB) δ(q 0,#,Z)=(q 1,ε) δ(q 1,a,A)=(q 1,ε) δ(q 1,b,B)=(q 1,ε) S [q 0,Z,q 0 ], S [q 0,Z,q 1 ] [q 0,Z,q 0 ] a[q 0,Z,q 0 ][q 0,A,q 0 ] [q 0,Z,q 0 ] a[q 0,Z,q 1 ][q 1,A,q 0 ] [q 0,Z,q 1 ] a[q 0,Z,q 0 ][q 0,A,q 1 ] [q 0,Z,q 1 ] a[q 0,Z,q 1 ][q 1,A,q 1 ] [q 0,Z,q 0 ] b[q 0,Z,q 0 ][q 0,B,q 0 ] [q 0,Z,q 0 ] b[q 0,Z,q 1 ][q 1,B,q 0 ] [q 0,Z,q 1 ] b[q 0,Z,q 0 ][q 0,B,q 1 ] [q 0,Z,q 1 ] b[q 0,Z,q 1 ][q 1,B,q 1 ] [q 0,Z,q 1 ] # [q 1,A,q 1 ] a [q 1,B,q 1 ] b 586

Korrektheit Zwischenbehauptung: p,q Q, X Γ, w Σ*: [q,x,p] * w (q,w,x) * (p,ε,ε) [q,x,q m+1 ] a[q 1,Y 1,q 2 ][q 2,Y 2,q 3 ] [q m,y m,q m+1 ] für alle q 2,,q m+1 Q, falls δ(q,a,x) (q 1,Y 1 Y m ). 587

Schritt 2: Zw.Beh Gram. erz. L w L p Q: (q 0,w,Z 0 ) * (p,ε,ε) p Q: [q 0,Z 0,p] * w p Q: S [q 0,Z 0,p] * w w L(G) p,q Q, X Γ, w Σ*: * [q,x,p] w (q,w,x) (p,ε,ε) * 588

Schritt 1a: Bew. der Zw.beh. Induktion über Länge k der Ableitung [q,x,p] w. k=1. Dann gibt es die Regel [q,x,p] w. (p,ε) δ(q,w,x) und w 1. (q,w,x) (p,ε,ε). k p,q Q, X Γ, w Σ*: * [q,x,p] w (q,w,x) (p,ε,ε) * 589

Induktionsschritt k>1. Erster Ableitungsschritt (mit q m+1 =p): [q,x,p] a[q 1,Y 1,q 2 ][q 2,Y 2,q 3 ] [q m,y m,q m+1 ] k 1 a w 1 w 2 w m = w Also gilt nach I.V.: (q j,w j,y j ) * (q j+1,ε,ε) und (q j,w j,y j Y j+1 Y m ) * (q j+1,ε,y j+1 Y m ) p,q Q, X Γ, w Σ*: * [q,x,p] w (q,w,x) (p,ε,ε) * 590

(q j,w j,y j Y j+1 Y m ) (q j+1,ε,y j+1 Y m ) Also: * * * * * 591

Schritt 1b: Bew. der Zw.beh. Induktion über die Länge k der Rechnung (q,w,x) * (p,ε,ε) des NPDAs. k=1. Dann w 1 und (p,ε) δ(q,w,x). Es gibt Regel [q,x,p] w in G. p,q Q, X Γ, w Σ*: * * [q,x,p] w (q,w,x) (p,ε,ε) 592

Induktionsschritt Sei k>1 und (q,w,x) (p,ε,ε). Zerlege w in aw mit ε, falls erster Rechenschritt ε-bewegung, a = erster Buchstabe von w, sonst. Ersten Rechenschritt aufschreiben: k-1 (q,aw,x) (q 1,w,Y 1 Y m ) (p,ε,ε). k Zerlege w in w 1 w m, so dass nach Lesen von w 1,w j erstmals Stackinhalt Y j+1 Y m. Erreichter Zustand: q j+1. Dann k-1 (q j,w j w m,y j Y m ) (q j+1,w j+1 w m,y j+1 Y m ) 593

k-1 (q j,w j w m,y j Y m ) (q j+1,w j+1 w m,y j+1 Y m ), wobei Y j+1 nicht gelesen wird. Dann gilt auch k-1 (q j,w j,y j ) (q j+1,ε,ε). I.V. impliziert: [q j,y j,q j+1 ] * w j. Insgesamt: [q,x,p] a[q 1,Y 1,q 2 ][q 2,Y 2,q 3 ] [q m,y m,q m+1 ] * aw 1 w m =w. 594

Gesamtergebnis Satz T7.3.3: Die Menge der von NPDAs erkannten Sprachen ist gleich der Menge der kontextfreien Sprachen. Folgerung aus den Beweisen: NPDAs kommen mit einem Zustand aus (da der Beweis von Satz T7.3.1 mit einem Zustand auskommt). 595