Grundlagen der Theoretischen Informatik

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

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

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

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Die mathematische Seite

Grundlagen der Theoretischen Informatik

Kontextfreie Sprachen

Kontextfreie Sprachen

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

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

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

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

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

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

Grundlagen der Theoretischen Informatik

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

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

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

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

Grundlagen der Theoretischen Informatik

Rekursiv aufzählbare Sprachen

Musterlösung Informatik-III-Klausur

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

Grundlagen der Theoretischen Informatik

Universität des Saarlandes Theoretische Informatik (WS 2015) Lösungsvorschlag 4

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

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume

Zentralübung zur Vorlesung Theoretische Informatik

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

Grundlagen der Theoretischen Informatik

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

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

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

1.5 Turing-Berechenbarkeit

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Theoretische Grundlagen der Informatik

Kurz-Skript zur Theoretischen Informatik I

Typ-3-Sprachen. Das Pumping-Lemma

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

Einführung in die Theoretische Informatik

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

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

Formale Sprachen und Automaten: Tutorium Nr. 8

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

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

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 27. Juni HA-Lösung. TA-Lösung

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

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

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

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Automaten und formale Sprachen Klausurvorbereitung

Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik. SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch

Deterministischer Kellerautomat (DPDA)

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

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

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!"# v 1

Theorie der Informatik

8. Turingmaschinen und kontextsensitive Sprachen

Nachklausur zur Vorlesung Einführung in die Theoretische Informatik

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

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

Falls H die Eingabe verwirft, so wissen wir, dass M bei Eingabe w nicht hält. M hält im verwerfenden Haltezustand. Beweis:

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

5.2 Endliche Automaten

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14

Grenzen der Regularität

Theorie der Informatik

Tutoraufgabe 1 (ɛ-produktionen):

Automatentheorie und formale Sprachen rechtslineare Grammatiken

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

3 kontextfreie Sprachen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

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

DKA und dkfs (mit Übungen)

Formale Sprachen und Automaten

Die Nerode-Relation und der Index einer Sprache L

Tutorium 23 Grundbegriffe der Informatik (10. Sitzung)

Theoretische Informatik Testvorbereitung Moritz Resl

5.7 Kontextfreie Grammatiken und Kellerautomaten

Zusammenfassung Grundzüge der Informatik 4

Einführung in die Theoretische Informatik

2.2 Reguläre Sprachen Endliche Automaten

Beschreibungskomplexität von Grammatiken Definitionen

Motivation natürliche Sprachen

Übungsblatt Nr. 3. Lösungsvorschlag

Einführung in die Computerlinguistik

Transkript:

Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (IV) 31.05.2017 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1

Übersicht 1. Motivation 2. Terminologie 3. Endliche Automaten und reguläre Sprachen 4. Kellerautomaten und kontextfreie Sprachen 5. Turingmaschinen und rekursiv aufzählbare Sprachen 6. Berechenbarkeit, (Un-)Entscheidbarkeit 7. Komplexitätsklassen P und NP 2

Pumping-Lemma für kontextfreie Sprachen Theorem (Pumping-Lemma für kontextfreie Sprachen) Sei L kontextfrei. Dann existiert ein n N, so dass: Für alle z L mit z n existiert eine Zerlegung z = uvwxy u,v,w,x,y Σ mit vx 1 vwx < n uv m wx m y L für alle m N 3

Pumping-Lemma für kontextfreie Sprachen Anwendung des Pumping-Lemmas für cf-sprachen Wenn das cf-pumping-lemma für eine Sprache nicht gilt, dann kann sie nicht kontextfrei sein. Beispiel (Sprachen, die nicht kontextfrei sind) Für folgende Sprachen kann man mit Hilfe des cf-pumping-lemmas zeigen, dass sie nicht kontextfrei sind: {a p p prim} {a n b n c n n N} {zzz z {a,b} }. 4

Pumping-Lemma für kontextfreie Sprachen L 1 = {a p p prim} ist nicht kontextfrei. letzte Vorlesung 5

Pumping-Lemma für kontextfreie Sprachen L 2 = {a m b m c m m N} ist nicht kontextfrei Beweis: Wir nehmen an, L 2 sei kontextfrei. Sei dann n die zugehörige Konstante aus dem Pumping-Lemma. Wir betrachten das Wort z = a n b n c n. Es muss dann eine Zerlegung z = uvwxy geben, so dass: vx 1, vwx < n, uv i wx i y L 2 für alle i 0. Da vwx < n, enthält das Wort vwx höchstens zwei verschiedene Buchstaben. Da vx 1, kann uv 2 wx 2 y nicht von allen drei Buchstaben gleich viele enthalten. Also kann L 2 nicht kontextfrei sein. 6

Pumping-Lemma für kontextfreie Sprachen L 3 = {zzz z {a,b} } ist nicht kontextfrei. Beweis: Wir nehmen an, L 3 sei kontextfrei. Sei dann n die zugehörige Konstante aus dem Pumping-Lemma. Wir betrachten das Wort z = a n ba n ba n b. Es muss dann eine Zerlegung z = uvwxy geben, so dass: vx 1, vwx < n, uv i wx i y L 3 für alle i 0. Da vwx < n, enthält das Wort vwx höchstens ein b. Fall 1: vwx = a k. Dann wird durch aufpumpen von v,x eine a Sequenz länger als die anderen, so uv 2 wx 2 y L 3. Fall 2: vwx = a k ba m. Fall 2.1: b kommt nicht in v oder x vor. Dann sind in uv 2 wx 2 y zwei a Sequenzen länger als die dritte, so uv 2 wx 2 y L 3. Fall 2.2: b kommt in v oder x vor. Dann enthält uv 0 wx 0 y nur zwei b s, d.h. uv 0 wx 0 y L 3. Also kann L 3 nicht kontextfrei sein. 7

Pushdown-Automaten (PDAs) 8

Grammatiken vs. Automaten Erzeugende Grammatiken akzeptierende Automaten Erinnerung: Reguläre Sprachen werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten 9

Grammatiken vs. Automaten Erzeugende Grammatiken akzeptierende Automaten Erinnerung: Reguläre Sprachen werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten Jetzt: Kontextfreie Sprachen werden erzeugt von kontextfreien Grammatiken werden akzeptiert von Pushdown-Automaten 10

Idee des Push-Down-Automaten Beispiel Die prototypische cf-sprache {a n b n n N} Endliche Automaten reichen nicht aus. Sie können sich nicht merken, wie oft sie einen Zustand durchlaufen haben. Für a n b n muss man aber mitzählen. 11

Idee des Push-Down-Automaten Idee: Wie kann man diese Sprache akzeptieren? Weitere Informationen auf dem Stack sichern Später zurückholen Ähnlich einem Prozeduraufruf Grammatikregel wie S aab entspricht Aufruf einer Prozedur für das A. 12

Idee des Push-Down-Automaten Idee: Wie kann man diese Sprache akzeptieren? Weitere Informationen auf dem Stack sichern Später zurückholen Ähnlich einem Prozeduraufruf Grammatikregel wie S aab entspricht Aufruf einer Prozedur für das A. Stack, Stapel, Keller Last in, first out Zuletzt gespeicherte Information liegt immer obenauf Beliebig viel Information kann gespeichert werden (Aber kein beliebiger Zugriff!) 13

Push-Down-Automat Push-Down-Automat (PDA): Informell Wie endlicher Automat, aber zusätzlicher einen Stack Übergangsrelation bezieht das oberste Stacksymbol in den Übergang ein Bei Zustandsübergang: lesen und schreiben auf Stack 14

Push-Down-Automat Definition(Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel Dabei ist: M = (K,Σ,Γ,,s 0,Z 0,F) K Σ Γ s 0 K Z 0 Γ F K eine endliche Menge von Zuständen das Eingabealphabet das Stack- oder Kelleralphabet der Startzustand das Anfangssymbol im Keller eine Menge von finalen Zuständen die Zustandsübergangsrelation, eine endliche Relation: (K (Σ {ε}) Γ) (K Γ ) 15

Push-Down-Automat Arbeitsschritt eines PDA In Abhängigkeit vom aktuellen Zustand vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol geschieht folgendes nächstes Eingabezeichen wird gelesen oder nicht (bei ε), das oberste Kellersymbol wird entfernt, der Zustand wird geändert, es werden null oder mehr Zeichen auf den Keller geschoben Bei neuen Keller-Wort γ = A 1...A n wird A n zuerst auf den Keller geschoben usw., so dass am Schluss A 1 obenauf liegt. 16

Push-Down-Automat Notation a,b,c für Buchstaben aus Σ u,v,w für Wörter aus Σ A,B für Stacksymbole aus Γ γ,η für Stackinhalte aus Γ 17

Push-Down-Automat: Konfiguration Konfiguration eines PDA: Informell Konfiguration beschreibt die aktuelle Situation des PDA komplett Bestandteile: aktueller Zustand noch zu lesendes Restwort kompletter Stackinhalt Für Konfigurationen C 1,C 2 bedeutet C 1 C 2 dass der PDA in einem Schritt von C 1 nach C 2 gelangen kann. 18

Push-Down-Automat: Konfiguration Definition (Konfiguration eines PDA) Eine Konfiguration C eines PDA M = (K,Σ,Γ,,s 0,Z 0,F) ist ein Tripel q der aktuelle Zustand (q,w,γ) K Σ Γ. w der noch zu lesendes Restwort γ der komplette Stackinhalt 19

Push-Down-Automat: Konfiguration Definition (Konfiguration eines PDA) Eine Konfiguration C eines PDA M = (K,Σ,Γ,,s 0,Z 0,F) ist ein Tripel q der aktuelle Zustand (q,w,γ) K Σ Γ. w der noch zu lesendes Restwort γ der komplette Stackinhalt Definition (Startkonfiguration) Bei Eingabewort w ist die Startkonfiguration: (s 0,w,Z 0 ) 20

Push-Down-Automat: Konfiguration Definition (Nachfolgekonfiguration) C 2 heißt Nachfolgekonfiguration von C 1, falls C 1 C 2 E a Σ E A Γ E w Σ E γ,η Γ so dass entweder C 1 = (q 1,aw,Aγ), C 2 = (q 2,w,ηγ), und (q 1,a,A) (q 2,η), oder C 1 = (q 1,w,Aγ), C 2 = (q 2,w,ηγ), und (q 1,ε,A) (q 2,η), 21

Push-Down-Automat: Rechnung Definition (Rechnung eines PDA) Sei M ein Push-Down-Automat. C M C gdw es eine Reihe von Konfigurationen so dass C = C 0, C = C n, C i M C i+1 für alle 0 i < n C 0,C 1,...,C n (n 0) Dann heißt C 0,C 1,...,C n eine Rechnung von M 22

Push-Down-Automat: Akzeptierte Sprache Definition (von PDA akzeptierte Sprache) Ein PDA M kann auf zwei verschiedene Arten eine Sprache akzeptieren: über finale Zustände über leeren Keller L f (M) = {w Σ E q F E γ Γ ( (s 0,w,Z 0 ) M (q,ε,γ)) } L l (M) = {w Σ E q K ( (s 0,w,Z 0 ) M (q,ε,ε)) } 23

Push-Down-Automat: Akzeptierte Sprache Definition (von PDA akzeptierte Sprache) Ein PDA M kann auf zwei verschiedene Arten eine Sprache akzeptieren: über finale Zustände über leeren Keller L f (M) = {w Σ E q F E γ Γ ( (s 0,w,Z 0 ) M (q,ε,γ)) } L l (M) = {w Σ Bemerkung E q K ( (s 0,w,Z 0 ) M (q,ε,ε)) } Das zu akzeptierende Wort w muss von M ganz gelesen werden: ist gefordert. (s 0,w,Z 0 ) (q,ε, ) 24

Push-Down-Automat Bemerkung Das unterste Symbol im Keller kann gelöscht werden. Dann aber hängt der PDA Er kann nicht mehr weiter rechnen Es gibt keine Nachfolgekonfiguration 25

Push-Down-Automat: Beispiel Beispiel Sprache der Palindrome über {a, b}: L = {w {a,b} w = w R } L wird über leeren Keller akzeptiert von dem PDA mit... M := ({s 0,s 1 },{a,b},{z 0,A,B},,s 0,Z 0, ) 26

Push-Down-Automat: Beispiel Beispiel (Forts.) Idee: Ein Palindrom w = w R hat die Form für ein v {a,b} vv R oder vav R oder vbv R Der Automat M liest v und merkt sich jeden Buchstaben. Er rät indeterminiert die Wortmitte. Falls das Wort eine ungerade Anzahl von Buchstaben hat, also w = vav R oder w = vbv R, dann muss dabei ein Buchstabe überlesen werden. Der Stack enthält nun v R. M muss jetzt nur noch jeden weiteren gelesenen Buchstaben mit dem jeweils obersten Kellersymbol vergleichen. 27

Push-Down-Automat: Beispiel Beispiel (Forts.) (s 0,ε,Z 0 ) (s 1,ε) (s 0,a,Z 0 ) (s 0,A) (s 0,a,A) (s 0,AA) (s 0,a,B) (s 0,AB) (s 0,b,Z 0 ) (s 0,B) (s 0,b,A) (s 0,BA) (s 0,b,B) (s 0,BB) } ε akzeptieren Stack aufbauen 28

Push-Down-Automat: Beispiel Beispiel (Forts.) (s 0,ε,A) (s 1,ε) (s 0,ε,B) (s 1,ε) (s 0,a,A) (s 1,ε) (s 0,b,B) (s 1,ε) (s 1,a,A) (s 1,ε) (s 1,b,B) (s 1,ε) Richtungswechsel für Palindrome mit ungerader Buchstabenanzahl Richtungswechsel für Palindrome mit gerader Buchstabenanzahl Stack abbauen 29

Push-Down-Automat: Beispiel Beispiel (Forts.) Für das Eingabewort abbabba rechnet M so: (s 0,abbabba,Z 0 ) (s 0,bbabba,A) (s 0,babba,BA) (s 0,abba,BBA) (s 0,bba,ABBA) (s 1,bba,BBA) (s 1,ba,BA) (s 1,a,A) (s 1,ε,ε) 30