Algorithmen und Datenstrukturen (EI)

Ähnliche Dokumente
Algorithmen und Datenstrukturen (EI)

Informatik III - WS07/08

Theoretische Grundlagen der Informatik

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

Ogden s Lemma: Der Beweis (1/5)

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

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

Theoretische Grundlagen der Informatik

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

Zentralübung zur Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik (Info III)

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

Musterlösung Informatik-III-Nachklausur

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

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

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

Musterlösung Informatik-III-Klausur

10 Kellerautomaten. Kellerautomaten

Kontextfreie Sprachen

Theoretische Informatik

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

Kontextfreie Sprachen

Grundlagen der Theoretischen Informatik

Informatik 3 Theoretische Informatik WS 2015/16

Tutoraufgabe 1 (ɛ-produktionen):

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

Carlos Camino Einführung in die Theoretische Informatik SS 2015

Theoretische Grundlagen der Informatik

Ein Fragment von Pascal

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

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

Grundlagen der Theoretischen Informatik

Nachklausur zur Vorlesung

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

Kontextfreie Sprachen werden von PDAs akzeptiert

Beweis des Pumping Lemmas

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

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

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

Ogden s Lemma (T6.4.2)

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

Formale Sprachen und Automaten: Tutorium Nr. 8

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

DisMod-Repetitorium Tag 4

F2 Zusammenfassung Letzte Tips zur Klausur

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

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

Übersicht. 3 3 Kontextfreie Sprachen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Das Pumping Lemma: Ein Anwendungsbeispiel

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

Die mathematische Seite

Theoretische Grundlagen der Informatik

Lösungen zu Übungsblatt 6

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Akzeptierende Turing-Maschine

Theorie der Informatik

3.1 Kontextfreie Sprachen und Grammatiken 3.2 Ableitungsbäume 3.3 Die pre -Operation

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

Deterministischer Kellerautomat (DPDA)

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

Motivation natürliche Sprachen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Formale Grundlagen der Informatik

Automatentheorie und formale Sprachen rechtslineare Grammatiken

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

Das Pumping-Lemma Formulierung

Grundlagen der Informatik II

Grundlagen der Theoretischen Informatik

Einführung in die Theoretische Informatik

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

Einführung in die Computerlinguistik. Chomskyhierarchie. Dozentin: Wiebke Petersen Wiebke Petersen Einführung CL (SoSe 2010) 1

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

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

11. Übung Formale Grundlagen der Informatik

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016

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

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Konkatenation. Abschlusseigenschaften. Kleenescher Abschluss. Durchschnitt und Komplement

Formale Grundlagen der Informatik 1 Kapitel 7 Eigenschaften kontextfreier Sprachen

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

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

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

Grundlagen der Theoretischen Informatik, SoSe 2008

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

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

Theoretische Informatik I

Automaten und formale Sprachen. Lösungen zu den Übungsblättern

Formale Grundlagen der Wirtschaftsinformatik

Klausur zur Vorlesung Einführung in die Theoretische Informatik

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

Binärbäume und Pfade

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Grundlagen der Theoretischen Informatik

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

Transkript:

Algorithmen und Datenstrukturen (EI) Zentralübung Stefan Schmid 14. Januar 2009

Fitnesstraining... adsei = 5 ( Länge des Strings ) {a,d,s} = 3 ( Kardinalität der Menge ) {} = 0 (Leere Menge enthält keine Elemente!) ε = 0 (Leerer String hat Länge 0) Potenzmenge von {a,d,s} = 2 {a,d,s} = {{},{a},{d},{s},{a,d},{a,s},{d,s},{a,d,s}} 2^{} = {{}} = 1 (Menge bestehend aus leerer Menge) Ist {} {}? Ist {} {}? Nein, leere Menge nicht in leerer Menge! Ja. * = {ε} = 1 (Eine Menge, also Kardinalität...) Stefan Schmid @ TU München, 2009 2

Fitnesstraining... U i {1,3,6,7} x i = {x 1,x 3,x 6,x 7 } Ist Schnitt von regulärer und kontextfreier Sprache auch kontextfrei? Ja. Idee: Mache PDA der gleichzeitig die Uebergänge des endlichen Automaten mitverfolgt (siehe Konstruktion der Schnittmenge von regulären Sprachen). Akzeptiere nur wenn beide akzeptieren. Was ist mit der Vereinigung? Mit dem Linksquotienten? Mit...?? f(n) = f(n-1) + n, f(1) = 1. Was ist f(10)? f(10) = f(9) + 10 = f(8) + 9 + 10 = f(7) + 8 + 9 + 10 =... = 1 + 2 +... + 10 = (10*11)/2 = 55 Stefan Schmid @ TU München, 2009 3

Fitnesstraining... n 3 n 2 1 O(n 2 )? n 3 + n 2 1 O(n 3 )? Nein Ja http://en.wikipedia.org/wiki/big_o_notation Für jede kontextfreie Sprache gibt s einen deterministischen PDA? Für jede LL(k) Grammatik gibt s Ja äquivalente LR(k) Grammatik? Nein, deterministische Sprachen sind Subklasse Etc. etc. Gute Multiple-Choice Aufgaben! (vermutlich erste Prüfungsaufgabe...) Stefan Schmid @ TU München, 2009 4

Deterministisch vs Nichtdeterministisch Deterministisch: Aus gegebener Konfiguration folgt eindeutig nächste Konfiguration ( δ( ) 1) Nichtdeterministisch: Nicht deterministisch ( δ( ) > 1 zum Teil) a a b Nichtdeterministischer endlicher Automat a ε b Nichtdeterministischer endlicher Automat ε b Deterministischer endlicher Automat (mit ε-uebergang, aber immer weglassbar) Stefan Schmid @ TU München, 2009 5

Pumping Lemmas (1) Allgemein: Wir verwenden Pumping Lemmas häufig, um zu zeigen dass gewisse Sprachen nicht von einem gewissen Typ sind. Wir machen dazu einen Widerspruchsbeweis! Pumping Lemmas machen meistens eine Aussage der Art: Wenn die Sprache von einem Typ ist, gibt es für genug lange Worte eine Zerlegung uvwxy, sodass das gepumpte Wort (gewisse Teile wiederholen) auch in der Sprache ist. Stefan Schmid @ TU München, 2009 6

Pumping Lemmas (2) Um zu zeigen, dass eine Sprache nicht von einem Typ ist, müssen wir also zeigen dass es keine solche Zerlegung gibt. Wir müssen also für alle möglichen Zerlegungen zeigen, dass es nicht geht. ALSO: Wir müssen für ein gut gewähltes genug langes Wort ( z n), für alle möglichen Zerlegungen, zeigen, dass es für eine Art zu pumpen (für ein i) nicht geht. Stefan Schmid @ TU München, 2009 7

Pumping Lemma: Reguläre Sprachen Pumping Konstante (entspricht Anzahl Zuständen) Stefan Schmid @ TU München, 2009 8

Beispiel: n=2 Ein endlicher Automat mit zwei Zuständen: Spätestens nach 2 Zeichen Ist er wieder im gleichen Zustand wie schon mal! 0 0 1 1 Jedes Wort aus mind. zwei Zeichen ist pumpbar gemäss Pumping Lemma. Beispiel: 01 ist in der Sprache. Sei u=ε, v=0, w=1 (wähle v als Loop) Dann sind auch 1, 001, 0001, 00001, etc. in der Sprache! Stefan Schmid @ TU München, 2009 9

Pumping Lemma: Kontextfreie Sprachen Pumping Konstante (hat mit Anzahl Variablen in CFG zu tun) Stefan Schmid @ TU München, 2009 10

Pumping Lemma: Ogden Verallgemeinerung: mit Markierungen! Stefan Schmid @ TU München, 2009 11

Pumping Lemma: Zeigen dass etwas in der Sprache Stefan Schmid @ TU München, 2009 12

Tandem Pumping Lemma: Korrektur Betrachte a n b n c n Wo kann vwx sein? Kann nicht sowohl a s wie b s wie c s enthalten, da maximal n lange! Durch Pumpen wird dadurch aber die Anzahl der Buchstaben unterschiedlich. Also nicht mehr in Sprache. Widerspruch. Stefan Schmid @ TU München, 2009 13

Beispielzerlegung Sei n=3: aaabbbccc Wo kann vwx sein? Höchstens 3 lange! Beispiel hier: aaabbbccc u v w x y Gepumpt mit i=3? aaaaabbbbbccc nicht in L! Stefan Schmid @ TU München, 2009 14

Zusammenfassung für Prüfung... (Nur Tipp!) Selber machen & klein schreiben Was man nicht weiss, z.b. genaue Definitionen - Definitionen der Grammatiken (Typ 0, Typ 1, etc.) - Pumping Lemmas - Algorithmen (ev. auch in eigenen Worten zusätzlich), z.b. State Minimization - Normalformen der Logik - Ev. kleine Ideen-Sammlung : Wie beweist man dass eine Sprache nicht deterministisch-kontextfrei ist? Etc. Uebersichten / Mindmaps machen (ev. dann nicht mal nötig mitzunehmen) - Welche Maschinen sind deterministisch und nichtdeterministisch gleich stark? - Alles was ich zu XYZ weiss! Zum Beispiel reguläre Sprachen: NFA DFA, reguläre Ausdrücke, reguläre Grammatiken, abgeschlossen unter Vereinigung und Komplement und Schnitt, Algorithmen zur Umwandlung von regulär zu Grammatik zu NFA zu DFA (und zurück) Ziel: alles vom Prinzip her verstanden haben, Faktenwissen zur Sicherheit auf Zusammenfassung Stefan Schmid @ TU München, 2009 15

Prüfung! Stefan Schmid @ TU München, 2009 16

1. Sieht man einfach, wie Sprache ist? 2. Kennen wir einen direkten Algorithmus? 3. Falls nicht grad klar, Idee schreiben was ginge (wenn auch zu aufwendig)! Z.B.: Mache NFA draus, wandle ihn in DFA, daraus lässt sich direkt Grammatik machen => 3 Algorithmen, aufwendig, aber Lösungsweg trotzdem hinschreiben! Stefan Schmid @ TU München, 2009 17

Zusatzaufgaben Mehr Aufgaben (auch einfachere und Tutoraufgaben ) auch von Prof. Mayrs Vorlesung zur Theoretischen Informatik - ev. stellen wir da noch was zur Verfügung! Buchtipp Student? Stefan Schmid @ TU München, 2009 18

Widerspruchsbeweis mit Pumping Lemma! Betrachte Wort a n3 L, wobei n die Pumping Länge ist. Erfüllt Pumping Bedingungen, also muss auch z=uv 2 wx 2 y L sein, für eine Zerlegung Aus wievielen a s besteht z? z ist von der Form z = a n3 + vx, einmal gepumpt Weil aber 0 < vx n (siehe Lemma), ist n 3 < z =n 3 + vx < n 3 + n+1 < (n+1) 3 = n 3 + 3n 2 + 3n + 1 Also z nicht in L. Widerspruch. Stefan Schmid @ TU München, 2009 19

Idee: Kontextfreie Grammatik angeben! Aufwendig! Bessere Idee: Nutze Tatsache dass kontextfreie Sprachen abgeschlossen bezüglich Konkatenation und Vereinigung! Wir zeigen: L kann konstruiert werden aus drei kontextfreien Sprachen L 1, L 2, L 3 Beliebige Anzahl d s Weniger e s als f s Mehr e s als f s Stefan Schmid @ TU München, 2009 20

Wir zeigen: L kann konstruiert werden aus drei kontextfreien Sprachen L 1, L 2, L 3 Beliebige Anzahl d s Weniger e s als f s Mehr e s als f s Wieso sind diese 3 Sprachen kontextfrei? Am Schluss erzeuge ein oder mehr f zusätzlich... L 3 wie L 2... Also auch L kontextfrei! Stefan Schmid @ TU München, 2009 21

Form dieser Grammatik? Gute Form für CYK Algorithmus Ziel: In jedem Ableitungsschritt entsteht ein Terminalsymbol! Gut zum Umformen von Grammatik in NPDAs! Stefan Schmid @ TU München, 2009 22

Von Chomsky zu Greibach: Stefan Schmid @ TU München, 2009 23

Plan: Stefan Schmid @ TU München, 2009 24

A 1 => A 2 A 2 A 1 => a A 2 => A 1 A 1 A 2 => b Stefan Schmid @ TU München, 2009 25

A 1 => A 2 A 2 a A 2 => A 1 A 1 b A 1 => A 2 A 2 a A 2 => A 2 A 2 A 1 a A 1 b Stefan Schmid @ TU München, 2009 26

A 1 => A 2 A 2 a A 2 => A 2 A 2 A 1 a A 1 b A 2 => β 1 A 3 β 2 A 3 A 3 => α 1 α 1 A 3 Stefan Schmid @ TU München, 2009 27

Stefan Schmid @ TU München, 2009 28

Stefan Schmid @ TU München, 2009 29

Idee: für jedes a müssen später 4 b s kommen! (* = egal was auf Stack, Z_0 = Stackboden) q0 a,* AAAA* q1 a,* AAAA* b,a ε b,a ε q2 q3 ε,z 0 Z 0 Stefan Schmid @ TU München, 2009 30

Beispiel aabbbbbbbb L : Stack Z_0 Lese a : Stack AAAAZ_0 Lese a : Stack AAAAAAAAZ_0 Lese b : Stack AAAAAAAZ_0 Lese b : Stack AAAAAAZ_0 Lese b : Stack AAAAAZ_0 Lese b : Stack AAAAZ_0 Lese b : Stack AAAZ_0 Lese b : Stack AAZ_0 Lese b : Stack AZ_0 Lese b : Stack Z_0 => Fertig! Stefan Schmid @ TU München, 2009 31

Idee: für jedes a müssen später 4 b s kommen! Stefan Schmid @ TU München, 2009 32