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

Ähnliche Dokumente
Übersicht. 3 3 Kontextfreie Sprachen

10 Kellerautomaten. Kellerautomaten

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

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

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

Ogden s Lemma: Der Beweis (1/5)

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

Einführung in die Computerlinguistik

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

Automaten und formale Sprachen Notizen zu den Folien

kontextfreie Sprachen: Normalformen

Die mathematische Seite

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

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

Theoretische Grundlagen der Informatik

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

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

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

Grundlagen der Theoretischen Informatik

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

PDA, Übergangsfunktion

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

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

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

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

Grundlagen der Theoretischen Informatik

5.2 Endliche Automaten

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

Grundlagen der Theoretischen Informatik

Grundlagen der theoretischen Informatik

FORMALE SYSTEME. Der Satz von Myhill und Nerode. Automaten verkleinern mit Quotientenbildung. Verschiedene Äquivalenzrelationen

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

Kontextfreie Sprachen werden von PDAs akzeptiert

Spracherkennung (Syntaxanalyse)

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

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

Übungsaufgaben zu Formalen Sprachen und Automaten

(KFG und) Kellerautomaten

Berechenbarkeitstheorie 1. Vorlesung

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

Einführung in die Theoretische Informatik

Kontextfreie Sprachen

Kontextfreie Sprachen

Informatik III - WS07/08

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

Einführung in die Theoretische Informatik

DisMod-Repetitorium Tag 4

Formale Sprachen und endliche Automaten

Rekursiv aufzählbare Sprachen

Theorie der Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

5.7 Kontextfreie Grammatiken und Kellerautomaten

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

8. Turingmaschinen und kontextsensitive Sprachen

THIA - Übungsblatt 2.

Das Halteproblem für Turingmaschinen

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

Teil IV. Kontextfreie Sprachen, Teil 4: Kellerautomaten

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

11.1 Kontextsensitive und allgemeine Grammatiken

Kellerautomaten u. kontextfr. Spr.

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

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

Typ-0-Sprachen und Turingmaschinen

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

Einführung in die Theoretische Informatik

Theoretische Informatik II

1 Eliminieren von ɛ-übergängen

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

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

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

Formale Grundlagen der Informatik 1 Kapitel 5 Abschlusseigenschaften

Lösungen zu Übungsblatt 6

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

Automaten und formale Sprachen Klausurvorbereitung

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

Lexikalische Programmanalyse der Scanner

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

FORMALE SYSTEME. 20. Vorlesung: Typ 0 und Typ 1. TU Dresden, 4. Januar Markus Krötzsch Professur für Wissensbasierte Systeme

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}}

Automaten und Formale Sprachen 14. Vorlesung

DKA und dkfs (mit Übungen)

Automaten und Formale Sprachen SoSe 2013 in Trier

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

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Theoretische Grundlagen der Informatik

Formale Sprachen und Automaten

Automatentheorie und formale Sprachen

Grundlagen Theoretischer Informatik 2 WiSe 2009/10 in Trier. Henning Fernau Universität Trier

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

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

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

Grundlagen der Theoretischen Informatik

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

Nichtdeterministischer Kellerautomat

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

Transkript:

(Nicht)Abschlusseigenschaften für Typ 2 FORMALE SYSTEME 15. Vorlesung: Einleitung Kellerautomaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme Satz: Wenn L, L 1 und L 2 kontextfreie Sprachen sind, dann beschreiben auch die folgenden Ausdrücke kontextfreie Sprachen: (1) L 1 L 2 (Abschluss unter Vereinigung) (2) L 1 L 2 (Abschluss unter Konkatenation) (3) L (Abschluss unter Kleene-Stern) Aber: Satz: Es gibt kontextfreie Sprachen L, L 1 und L 2, so dass die folgenden Ausdrücke keine kontextfreien Sprachen sind: (1) L 1 L 2 (Nichtabschluss unter Schnitt) (2) L (Nichtabschluss unter Komplement) TU Dresden, 30. November 2017 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 3 von 28 Ein Berechnungsmodell für Typ-2-Sprachen Kellerautomaten Eine typische Problemsprache (kontextfrei aber nicht regulär): {a i b i i 0} Warum können endliche Automaten diese Sprache nicht erkennen? Weil sie die Zahl der gelesenen a nicht speichern können. Wir wollen endlichen Automaten mehr Speicher geben. Markus Krötzsch, 30. November 2017 Formale Systeme Folie 4 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 5 von 28

Pseudoalgorithmus {a i b i i 0} Endliche Automaten + Speicher function isaibi(): state = "reada" anum = 0 while hasnextsymbol(): symbol = getnextsymbol() if ( state == "reada" ): if ( symbol == a ): anum = anum + 1 else if ( symbol == b ): anum = anum - 1 state = "readb" else if ( state == "readb" ): if ( symbol == a ): return false else if ( symbol == b ): anum = anum - 1 return ( anum == 0 ) Speicherbedarf? Zustandsvariable state (1bit zwei mögliche Werte) Zähler anum (beliebig große Zahl!) Der Algorithmus benötigt eine unbeschränkte Menge an Speicher, je nach Eingabe kein endlicher Automat Das vorige Beispiel verwendet eine Zustandsvariable, fast wie ein endlicher Automat... Wir müssten endliche Automaten irgendwie durch einen unbegrenzt großen Speicher ergänzen. Aber welche Form soll dieser Speicher haben? Eingabewort a a a a b Endliche Steuerung q zusätzlicher Speicher Zustandsvariable Markus Krötzsch, 30. November 2017 Formale Systeme Folie 6 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 7 von 28 Welche Form hat der Speicher? Pseudoalgorithmus für markierte Palindrome Das vorige Beispiel verwendet eine beliebig große Zahl. Im Allgemeinen sind Zahlen aber nicht das sinnvollste Format für die Speicherung der Informationen, die beim Erkennen kontextfreier Sprachen anfallen Beispiel: Die folgende kontextfreie Grammatik erkennt Palindrome über Σ = {a, b}, deren Mitte mit c markiert ist: S asa bsb c Die Grammatik generiert zum Beispiel die Wörter abcba und abaabcbaaba. Diese Sprache ist ebenfalls nicht regulär (Übung). Wie würde man die Sprache aus diesem Beispiel erkennen? function ismarkedpalindrome(): state = "start" list = new Array() while hasnextsymbol(): symbol = getnextsymbol() if ( state == "start" ): if ( symbol == c ): state = "end" else: list.append(symbol) else if ( state == "end" ): if (!list.isempty() && symbol == list.lastentry() ): list.removelastentry() else: return false return ( list.isempty() ) Speicherformat? Liste von Symbolen Zugriffsmethoden: list.append(symbol) list.lastentry() list.removelastentry() list.isempty() Stack (Keller) Markus Krötzsch, 30. November 2017 Formale Systeme Folie 8 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 9 von 28

Keller sind Stapel Automaten mit Kellern Ein Stack (oder auch Keller oder auch Stapel) ist eine Datenstruktur, die ein Liste von Einträgen speichert. Wir denken uns die Liste vertikal, letzte Einträge oben (daher der Name). Wichtigste Zugriffsoperationen: push: ein Element wird oben auf dem Stapel abgelegt pop: das oberste Element wird vom Stapel entfernt und zurückgegeben (wenn der Stapel nicht leer ist) Keller sind demnach LIFO-Speicher (last-in/first-out). Idee: Verwende Keller als zusätzliche Speicher in endlichen Automaten Wie kann ein Automat einen Keller lesen oder schreiben? Zustandsänderungen bei endlichen Automaten: Abhängig von aktuellem Zustand Eingabesymbol Bestimme neuen Zustand Beispiel: Wenn in Zustand q 1 Symbol a gelesen wird, wechsle in Zustand q 2. Zustandsänderungen bei endlichen Automaten mit Keller: Abhängig von aktuellem Zustand Eingabesymbol oberstem Kellersymbol Bestimme neuen Zustand Schreibe auf Keller Beispiel: Wenn in Zustand q 1 Symbol a gelesen wird und Symbol C vom Keller gelesen wird, dann wechsle in Zustand q 2 und schreibe D auf den Keller. Markus Krötzsch, 30. November 2017 Formale Systeme Folie 10 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 11 von 28 Kellerautomaten definieren Übergangsfunktion von Kellerautomaten: Eingabe: Zustand + Eingabesymbol + Kellersymbol (pop) Ausgabe: Zustand + Kellersymbol (push) Weitere Designentscheidungen: Wir unterscheiden mögliche Eingabesymbole Σ von möglichen Kellersymbolen Γ (Gamma) Wir wollen erlauben: (1) dass der Automat manchmal kein Eingabesymbol liest (ɛ-übergänge) (2) dass der Automat manchmal kein Kellersymbol liest (3) dass der Automat manchmal nichts auf den Keller schreibt Wir wollen Kellerautomaten als nichtdeterministische Automaten definieren Übergangsfunktion liefert Menge von Möglichkeiten Kellerautomaten Zur Vereinfachung der folgenden Definition schreiben wir Σ ɛ für Σ {ɛ} (und analog für Γ ɛ ). Ein Kellerautomat (international: PDA / Pushdown Automaton ) M ist ein Tupel M = Q, Σ, Γ, δ, Q 0, F mit den folgenden Bestandteilen: Q: endliche Menge von Zuständen Σ: Eingabealphabet Γ: Kelleralphabet δ: Übergangsfunktion, eine totale Funktion Q Σ ɛ Γ ɛ 2 Q Γɛ, wobei 2 Q Γɛ die Potenzmenge von Q Γ ɛ ist Q 0 : Menge möglicher Startzustände Q 0 Q F: Menge von Endzuständen F Q Markus Krötzsch, 30. November 2017 Formale Systeme Folie 12 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 13 von 28

Kellerautomaten: Intuition (1) δ: Übergangsfunktion, eine totale Funktion Q Σ ɛ Γ ɛ 2 Q Γɛ. Beispiele: q 2, D δ(q 1, a, C) bedeutet: Wenn der PDA in Zustand q 1 das Symbol a einliest und C oben vom Keller nimmt (pop), dann kann er in Zustand q 2 wechseln und dabei D auf den Keller legen (push). q 2, ɛ δ(q 1, a, ɛ) bedeutet: Wenn der PDA in Zustand q 1 das Symbol a einliest, dann kann er in Zustand q 2 wechseln (Keller bleibt unverändert). q 2, D δ(q 1, ɛ, C) bedeutet: Wenn der PDA in Zustand q 1 das Symbol C oben vom Keller nimmt (pop), dann kann er in Zustand q 2 wechseln und dabei D auf den Keller legen (push), ohne ein Symbol zu lesen. Kellerautomaten: Intuition (2) δ: Übergangsfunktion, eine totale Funktion Q Σ ɛ Γ ɛ 2 Q Γɛ. Beispiele: q 2, D δ(q 1, ɛ, ɛ) bedeutet: Wenn der PDA in Zustand q 1 ist, dann kann er spontan in Zustand q 2 wechseln und dabei D auf den Keller legen (push), ohne dabei eine Eingabe oder den Keller zu lesen. δ(q 1, a, C) = bedeutet: Wenn der PDA in Zustand q 1 das Symbol a einliest und C oben vom Keller nimmt (pop), dann kann er nichts mehr tun (kein erfolgreicher Lauf).... und viele andere Varianten Markus Krötzsch, 30. November 2017 Formale Systeme Folie 14 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 15 von 28 Beispiel {a i b i i 0} Grafische Darstellung von PDAs Ein PDA für {a i b i i 0} könnte wie folgt aussehen: Σ = {a, b} Γ = {A, S} Q = {q s, q a, q b, q f } Q 0 = {q s } F = {q s, q f } Wir definieren δ wie folgt: δ(q s, ɛ, ɛ) = { q a, S } (markiere Kellerboden) δ(q a, a, ɛ) = { q a, A } (speichere a) δ(q a, b, A) = { q b, ɛ } (erstes b) δ(q b, b, A) = { q b, ɛ } (weitere b) δ(q b, ɛ, S) = { q f, ɛ } (mögliches Wortende) Dies sind alle Übergänge (alle anderen Fälle liefern ) Markus Krötzsch, 30. November 2017 Formale Systeme Folie 16 von 28 Wir können PDAs ähnlich zu NFAs darstellen, wenn wir die Änderungen des Kellerinhalts zusätzlich an die Übergänge schreiben. Beispiel des vorigen PDA für {a i b i i 0}: a, ɛ A b, A ɛ ɛ, ɛ S b, A ɛ ɛ, S ɛ q s q a q b q f Kodierungstrick: Wir implementieren hier die Funktion isemtpy indem wir den Kelleranfang mit einem speziellen Symbol S markieren, welches den (fast) leeren Keller signalisiert. Markus Krötzsch, 30. November 2017 Formale Systeme Folie 17 von 28

Beispiel: Palindrome ohne Markierung Konfigurationen eines PDA Wir betrachten die Sprache aller Palindrome über {a, b} mit gerader Wortlänge, d.h. die Sprache {ww r w {a, b} } wobei w r die rückwärts gelesene Version von w ist. Wir können diese mit folgendem PDA erkennen (Γ = {A, B, S}): a, ɛ A ɛ, ɛ S ɛ, ɛ ɛ ɛ, S ɛ q s q a q b q f b, ɛ B a, A ɛ b, B ɛ Anmerkung: Wir erraten hier die Wortmitte nichtdeterministisch. Wir können die Architektur von PDAs wie folgt veranschaulichen: Eingabewort a a a a b Endliche Steuerung q B B A A Keller Zustandsvariable Eine mögliche Konfiguration des PDA während der Erkennung ist gegeben durch den Zustand q Q, den Inhalt des Kellers γ Γ und das noch zu lesende Restwort w Σ. Markus Krötzsch, 30. November 2017 Formale Systeme Folie 18 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 19 von 28 Die Sprache eines PDA (formal) Beispiel Sei M = Q, Σ, Γ, δ, Q 0, F ein PDA. Eine Konfiguration von M ist ein Tripel q, w, γ Q Σ Γ. Wir definieren eine Übergangsrelation zwischen Konfigurationen wie folgt. Die Konfiguration q, vw, ψγ kann in die Konfiguration q, w, ψ γ übergehen, in Symbolen q, vw, ψγ q, w, ψ γ, falls gilt q, ψ δ(q, v, ψ). a Mit bezeichnen wir den reflexiven, transitiven Abschluss von. a Anmerkung: In diesem Fall ist v Σ ɛ und ψ, ψ Γ ɛ. Dies entspricht der intuitiven Idee von möglichen Übergängen. Der PDA M akzeptiert ein Wort w wenn es Übergänge q s, w, ɛ q f, ɛ, γ gibt für ein q s Q 0 und q f F. Die von M akzeptierte Sprache L(M) ist die Menge aller von M akzeptierten Wörter. Der Automat a, ɛ A a, A ɛ ɛ, ɛ S ɛ, ɛ ɛ ɛ, S ɛ q s q a q b q f b, ɛ B b, B ɛ erlaubt z.b. die folgenden Konfigurationsübergänge: q s, abba, ɛ q a, abba, S q a, bba, AS q a, ba, BAS q a, a, BBAS q a, ɛ, ABBAS (kein akzeptierender Lauf) q s, abba, ɛ q a, abba, S q a, bba, AS q a, ba, BAS q b, ba, BAS q b, a, AS q b, ɛ, S q f, ɛ, ɛ (akzeptierender Lauf) Markus Krötzsch, 30. November 2017 Formale Systeme Folie 20 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 21 von 28

PDA: Variationen Es gibt auch hier viele äquivalente Definitionen Ein Startzustand reicht auch aus (Übung: warum?) Alternative Akzeptanzbedingung: ersetze PDA ist in Endzustand durch PDA hat leeren Keller (keine Endzustände nötig, dafür manchmal aufwendigere Kodierung) Die Übergangsfunktion δ kann auch als Relation (Q Σ ɛ Γ ɛ ) (Q Γ ɛ ) beschrieben werden (wie bei NFAs) Das Startsymbol des Kellers kann Teil der Definition sein Man kann erlauben, dass in einem Schritt mehrere Symbole auf den Keller geschrieben werden. Dann kann man auch verlangen, dass in jedem Schritt ein Symbol entnommen wird (pop), da man es bei Bedarf zurücklegen kann Jede dieser Varianten führt zur gleichen Ausdrucksstärke Wörter pushen Wir können Übergänge der folgenden Form erlauben: q a σ, A B 1 B n Wenn in Zustand q a das Zeichen (oder leere Wort) σ gelesen wird und wenn A oben vom Keller geholt werden kann (pop), dann wechsle in Zustand q b und lege die Zeichen B 1 B n auf den Keller (wobei B 1 ganz oben zu liegen kommt). Dies kann mithilfe neuer Zustände kodiert werden: q a σ, A B n ɛ, ɛ B n-1 ɛ, ɛ B 2 ɛ, ɛ B 1 q 1 q n 1 q b q b Markus Krötzsch, 30. November 2017 Formale Systeme Folie 22 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 23 von 28 Ausdrucksstärke von PDAs Man kann nun formal untersuchen, welche Sprachen durch PDAs akzeptiert werden können. Wir erhalten das erhoffte Resultat: Satz: Eine Sprache ist genau dann kontextfrei wenn sie von einem PDA akzeptiert wird. Der Beweis erfolgt in zwei Schritten: (1) Umwandlung PDA Typ-2-Grammatik (2) Umwandlung Typ-2-Grammatik PDA Grammatik PDA Wir wollen zunächst eine Richtung zeigen: Satz: Für jede kontextfreie Grammatik G gibt es einen PDA P G, so dass L(G) = L(P G ). Beweisidee: Der PDA simuliert eine Ableitung in der Grammatik Der Keller speichert das Zwischenergebnis der Ableitung (Terminale und Nichtterminale), linke Zeichen zuoberst Der PDA arbeitet das Zwischenergebnis von links ab: Terminale werden mit Eingabe verglichen und entfernt Nichtterminale werden durch Grammatikregel ersetzt Die Ableitung gelingt, wenn die gesamte Eingabe gelesen werden konnte und der Keller leer ist Markus Krötzsch, 30. November 2017 Formale Systeme Folie 24 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 25 von 28

Grammatik PDA Wir wollen zunächst eine Richtung zeigen: Satz: Für jede kontextfreie Grammatik G gibt es einen PDA P G, so dass L(G) = L(P G ). Beweis: Sei G = V, Σ, P, S. Wir definieren einen erweiterten PDA: ɛ, A w für jede Regel A w a, a ɛ für jedes Symbol a Σ ɛ, ɛ S# ɛ, # ɛ q s q l q f Beispiel Die Grammatik S asa bsb ɛ ergibt den folgenden PDA: ɛ, S asa ɛ, S bsb ɛ, S ɛ a, a ɛ b, b ɛ ɛ, ɛ S# ɛ, # ɛ q s q l q f Wir verwenden dabei also: Q = {q s, q l, q f } Q 0 = {q s } F = {q f } Γ = Σ V {#} Durch Entfernen der Wort-push-Operationen wie zuvor gezeigt entsteht der gesuchte PDA P G. Mögliche Konfigurationsfolge (Wörter werden zur Vereinfachung in einem Schritt auf Stack geschrieben): q s, abba, ɛ q l, abba, S# q l, abba, asa# q l, bba, Sa# q l, bba, bsba# q l, ba, Sba# q l, ba, ba# q l, a, a# q l, ɛ, # q f, ɛ, ɛ (akzeptierender Lauf) Markus Krötzsch, 30. November 2017 Formale Systeme Folie 26 von 28 Markus Krötzsch, 30. November 2017 Formale Systeme Folie 27 von 28 Zusammenfassung und Ausblick Kellerautomaten (PDAs) erweitern endliche Automaten um einen unbeschränkt großen Speicher, der aber nur nach dem LIFO-Prinzip verwendet werden kann. PDAs erkennen genau die kontextfreien Sprachen. Kontextfreie Grammatiken können durch sehr einfache PDAs (nicht-deterministisch) implementiert werden. Offene Fragen: Wie geht der Beweis weiter? Wie ist es mit deterministischen Kellerautomaten? Welche Probleme auf kontextfreien Grammatiken kann man lösen? Was gibt es zu Typ 1 und Typ 0 zu sagen? Markus Krötzsch, 30. November 2017 Formale Systeme Folie 28 von 28