Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Ähnliche Dokumente
Theoretische Informatik Kap 2: Berechnungstheorie

Theorie der Informatik

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Formale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18

Kapitel 0: Grundbegriffe Gliederung

Die Nerode-Relation und der Index einer Sprache L

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

Grenzen der Regularität

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

Einführung in die Computerlinguistik Satz von Kleene

Automaten und Formale Sprachen ε-automaten und Minimierung

Kapitel 2: Formale Sprachen Gliederung

Das Pumping Lemma der regulären Sprachen

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19

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

Grundlagen der Theoretischen Informatik

Satz (Abschluß unter der Stern-Operation)

Das Pumping-Lemma Formulierung

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

Theoretische Informatik I

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

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

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Die mathematische Seite

Nachklausur zur Vorlesung

Einführung in die Computerlinguistik Satz von Kleene

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

WS07/08 Automaten und Formale Sprachen 5. Vorlesung

Einführung in die Theoretische Informatik

Normalformen für kontextfreie Grammatiken. Noam CHOMSKY, Sheila GREIBACH. Bäume. Ableitungen in kontextfreien Grammatiken. Grammatik G = (N,T,P,S)

Lösungsvorschläge Blatt 4

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

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

I.5. Kontextfreie Sprachen

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

Grundbegriffe der Informatik Tutorium 12

Reguläre Sprachen und endliche Automaten

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

Einführung in die Theoretische Informatik

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

Grundbegriffe der Informatik Tutorium 2

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

Beispiele für Wortverarbeitung durch NEA. Beispiele für NEA (1) Beispiele für NEA (2) Beispiele für NEA (3) 1.) 1 q 2. q 5. q 1 1 0,1,2. 0 q 2.

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

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Grundbegriffe der Informatik Tutorium 2

Theoretische Grundlagen der Informatik

Automatentheorie und formale Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen

Grundlagen der Theoretischen Informatik

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

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

Einführung in die Theoretische Informatik

Automaten und formale Sprachen Klausurvorbereitung

Theoretische Grundlagen der Informatik

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

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

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Formale Sprachen und endliche Automaten

Typ-3-Sprachen. Das Pumping-Lemma

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Software Engineering Ergänzung zur Vorlesung

Theoretische Grundlagen der Informatik

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

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

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

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

Kapitel 1: Endliche Automaten Gliederung 1. Endliche Automaten

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

Kurz-Skript zur Theoretischen Informatik I

Theoretische Grundlagen des Software Engineering

Automaten und Coinduktion

Induktive Definition

Grundlagen der theoretischen Informatik

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

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

Endliche Automaten. δ : Z Σ Z die Überführungsfunktion, z 0 Z der Startzustand und F Z die Menge der Endzustände (Finalzustände).

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

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

Kapitel 3: Berechnungstheorie Gliederung

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen

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

Diskrete Mathematik. Arne Dür Kurt Girstmair Simon Legner Georg Moser Harald Zankl

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

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

Beschreibungskomplexität von Grammatiken Definitionen

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Tutoraufgabe 1 (ɛ-produktionen):

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Zentralübung zur Vorlesung Theoretische Informatik

Transkript:

Gliederung der Vorlesung. Grundbegriffe. Formale Sprachen/Automatentheorie.. Grammatiken.2..3. Kontext-freie Sprachen 2. Berechnungstheorie 2.. Berechenbarkeitsmodelle 2.2. Die Churchsche These 2.3. Unentscheidbarkeit 3. Komplexitätstheorie 3.. Nicht-deterministische Turing Maschinen 3.2. Komplexitätsmaße 3.3. Das P=NP? Problem 8/ Fahrplan Aspekt : nützliche Eigenschaften regulärer Sprachen Vorteile der Beschreibungsmittel Aspekt 2: Grenzen der Beschreibungsmittel Welcherart formale Sprachen sind nicht regulär? Wie weit tragen die Beschreibungsmittel für reguläre Sprachen? 8/2

Aspekt : nützliche Eigenschaften regulärer Sprachen formale Sprachen, also auch reguläre Sprachen, sind Teilmengen der Menge aller Wörter über dem zugrunde liegenden Alphabet es gibt eine Reihe von Mengenoperationen: Durchschnitt, Vereinigung, Komplement, Differenz, Fakt Die Klasse aller regulärer Sprachen ist abgeschlossen bzgl. dieser (/* und weiterer */) Mengenoperationen. mit anderen Worten: Für alle Sprachen L,L 2 Σ* gilt: Wenn L und L 2 regulär sind, so sind auch L L 2, L L 2, co(l ) und L \L 2 regulär. 8/3 für einige Mengenoperationen ist offensichtlich, daß die Klasse der regulären Sprachen bzgl. der jeweiligen Operation abgeschlossen ist z.b.: Vereinigung, Komplement (?) für andere Mengenoperationen ist es nicht ganz so offensichtlich, daß die Klasse der regulären Sprachen z.b.: Durchschnitt, Differenz wir werden im folgenden die zugrunde liegenden Ideen zum Nachweis der Abgeschlossenheitseigenschaften beispielhaft diskutieren 8/4

Mengenoperation: Komplement (/* Nützlichkeit */) L = { w w {, }*, w enthält das Teilwort nicht } Fragestellung: Ist L eine reguläre Sprache? L = { w w {, }*, w enthält das Teilwort } offenbar ist L regulär offenbar gilt: L = co(l) Hinweis: co(l) = Σ* \ L aus der Abgeschlossenheit bzgl. der Mengenoperation Komplement folgt, daß auch L regulär ist 8/5 Mengenoperation: Komplement (/* Beweisidee */) es sei L eine reguläre Sprache dann gibt es einen DFA A mit L(A) = L Idee: benutze A um einen DFA A mit L(A ) = co(l) zu konstruieren da es einen DFA A mit L(A ) = co(l) gibt, ist auch co(l) regulär Hinweis: es ist wichtig, daß unsere DFAs vollständig sind 8/6

Mengenoperation: Komplement (/* Beispiel */) L = { w w {, }*, w enthält das Teilwort } z z z 2, co(l) = { w w {, }*, w enthält nicht das Teilwort } z z z 2, 8/7 Mengenoperation: Durchschnitt (/* Nützlichkeit */) L = { w w {, }*, w enthält die Teilwörter und } Fragestellung: Ist L eine reguläre Sprache? L = { w w {, }*, w enthält das Teilwort } L 2 = { w w {, }*, w enthält das Teilwort } offenbar sind L und L 2 regulär offenbar gilt: L = L L 2 aus der Abgeschlossenheit bzgl. der Mengenoperation Durchschnitt folgt, daß auch L regulär ist 8/8

Mengenoperation: Durchschnitt (/* Beweisidee */) es seien L und L 2 reguläre Sprachen dann gibt es einen DFA A mit L(A ) = L dann gibt es einen DFA A 2 mit L(A 2 ) = L 2 Idee: benutze A und A 2, um einen DFA A mit L(A) = L L 2 zu konstruieren da es einen DFA A mit L(A) = L L 2 gibt, ist auch L regulär 8/9 Mengenoperation: Durchschnitt (/* Beispiel */) L = { w w {, }*, w enthält das Teilwort }, a a a 2 L 2 = { w w {, }*, w enthält das Teilwort }, b b b 2 8/

Mengenoperation: Durchschnitt (/* Beispiel */) L = L L 2 = { w w {, }*, w enthält die Teilwörter und } <a,b > <a,b > <a,b > <a,b 2 > <a 2,b > <a 2,b 2 >, 8/ Mengenoperation: Differenz (/* Nützlichkeit */) L = { w w {, }*, w hört mit einer auf, w enthält nicht das Teilwort } Fragestellung: Ist L eine reguläre Sprache? L = { w w {, }*, w hört mit einer auf } L 2 = { w w {, }*, w enthält das Teilwort } offenbar sind L und L 2 regulär offenbar gilt: L = L \L 2 aus der Abgeschlossenheit bzgl. der Mengenoperation Differenz folgt, daß auch L regulär ist 8/2

Mengenoperation: Differenz (/* Beweisidee */) L L 2 Σ* L \L 2 = L co(l 2 ) es seien L und L 2 reguläre Sprachen dann ist co(l 2 ) eine reguläre Sprache also ist auch L co(l 2 ) eine reguläre Sprache Hinweis: wir benutzen die Eigenschaften der Mengenoperationen 8/3 Mengenoperation: Differenz (/* Beweisidee */) es seien L und L 2 reguläre Sprachen dann gibt es einen DFA A mit L(A ) = L dann gibt es einen DFA A 2 mit L(A 2 ) = L 2 Idee: () benutze A 2, um einen DFA A 3 mit L(A 3 ) = co(l 2 ) zu konstruieren (2) benutze A und A 3, um einen DFA A mit L(A) = L co(l 2 ) (/* = L \L 2 */) zu konstruieren 8/4

Aspekt 2: Grenzen der Beschreibungsmittel jede endliche Sprache ist regulär es gibt unendliche Sprachen, die regulär sind es gibt unendliche Sprachen, die nicht regulär sind Beispiele: L = { n n n > } L = { w w {, }*, # (w) = # (w) } Hinweis: # (w) und # (w) bezeichnen, wie oft eine bzw. eine in w vorkommt 8/5 um die Frage zu beantworten, was allen reguläre Sprachen gemein ist, muß man sich die zur Verfügung stehenden Beschreibungsmittel für reguläre Sprachen genauer ansehen die jeweils betrachteten Beschreibungsmittel haben Einfluß auf die Antworten und den Weg diese zu finden wählen deterministische endliche Automaten 8/6

, L(A) ist eine unendliche Sprache, da z, z z 2 z 3 es sei s L(A) mit s 4 dann muß der mit s markierte Weg durch den DFA A mindestens einen Knoten zweimal durchlaufen 8/7 Wege z z z z 2 z 3 z z z 2 z z 2 z 3 akzeptierte Wörter,, z,, z z 2 z 3 markierter Weg: z z z 2 z z 2 z 3 da der Zustand z zweimal auftaucht, führen auch folgende Wege in den Endzustand: z z z 2 z z 2 z z 2 z 3, z z z 2 z z 2 z z 2 z z 2 z 3 k, z z z 2 z z 2 z z 2 z z 2 z z 2 z 3, 8/8

Wege z z z z 2 z 3 z z z 2 z z 2 z 3 akzeptierte Wörter,, z,, z z 2 z 3 markierter Weg: z z z z 2 z 3 da der Zustand z zweimal auftaucht, führen auch die wie Wege in den Endzustand: z z z z z 2 z 3, z z z z z z 2 z 3, z z z z z z z 2 z 3, 8/9 Wege akzeptierte Wörter z, z z z 2 z 3, z z z 2 z z 2 z 3, z z z 2 z z 2 z z 2 z 3, z z z 2 z z 2 z z 2 z z 2 z 3 k, z z z 2 z z 2 z z 2 z z 2 z z 2 z 3,, z z 2 z 3 Konsequenz: L = { u v i w i, u =, v =, w = } L(A) L 2 = { u v i w i, u =, v =, w = } L(A) 8/2

Wege akzeptierte Wörter z z z 2 z 3, z z z z 2 z 3, z z z z z 2 z 3, z z z z z z 2 z 3, z z z z z z z 2 z 3, z,, z z 2 z 3 Konsequenz: L 3 = { u v i w i, u =, v =, w = } L(A) L 4 = { u v i w i, u =, v =, w = } L(A) 8/2 Zwischenfazit es sei A ein DFA mit n Zuständen es sei L(A) eine unendliche Sprache es sei s ein Wort aus L(A) mit s n dann gibt es Wörter u, v und w, so daß gilt: s = u v w v u + v n u v k w L(A) für alle k Hinweis : v bezeichnet die Länge von v; bezeichnet die Operation Verkettung 8/22

allgemein Was haben alle unendlichen regulären Sprachen L gemeinsam? es gibt einen DFA A = [Z,Σ,δ,z,E] mit L(A) = L es gibt ein n > mit card(z) = n 8/23 Pumping-Lemma für reguläre Sprachen Es sei L Σ* eine unendliche Sprache. Wenn L regulär ist, so gibt es eine Zahl n, so daß für alle Wörter s L mit s n, gilt: es gibt Wörter u, v und w aus Σ*, so daß gilt: (i) s = u v w (ii) v (iii) u + v n (iv) u v k w L für alle k 8/24

Was kann man mit dem Pumping-Lemma anfangen? es sei L Σ* eine unendliche Sprache wenn L regulär ist, so gelten die Aussagen des Pumping- Lemma für L wenn die Aussagen des Pumping-Lemma für L nicht gelten, so ist L nicht regulär das Pumping-Lemma kann demzufolge benutzt werden, um nachzuweisen, daß eine Sprache L nicht regulär ist Hinweis: A B ist logisch äquivalent zu B A 8/25 es sei L Σ* eine unendliche Sprache wenn L regulär ist, so gibt es ein n, so daß für alle s L mit s n die im Pumping-Lemma formulierten Eigenschaften gelten wenn es kein n gibt, so daß für alle s L mit s n die im Pumping-Lemma formulierten Eigenschaften gelten, so ist L nicht regulär 8/26

es sei L Σ* eine unendliche Sprache wenn es kein n gibt, so daß für alle s L mit s n die im Pumping-Lemma formulierten Eigenschaften gelten, so ist L nicht regulär [ n: ( s L mit s n: E(s) ) ] abstrakt: n: ( s L mit s n: E(s) ) ] n: ( s L mit s n: E(s) ) ] 8/27 es sei L Σ* eine unendliche Sprache wenn es kein n gibt, so daß für alle s L mit s n die im Pumping-Lemma formulierten Eigenschaften gelten, so ist L nicht regulär wenn es zu jedem n ein s L mit s n gibt, so daß für s die im Pumping- Lemma formulierten Eigenschaften nicht gelten, so ist L nicht regulär 8/28

es sei L Σ* eine unendliche Sprache wenn es kein n gibt, so daß für alle s L mit s n die im Pumping-Lemma formulierten Eigenschaften gelten, so ist L nicht regulär wenn es zu jedem n ein s L mit s n gibt, so daß für s die Eigenschaften (i), (ii), (iii) und (iv) nicht gleichzeitig erfüllt sind so ist L nicht regulär 8/29 Beispiel L = { a z b z z > } n 2 3 4 Kandidaten für s ab, aabb, aaabbb, aaaabbbb, ab, aabb, aaabbb, aaaabbbb, ab, aabb, aaabbb, aaaabbbb, aabb, aaabbb, aaaabbbb, aabb, aaabbb, aaaabbbb, geeignete Auswahl treffen zu n wählen wir hier das Wort s n = a n b n 8/3

Beispiel L = { a z b z z > } (/* n = 2, s n = aabb */) nachweisen, daß alle u, v und w aus Σ* nicht gleichzeitig (i), (ii), (iii) und (iv) erfüllen können aber es gibt unendlich viele u, v und w in Σ* aber es gibt nur endlich viele u, v, w in Σ*, die gleichzeitig (i), (ii) und (iii) erfüllen für die endlich vielen u, v und w aus Σ*, die gleichzeitig (i), (ii) und (iii) erfüllen, zeigen wir, daß sie (iv) nicht erfüllen Hinweis: (A B) ist logisch äquivalent zu A B 8/3 Beispiel L = { a z b z z > } (/* n = 2, s n = aabb */) Idee: für die endlich vielen u, v und w aus Σ*, die gleichzeitig (i), (ii) und (iii) erfüllen, zeigen wir, daß sie nicht (iv) erfüllen Beobachtung: u, v und w aus Σ* erfüllen (iv) nicht, falls gilt: es gibt ein k, so daß gilt: u v k w L (i) s n = u v w (ii) v (iii) u + v n 8/32 (iv) u v k w L für alle k

Beispiel L = { a z b z z > } (/* n = 2, s n = aabb */) wenn u, v, w aus Σ* gleichzeitig (i), (ii) und (iii) erfüllen, liegt einer der folgenden Fälle vor Fall : v = a (/* also u = a und w = bb bzw. u = ε und w = abb */) für k = 2 gilt: u v k w = aaabb L Fall 2: v = aa (/* also u = ε und w = bb */) für k = 2 gilt: u v k w = aaaabb L (i) s n = u v w (ii) v (iii) u + v n 8/33 (iv) u v k w L für alle k Beispiel L = { a z b z z > } (/* allgemein */) für jedes n > sei s n = a n b n es sei n beliebig, aber fest wenn u, v und w aus Σ* gleichzeitig (i), (ii) und (iii) erfüllen, so muß gelten: v = a r für ein r mit < r n (/* also u = und w = */) also gilt für k = 2: u v k w = a n+r b n L also ist L nicht regulär!!! (i) s n = u v w (ii) v (iii) u + v n 8/34 (iv) u v k w L für alle k

es sei L Σ* eine unendliche Sprache um nachzuweisen, daß L nicht regulär ist, gehe wie folgt vor: Schritt : wähle zu jedem n > ein s n L mit s n n (/* geschickt */) Schritt 2: zeige, daß zu jedem s n und für alle u, v und w aus Σ* mit s n = u v w, v und u + v n ein k existiert, so daß gilt: u v k w L 8/35 Beispiel L = { w w w { a,b }* } für jedes n > sei s n = a n b a n b es sei n > beliebig, aber fest wenn u, v und w aus Σ* gleichzeitig (i), (ii) und (iii) erfüllen, so muß gelten: v = a r für ein r mit < r n (/* also u = und w = */) also gilt für k = 2: u v k w = a n+r b a n b L also ist L nicht regulär!!! 8/36

Begriffe: Chomsky-Grammatik, Ableitbarkeit reguläre Grammatik DFA, NFA Sätze / Zusammenhänge: reguläre Grammatiken, DFA und NFA sind äquivalente Beschreibungsmittel für reguläre Sprachen Pumping-Lemma Methoden / Techniken / Algorithmen: Übersetzung (/* reguläre Grammatiken NFA DFA */) Minimierungsalgorithmus Anwendung des Pumping-Lemma 8/37