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

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

Theoretische Grundlagen der Informatik

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

10 Kellerautomaten. Kellerautomaten

Kellerautomaten u. kontextfr. Spr.

Informatik III - WS07/08

Ogden s Lemma: Der Beweis (1/5)

Übersicht. 3 3 Kontextfreie Sprachen

Teil IV. Kontextfreie Sprachen, Teil 4: Kellerautomaten

Theoretische Grundlagen der Informatik

Einführung in die Computerlinguistik

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

Kontextfreie Sprachen werden von PDAs akzeptiert

Grundlagen der Theoretischen Informatik

Einführung in die Theoretische Informatik

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

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

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

Theoretische Informatik I

5.2 Endliche Automaten

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

Automaten und formale Sprachen Notizen zu den Folien

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

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

Theoretische Informatik 2

Kontextfreie Sprachen

Kontextfreie Sprachen

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

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

Die mathematische Seite

Akzeptierende Turing-Maschine

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

Rekursiv aufzählbare Sprachen

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

Deterministischer Kellerautomat (DPDA)

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

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

Informatik 3 Theoretische Informatik WS 2015/16

Theoretische Informatik II

8. Turingmaschinen und kontextsensitive Sprachen

2.6 Abschlußeigenschaften

Automaten und Formale Sprachen 14. Vorlesung

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

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Theorie der Informatik

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

Formale Grundlagen der Wirtschaftsinformatik

kontextfreie Sprachen: Normalformen

Theoretische Grundlagen der Informatik

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Formale Sprachen und Automaten: Tutorium Nr. 8

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

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

Einführung in die Theoretische Informatik

Grundlagen der Theoretischen Informatik

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

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

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Grundlagen der Theoretischen Informatik

Das Halteproblem für Turingmaschinen

2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht

F2 Zusammenfassung Letzte Tips zur Klausur

DisMod-Repetitorium Tag 4

5.7 Kontextfreie Grammatiken und Kellerautomaten

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

Automaten und formale Sprachen Klausurvorbereitung

Kapitel 3. Kontextfreie Sprachen. Induktive Charakterisierung der Sprache L der korrekten Klammerausdrücke: (w) L, falls w L vw L, falls v, w L

(KFG und) Kellerautomaten

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

Grundlagen der Theoretischen Informatik

Übungsaufgaben zu Formalen Sprachen und Automaten

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

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

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 19.

Algorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p];

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

11.1 Kontextsensitive und allgemeine Grammatiken

Nichtdeterministischer Kellerautomat

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Typ-0-Sprachen und Turingmaschinen

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

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Einführung in die Theoretische Informatik

Informatik 3 Theoretische Informatik WS 2016/17

PDA, Übergangsfunktion

Grundlagen der Theoretischen Informatik

Wie man eine Sprache versteht

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

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Grundlagen der Theoretischen Informatik

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen

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

Musterlösung Informatik-III-Nachklausur

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik

Transkript:

4.7 Kellerautomaten In der Literatur findet man häufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch. Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus: Q Σ q 0 Q Z 0 δ F Q endliche Zustandsmenge endliches Eingabealphabet endliches Stackalphabet Anfangszustand Initialisierung des Stack Übergangsrelation Fkt. Q (Σ {ɛ}) 2 Q wobei δ(q, a, Z) + δ(q, ɛ, Z) < akzeptierende Zustände q, a, Z Info IV 4.7 Kellerautomaten 133/164

Der Kellerautomat $ E I N G A B E $ Q rot grun Keller Info IV 4.7 Kellerautomaten 134/164

Konfiguration: Tupel (q, w, α) mit q Q w Σ α Schritt: (q, w 0 w, Zα ) (q, w, Z 1... Z r α ) wenn (q, Z 1... Z r ) δ(q, w 0, Z) bzw.: (q, w, Zα ) (q, w, Z 1... Z r α ) wenn (q, Z 1... Z r ) δ(q, ɛ, Z) Info IV 4.7 Kellerautomaten 135/164

Definition 79 1 Ein NPDA A akzeptiert w Σ durch leeren Stack, falls (q 0, w, Z 0 ) (q, ɛ, ɛ) für ein q Q. 2 Ein NPDA A akzeptiert w Σ durch akzeptierenden Zustand, falls (q 0, w, Z 0 ) (q, ɛ, α) für ein q F, α. 3 Ein NPDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Info IV 4.7 Kellerautomaten 136/164

Beispiel 80 Der PDA mit δ(q 0, a, ) = {(q 0, a )} für a {0, 1}, {0, 1, Z 0 } δ(q 0, #, ) = {(q 1, )} für {0, 1, Z 0 } δ(q 1, 0, 0) = {(q 1, ɛ )} δ(q 1, 1, 1) = {(q 1, ɛ )} δ(q 1, ɛ, Z 0 ) = {(q 1, ɛ )} akzeptiert mit leerem Stack die Sprache L = {w#w R ; w {0, 1} }. Info IV 137/164

Beispiel 80 Der PDA mit δ(q 0, a, ) = {(q 0, a )} für a {0, 1}, {0, 1, Z 0 } δ(q 0, #, ) = {(q 1, )} für {0, 1, Z 0 } δ(q 1, 0, 0) = {(q 1, ɛ )} δ(q 1, 1, 1) = {(q 1, ɛ )} δ(q 1, ɛ, Z 0 ) = {(q a, ɛ )} akzeptiert mit akzeptierendem Zustand (F = {q a }) (und leerem Stack) die Sprache L = {w#w R ; w {0, 1} }. Info IV 4.7 Kellerautomaten 137/164

Satz 81 Sei A 1 = (Q, Σ,, q 0, Z 0, δ, F ) ein NPDA, der mit Endzustand akzeptiert. Dann kann in linearer Zeit ein NPDA A 2 = (Q, Σ,, q 0, Z 0, δ ) konstruiert werden, der L(A 1 ) mit leerem Stack akzeptiert. Info IV 4.7 Kellerautomaten 138/164

Beweis: A 2 simuliert A 1. Sobald A 1 in einen akzeptierenden Endzustand gerät, rät A 2, ob die Eingabe zu Ende gelesen ist. Falls A 2 dies meint, wird der Keller geleert. Um zu verhindern, dass bei der Simulation von A 1 der Keller leer wird, ohne dass A 1 akzeptiert, führen wir ein neues Kellersymbol Z 0 ein: Q = Q { q, q 0 } = {Z 0 } und wir erweitern δ zu δ gemäß δ (q 0, ɛ, Z 0 ) = {(q 0, Z 0 Z 0 )} δ (q, ɛ, Z) = {( q, ɛ)} für q F, Z δ ( q, ɛ, Z) = {( q, ɛ)} für Z Info IV 4.7 Kellerautomaten 139/164

Bemerkung: Akzeptieren mit leerem Keller bedeutet, dass der NPDA akzeptiert, falls der Keller leer ist und die Eingabe gelesen ist. Info IV 140/164

Bemerkung: Akzeptieren mit leerem Keller bedeutet, dass der NPDA akzeptiert, falls der Keller leer ist und die Eingabe gelesen ist, bzw. dass, falls der Keller leer ist, der NPDA die bisher gelesene Eingabe akzeptiert. Info IV 4.7 Kellerautomaten 140/164

Satz 82 Sei A 1 = (Q, Σ,, q 0, Z 0, δ) ein NPDA, der mit leerem Keller akzeptiert. Dann kann in linearer Zeit ein NPDA A 2 = (Q, Σ,, q 0, Z 0, δ, F ) konstruiert werden, welcher L(A 1 ) mit akzeptierendem Endzustand akzeptiert. Info IV 4.7 Kellerautomaten 141/164

Beweis: A 2 simuliert A 1. Am Anfang steht ein neues Kellersymbol auf dem Stack. Sobald bei der Simulation von A 1 dieses auf dem Stack vorgefunden wird, weiß man, dass A 1 seinen Stack leergeräumt hat und folglich akzeptiert. Folglich geht A 2 in einen akzeptierenden Endzustand und hält: Q = Q {q 0, q f } = {Z 0 } F = {q f } δ (q 0, ɛ, Z 0 ) = {(q 0, Z 0 Z 0 )} δ (q, a, Z) = δ(q, a, Z) für q Q, a Σ {ɛ}, Z δ (q, ɛ, Z 0 ) = {(q f, Z 0 )} für q Q Info IV 4.7 Kellerautomaten 142/164

4.8 Kellerautomaten und kontextfreie Sprachen Satz 83 Sei G eine CFG in Greibach-Normalform. Dann kann in linearer Zeit ein NPDA A konstruiert werden (welcher mit leerem Stack akzeptiert), so dass L(A) = L(G). Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 143/164

Beweis: Sei o.b.d.a. ɛ L(G). Der Automat startet mit S auf dem Stack. Er sieht sich in jedem Schritt das oberste Stacksymbol A an und überprüft, ob es in G eine Produktion gibt, deren linke Seite A ist und deren rechte Seite mit dem Terminal beginnt, welches unter dem Lesekopf steht. Sei also G = (V, T, P, S). Konstruiere NPDA A = (Q, Σ,, q 0, Z 0, δ) mit Q := {q 0 } := V Σ := T Z 0 := S δ(q 0, a, A) (q 0, α) für (A aα) P. Info IV 144/164

Beweis (Forts.): Zu zeigen ist nun: L(A) = L(G). Hilfsbehauptung: S G w 1... w i A 1... A m mit w j T, A j V per Linksableitung (q 0, w 1... w i, Z 0 ) A (q 0, ɛ, A 1... A m ) Der Beweis erfolgt durch Induktion über die Anzahl der Schritte in der Linksableitung. Info IV 144/164

Beweis (Forts.): Induktionsanfang (i = 0): S G S (q 0, ɛ, Z 0 ) A (q 0, ɛ, Z 0 ) Info IV 144/164

Beweis (Forts.): Induktionsschritt ((i 1) i): S G w 1... w i A 1... A m S G w 1... w i 1 A A v... A m v {1,..., m + 1} G w 1... w i A 1... A m (also (A w i A 1... A v 1 ) P ) gemäß Induktionsvoraussetzung (q 0, w 1... w i 1, Z 0 ) A (q 0, ɛ, A A v... A m ) (q 0, w 1... w i 1 w i, Z 0 ) A (q 0, w i, A A v... A m ) A (q 0, ɛ, A 1... A m ) da (A w i A 1... A v 1 ) P ) (q 0, w 1... w i, Z 0 ) A (q 0, ɛ, A 1... A m ) Info IV 144/164

Beweis (Forts.): Aus der Hilfsbehauptung folgt L(A) = L(G). Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 144/164

Satz 84 Sei A = (Q, Σ,, q 0, Z 0, δ) ein NPDA, der mit leerem Keller akzeptiert. Dann ist L(A) kontextfrei. Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 145/164

Beweis: Wir definieren: G = (V, T, P, S) T := Σ V := Q Q {S} P S [q 0, Z 0, q] für q Q wobei wir die Tupel mit [,, ] notieren P [q, Z, q m ] a[p, Z 1, q 1 ][q 1, Z 2, q 2 ] [q m 1, Z m, q m ] für δ(q, a, Z) (p, Z 1 Z m ), q 1,..., q m Q, mit a Σ {ɛ}. Idee: Aus [p, X, q] sollen sich alle die Wörter ableiten lassen, die der NPDA A lesen kann, wenn er im Zustand p mit (lediglich) X auf dem Stack startet und im Zustand q mit leerem Stack endet. Info IV 146/164

Beweis (Forts.): Hilfsbehauptung: [p, X, q] G w (p, w, X) A (q, ɛ, ɛ). : Induktion über die Länge l der Ableitung. Induktionsanfang (l = 1): [p, X, q] G w δ(p, w, X) (q, ɛ) (p, w, X) A (q, ɛ, ɛ) Info IV 146/164

Beweis (Forts.): Induktionsschritt ((l 1) l): Gelte [p, X, q m+1 ] G a[q 1, X 1, q 2 ][q 2, X 2, q 3 ] [q m, X m, q m+1 ] G aw (1) w (m) = w mit (q 1, X 1 X m ) δ(p, a, X), [q i, X i, q i+1 ] l i G w (i) und li < l. Dann gilt gemäß Induktionsvoraussetzung (q i, w (i), X i ) l i A (q i+1, ɛ, ɛ) i {1,..., m} (q, } aw (1) {{ w (m) }, X) A (q 1, w (1) w (m), X 1 X m ) =w <l A (q m+1, ɛ, ɛ). Info IV 146/164

Beweis (Forts.): : Induktion über die Länge l einer Rechnung des NPDAs A Induktionsanfang (l = 1): (p, w, X) A (q, ɛ, ɛ) (q, ɛ) δ(p, w, X) (also w 1) ([p, X, q] w) P. Info IV 146/164

Beweis (Forts.): Induktionsschritt ((l 1) l): Sei (p, w, X) A (q 1, w, X 1 X m ) A (q, ɛ, ɛ) eine Rechnung von A der Länge l, mit w = ew und e Σ {ɛ}. Nach Definition gibt es ([p, X, q] e[q 1 X 1 q 2 ] [q m X m q m+1 ]) P mit q m+1 = q und eine Zerlegung w = w (1) w (m), so dass w (1) w (i) der von A zu dem Zeitpunkt verarbeitete Teilstring von w ist, wenn X i+1 zum ersten Mal oberstes Stacksymbol (bzw., für i = m, der Stack leer) wird. Info IV 146/164

Beweis (Forts.): Gemäß Induktionsvoraussetzung gilt also (q i, w (i), X i ) l i A (q i+1, ɛ, ɛ) mit l i < l und [q i, X i, q i+1 ] G w (i). Also folgt: [p, X, q] G e[q 1, X 1, q 2 ] [q m, X m, q m+1 ] <l G ew(1) w (m) = w mit q m+1 = q Aus der Hilfsbehauptung folgt der Satz. Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 146/164

Satz 85 Folgende Aussagen sind äquivalent: L wird von einer kontextfreien Grammatik erzeugt. L wird von einem NPDA akzeptiert. Beweis: Folgt aus den vorhergehenden Sätzen. Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 147/164

Bemerkung Für die Praxis (z.b. Syntaxanalyse von Programmen) sind polynomiale Algorithmen wie CYK noch zu langsam. Für Teilklassen von CFLs sind schnellere Algorithmen bekannt, z.b. Jay Earley: An Efficient Context-free Parsing Algorithm. Communications of the ACM, 13(2):94 102, 1970 Info IV 4.8 Kellerautomaten und kontextfreie Sprachen 148/164

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert, erkannte Sprache genügt der Fano-Bedingung, d.h. kein Wort in der Sprache ist echtes Präfix eines anderen Wortes in der Sprache. Festlegung: Da wir an einem weniger eingeschränkten Maschinenmodell interessiert sind, legen wir fest, dass ein DPDA stets mit akzeptierenden Zuständen akzeptiert. Info IV 4.9 Deterministische Kellerautomaten 149/164

Definition 86 Ein DPDA ist in Normalform, falls gilt: 1 (q, α) = δ(q, e, X) für e Σ {ɛ}, q, q Q, X α {ɛ, X, Y X} für Y. 2 Der Automat liest jede Eingabe vollständig. Satz 87 Zu jedem DPDA A = (Q, Σ,, q 0, Z 0, δ, F ) kann ein äquivalenter DPDA A = (Q, Σ,, q 0, Z 0, δ, F ) in Normalform konstruiert werden. Info IV 4.9 Deterministische Kellerautomaten 150/164

Beweis: Erste Schritte der Konstruktion: 1 Werden von A in einem Schritt mehr als zwei Symbole auf dem Stack abgelegt, wird dies von A durch eine Folge von Schritten mit je 2 Stacksymbolen ersetzt. 2 Werden zwei oder ein Stacksymbol abgelegt und dabei das oberste Stacksymbol X geändert, entfernen wir zunächst in einem eigenen Schritt das oberste Stacksymbol und pushen dann die gewünschten Symbole. (Das Merken erfolgt in der Zustandsmenge Q.) 3 Wir vervollständigen δ mittels eines Fangzustandes. Es könnte hier noch sein, dass der DPDA eine Schleife aus lauter ɛ-übergängen ausführt. Info IV 151/164

Beweis (Forts.): Hilfsbehauptung: Der DPDA A führt ab einer bestimmten Konfiguration (q, ɛ, β) unendlich viele direkt aufeinander folgende ɛ-übergänge genau dann aus, wenn (q, ɛ, β) (q, ɛ, Xβ ) und (q, ɛ, X) + (q, ɛ, Xα) für q, q Q X, α, β, β : klar Info IV 151/164

Beweis (Forts.): : Betrachte eine unendlich lange Folge von ɛ-übergängen. Sei n := Q + β + 1. Wird die Stackhöhe n nie erreicht, so muss sich sogar eine Konfiguration des DPDA s wiederholen. Daraus folgt die Behauptung. Info IV 151/164

Beweis (Forts.): Ansonsten wird jede Stackhöhe β,..., n mindestens einmal erreicht (wegen der Normalform ist die Höhendifferenz pro Schritt { 1, 0, 1}). Betrachte den Zeitpunkt t, in dem die Stackhöhe zum erstenmal n ist. Markiere für jedes i { β,..., n} den Zeitpunkt t i, wo zum letzen Mal (vor Zeitpunkt t) die Stackhöhe = i ist. Zu diesen Zeitpunkten t i betrachte die Paare (q, X) Q, wobei q der Zustand des DPDA s und X das oberste Kellersymbol des DPDA s zu diesem Zeitpunkt ist. Da es mehr als Q markierte Paare gibt, taucht ein markiertes Paar (q, X) doppelt auf. Für dieses gilt dann (q, ɛ, X) + (q, ɛ, Xα). Info IV 151/164

Beweis (Forts.): Stack t Zeit Info IV 151/164

Beweis (Forts.): Das gleiche Argument gilt, falls sich die Stackhöhe um > Q erhöht. Damit lassen sich alle Paare (q, X) finden, für die gilt: (q, ɛ, X) + (q, ɛ, Xα), α. Da der DPDA nicht endlos weiterlaufen soll, ersetzen wir δ(q, ɛ, X) durch einen ɛ-übergang in einen neuen Zustand q (der genau dann akzeptierend ist, wenn in der Schleife (q, ɛ, X) + (q, ɛ, Xα) ein akzeptierender Zustand auftritt) und einen ɛ-übergang von q in den nichtakzeptierenden Fangzustand. Info IV 4.9 Deterministische Kellerautomaten 151/164

Satz 88 Die Klasse der deterministischen kontextfreien Sprachen (also der von DPDA s erkannten Sprachen) [DCFL] ist unter Komplement abgeschlossen. Beweis: Folgt aus der obigen Konstruktion! Info IV 4.9 Deterministische Kellerautomaten 152/164