Inhaltsverzeichnis 1 TI – Einführung Theoretische Informatik 2 Grundlagen Prof. Dr. Jürgen Cleve 3 Automatentheorie Hochschule Wismar 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 10. Juli 2016 1 TI – Einführung Theoretische Informatik 10. Juli 2016 Infos Inhaltsverzeichnis Folien, Übungen etc. in Stud.IP Modul TI in ILIAS, viele Zusatzinfos (Videos, Tests) Lehrveranstaltungen 2 V + 2 Ü Prüfung Klausur 120 min Literatur Skript, dort auch weitere Literatur 1 TI – Einführung Theoretische Informatik 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 1 TI – Einführung Theoretische Informatik Folie 1-1 (6) 10. Juli 2016 Inhaltsverzeichnis – Kapitel 1 1 TI – Einführung The sum of the intelligence on the planet remains a constant; the population, however, continues to grow. Mr. Cole’s Axiom TI – Einführung Einordnung von TI Inhalte von TI TI – Motivation 1 TI – Einführung Theoretische Informatik 1.1 Einordnung von TI Was ist Informatik? Definition 1.1 (Informatik; Meyers Neues Lexikon, 1993) Informatik ist die Wissenschaft von der automatischen Informationsverarbeitung mit Hilfe von Computern, insbesondere dem Entwurf und der Formulierung von Algorithmen in angemessenen Sprachen sowie ihre physische Realisation. Folie 1-2 (7) 1 TI – Einführung 1.1 Einordnung von TI Theoretische Informatik Folie 1-3 (8) Informatik und die reale Welt Reale Welt Objekte Handlungen Eigenschaften (von Objekten) Beziehungen (zwischen Objekten) Informatik Daten Algorithmen Attribute (von Daten) Relationen (zwischen Daten) 1 TI – Einführung Theoretische Informatik 1.1 Einordnung von TI Folie 1-4 (9) Teilgebiete der Informatik 1 TI – Einführung Technische Informatik Automaten Logik theoretische Grundlagen und Konzepte der Informatik ; Grundbegriffe, inkl. Graphen Theoretische Informatik Berechenbarkeit Automaten Formale Sprachen formale Sprachen Informatik Betr.systeme Compilerbau Praktische Informatik Datenstrukturen Programmierung Folie 1-5 (10) Gegenstand der Vorlesung Komplexität Algorithmen Theoretische Informatik 1.2 Inhalte von TI Algorithmen Simulation Angewandte Informatik Assistenzsysteme Berechenbarkeit Computergrafik Komplexität WI Logik Bioinformatik Softwaretechnik 1 TI – Einführung Theoretische Informatik 1.3 TI – Motivation Folie 1-6 (11) Wozu TI ?? 1 TI – Einführung Theoretische Informatik 1.3 TI – Motivation Folie 1-7 (12) Motto der Vorlesung TI ist Philosophie. I I I I Welche Probleme sind unlösbar? Welche Probleme sind theoretisch lösbar, praktisch unlösbar? Was ist Berechenbarkeit? Was ist Indeterminismus, Zufall? TI ist praxisrelevant. I I I I I TI liefert Methodik. TI stellt Berechnungsmodelle wie endliche Automaten bereit. TI liefert einen guten Zugang zum Zufall. TI gibt uns eine klare, unmissverständliche Sprache. TI liefert Grundlagen für die Softwareverifikation. Nichts ist so praktisch wie eine gute Theorie. TI-Resultate haben lange Lebensdauer. I I I TI liefert relativ stabiles Wissen. TI enthält fundierte Techniken. . . . losgelöst von bestimmten Produkten. TI fördert das (formale) Denken. 2 Grundlagen Theoretische Informatik 2 Grundlagen Theoretische Informatik 10. Juli 2016 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 2 Grundlagen 10. Juli 2016 Inhaltsverzeichnis – Kapitel 2 2 Theoretische Informatik Folie 2-1 (15) Grundlagen Grundlagen Mengen Relationen Funktionen Formale Sprachen Graphen Zusammenfassung (Grundlagen) Aufgaben (Grundlagen) 2 Grundlagen Theoretische Informatik 2.1 Mengen Mengen Menge ist eine Zusammenfassung von Objekten Wenn Eins besonders groß ist, ist es beinahe so groß wie ein bisschen Zwei. Murphys mathematisches Axiom Arthur Bloch, Murphy’s Law, 1981 Schreibweise: {x , y , . . .} Beispiel 2.1 (Mengen) Menge aller geraden Zahlen: {0, 2, 4, 6, . . .} Menge aller Zeichenketten über dem Alphabet {a, b}: {e, a, b, aa, bb, ab, ba, aaa, aab, . . .} Alle Studenten von WI14: {Paul, Sebastian, Michalina, . . . } Folie 2-2 (16) 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-3 (17) Mengen 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-4 (18) Mengen Es gibt eine Reihe von wichtigen Beziehungen zwischen Mengen (bzw. deren Elementen): Element-Beziehung (∈) : x ∈ M, wenn M = {. . . , x , . . .} Gleichheit von Mengen Es gibt endliche und unendliche Mengen. Leere Menge, Darstellung als {} oder 0/ Die Menge aller lebenden Menschen ist endlich. Teilmengen (⊂), echte Teilmengen Die Menge aller natürlichen Zahlen ist unendlich. Beispiel 2.2 (Mengen) {1, 2, 3} ⊂ {4, 3, 2, 1} 0/ ⊂ {4, 3, 2, 1} {1, 2, 3} = {3, 2, 1} 2 ∈ {4, 3, 2, 1} 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-5 (19) Mengen 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-6 (20) Mengenoperationen Mengen werden durch Eigenschaften beschrieben: M = {x ∈ IN | x > 6} M = { x ∈ IN | x > 6 } 1 YH H 6 HH Die Menge M für die gilt, x größer allen x aus als 6 ist. besteht aus . . . der Menge IN, dass . . . Vereinigung (∪) Durchschnitt (∩) Mengendifferenz (\) Symmetrische Mengendifferenz (−) Abb. 1: Mengendarstellung – intensional Mengenkomplement (A oder Ac ) Beispiel 2.3 (Mengen) M = {(x , y ) ∈ IN × IN | x · y ist gerade} M = {x ∈ IN | x 2 > 10} / ist nicht die leere Menge! Achtung: {0} 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-7 (21) Mengenoperationen 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-8 (22) Eigenschaften von Mengenoperationen – 1 Idempotenz Kommutativität Beispiel 2.4 (Mengenoperationen) {3, 2, 1} ∪ {3, 4, 5} = {1, 2, 3, 4, 5} Assoziativität {2, 1, 3} \ {3, 4, 5} = {1, 2} Distributivität Sei die Grundmenge {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. Dann ist {3, 4, 5} = {3, 4, 5}c = {1, 2, 6, 7, 8, 9, 10} Absorption {1, 2, 3} ∩ {3, 4, 5} = {3} {1, 2, 3} − {3, 4, 5} = {1, 2, 4, 5} Identität (Grundmenge X ) A∪A = A A∩A = A A∪B = B∪A A∩B = B∩A (A ∪ B ) ∪ C = A ∪ (B ∪ C ) (A ∩ B ) ∩ C = A ∩ (B ∩ C ) (A ∪ B ) ∩ C = ( A ∩ C ) ∪ (B ∩ C ) (A ∩ B ) ∪ C = ( A ∪ C ) ∩ (B ∪ C ) A ∪ (A ∩ B ) = A A ∩ (A ∪ B ) = A A ∩ 0/ = 0/ A∪X = X Tabelle 1: Eigenschaften von Mengenoperationen – 1 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-9 (23) Eigenschaften von Mengenoperationen – 2 Involution DeMorgans Law Gesetz vom Widerspruch Gesetz vom ausgeschlossenen Dritten A=A A \ (B ∩ C ) = (A \ B ) ∪ (A \ C ) A \ (B ∪ C ) = (A \ B ) ∩ (A \ C ) (A ∪ B ) = A ∩ B (A ∩ B ) = A ∪ B A ∩ A = 0/ A∪A = X Tabelle 2: Eigenschaften von Mengenoperationen – 2 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-10 (24) Weitere Begriffe Disjunktheit: A ∩ B = 0/ Potenzmenge: 2B = { A | A ⊂ B } (Menge aller Teilmengen) Abgeschlossenheit von Mengen bezüglich Operationen: x , y ∈ M , dann x op y ∈ M Größe einer Menge: |M | Beispiel 2.5 (Mengeneigenschaften) Die Mengen {1, 2, 7, 8, 9, 10} und {2, 3, 4, 5} sind nicht disjunkt. Die Mengen {1, 7, 8, 9, 10} und {2, 3, 4, 5} sind disjunkt. / {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}} 2{1,2,3} = {0, |{3, 4, 5, 6}| = 4 |IN| = ∞ 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-11 (25) Abgeschlossenheit 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-12 (26) Mengeneigenschaften Gerade die Abgeschlossenheit ist aus Informatiksicht wichtig, da wir häufig überprüfen müssen, ob bestimmte Operationen nicht aus der Menge herausführen: Zur Darstellung von Mengen eignen sich die Venn-Diagramme (John Venn, 1834-1923). 1111111111111 0000000000000 0000000000000 1111111111111 Menschen 0000000000000 1111111111111 0000000 1111111 0000000000000 1111111111111 0000000 1111111 0000000000000 1111111111111 0000000 1111111 0000000000000 1111111111111 0000000 1111111 0000000000000 1111111111111 Frauen 0000000 1111111 0000000000000 1111111111111 0000000 1111111 0000000000000 1111111111111 0000000 1111111 0000000000000 1111111111111 0000000000000 1111111111111 0000000000000 1111111111111 Beispiel 2.6 (Abgeschlossenheit) Die natürlichen Zahlen sind bezüglich der Addition abgeschlossen. Die natürlichen Zahlen sind bezüglich der Subtraktion nicht abgeschlossen. Die reellen Zahlen sind bezüglich der Multiplikation abgeschlossen. Abb. 2: Frauen ⊂ Menschen Die reellen Zahlen sind bezüglich des Wurzelziehens nicht abgeschlossen. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-13 (27) Relationen 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-14 (28) Relationen Beispiel-Relation: verheiratet_mit = {(Adam,Beate), (Claus,Dana), ...}. Beispiel 2.7 (Relationen) Kartesisches Produkt (Kreuzprodukt): A × B = {(a, b) | a ∈ A, b ∈ B } Die Relation bruder_von: {(lutz, juergen), (juergen, lutz), (christine, lutz) . . .} ⊂ Menschen × Männer. (2.1) Die Relation ist_Teiler_von: {(1, 1), (1, 2), (2, 2), (2, 4), (2, 6), (3, 6), . . .} ⊂ IN × IN. Oder A × B × C × D = {(a, b, c , d )| a ∈ A, b ∈ B , c ∈ C , d ∈ D } (2.2) ; Kreuzprodukt = Menge aller möglichen Kombinationen {1, 2} × {a, b, c } = {(1, a), (2, a), (1, b), (2, b), (1, c ), (2, c )} Jede Relation ist Teilmenge des Kreuzprodukts über Grundmengen: R ⊂ S1 × ... × Sn (2.3) Beispiel: verheiratet_mit ⊂ Männer × Frauen 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-15 (29) Relation – Student 2 Grundlagen Betrachten nur 2-stellige Relationen über gemeinsamer Grundmenge: R ⊂ A × A. Die Relation student: Name Arnhold Börne Cäsar Dönhoff ... Vorname Anton Carl-Friedrich Cleopatra Dörte ... Schreibweise: x R y an Stelle von (x , y ) ∈ R Studiengang MMT WI MMT WI ... . . . x < y an Stelle von (x , y ) ∈< Beispiel 2.9 (2-stellige Relationen) Kleiner-Relation auf den natürlichen Zahlen: <IN ⊂ IN × IN Relation kennt auf der Menge der Menschen. Relation älter_als auf der Menge der Lebewesen. student ⊂ Matrikel × Namen × Vornamen × Studiengänge 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-17 (31) Graphische Darstellung von 2-stelligen Relationen Bemerkung 2.1 (Graphische Darstellung) 2-stellige Relationen lassen sich graphisch darstellen (Abb. 3). c a {(a,b), (f,b), (c,d)} f b Folie 2-16 (30) Eigenschaften von 2-stelligen Relationen Beispiel 2.8 (Relation – Student) Matrikel 104526 103556 113576 104920 ... Theoretische Informatik 2.2 Relationen d Abb. 3: Relationen – Beispiel 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-18 (32) Eigenschaften von 2-stelligen Relationen Reflexivität: Für alle x ∈ A gilt: xRx. Andere Formulierung: Es gibt kein x ∈ A, für welches nicht gilt: xRx. Symmetrie: Für alle x , y ∈ A gilt: Falls xRy , so gilt auch y Rx. Andere Formulierung: Es gibt keine x , y ∈ A, für die xRy gilt, jedoch nicht y Rx. Antisymmetrie: Für alle x , y ∈ A gilt: Falls xRy und y Rx, so gilt x=y . Andere Formulierung: Es gibt keine x , y ∈ A, für die xRy und y Rx gilt, jedoch nicht x=y . Transitivität: Für alle x , y , z ∈ A gilt: Falls xRy und y Rz, so gilt auch xRz. Andere Formulierung: Es gibt keine x , y , z ∈ A, für die xRy und y Rz gilt, jedoch nicht xRz. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-19 (33) 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-20 (34) Eigenschaften von 2-stelligen Relationen Wir betrachten folgende Relation: 0 1 1 0 0e 1 11 00 a 00 11 1 0 0b 1 c 1 0 0 1 Es gibt 2 spezielle Klassen von Relationen: Äquivalenzrelation (reflexiv, symmetrisch, transitiv) 1 0 0d 1 Ordnungsrelation (reflexiv, antisymmetrisch, transitiv), (partiell, total) Abb. 4: Beispielrelation Relation: {(a, a), (b, a), (a, c ), (c , e), (d , c ), (e, d )} Reflexiv ist sie nicht. Transitiv ist sie nicht. Symmetrisch ist sie nicht. Antisymmetrisch ist sie. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-21 (35) Partielle / totale Ordnungsrelationen 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-22 (36) Die Implikation Beispiel 2.10 (Gleichheitsrelation und Transitivität) Totale Ordnungsrelation: zwei beliebig gewählte Elemente (x, y) müssen immer vergleichbar sein, d.h. es muss xRy oder yRx gelten. Ist die Gleichheitsrelation auf den natürlichen Zahlen transitiv? NEIN? Denn wir finden doch gar keine x, y , z, so dass x = y und y = z gelten. Oder? Nur wenn wir x = y = z setzen, dann sind Vorbedingung der Transitivität erfüllt. Dann gilt natürlich die geforderte Bedingung x = z. Partielle Ordnungsrelation: Unvergleichbarkeit zugelassen. Relation ist_teiler_von: partielle Ordnungsrelation, da beispielsweise weder 3|7 noch 7|3 gilt. 2 Grundlagen Was ist also mit den fehlenden echten Tripeln x/y /z? Kein Problem: Nur wenn wir Werte mit x = y und y = z finden, so dass x = z nicht gilt, dann wäre die Transitivität verletzt. Theoretische Informatik 2.2 Relationen Folie 2-23 (37) Relationen 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-24 (38) Äquivalenz- / Ordnungsrelationen Beispiel 2.12 (Relationen) Beispiel 2.11 (Eigenschaften von Relationen) Kandidaten für Äquivalenzrelationen sind beispielsweise: Die Relation älter_als ist transitiv und antisymmetrisch, aber nicht symmetrisch und reflexiv. Die Relation duzt ist nur reflexiv. gleiche_haarfarbe geschwister_von Kandidaten für Ordnungsrelationen sind: Die Relation kollege_von ist symmetrisch und transitiv. Ist sie auch reflexiv? ≥ klüger_als Prüfen Sie die Eigenschaften. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-25 (39) Aufgaben 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-26 (40) 2-stellige Relationen auf natürlichen Zahlen Wir betrachten die Relation: {(x , y )|x , y ∈ IN, 2|x + y } Aufgabe 2.1 (Relationen) Sind folgende Aussagen korrekt? Die Relation verheiratet_mit ist weder reflexiv noch transitiv. Die Relation „x ist Teiler von y“ ist reflexiv und transitiv, jedoch nicht symmetrisch. 4 0 5 6 2 (2.4) 1 7 3 Abb. 5: Relation – gerade Summe Gruppenbildung: gerade Zahlen und ungerade Zahlen getrennt. Die Relation ist reflexiv, symmetrisch und auch transitiv. Also ist sie eine Äquivalenzrelation. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-27 (41) Hüllenbildung auf 2-stelligen Relationen 2 Grundlagen Folie 2-28 (42) Hüllenbildung auf 2-stelligen Relationen Bei der Hüllenbildung wird eine Relation um Elemente erweitert, so dass eine bestimmte Eigenschaft gilt. Wozu braucht man eine solche Hülle? Betrachten ein Computer-Netzwerk. transitive Hülle Möchten untersuchen, ob man von jedem Computer zu jedem anderen kommt. reflexive Hülle symmetrische Hülle Die direkten Verbindungen der Computer seien durch die Relation R dargestellt: Zwischen a und b besteht also eine direkte Verbindung, wenn (a, b) ∈ R. Beachten Sie: Bei der Hüllenbildung muss man auch die neuen Kanten betrachten. Wie bekommt man auch die indirekten Verbindungen? reflexive, transitive Hülle von R Nur die Erweiterungen, die zwingend nötig sind, nicht mehr! 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-29 (43) Hüllenbildung 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-30 (44) Relationen – weitere Eigenschaften 1 20 2 1 0 1 0 1 0 2 1 0 0 1 0 21 0 1 0 11 0 1 1 30 0 1 0 11 0 1 1 3 0 0 1 0 11 0 1 3 1 0 1 0 1 0 50 1 4 1 0 1 0 1 0 50 1 0 41 0 1 0 51 0 1 4 Theoretische Informatik 2.2 Relationen 1 0 60 1 6 Ausgangs−Relation 1 0 1 0 reflexive Hülle 1 0 0 1 0 11 0 1 0 31 0 1 1 0 0 1 0 51 0 1 Es gibt eine Reihe weiterer Eigenschaften von zweistelligen Relationen R ⊂ A × B: linkstotal 6 4 1 0 1 0 symmetrische Hülle 6 rechtstotal Zu jedem a gibt es (mind.) ein b, so dass (a, b) ∈ R. Zu jedem b gibt es (mind.) ein a, so dass (a, b) ∈ R. linkseindeutig Falls (a1 , b) ∈ R und (a2 , b) ∈ R, dann a1 = a2 . 1 0 1 0 transitive Hülle rechtseindeutig Falls (a, b1 ) ∈ R und (a, b2 ) ∈ R, dann b1 = b2 . Abb. 6: Hüllenbildung – Beispiel 1 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-31 (45) Funktionen 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-32 (46) Eigenschaften von Funktionen Funktion – spezielle 2-stellige Relation Wichtige Eigenschaft: Eindeutigkeit Zu jedem a existiert höchstens ein b, so dass (a, b) ∈ R gilt. totale Funktion: Zu jedem Urbild gibt es genau ein Bild. a . . . Urbild partielle Funktion: Nicht zu jedem Urbild muss es ein Bild geben. b . . . Bild injektive Funktion: Zu jedem Bild gibt es höchstens ein Urbild. surjektive Funktion: Zu jedem Bild gibt es mindestens ein Urbild. bijektive Funktion: total, injektiv und surjektiv Beispiel 2.13 (Funktionen) Betragsfunktion abs auf Integer-Zahlen Funktion vater_von: Menschen → Menschen 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-33 (47) Funktionen 1 0 1 0 1 0 00 11 11 00 nicht injektiv 1 0 nicht surjektiv 00 11 1 0 nicht total 001 111 0 0 1 0 0 1 11 00 11 0 00 1 11 00 Theoretische Informatik 2.3 Funktionen Folie 2-34 (48) Funktionen 11 00 00 11 1 0 2 Grundlagen 11 0 0 0 1 0 1 11 00 11 00 00 11 Abb. 7: Funktionen – Beispiel bijektiv Addition von natürlichen Zahlen: plus : IN × IN → IN Absolutbetrag auf ganzen Zahlen: abs : ZZ → IN 1 0 11 00 Beispiel 2.14 (Funktionen) 1 0 1 0 0 1 100 0 11 00 1 0 11 Maximum von 4 reellen Zahlen: max : IR × IR × IR × IR → IR Sind diese Funktionen injektiv, surjektiv, total? Man verwendet als Abkürzung für IN × IN × . . . × IN häufig: INk . 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-35 (49) Funktionen 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-36 (50) Funktionen Beispiel 2.15 (Injektivität, Surjektivität) Bemerkung 2.2 (Injektivität, Surjektivität) Die Funktion vater_von ist nicht injektiv, denn ihre Umkehrabbildung vater_von−1 ist nicht eindeutig. Wie kann man sich Injektivität und Surjektivität vorstellen? Ist eine Funktion f injektiv, so ist ihre Umkehrfunktion f −1 wohldefiniert, denn zu jedem Bild gibt es maximal ein Urbild. Sie kann jedoch partiell sein. Die Funktion ehepartner_von ist in Deutschland injektiv, denn man kann nicht 2 Ehepartner haben. Die Umkehrabbildung ehepartner_von−1 ist eindeutig. Sie ist jedoch partiell. Ist die Funktion f zusätzlich noch surjektiv, dann ist f −1 sogar total. Die Funktion halbiere : IN → IN auf den natürlichen Zahlen ist: I I nicht total (Es gibt zu den ungeraden Zahlen keinen Funktionswert.) injektiv und surjektiv halbiere−1 ist also eine totale Funktion. 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-37 (51) Weitere Begriffe 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-38 (52) Abzählbarkeit Satz 2.4 (Abzählbarkeit) Definitionsbereich, Wertebereich von Funktionen Jede unendliche Teilmenge einer abzählbaren Menge ist wieder abzählbar. endliche und unendliche Mengen Kardinalität einer Menge Die Vereinigung von endlich vielen abzählbaren Mengen ist wieder abzählbar. Abzählbarkeit, Überabzählbarkeit Definition 2.3 (Abzählbarkeit) Eine unendliche Menge heißt abzählbar, wenn eine surjektive Abbildung von den natürlichen Zahlen auf die Menge existiert, sonst heißt sie überabzählbar. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-39 (53) Formale Sprachen Beispiel 2.16 (Abzählbarkeit) Die rationalen Zahlen sind abzählbar. (Suchen Sie nach einem Beweis.) 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-40 (54) Formale Sprachen Definition 2.5 (Formale Sprache) Alphabet (endliche Menge von Symbolen) (endliche) Zeichenketten (Wörter, Strings) über einem Alphabet Formale Sprache – eine Teilmenge der Menge aller endlichen Zeichenketten über einem vorgegebenen Alphabet Σ. Beschreibung: leere Zeichenkette e, Teilzeichenkette Länge einer Zeichenkette: |w | L = {w ∈ Σ∗ | . . . Eigenschaften von w . . .} Anzahl von Zeichen (a) in einer Zeichenkette w: |w |a Konkatenation (Verknüpfung) von Zeichenketten (ist assoziativ) Umkehrung einer Zeichenkette (reversal) wobei die Eigenschaften endlich beschreibbar sein müssen. (Σ∗ = Menge aller endlichen Zeichenketten über Σ, inkl. e) Satz 2.6 (Abzählbarkeit) Jede Sprache über einem endlichen Alphabet ist abzählbar. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-41 (55) Operationen 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-42 (56) Operationen Konkatenation (Produkt) von Sprachen L1 • L2 = {x • y | x ∈ L1 und y ∈ L2 } (2.5) {a, b} • {d , ff , g } = {ad , aff , ag , bd , bff , bg } {a, bb}∗ = {e, a, bb, aa, abb, bba, bbbb, aaa, aabb, . . .} (Menge Kleenescher Abschluss (Kleene star): Vereinigung aller endlichen Produkte der Sprache L mit sich selbst: L∗ = ∞ [ i =0 Li = {e} ∪ L ∪ (L • L) ∪ (L • L • L) ∪ . . . Beispiel 2.17 (Stringoperationen) aller endlichen Zeichenketten, gebildet aus den Bausteinen a / bb). (2.6) 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-43 (57) 2.4.1 Reguläre Ausdrücke Bemerkung 2.7 (Reguläre Ausdrücke) a(a∗ ∪ b∗ )a+ I I 3 Wir verwenden auch folgende Schreibweisen: an bm . . . n a, danach m b a∗ b∗ Menge der Zeichenketten, aufgebaut aus endlichen vielen a (einschließlich 0) gefolgt von endlich vielen b (einschließlich 0). I Folie 2-44 (58) Reguläre Ausdrücke Man kann Sprachen durch Ausdrücke der folgenden Form beschreiben. 2 Theoretische Informatik 2.4 Formale Sprachen 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke 1 2 Grundlagen Das 1. Zeichen ist ein a. Dann folgt ein beliebiger String, gebildet entweder nur aus a-Zeichen oder nur aus b-Zeichen (einschließlich dem leeren String). Danach kommen beliebig viele a, aber mindestens 1. an bn . . . n a, danach gleich viele b Beispiel 2.18 (Reguläre Ausdrücke) an+2 bn . . . Zunächst a, dann b. 2 a mehr als b. am bn am . . . a, dann b, dann wieder a. Gleich viele a vor und nach den b. (a ∪ ab)∗ ∩ (a ∪ ba)∗ alle Zeichenketten, die sowohl durch den am bn , m ≥ n . . . a, dann b; mindestens so viele a wie b. ersten als auch den zweiten Ausdruck darstellbar sind. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-45 (59) 2.4.1 Reguläre Ausdrücke (a ∪ b)n , n ≥ 2 . . . Beliebig a/b; mindestens 2. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-46 (60) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Reguläre Ausdrücke Reguläre Ausdrücke sind die leere Menge, die Wörter der Länge 1 Beispiel 2.19 (Regulärer Ausdruck) sowie Der Ausdruck a(a∗ ∪ b∗ )b steht für die Zeichenketten, die wie folgt aufgebaut sind: Konkatenation, Vereinigung, Durchschnitt und Kleenescher Abschluss von regulären Ausdrücken. Das 1. Zeichen ist ein a. Darstellung: Dann folgt eine beliebige Zeichenkette, gebildet entweder nur aus as oder nur aus bs (einschließlich dem leeren String). Konkatenation a∗ • b∗ oder einfach a∗ b∗ . Vereinigung ∪ Das letzte Zeichen ist ein b. Durchschnitt ∩ Kleene-Star ∗ 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-47 (61) 2.4.1 Reguläre Ausdrücke 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-48 (62) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Reguläre Ausdrücke Beispiel 2.21 (Reguläre Ausdrücke) Beispiel 2.20 (Reguläre Ausdrücke – Fehlerquellen) a∗ ∩ b ∗ Alle Zeichenketten aus a UND alle Zeichenketten aus b? NEIN. String muss beiden Mustern a∗ und b∗ genügen: Nur der leere String e. a∗ ∪ b ∗ Zeichenketten, aufgebaut aus a und b, aber nicht vermischt. Jeder String ist aufgebaut aus NUR a oder NUR aus b. (a ∪ b )∗ Nun dürfen a und b beliebig gemischt auftreten. a+ ist eine Abkürzung für aa∗ . 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-49 (63) Königsberger Brückenproblem (Euler 1736) Das Königsberger Brückenproblem geht auf Euler zurück. In Königsberg gab es 7 Brücken. Die Aufgabe war, einen Rundweg zu finden, so dass jede der 7 Brücken genau einmal überquert wird. Sprache L {a , b } {aa, ab, ba, bb} {aa, ab, ba, bb} {(ab)n |n ≥ 0} {am bn |m, n ≥ 0} {an |n ≥ 0} ∪ {bn |n ≥ 0} {} {e} beliebige Zeichenketten über a, b bel. Strings nur aus 0/1 oder nur aus a/b {a} ∪ {(ab)m an |m ≥ 1, n ≤ 1} 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-50 (64) Graphen – Bedeutung Rechnernetze: Konfiguration, Routing etc. Suche: Suchprobleme als Suche in Graphen 1 0 1 0 Tourenplanung, Verkehrsweg-Planung 1 0 1 0 1 0 1 0 1 0 1 0 Abb. 8: Königsberger Brückenproblem Ist das Problem lösbar? regulärer Ausdruck a∪b (a ∪ b)(a ∪ b) a(a ∪ b) ∪ b(a ∪ b) (ab)∗ a∗ b ∗ a∗ ∪ b ∗ a∩b a∗ ∩ b ∗ (a ∪ b)∗ (0 ∪ 1)∗ ∪ (a ∪ b)∗ a(ba)∗ b∗ ∩ (ab)∗ a∗ Compiler Datenbanken Darstellung von zustandsorientierten Modellen I I Automaten Modellierung von Workflows 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-51 (65) 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-52 (66) 2.5.1 Grundlagen und Grundbegriffe Beispiel-Graphen 1 0 0 1 Grundlagen und Grundbegriffe 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 Definition 2.8 (Graph) 1 0 0 1 Ein Graph ist definiert als Paar G = (K , V ), wobei 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 K eine nichtleere Menge von Knoten 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 Abb. 9: Beispiel-Graphen 2 Grundlagen Wir sagen, zwischen den Knoten a und b besteht eine Verbindung, wenn gilt: (a, b) ∈ V oder (b, a) ∈ V . Theoretische Informatik 2.5 Graphen Folie 2-53 (67) 2.5.1 Grundlagen und Grundbegriffe Das Komplement eines Graphen G = (K , V ) ist definiert durch Gc = (K , V 0 ), wobei V 0 = (K × K ) \ V . und V ⊂ K × K ist. Wir sagen, zwischen den Knoten a und b besteht eine Verbindung, wenn gilt: (a, b) ∈ V . Schlingen: Verbindungen der Form (a, a) ∈ V bei gerichteten Graphen: zugelassen bei ungerichteten Graphen: nein. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-55 (69) 2.5.1 Grundlagen und Grundbegriffe Der Grad g (k ) (eines Knotens k ) eines ungerichteten Graphen (K , V ) ist die Anzahl, wie oft k in Kanten enthalten ist. Bei gerichteten Graphen unterscheidet man zwischen g (k )+ (abgehende Kanten) und g (k )− (ankommende Kanten). 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-56 (70) Verbindbar, zusammenhängend Definition 2.12 (Kantenzug, Weg, Kreis) Definition 2.13 (Verbindbar, zusammenhängend) Sei (v1 , v2 , . . . vn ) eine Folge von Kanten eines Graphen G. Man bezeichnet diese Kantenfolge als falls es Knoten k0 , . . . , kn ∈ K gibt, so dass vi = ki −1 ki . falls die ki paarweise verschieden sind. geschlossenen Kantenzug falls k0 = kn falls im Kantenzug die ki paarweise verschieden sind. 2 Grundlagen Definition 2.11 (Grad) 2.5.1 Grundlagen und Grundbegriffe Kantenzug, Weg, Kreis Kreis Folie 2-54 (68) Definition 2.10 (Komplement eines Graphen) Ein gerichteter Graph ist definiert als Paar G = (K , V ), wobei Weg Theoretische Informatik 2.5 Graphen Komplement eines Graphen, Grad von Knoten Definition 2.9 (Gerichteter Graph) Kantenzug 2 Grundlagen 2.5.1 Grundlagen und Grundbegriffe Gerichteter Graph K eine nichtleere Menge und V ⊂ K × K eine Menge von Kanten (Verbindungen) ist. Theoretische Informatik 2.5 Graphen Folie 2-57 (71) 2.5.1 Grundlagen und Grundbegriffe Spezielle Graphen Zwei Knoten a, b eines Graphen G = (K , V ) heißen verbindbar, wenn es einen Kantenzug von a nach b gibt. G heißt zusammenhängend, wenn jedes beliebige Knotenpaar a, b ∈ K verbindbar ist. Abstand von 2 Knoten: Länge des kürzesten Weges zwischen diesen. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-58 (72) 2.5.1 Grundlagen und Grundbegriffe Graphen 1 Vollständige Graphen (Jeder Knoten ist mit jedem verbunden.) 1 0 20 1 Zyklische Graphen (Der Graph ist ein geschlossener Weg.) 4 13 0 0 1 1 0 0 1 11 5 00 11 00 Abb. 10: Beispielgraph Reguläre Graphen (Jeder Knoten hat den gleichen Grad.) Ein kreisfreier gerichteter Graph wird als DAG bezeichnet (directed acyclic graph). 1 0 0 1 Grad der Knoten: 1:4, 2:1, 3:3, 4:2, 5:2 Kantenzug (z.B.): 1-3-4-5-3, Weg (z.B.): 1-3-4-5 geschlossener Kantenzug (z.B.): 3-4-5-3-4-5-3 Kreis (z.B.): 3-4-5-3 Der Graph ist zusammenhängend. Der Abstand zwischen den Knoten 2 und 3 beträgt 2. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-59 (73) 2.5.2 Bäume 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-60 (74) 2.5.2 Bäume Bäume Bäume Definition 2.14 (Baum) 1 0 0 1 Ein Graph G = (K , V ) heißt Baum, falls es für jedes Paar a, b ∈ K genau einen Weg von a nach b gibt. 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 Bäume sind also spezielle zusammenhängende Graphen. In Bäumen gilt: 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 Kantenanzahl = Knotenanzahl − 1 1 0 1 0 (2.7) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 Abb. 11: Baum oder nicht ? Bäume enthalten keine Kreise. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-61 (75) 2.5.2 Bäume 2 Grundlagen Folie 2-62 (76) 2.5.2 Bäume Gerichteter Baum Bäume Definition 2.15 (Gerichteter Baum) Gerichteter Graph G = (K , V ) heißt gerichteter Baum, falls zugrundeliegender ungerichteter Graph ein Baum. Knoten eines gerichteten Baums mit Ausgangsgrad 0 heißt Blatt. Knoten eines gerichteten Baumes heißt Wurzel, wenn von dort aus jeder andere Knoten erreichbar. Gerichteter Baum heißt Wurzelbaum, wenn er genau eine Wurzel besitzt. Die Tiefe eines Wurzelbaums ist die maximale Entfernung eines Blatts von der Wurzel. Ungerichtete Graphen als Datenstrukturen wenig sinnvoll. Häufig findet man eine rekursive Definition von Bäumen. Definition 2.16 (Baum) Sei K eine Menge von Knoten. Jeder Knoten e ∈ K ist ein Baum. Seien b1 , . . . , bn Bäume. Dann ist auch tree(b1 , . . . , bn ) ein Baum. Aufgabe 2.2 (Baum) Welchem unserer Begriffe entspricht dies? Was ist an dieser Definition nicht korrekt, auch wenn sie intuitiv korrekt erscheint? Was muss man an dieser Definition verfeinern? Wurzelbaum heißt ausgeglichen (engl. balanced), wenn die Tiefe der Blätter um maximal 1 differiert. 2 Grundlagen Theoretische Informatik 2.5 Graphen Theoretische Informatik 2.5 Graphen Folie 2-63 (77) 2.5.2 Bäume 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-64 (78) 2.5.2 Bäume Binäre Bäume Anwendungen von Bäumen Hierarchische Dateisysteme (Directories und Subdirectories) Ableitungsbäume (Compiler, Sprachverarbeitung) Definition 2.17 (Binärer Baum) Suchbäume Ein binärer Baum ist ein gerichteter Baum mit der Eigenschaft: Bemerkung 2.18 (Ausgeglichener Binärbaum) Jeder Knoten hat maximal einen Ausgangsgrad von 2. Ein Binärbaum heißt ausgeglichen (engl. balanced), wenn im Baum bis zur vorletzten Ebene alle Knoten existieren, d.h. jeder Knoten bis zur Ebene n-1 den Ausgangsgrad 2 hat. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-65 (79) 2.5.3 Binäre Suchbäume Binäre Suchbäume 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-66 (80) 2.5.3 Binäre Suchbäume Suchbaum – Beispiel 19 Definition 2.19 (Binärer Suchbaum) 10 Ein binärer Suchbaum ist ein Binärbaum, wobei gilt: Alle Elemente im linken Teilbaum sind kleiner als das Element der Wurzel. 5 21 12 28 Alle Elemente im rechten Teilbaum sind größer als das Element der Wurzel (oder gleich). 3 7 12 24 Abb. 12: Beispiel-Suchbaum 35 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-67 (81) 2.5.3 Binäre Suchbäume 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-68 (82) 2.5.4 Beispielprobleme und Algorithmen Aufgaben Beispielprobleme und Algorithmen Aufgabe 2.3 (Suchbaum) Wie kann man einen Suchbaum aufbauen? Möglichkeit: den Baum „nach und nach “ aufbauen. I I I Typische Aufgaben sind: Zu Beginn: Baum besteht nur aus der 1. gegebenen Zahl. Die zweite Zahl vergleicht man nun mit der 1. Zahl. Weg suchen kleiner sonst Vorgänger bzw. Nachfolger in gerichteten Graphen bestimmen Nachbarn bestimmen → links mit neuer Kante einfügen, → rechts mit neuer Kante einfügen. Und so weiter . . . Sehen Sie Alternativen zu diesem Vorgehen? 2 Grundlagen Theoretische Informatik 2.6 Zusammenfassung (Grundlagen) Folie 2-69 (83) Das sollten Sie wissen . . . 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-70 (84) Aufgaben Aufgabe 2.4 (Zeichenketten) Zusammenfassung 2.20 (Grundlagen) Wie definiert man mittels Rekursion Mengen, -operationen und -relationen die Länge einer Zeichenkette (|w |), Eigenschaften von Mengenoperationen und -relationen die Anzahl von a in w (|w |a ), endliche / unendliche Mengen das Umdrehen einer Zeichenkette (w R )? Relationen, Kreuzprodukt, Eigenschaften von 2-stelligen Relationen Aufgabe 2.5 (Potenzmenge) Hüllenbildung, Abgeschlossenheit Funktionen und deren Eigenschaften Berechnen Sie 2{1,2,3,4} und |2{1,2,3,4} | ! Formale Sprachen, reguläre Ausdrücke Aufgabe 2.6 (Hülle) Graphen – Grundlagen, typische Graphen Beschreiben Sie die Menge aller Spiele der 1. Fußball-Bundesliga als Relation! Welche Eigenschaften hat diese Relation? Wie sehen die reflexive und die transitive Hülle dieser Relation aus? Graph, Baum – gerichtet und ungerichtet, binärer Suchbaum 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-71 (85) Aufgaben 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-72 (86) Aufgaben Aufgabe 2.7 (Funktionen) Sei die Funktion f (x ) = x 2 auf den reellen Zahlen gegeben. Welche Eigenschaften hat diese Funktion (partiell, total, injektiv, ...)? Welche Eigenschaften hat diese Funktion auf den ganzen bzw. den natürlichen Zahlen? Aufgabe 2.10 (Abgeschlossenheit) Sind folgende Mengen abgeschlossen bez. der folgenden Operationen? Begründen Sie Ihre Aussagen! 1 Ungerade natürliche Zahlen / Subtraktion Aufgabe 2.8 (Regulärer Ausdruck) 2 Positive ganze Zahlen / Multiplikation Wofür steht der Ausdruck (ab ∪ b)∗ ? 3 Negative ganze Zahlen / Subtraktion 4 Natürliche Zahlen / Division Aufgabe 2.9 (Kreuzprodukt) Bilden Sie das Kreuzprodukt {1, 3} × {3, 1} 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Aufgaben Aufgabe 2.11 (Regulärer Ausdruck) Was ist der Unterschied zwischen den regulären Ausdrücken: a(a∗ ∪ b∗ )b Folie 2-73 (87) 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-74 (88) Aufgaben Aufgabe 2.12 (surjektiv/injektiv) Sind folgende Funktionen auf den reellen Zahlen total, surjektiv bzw. injektiv? a(a ∪ b)∗ b Betragsfunktion f (x ) = abs(x ) a(a∗ ∩ b∗ )∗ b Multiplikation mit -1: f (x ) = −x a(a∗ ∪ b∗ )+ b Division: f (x , y ) = a(a∗ ∪ b∗ )∗ b inverse Funktion f (x ) = a(a ∪ b)+ b Addition: f (x , y ) = x + y Welche Sprachen werden durch diese regulären Ausdrücke beschrieben? f (x , y ) = ex · y x y 1 x 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-75 (89) Aufgaben 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-76 (90) Aufgaben Aufgabe 2.15 (Zusammenhängende Graphen) Wenn ein Graph G nicht zusammenhängend ist, ist dann der Komplementärgraph zusammenhängend? (Der Graph sei schlicht, er hat also keine Doppelkanten oder reflexive Kanten.) Aufgabe 2.13 (Grad eines Graphen) Ist die Anzahl der Knoten geraden Grades in einem ungerichteten Graphen stets gerade? Aufgabe 2.16 (Komplementgraphen) Aufgabe 2.14 (Zusammenhängende Graphen) Sei G ein Graph mit n Knoten, für den jeder Knoten mindestens den 1 Grad n− hat. Der Graph sei schlicht, d.h. er hat keine reflexiven oder 2 Doppelkanten. Zeigen Sie, dass G immer zusammenhängend ist! Finden Sie die jeweiligen Komplementgraphen und die transitiven Abschlüsse (transitive Hülle) der folgenden Graphen! 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-77 (91) Aufgaben 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-78 (92) Aufgaben Aufgabe 2.17 (Ungerichtete Bäume) Aufgabe 2.19 (Eigenschaften von Relationen) Wieviele (ungerichtete, nicht äquivalente) Bäume mit 5 Knoten gibt es? Wieviele Wurzeln kann ein gerichteter Baum haben? Ist die Teilmengenbeziehung ⊂: reflexiv, symmetrisch, antisymmetrisch, transitiv? Aufgabe 2.20 (Regulärer Ausdruck) Aufgabe 2.18 (Mengen und Relationen) Sind folgende Aussagen über Mengen korrekt? Begründen Sie Ihre Vermutung. A × (B ∩ C ) = (A × B ) ∩ (A × C ) Erläutern Sie den Unterschied zwischen den regulären Ausdrücken (0∗ ∪ 1∗ ) und (0 ∪ 1)∗ . Aufgabe 2.21 (Regulärer Ausdruck) Beschreiben Sie die Sprache (über Σ = {0, 1}), in deren Wörtern die Teilzeichenkette 111 vorkommt, durch einen regulären Ausdruck. (A ∪ B ) × C = (A × C ) ∪ (B × C ) 3 Automatentheorie Theoretische Informatik 3 Automatentheorie Theoretische Informatik 10. Juli 2016 Inhaltsverzeichnis 10. Juli 2016 Inhaltsverzeichnis – Kapitel 3 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 3 3 Automatentheorie Theoretische Informatik Automatentheorie Endliche Automaten Kontextfreie Sprachen und Kellerautomaten Turingmaschinen Sprachen und Automaten – Ergänzungen Zusammenfassung (Automaten) Aufgaben (Automaten) 3 Automatentheorie Theoretische Informatik Folie 3-1 (95) Automatentheorie Folie 3-2 (96) Zustandsdiagramm – Telefon Drücken Start EIN AUS Drücken Abb. 13: Tastschalter Abh eben t klingelt mm o k ver− f u r r e f f bunden An ru au An legt Ruhe Auflegen Teilnehmer nimmt ab Ab heb Wählen en Auflegen Abb. 14: Telefon 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-3 (97) Endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-4 (98) Endliche Automaten Die Hauptursache aller Probleme sind Lösungen. Sevareids Gesetz Arthur Bloch, Murphy’s Law, 1981 3 Automatentheorie (Endliche) Automaten als abstraktes Beschreibungsmittel Endliche Automaten – eingeschränktes (Computer-)Modell Viele praktische Probleme lassen sich mit endlichen Automaten lösen. Theoretische Informatik 3.1 Endliche Automaten Folie 3-5 (99) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-6 (100) 3.1.1 Deterministische endliche Automaten Deterministische endliche Automaten Deterministische endliche Automaten Folgende Komponenten: Endliches Eingabe-Band (Zeichen aus einem vorgegebenen Alphabet) Liest Zeichen für Zeichen (von links) Lesekopf (kann ein Zeichen lesen und dann eine Position nach rechts rücken) Wenn Bandende erreicht und Automat in einem der (vorher festgelegten) Finalzustände → Zeichenkette auf dem Band: vom Automaten akzeptiert. Eine „Blackbox“, die in Abhängigkeit vom eingelesenen Zeichen ihren internen Zustand ändert. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-7 (101) 3.1.1 Deterministische endliche Automaten und kann nach jedem Zeichen seinen internen Zustand wechseln. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-8 (102) 3.1.1 Deterministische endliche Automaten DFA Graphische Darstellung eines DFA Beispiel 3.1 (DFA) Automat, der Wörter akzeptiert (aufgebaut aus a und b), die mindestens zwei a enthalten (als regulärer Ausdruck b∗ ab∗ a(a ∪ b)∗ ): ( s , a ) → q1 (q1 , a) → q2 (q2 , a) → q2 1 3 5 (s, b) → s (q1 , b) → q1 (q2 , b) → q2 b b b s a q1 a q2 a 2 4 6 Abb. 15: Graphische Darstellung DFA Einziger Finalzustand ist hier q2 . 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-9 (103) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-10 (104) 3.1.1 Deterministische endliche Automaten DFA – Abarbeitung Komponenten eines DFA s b a b a b b a s b a b a b b a q1 b a b a b b a q1 b a b a b b a q2 b a b a b b a q2 b a b a b b a q2 b a b a b b a q2 b a b a b b a erstes a wurde gefunden zweites a wurde gefunden Endliche Menge von Zuständen, die der Automat einnehmen kann (K ). Eingabeband: Zeichenketten aufgebaut aus Zeichen eines Alphabets Σ. In welchem Zustand befindet sich der Automat zu Beginn? s. Wann wird eine Zeichenkette akzeptiert? Wenn I I Band komplett eingelesen Abb. 16: Abarbeitung DFA der gesamte String eingelesen und der Endzustand des Automaten ein „ausgezeichneter“ Zustand ist (Finalzustände F ). Zustandsübergangsfunktion δ legt Folgezustand fest. Aktueller Zustand + Zeichen auf dem Band → neuer Zustand. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-11 (105) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-12 (106) 3.1.1 Deterministische endliche Automaten DFA – Abarbeitung Deterministische endliche Automaten Definition 3.1 (DFA) Ein DFA ist ein Quintupel M = (K , Σ, δ, s, F ), wobei NICHT final String nicht akzeptiert Endzustand Band bbab K . . . eine endliche Menge von Zuständen, Σ . . . ein endliches Alphabet, b b a s q1 a s ∈ K . . . der Startzustand des Automaten, q2 F ⊂ K . . . die Finalzustände und δ . . . die totale Zustandsübergangsfunktion K × Σ → K ist. a b Abb. 17: Verarbeitung mit DFA Aufgabe 3.1 (Totalität) Was bedeutet es, dass die Zustandsübergangsfunktion total sein soll? 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-13 (107) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-14 (108) 3.1.1 Deterministische endliche Automaten Darstellungsformen für DFA DFA – Konfiguration Darstellungsformen: Regeln Definition 3.2 (DFA – Konfiguration) graphisch Konfiguration: Paar (q , w ) Tabelle interner Zustand des Automaten: q ∈ K Der Automat, der alle Wörter aus a/b akzeptiert, die mind. 2 a enthalten, kann auch so dargestellt werden: Zustand noch einzulesendes Band w ∈ Σ∗ Konfigurationsübergang: (q , w ) `M (q 0 , w 0 ) Automat M erreicht in einem Schritt aus dem Zustand q die Nachfolgekonfiguration Eingabe a b q1 s q2 q1 q2 q2 s q1 q2 3 Automatentheorie w = σw 0 für ein σ ∈ Σ, so dass δ(q , σ) = q 0 Theoretische Informatik 3.1 Endliche Automaten Folie 3-15 (109) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie (3.1) Theoretische Informatik 3.1 Endliche Automaten Folie 3-16 (110) 3.1.1 Deterministische endliche Automaten DFA – Konfiguration DFA – Konfiguration Beispiel 3.2 (DFA – Konfiguration) Automat, der Wörter akzeptiert (aufgebaut aus a und b), die mindestens zwei a enthalten Konfiguration (wenn das Band komplett gelesen): (q , e) `∗M : reflexive, transitive Hülle von `M `∗ K1 M K2 bedeutet also, dass man in endlich vielen Schritten aus der Konfiguration K1 in die Konfiguration K2 gelangt. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-17 (111) 3.1.1 Deterministische endliche Automaten Zustandsübergangsregeln: (s, a) → q1 1 (s, b) → s 2 (q1 , a) → q2 3 (q1 , b) → q1 4 (q2 , a) → q2 5 (q2 , b) → q2 6 Einziger Finalzustand: q2 . Zustand s s q1 q1 q1 q1 q1 3 Automatentheorie 3.1 Endliche Automaten Band babbbb babbbb babbbb babbbb babbbb babbbb babbbb Regel 2 1 4 4 4 4 Theoretische Informatik Folie 3-18 (112) 3.1.1 Deterministische endliche Automaten DFA – Konfigurationsübergang Akzeptierte Sprache Betrachten wir den 1. Schritt: Konfigurationswechsel: (s, babbbb) ; (s, abbbb). Aktuelle Werte für w, σ und w 0: babbbb σ w0 Gesamtes Wort w: babbbb Übergangsregel: (s, b) → s Definition 3.3 (DFA – Akzeptierte Sprache) Ein String w ∈ Σ∗ heißt akzeptiert durch M, gdw. ein q ∈ F existiert, so dass (s, w ) `∗M (q , e) gilt. Von M akzeptierte Sprache: L(M ) = {w |w wird durch M akzeptiert}. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-19 (113) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-20 (114) 3.1.1 Deterministische endliche Automaten DFA-Beispiel DFA – maximal 2 a Beispiel 3.3 (DFA – Teilstring abb oder bba) Automat, der Wörter akzeptiert (aufgebaut aus a und b), in denen einer der Strings abb oder bba als Teilstring vorkommt: a a b q1 a s q3 a Automat, der Wörter akzeptiert (aufgebaut aus a und b), die höchstens zwei a enthalten: b b a s q1 b a q2 a q3 a b q2 b b q5 a b Beispiel 3.4 (DFA – maximal 2 a) a q4 b b 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-21 (115) 3.1.1 Deterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-22 (116) 3.1.1 Deterministische endliche Automaten Ergänzungen Aufgaben Fehlerzustand: Aufgabe 3.2 (DFA) kennzeichnet eine Situation, in der klar ist, dass der String garantiert nicht akzeptiert wird. Wozu muss man im Fehlerzustand die restlichen Zeichen einlesen? Band muss komplett eingelesen werden. Es gibt Aufgaben, bei denen ein Fehlerzustand unnötig und auch sinnlos ist. b b b s a a q1 q2 a 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-23 (117) 3.1.2 Indeterministische endliche Automaten 1 DFA für die Sprache, deren Wörter nur aus den Zeichen a, b gebildet werden und eine gerade Anzahl von b enthalten. 2 DFA, so dass nie 3 b hintereinander stehen (Σ = {a, b}). 3 DFA, der prüft, ob Klammerstrukturen in einem Ausdruck korrekt sind. Gehen Sie von maximal 2 geöffneten Klammern aus. 4 Erweitern Sie Ihren DFA, so dass er auch mit 3 oder 4 Klammern umgehen kann. 5 Kann man Ihren DFA so erweitern, dass er mit beliebig vielen Klammern umgehen kann? 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-24 (118) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten Indeterministische endliche Automaten Beispiel 3.5 (NFA) Wozu Indeterminismus ? Indeterministisches Programm = Programm, wo Auswahl der Strategie ständig per Münzwurf entschieden wird. Kann ein solches Programm besser sein als ein deterministisches? JA ! Es gibt (praktische) Probleme, die deterministisch unlösbar sind, da ihre Lösung extrem viel Zeit erfordern würde. Durch ein indeterministisches Programm kann man solche Probleme (z.B. in der Kryptografie zur Primzahlzerlegung) zufallsgesteuert durchaus lösen. 3 Automatentheorie 1 2 3 ( s , a ) → q3 (q3 , b) → q4 (q4 , b) → s Startzustand und (einziger) Finalzustand sind identisch (s). 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-26 (120) 3.1.2 Indeterministische endliche Automaten Graphische Darstellung Indeterministische endliche Automaten Beispiel 3.6 (NFA) a q1 NFA erlauben beim Zustandswechsel Zeichenketten: q2 a a s (s, aaa) → s (s, abb) → s 1 2 b aaa a q3 4 5 6 Gelingt dies nicht, so vereinbaren wir, dass der String nicht akzeptiert wird. Folie 3-25 (119) 3.1.2 Indeterministische endliche Automaten ( s , a ) → q1 (q1 , a) → q2 ( q2 , a ) → s Gelingt es, das Band komplett einzulesen und in s zu enden, so wird die Zeichenkette akzeptiert (z.B. abbaaaabb). Theoretische Informatik 3.1 Endliche Automaten Sprache aller Wörter, die nur aus den Bausteinen aaa und abb aufgebaut sind q4 b s Abb. 18: Graphische Darstellung NFA abb Abb. 19: Kompakter NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-27 (121) 3.1.2 Indeterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-28 (122) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten Indeterministische endliche Automaten Folgender NFA akzeptiert Zeichenketten, die entweder nur aus a oder nur aus b aufgebaut sind. Beispiel 3.7 (DFA-NFA) ein deterministischer Automat (q , a) → p (q , b ) → q (p, a) → q (p, b) → p ... a q1 e s e q2 b ein indeterministischer Automat (q , a) → p (q , a) → q (p, a) → q (p , a ) → p ... Abb. 20: NFA mit leeren Kanten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-29 (123) 3.1.2 Indeterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-30 (124) 3.1.2 Indeterministische endliche Automaten Indeterministischer endlicher Automat Indeterministische endliche Automaten Folgezustand muss nicht mehr eindeutig sein ! Was passiert bei Eingabe der Zeichenkette abb? Beim Einlesen des ersten Zeichens a hat der Automat 2 Möglichkeiten. Definition 3.4 (NFA) Ein NFA ist ein Quintupel M = (K , Σ, ∆, s, F ), wobei K . . . eine endliche Menge von Zuständen, Σ . . . ein endliches Alphabet, q2 s a b a und q3 q1 Band: bb q3 Band: bb Abb. 21: Verzweigung beim NFA Theoretische Informatik 3.1 Endliche Automaten q4 b ∆ . . . die Zustandsübergangsrelation ∆ ⊂ K × Σ∗ × K ist. 3 Automatentheorie Band: abb s s ∈ K . . . der Startzustand des Automaten, F ⊂ K . . . die Finalzustände a q1 a Folie 3-31 (125) 3.1.2 Indeterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-32 (126) 3.1.2 Indeterministische endliche Automaten Konfiguration Konfiguration Definition 3.5 (NFA – Konfiguration) Konfiguration: Paar (q , w ) Zustand q ∈ K Konfiguration (wenn das Band komplett gelesen): (q , e) Zeichenkette w ∈ Σ∗ `∗M : reflexive, transitive Hülle von `M (endlich viele Schritte des Konfigurationsübergang: (q , w ) `M (q 0 , w 0 ) Automaten) Automat M erreicht in einem Schritt aus dem Zustand q die Nachfolgekonfiguration w = uw 0 für ein u ∈ Σ∗ , so dass (q , u , q 0 ) ∈ ∆ 3 Automatentheorie 3.1 Endliche Automaten (3.2) Theoretische Informatik Folie 3-33 (127) 3.1.2 Indeterministische endliche Automaten Akzeptierte Sprache 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-34 (128) 3.1.2 Indeterministische endliche Automaten NFA NFA, der alle Zeichenketten über {a, b} akzeptiert, wo mind. 1x bb vorkommt. Definition 3.6 (NFA – Akzeptierte Sprache) Eine Zeichenkette w ∈ Σ∗ wird durch M akzeptiert, gdw. ein q ∈ F existiert, so dass (s, w ) `∗M (q , e) gilt. Von M akzeptierte Sprache: L(M ) = {w |w wird durch M akzeptiert}. a s b a bb q1 b Abb. 22: NFA – Mindestens zwei b 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-35 (129) 3.1.2 Indeterministische endliche Automaten 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-36 (130) 3.1.3 Gleichwertigkeit von DFA und NFA NFA Gleichwertigkeit von DFA und NFA Drehen Aufgabenstellung um: NIE zwei b hintereinander. a a bb s q1 b Wann sind ein DFA und ein NFA äquivalent? b Wenn sie die GLEICHE Sprache akzeptieren ! Abb. 23: NFA – Keine zwei b ? Falsch! Dieser NFA akzeptiert jede Zeichenkette über a/b. Beim NFA Konzentration auf positive Fälle. NFA braucht keinen Fehlerzustand. Teile des NFA ohne Finalzustand (aus denen man nie wieder „herauskommt“) kann man weglassen. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-37 (131) 3.1.3 Gleichwertigkeit von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-38 (132) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung NFA-DFA – Schritt 1 Umwandlung NFA-DFA – Schritt 2 Konstruieren neuen DFA. aba Wir sammeln jeweils alle Zustände auf, die durch exakt ein Zeichen erreichbar sind. q0 ab Beginnen am Startzustand q0 = q{0} . Von q0 aus erreicht man mit einem a die Zustände q1 und q3 , Abb. 24: Gegebener NFA mit einem b überhaupt keinen Zustand. Zunächst löst man die Zeichenketten an den Kanten auf. q1 a q0 b q{0} a b a q{} b q3 Abb. 26: Umwandlung – Schritt 2 Abb. 25: Umwandlung – Schritt 1 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-39 (133) 3.1.3 Gleichwertigkeit von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-40 (134) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung NFA-DFA – Schritt 3 Umwandlung NFA-DFA – Schritt 4 Dieses Verfahren setzt man für alle Zustände fort. Insgesamt erhält man diesen Automaten: (q{0} , a) → q{1,3} (q{1,3} , b) → q{0,2} (q{0,1,3} , a) → q{1,3} (q{} , b) → q{} q{1,3} a q2 a (q{0} , b) → q{} (q{0,2} , a) → q{0,1,3} (q{0,1,3} , b) → q{0,2} Umbennen der Zustände (s = p0 ). (q{1,3} , a) → q{} (q{0,2} , b) → q{} (q{} , a) → q{} p2 ist der Fehlerzustand. Welche Zustände sind final? p0 , p3 , p4 . . . . da im ursprünglichen Automaten nur q0 final. a a q{1,3} a q{0} a b q{} b b p0 b a p4 p1 a q{0,1,3} b b a b b p2 a p3 q{0,2} a b a b Abb. 28: Kompletter DFA 2 Abb. 27: Kompletter DFA 1 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-41 (135) 3.1.3 Gleichwertigkeit von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-42 (136) 3.1.3 Gleichwertigkeit von DFA und NFA Ergänzung Aufgaben Wie wandeln wir den NFA in einen DFA um? a q0 q3 q1 e b e q2 c b Abb. 29: NFA – Beispiel Aufgabe 3.3 (DFA-NFA) Wandeln Sie folgenden NFA in einen DFA um: ( s , e ) → q1 (q1 , bb) → q1 Finalzustände: q1 und q2 . Ganz analog. Und was machen wir mit den e-Kanten? Startzustand ist nicht q{0} , sondern q{0,1,2} , denn q1 und q2 sind vom Startzustand q0 aus OHNE Bandeingabe erreichbar. Startzustand: s. (q1 , a) → q1 (s, aa) → q2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-43 (137) 3.1.3 Gleichwertigkeit von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-44 (138) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung DFA in NFA DFA und NFA Der DFA arbeitet deterministisch, der NFA indeterministisch. Automat liefert keine Ausgabe. Man bezeichnet solche Automaten als Akzeptor. Bemerkung 3.7 (DFA und NFA) DFA: totale Zustandsübergangsfunktion NFA: nicht total, indeterministisch, Zustandsübergangsrelation Wie wandelt man einen DFA in einen NFA um? Man muss am DFA nichts verändern, da jeder DFA auch ein NFA ist. Man könnte die Automaten folglich abweichend konfigurieren durch: Kriterium Ausgabe Arbeitsweise verarbeitete Zeichen Definiertheit Man kann Fehlerzustände weglassen. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-45 (139) 3.1.3 Gleichwertigkeit von DFA und NFA Totalität / Partialität 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-46 (140) 3.1.3 Gleichwertigkeit von DFA und NFA DFA/NFA – Unterschiede Vorlesung/JFLAP Automaten mit Ausgabe Bemerkung 3.8 (Automaten mit Ausgabe) DFA – Unterschiede Vorlesung/JFLAP Vorlesung Totalität nur 1 Definiertheit verarbeitete Zeichen leerer String Möglichkeiten nein (Akzeptor) / ja deterministisch / indeterministisch nur 1 / beliebig viele (einschl. e) Es gibt zwei Erweiterungen des endlichen Automaten, die Ausgaben erzeugen können: JFLAP Partialität beliebig viele (einschl. e) λ oder ε e Mealy-Automat 2 Moore-Automat Mealy-Automat gibt bei jedem Zustandsübergang ein Zeichen aus. NFA – Unterschiede Vorlesung/JFLAP: Darstellung des leeren Strings 3 Automatentheorie 1 Moore-Automat gibt in Abhängikeit des erreichten Zustands ein Zeichen aus. Theoretische Informatik 3.1 Endliche Automaten Folie 3-47 (141) 3.1.4 Sprachen von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-48 (142) 3.1.4 Sprachen von DFA und NFA Sprachen von DFA und NFA Reguläre Sprachen und reguläre Ausdrücke Satz 3.9 (Reguläre Sprachen) Eine Sprache ist regulär genau dann, wenn sie durch einen regulären Ausdruck beschrieben werden kann. Offene Fragen: Welche Sprachen werden von endlichen Automaten akzeptiert? Bemerkung 3.10 (Reguläre Sprachen) Welche Eigenschaften haben sie? Beachten Sie, dass es zu jeder Sprache, die mit einem regulären Ausdruck darstellbar ist, auch einen DFA/NFA gibt, der sie akzeptiert. Umgekehrt gilt dies auch. Reguläre Ausdrücke und DFA/NFA sind also bezüglich ihrer Leistungskraft äquivalent. Die von DFA/NFAs akzeptierten Sprachen sind die regulären Sprachen. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-49 (143) 3.1.4 Sprachen von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-50 (144) 3.1.4 Sprachen von DFA und NFA Reguläre Sprachen und DFA/NFA Reguläre Sprachen und DFA/NFA Davor: String, der entweder (ab)∗ oder b(a)∗ genügen muss. q3 e .... s Wie wandelt man einen regulären Ausdruck in einen DFA/NFA um? Betrachten die Sprache ((ab)∗ ∪ b(a)∗ )b. b .... q1 b q2 e q4 Zunächst: Zeichenkette muss mit einem b enden. s q1 Jetzt müssen wir nur noch die beiden Teilmuster (in q3 und q4) darstellen. ab q2 q3 e e s q1 e q4 b e q5 a b q2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-51 (145) 3.1.4 Sprachen von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-52 (146) 3.1.4 Sprachen von DFA und NFA Reguläre Sprachen und DFA/NFA Reguläre Ausdrücke Was müssen wir ändern, wenn wir den regulären Ausdruck modifizieren: ((ab)∗ ∪ b(a)∗ )+ b? ab q3 e q1 e q4 b UNIX: Muster [A-Z][A-z]*[A-Z] e s b q2 e q5 e a Zusatzaufgabe: Wandeln Sie diesen NFA in einen DFA um. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-53 (147) 3.1.4 Sprachen von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-54 (148) 3.1.4 Sprachen von DFA und NFA Eigenschaften Beweis der Regularität Beispiel 3.8 (Reguläre Sprache) Satz 3.11 (Reguläre Sprachen – Abgeschlossenheit) Die Menge der durch 6, also durch 3 und 2 teilbaren natürlichen Zahlen ist eine reguläre Sprache. Teil 1: Die geraden Zahlen sind regulär. Σ = (0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9) . . . Menge aller Ziffern. Menge aller natürlichen Zahlen: Die Klasse aller durch einen endlichen Automaten akzeptierten Sprachen ist abgeschlossen bezüglich Vereinigung Durchschnitt Konkatenation (Produkt) L1 = 0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)Σ∗ Kleene star Die Menge der geraden Zahlen wird dann definiert als: Komplement L2 = L1 ∩ Σ∗ (0 ∪ 2 ∪ 4 ∪ 6 ∪ 8) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-55 (149) 3.1.4 Sprachen von DFA und NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-56 (150) 3.1.4 Sprachen von DFA und NFA Beweis der Regularität DFA/NFA Zusammenfassung 3.12 (DFA/NFA) Beispiel 3.8 cont. deterministisch Teil 2: Durch 3 teilbare Zahlen sind regulär. Konstruieren einen DFA über Quersumme. DFA ja überall eindeutig definiert ja NFA nein nein 3 Zustände: Bisherige Quersumme ist 0/1/2 mod 3. Teil 3: Reguläre Sprachen sind abgeschlossen bezüglich des Durchschnitts. Wann wird String akzeptiert ? Band gelesen und Finalzustand Band gelesen und Finalzustand DFA: alles eindeutig spezifiziert. Bilden Durchschnitt aus durch 2 bzw. 3 teilbaren Zahlen. DFA/NFA akzeptiert eine Zeichenkette, wenn nach dem Einlesen der Zeichenkette ein finaler Zustand erreicht ist. Beweis fertig. Beim NFA können Zustandsübergänge fehlen. 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-57 (151) 3.1.4 Sprachen von DFA und NFA Aufgaben 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-58 (152) 3.1.4 Sprachen von DFA und NFA Aufgaben Aufgabe 3.4 (DFA) Aufgabe 3.6 (Regulärer Ausdruck) Ist die Sprache ⊂ {a, b}∗ , in der jedes Wort gleich viele a und b enthält, durch einen endlichen Automaten darstellbar? Begründen Sie Ihre Vermutung. Beschreiben Sie die Sprache, die durch den regulären Ausdruck ab∗ a definiert ist. Entwickeln Sie für diese Sprache einen endlichen Automaten. Aufgabe 3.5 (Regulärer Ausdruck) Aufgabe 3.7 (End- und Finalzustand) Beschreiben Sie die Sprache (aufgebaut aus a und b), die nur Zeichenketten enthält, wo beliebig viele a gefolgt von beliebig vielen b sind, durch einen regulären Ausdruck! Entwickeln Sie dann – auf der Basis des regulären Ausdrucks – einen endlichen Automaten. Was ist der Unterschied zwischen End- und Finalzustand? Aufgabe 3.8 (Zustand und Konfiguration) Was ist der Unterschied zwischen Zustand und Konfiguration? 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-59 (153) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-60 (154) 3.2.1 Kontextfreie Grammatik Kontextfreie Sprachen und Kellerautomaten Kontextfreie Grammatik Beispiel 3.9 (Grammatik) Satz Nominal Artikel Adjektiv Substantiv Verb Die Lösung eines Problems besteht darin, jemanden zu finden, der das Problem löst. Van Herpens Gesetz Arthur Bloch, Murphy’s Law, 1981 Nominal Verb Artikel Adjektiv Substantiv das|die kleine|große Klavier|Katze schläft → → → → → → Damit ist beispielsweise der Satz „Die große Katze schläft“ darstellbar. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-61 (155) 3.2.1 Kontextfreie Grammatik 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-62 (156) 3.2.1 Kontextfreie Grammatik Grundprinzip der Grammatiken Grammatik Beispiel 3.10 (Grammatik) Zeichenketten generieren Welche Zeichenketten werden durch die folgende Grammatik erzeugt? beginnend mit einem Startsymbol (hier Satz) S B B nicht deterministisch Sind alle Platzhalter wie Satz ersetzt, so ist ein syntaktisch korrekter Satz (String) generiert. Menge aller dieser Zeichenketten: Sprache dieser Grammatik. → aBa → e → bbB Zeichenketten müssen mit einem a beginnen und enden. Dazwischen: gerade Anzahl von b (einschl. 0 b, also e). 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-63 (157) 3.2.1 Kontextfreie Grammatik 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-64 (158) 3.2.1 Kontextfreie Grammatik Wozu Grammatiken ? Grammatik Beispiel 3.11 (Reguläre Ausdrücke und Grammatiken) Betrachten C-Programme (als eine Zeichenkette) Schlüsselwörter (C hat 39): als 39-elementige Liste darstellbar Menge der Bezeichner einer Programmiersprache: auch endlich. Der reguläre Ausdruck a(a∗ ∪ b∗ )b in Regelform : S → aM Aber: Sie ist zu groß, um sie in Form einer Liste darzustellen. M A A Z.B. bei 31 relevanten Stellen und 26 Buchstaben (groß und klein) sowie 10 Ziffern und dem Unterstrich: 53 ∗ 6330 Bezeichner möglich !! Dennoch muss ein Compiler diese erkennen bzw. Fehler in den Bezeichnern erkennen können. Notwendigkeit der kompakten Beschreibung der korrekten Zeichenketten: Grammatiken. 3 Automatentheorie Folie 3-65 (159) 3.2.1 Kontextfreie Grammatik A b aA M B B → → → B b bB Durch M → A und M → B verhindern wir, dass a und b – zwischen dem linken a und dem rechten b – gemischt auftreten können. Durch folgende Ableitung kann man die Zeichenkette aaaab erzeugen: S ; aM ; aA ; aaA ; aaaA ; aaaaA ; aaaab Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten → → → 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-66 (160) 3.2.1 Kontextfreie Grammatik Graphische Darstellung – Ableitungsbaum Vorteil von Grammatiken S a M A a einfache Beschreibung einer Sprache einfache Prüfung, ob eine gegebene Zeichenkette der Grammatik entspricht, möglich (z.B. syntaktische Korrektheit eines JAVAoder C++-Programms) A a A a A b Abb. 30: Ableitungsbaum 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-67 (161) 3.2.1 Kontextfreie Grammatik 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-68 (162) 3.2.1 Kontextfreie Grammatik Grammatik – JAVA Aufgaben Beispiel 3.12 (Java-Grammatik) Die Syntax einer JAVA-Klasse kann ebenso durch Regeln beschrieben werden: S R R B N → → → → → Aufgabe 3.9 (Grammatik) R class N {B } public private Suchen Sie im WWW nach einer Sprachdefinition von JAVA bzw. C++ mittels Grammatik-Regeln. ... ... Beschreiben Sie Teile von JAVA bzw. C++ durch reguläre Ausdrücke. Vorteil von Grammatiken: Aus Grammatik-Regeln kann man automatisch einen Syntax-Prüfer generieren. Sogar ein Compiler kann daraus erzeugt werden. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-69 (163) 3.2.1 Kontextfreie Grammatik 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-70 (164) 3.2.1 Kontextfreie Grammatik Grammatik Kontextfreie Grammatiken Beispiel 3.13 (Grammatik) Betrachten Sprache der Wörter (über a, b), die nur aus ab-Blöcken bestehen. Zum einen kann das Wort leer sein (0 ab-Blöcke): Eine kontextfreie Grammatik G ist ein Quadrupel (V , Σ, R , S ), wobei V ist ein Vokabular Alphabet Σ (Terminalsymbole) ⊂ V S→e Sonst muss das Wort mit einem ab-Block beginnen. Was darf dahinter stehen? Ein beliebiges korrektes Wort. Dies symbolisieren wir durch den Buchstaben S. S → abS Damit ist unsere Grammatik schon komplett. 3 Automatentheorie Definition 3.13 (Kontextfreie Grammatik) Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-71 (165) 3.2.1 Kontextfreie Grammatik R (Regeln) ist eine endliche Teilmenge von (V \Σ) × V ∗ S (Startsymbol) ∈ (V \Σ) Die Elemente der Menge N = V \Σ werden Nichtterminale genannt. Das Vokabular enthält sowohl Σ (Terminale) als auch die Nichtterminale. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-72 (166) 3.2.1 Kontextfreie Grammatik Kontextsensitive Grammatik Allgemeine Grammatik Definition 3.14 (Kontextsensitive Grammatik) Eine kontextsensitive Grammatik G ist ein Quadrupel (V , Σ, R , S ) V ist ein Vokabular Linke Regelseite: Beliebige Kombinationen aus Nichtterminal- und Alphabet Σ (Terminalsymbole) ⊂ V R (Regeln) ist eine endliche Teilmenge von V + × V ∗ mit I w1 uw2 → w1 vw2 , wobei u ∈ (V \Σ) und w1 , w2 , v ∈ (V \{S })∗ mit v 6= e oder I S →e S (Startsymbol) ∈ (V \Σ) Terminalsymbolen (außer e). 3. Punkt der Definition muss modifiziert werden: R (Regeln) ⊂ V + × V ∗ Jede kontextfreie Grammatik ist auch kontextsensitiv. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-73 (167) 3.2.1 Kontextfreie Grammatik Kf-Grammatiken – Regelanwendung und erzeugte Sprache 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.1 Kontextfreie Grammatik Aufgaben Terminalsymbole (Alphabet): Σ Aufgabe 3.10 (Grammatik) Nichtterminalsymbole: N = V \Σ Sei G = (V , Σ, R , S ) mit Relation →G (die Grammatik-Regeln) X ⇒∗G Y : Man kommt durch Anwendung von Grammtikregeln (endlich oft) von X zu Y . Dabei ist auch die Anwendung auf Teilstrings erlaubt. Durch G erzeugte Sprache: L(G) = {w ∈ Σ∗ : S ⇒∗G w } Menge aller Zeichenketten, die sich durch Anwendung von Regeln (beginnend mit dem Startsymbol) erzeugen lassen. V = {S , A, N , Verb, P } ∪ Σ, Σ = {jim, big , green, cheese, ate}, S →G PVerbP A →G big P →G N P →G AP R= A →G green N →G cheese N →G jim Verb →G ate Welche Sätze werden durch diese Grammatik erzeugt? Theoretische Informatik Folie 3-74 (168) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-75 (169) 3.2.1 Kontextfreie Grammatik 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-76 (170) 3.2.1 Kontextfreie Grammatik Syntax der Aussagenlogik – kontextfreie Grammatik Beispiel – Arithmetische Ausdrücke Beispiel 3.14 (Grammatik – Aussagenlogik) Für die aussagenlogischen Variablen wird stellvertretend nur eine Konstante var verwendet. Sei Σ = {var, ∧, ∨, ¬, (, ), →, ↔}, V = Σ ∪ {S }. S →G S →G S →G R= S →G S →G S →G Beispiel 3.15 (Arithmetische Ausdrücke) Sei G = (W , Σ, R , E ) mit W = {E , O } ∪ Σ, var (S ∨ S ) (S ∧ S ) ¬S (S → S ) (S ↔ S ) 3 Automatentheorie Σ = {x , +, −, ∗, /}, E →G E O E O →G ∗ R= O →G / Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-77 (171) 3.2.1 Kontextfreie Grammatik E →G x O →G + O →G − 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-78 (172) 3.2.1 Kontextfreie Grammatik Aufgaben Kontextfreie Grammatik Beispiel 3.16 (Grammatik) Sei G = (W , Σ, R , S ) mit Aufgabe 3.11 (Arithmetische Ausdrücke) W = {S , A} ∪ Σ, Die Arithmetik-Grammatik berücksichtigt nicht die stärkere Bindung von Multiplikation und Division. Was muss man verändern, um dies zu berücksichtigen? Und wie kann man Klammern integrieren? 1 2 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-79 (173) 3.2.1 Kontextfreie Grammatik Σ = {a, b}, S →G AA A →G a R= A →G Ab A →G AAA A →G bA Welche Sprache wird erzeugt? Wie sieht ein NFA für diese Sprache aus? 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-80 (174) 3.2.2 Backus-Naur-Form für kontextfreie Sprachen Zwischenfazit Backus-Naur-Form für kontextfreie Sprachen Eine äquivalente Repräsentation für kontextfreie Sprachen ist die Backus-Naur-Form. Welche Sprachen und Beschreibungsmittel haben wir bisher? Sprache reguläre Grammatik ?? Automat DFA / NFA kontextfreie kontextfreie Grammatik ?? 3 Automatentheorie Beispiel 3.17 (Backus-Naur-Form) sonst reguläre Ausdrücke ?? <Bezeichner> ::= <Buchstabe> | _ | <Bezeichner><Buchstabe> | <Bezeichner> _ | <Bezeichner> <Ziffer> <Buchstabe> ::= a|b|c|d| .... |z <Ziffer> ::= 0|1|2|3|4|5|6|7|8|9 Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-81 (175) 3.2.3 Reguläre und kontextfreie Sprachen Reguläre Grammatiken 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-82 (176) 3.2.3 Reguläre und kontextfreie Sprachen Reguläre und kontextfreie Sprachen Definition 3.15 (Reguläre Grammatik) Eine reguläre Grammatik G ist ein Quadrupel (V , Σ, R , S ), wobei V ist ein Vokabular Alphabet Σ (Terminalsymbole) ⊂ V Nicht jede kontextfreie Sprache ist regulär: {ai bi |i = 1, 2, . . .}. S (Startsymbol) ∈ (V \Σ) Wir wissen schon: Reguläre Sprachen sind genau die Sprachen, die durch einen endlichen Automaten akzeptiert werden. R (Regeln) ist eine endliche Teilmenge von (V \Σ) × Σ∗ ((V \Σ) ∪ {e}) Die Menge N = V \Σ enthält alle Nichtterminale. Was hat sich geändert? Nichtterminale in der rechten Regelseite nur noch an letzter Position: R ⊂ (V \Σ) × Σ∗ ((V \Σ) ∪ {e}) Jede reguläre Sprache ist auch kontextfrei. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-83 (177) 3.2.3 Reguläre und kontextfreie Sprachen 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-84 (178) 3.2.3 Reguläre und kontextfreie Sprachen Reguläre Sprache Umwandlung reguläre Grammatik – DFA/NFA Beispiel 3.18 (Umwandlung reguläre Grammatik – DFA/NFA) Der reguläre Ausdruck a(a∗ ∪ b∗ )b als reguläre Grammatik: Satz 3.16 (Reguläre Sprachen und Grammatiken) S M M Eine Sprache ist regulär, gdw. eine reguläre Grammatik für sie existiert. →G →G →G aM A B A B aA bB →G →G Damit haben wir für reguläre Sprachen 3 Formen der Darstellung: A B →G →G b b b B reguläre Ausdrücke DFA/NFA a s e b e b f M reguläre Grammatiken A a Abb. 31: Umwandlung reg. Grammatik – NFA 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-85 (179) 3.2.3 Reguläre und kontextfreie Sprachen 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-86 (180) 3.2.3 Reguläre und kontextfreie Sprachen Umwandlung DFA/NFA – reguläre Grammatik Umwandlung regulärer Ausdruck – reguläre Grammatik Beispiel 3.20 (Umwandlung reguläre Grammatik – regulärer Ausdruck) Wir betrachten (a∗ bab∗ a) ∪ b(ab)∗ . Zunächst müssen wir ∪ abbilden: Beispiel 3.19 (Umwandlung DFA/NFA – reguläre Grammatik) ab q3 e e s q1 e q4 b e b q2 S →G Q3 Q3 →G abQ3 Q3 →G Q1 e q5 a Q1 →G bQ2 Q2 →G e S →G Q4 Q4 →G bQ5 Q5 →G aQ5 Q5 →G Q1 Q1 →G S S →G X S →G Y Den rechten Term b(ab)∗ bilden wir wie folgt ab: Y →G bN N →G abN N →G e X X B B Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-87 (181) 3.2.3 Reguläre und kontextfreie Sprachen 1. Zeichen ist ein b. Danach können mehrere ab kommen. Den linken Term a∗ bab∗ a stellen wir wie folgt dar: q2 (Q2 ) ist final, also kann die Zeichenkette hier enden. 3 Automatentheorie (Ausdruck a∗ bab∗ a) (Ausdruck b(ab)∗ ) →G →G →G →G aX baB bB a Zunächst können a kommen. Dann kommt ba. Dann können mehrere b kommen. Zum Schluss kommt ein a. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-88 (182) 3.2.3 Reguläre und kontextfreie Sprachen Aufgaben Beispiel 3.21 (Reguläre Sprache) Sprache über {a, b}∗ , irgendwo kommt ein ab oder ba vor. Zunächst der reguläre Ausdruck: Irgendwo kommt ein ab oder ein ba: (ab ∪ ba) Was darf davor kommen? Beliebige a/b-Strings: (a ∪ b)∗ Aufgabe 3.12 (NFA – Grammatik) Was darf danach kommen? Beliebige a/b-Strings: (a ∪ b)∗ Wie wandelt man einen NFA in eine reguläre Grammatik um? Hinweis: Sie können sich anschauen, wie JFLAP dies tut. Also erhalten wir: (a ∪ b)∗ (ab ∪ ba)(a ∪ b)∗ Nun die reguläre Grammatik: Am Anfang beliebige a/b-Strings: S →G aS , S →G bS Dann kommt ein ab oder ein ba: S →G abX , S →G baX Am Schluss wieder beliebige a/b-Strings: X →G aX , X →G bX , X →G e 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.4 Kellerautomaten Kellerautomaten Nicht jede kontextfreie Sprache ist auch regulär. Wie sieht ein Automat für kontextfreie Sprachen aus? Idee: Ergänzen den Automaten durch einen Speicher. Folie 3-89 (183) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-90 (184) 3.2.4 Kellerautomaten Kellerautomaten Wir müssen unsere Regeln erweitern. Die Regel q1, a, b → q2, c bedeutet: Wenn wir im Zustand q1 sind vom Band ein a lesen und und vom Keller (von oben) ein b lesen, gehen wir in den Zustand q2 dann und schreiben auf den Keller (oben drauf) ein c. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-91 (185) 3.2.4 Kellerautomaten 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-92 (186) 3.2.4 Kellerautomaten Graphische Darstellung – Kellerautomat Kellerautomaten Beispiel 3.22 (Kellerautomat) q1 b, e ;b a, e ;a q0 e , e; e Kellerautomat für {wcw R : w ∈ {a, b}∗ } e ,Z ;e a, e; e b, e; e b, b; e a, a; e (s, a, e) → (s, a) (s, b, e) → (s, b) (s, c , e) → (f , e) ∆: (f , a, a) → (f , e) (f , b, b) → (f , e) q2 Abb. 32: Kellerautomat in JFLAP b, e; b a, e; a s c, e; e Abb. 33: Kellerautomat für wcw 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-93 (187) 3.2.4 Kellerautomaten b, b; e a, a; e f R 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-94 (188) 3.2.4 Kellerautomaten Kellerautomat Beispiel 3.23 (Kellerautomat – Abarbeitung) Definition 3.17 (Kellerautomat) s b a c a b s b a c a b b s b a c a b a b M = (K , Σ, Γ, ∆, s, F ) mit f b a c a b a b f b a c a b b f b a c a b 3 Automatentheorie K . . . endliche Menge von Zuständen Σ . . . endliches Alphabet (input symbols) Γ . . . endliches Alphabet (stack symbols) s ∈ K . . . initialer Zustand F ⊂ K . . . Finalzustände ∆ ⊂ (K × Σ∗ × Γ∗ ) × (K × Γ∗ ) . . . Zustandsübergangsrelation (endlich) Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-95 (189) 3.2.4 Kellerautomaten schreiben. (p, u , β) → (q , γ) ist anwendbar, wenn: I Folie 3-96 (190) Kellerautomat – Bemerkungen 2 ((p, u , β), (q , γ)) ∈ ∆ werden wir im folgenden mit dem Pfeil I Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.4 Kellerautomaten Kellerautomat – Bemerkungen 1 I 3 Automatentheorie Automat M ist im Zustand p. Kellerspeicher hat als oberste Elemente die Zeichenkette β. Auf dem Band kommen als nächste Zeichen der String u. Ist die Regel anwendbar, so geht M in den Zustand q und ersetzt im Keller β durch γ. ∆ ist als Relation definiert ; indeterministischer Automat Häufig ist Σ = Γ. Konvention: Oberste Elemente des Keller abc, so a ganz oben. Man kann auf dem Keller mit Zeichenketten operieren, z.B. (s, a, bb) → (q , aba) oder (p, e, bb) → (q , e). Beachten Sie, dass man auf dem Keller mit eigenen Symbolen (Menge Γ) arbeiten kann. Beobachtung: Die bisher vom Band gelesenen Zeichen sind für das Resultat der Verarbeitung unwichtig. analog: Konfiguration und Konfigurationsübergang, `∗M und `M . M akzeptiert ein Wort w, wenn es einen Weg zu einer finalen Konfiguration gibt: (s, w , e) `∗M (p, e, e), p ∈ F . Jeder endliche Automat ist ein Kellerautomat. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-97 (191) 3.2.4 Kellerautomaten Akzeptierte Sprache 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-98 (192) 3.2.4 Kellerautomaten Kellerautomaten Beispiel 3.24 (Kellerautomat – Palindrome) Definition 3.18 (Akzeptierte Sprache) Eine Zeichenkette w ∈ Σ∗ heißt akzeptiert durch M, gdw. ein q ∈ F existiert, so dass (s, w , e) `∗M (q , e, e) gilt. Von M akzeptierte Sprache: L(M ) = {w |w wird durch M akzeptiert}. Kellerautomat für {ww R : w ∈ {a, b}∗ }. K = {s, f }, Σ = Γ = {a, b}, F = {f } (s, a, e) → (s, a) b, e; b (s , b , e ) → (s , b ) a, e; a (s , e , e ) → (f , e ) ∆: e, e; e (f , a , a ) → (f , e ) s (f , b , b ) → (f , e ) b, b; e a, a; e f 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-99 (193) 3.2.4 Kellerautomaten 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-100 (194) 3.2.4 Kellerautomaten Kellerautomaten Kellerautomaten Beispiel 3.25 cont. Zunächst der Kellerautomat: Beispiel 3.25 (Kellerautomat – Klammerstruktur) Alle x können wir einfach ignorieren. Kellerautomat, der untersucht, ob die Klammerstruktur eines Programms oder Terms korrekt ist, d.h.: Kommt eine öffnende Klammer, legen wir diese auf den Keller. Kommt eine schließende Klammer, löschen wir eine öffnende vom Keller. Gleich viele öffnende und schließende Klammern Nicht mehr schließende als öffnende Klammern Betrachten nur runde Klammern (, ). Alle sonstigen Terme werden durch ein x dargestellt. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-101 (195) 3.2.4 Kellerautomaten (s, ), () → (s, e) (s, (, e) → (s, () ∆: (s, x , e) → (s, e) ), (; e (, e; ( x, e; e s 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-102 (196) 3.2.4 Kellerautomaten Kellerautomat und Grammatik Aufgaben Beispiel 3.25 cont. Aufgabe 3.13 (Kellerautomat) Grammatik: Zu jeder öffnenden Klammer muss eine schließende generiert werden. Zwischen den Klammern darf ein beliebiger Ausdruck (x) stehen. S S S S →G →G →G →G Automat für L ⊂ {a, b}∗ , so dass eine gleiche Anzahl von a und b im Wort gegeben ist. Benötigen Sonderzeichen, um leeren Keller zu erkennen: (s, e, e) → (q1 , Z ) Sonderzeichen Z zum Schluss wieder löschen, da Keller leer sein muss. (S ) xS Sx e Finden Sie auch eine Grammatik für diese Sprache! 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-103 (197) 3.2.4 Kellerautomaten 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-104 (198) 3.2.4 Kellerautomaten Verarbeitung mit Kellerautomat Verarbeitung mit KF-Grammatik Beispiel 3.26 (Kellerautomat – Abarbeitung) Beispiel 3.27 (Verarbeitung mit KF-Grammatik) {ww R : w ∈ {a, b}∗ }, K = {s, f }, Σ = Γ = {a, b}, F = {f } (s, a, e) → (s, a) (s , b , e ) → (s , b ) (s, e, e) → (f , e) ∆: (f , a, a) → (f , e) (f , b, b) → (f , e) wende Regel 1 an: wende Regel 2 an: wende Regel 3 an: wende Regel 5 an: wende Regel 4 an: 3 Automatentheorie (s, abba , e) (s, bba , a) (s, ba , ba) (f, ba , ba) (f, a , a) (f, e , e) Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-105 (199) 3.2.4 Kellerautomaten {ww R : w ∈ {a, b}∗ } S S S →G →G →G e aSa bSb wende Regel 2 an: wende Regel 3 an: wende Regel 1 an: S aSa abSba abba 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-106 (200) 3.2.4 Kellerautomaten Kellerautomaten – Unterschiede Vorlesung/JFLAP Kellerautomaten Zusammenfassung 3.19 (Kellerautomaten) leerer String Keller zu Beginn Wann wird String akzeptiert? Vorlesung e leer JFLAP λ oder ε Z Finalzustand erreicht und Keller leer Finalzustand erreicht oder Keller leer Der Kellerautomat heißt unter JFLAP: Pushdown-Automat. Der Kellerautomat liest das Band einmal von links nach rechts. Kellerautomat deterministisch nein überall eindeutig definiert nein Wann wird String akzeptiert ? Band gelesen, Finalzustand, Keller leer Kellerautomat ist indeterministisch. Bleibt der Kellerautomat stecken und findet keine anderen Wege, dann akzeptiert er den String nicht. Kellerautomat hat einen Hilfsspeicher, den Keller. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-107 (201) 3.2.5 Kellerautomaten und kontextfreie Grammatiken 3 Automatentheorie Folie 3-108 (202) 3.2.5 Kellerautomaten und kontextfreie Grammatiken Kellerautomaten und kontextfreie Grammatiken Kurzes Resümee Welche Sprachen und Beschreibungsmittel haben wir bisher? Satz 3.20 (Kontextfreie Sprachen) Sprache reguläre Klasse der Sprachen, die durch Kellerautomaten akzeptiert werden, ist genau die Klasse der kontextfreien Sprachen. 2 unterschiedliche Beschreibungsmittel für ein und dieselbe Sprachklasse. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-109 (203) 3.2.6 Eigenschaften von kontextfreien Sprachen kontextfreie Grammatik reguläre Grammatik kontextfreie Grammatik Automat DFA / NFA Kellerautomaten sonst reguläre Ausdrücke ?? 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-110 (204) 3.2.6 Eigenschaften von kontextfreien Sprachen Eigenschaften von kontextfreien Sprachen Leistungskraft von Kellerautomaten Kontextfreie Sprachen sind: abgeschlossen bezüglich Mengenvereinigung, Konkatenation, Kleene star Es gibt Sprachen, die nicht kontextfrei sind: {an bn c n |n ∈ IN}. nicht abgeschlossen bezüglich Durchschnitt, Komplement abgeschlossen bezüglich Durchschnitt mit regulären Sprachen 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-111 (205) 3.2.7 Sprachdefinition mit FLEX 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-112 (206) 3.2.7 Sprachdefinition mit FLEX Sprachdefinition mit FLEX FLEX Flex benötigt eine Datei, die folgenden Aufbau hat: FLEX steht für fast lexical analyzer generator. FLEX analysiert Text und kann benutzt werden, um Texte bezüglich einer Sprachdefinition zu prüfen, Scanner für Texte zu generieren. FLEX erlaubt reguläre Grammatiken. Definitionen %% Regeln %% Funktionen Die Datei hat die Extension .l. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.7 Sprachdefinition mit FLEX FLEX Folie 3-113 (207) 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-114 (208) 3.2.7 Sprachdefinition mit FLEX FLEX Beispiel 3.28 (FLEX) Eine Beispieldatei: int num_lines = 0, num_chars = 0; %% \n ++num_lines; ++num_chars; . ++num_chars; %% yywrap() {printf( "# of lines = %d, # of chars = %d\n", num_lines, num_chars ); } Aufruf (unter Linux): flex datei.l gcc -g lex.yy.c -lfl (oder gcc -DYY_MAIN lex.yy.c) Es entsteht eine Datei a.out, die ausführbar ist. Hinweis: Die Funktion yywrap wird nach Erreichen des Dateiendes aufgerufen, sie muss deshalb in datei.l definiert werden. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-115 (209) 3.2.7 Sprachdefinition mit FLEX 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-116 (210) 3.2.7 Sprachdefinition mit FLEX Scanner Pascal-like language Scanner Pascal-like language – 2 Beispiel 3.29 (Scanner Pascal-like language) #include <math.h> DIGIT [0-9] ID [a-z][a-z0-9]* %% {DIGIT}+ {printf( "An integer: %s (%d)\n", yytext, atoi( yytext ) );} {DIGIT}+"."{DIGIT}* {printf( "A float: %s (%g)\n", yytext, atof( yytext ));} if|then|begin|end|procedure|function printf( "A keyword: %s\n", yytext ); 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-117 (211) 3.2.7 Sprachdefinition mit FLEX Beispiel 3.29 cont. {ID} printf( "An identifier: %s\n", yytext ); "+"|"-"|"*"|"/" printf( "An operator: %s\n", yytext); "{"[^}\n]*"}" /* eat up one-line comments */; [ \t\n]+ /* eat up whitespace */; . printf("Unrecognized character: %s\n", yytext); %% yywrap() {} 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-118 (212) 3.2.8 Zwischenfazit Aufgaben Resümee Aufgabe 3.14 (JAVA und FLEX) Beschreiben Sie die korrekte Syntax von JAVA-Statements wie do, try, for, switch etc. durch eine Grammatik. Verwenden Sie FLEX, um Ihre Grammatik zu testen. Welche Sprachen und Beschreibungsmittel haben wir bisher? Sprache regulär Aufgabe 3.15 (FLEX) kontextfrei Entwickeln Sie einen regulären Ausdruck für die Sprache (über dem Alphabet {a, b}), die nur Wörter enthält, die mindestens 2 b enthält. Entwickeln Sie dann mittels FLEX ein Programm, welches für einen gegebenen a/b-String prüft, ob er zu dieser Sprache gehört. 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-119 (213) Grammatik reguläre Grammatik kontextfreie Grammatik Automat DFA / NFA sonst reguläre Ausdrücke Kellerautomat ?? 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-120 (214) 3.3.1 Definition Turingmaschinen Bisherige Automaten If a program is useful, it will have to be changed. Arthur Bloch, Murphy’s Law, 1981 Endliche Automaten Kellerautomaten ; 3 Automatentheorie 3.3 Turingmaschinen 3.3.1 Definition Turing-Maschine – Charakteristika Theoretische Informatik Folie 3-121 (215) Beide nicht allgemein genug! 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-122 (216) 3.3.1 Definition Turing-Maschine Neu: Band, welches nach rechts und links unbeschränkt ist Lese- / Schreibkopf endliche Menge von Zuständen, Zustandsübergänge Die TM ist überraschend einfach. Im gewissen Sinn ist sie das stärkste Computer-Modell. Lesekopf kann auch schreiben und sich auch wieder nach links bewegen Band hat keinen rechten/linken Rand Verarbeitung erfolgt folgendermaßen: I I I I Zeichen lesen Übergang in einen neuen Zustand Zeichen an aktueller Bandposition überschreiben Kopf nach links/rechts bewegen oder auf aktueller Position lassen 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-123 (217) 3.3.1 Definition 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-124 (218) 3.3.1 Definition Turing-Maschine Turing-Maschine Was müssen wir ändern? Im Prinzip nur die Regelform. Die Regel (q0 , a) → (q2 , c , r ) Turing-Maschine kann beliebig lang arbeiten bedeutet: Brauchen folglich einen Haltezustand h Wenn wir im Zustand q0 sind TM kann Antwort auf das Band schreiben vom Band ein a lesen, und dann gehen wir in den Zustand q2 schreiben auf das Band ein c und und gehen auf dem Band eine Position nach rechts. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-125 (219) 3.3.1 Definition 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-126 (220) 3.3.1 Definition Beispiel Verarbeitung Wir suchen eine Turing-Maschine, die a zu b umwandelt und umgekehrt: ( q0 , a ) → ( q0 , b , r ) 1 ( q0 , b ) → ( q0 , a , r ) 2 (q0 , #) → (q1 , #, l ) 3 Regel (q1 , a) → (q1 , a, l ) 4 (q1 , b) → (q1 , b, l ) 5 (q1 , #) → (h, #, r ) 6 Hinweis: Das Band ist nach links und rechts „unendlich“ mit # aufgefüllt. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-127 (221) 3.3.1 Definition 1 2 1 1 Konfiguration (q0 , #abaa#) (q0 , #bbaa#) (q0 , #baaa#) (q0 , #baba#) (q0 , #babb#) Nr. 0 1 2 3 4 Regel 3 5 5 4 5 6 Konfiguration (q1 , #babb#) (q1 , #babb#) (q1 , #babb#) (q1 , #babb#) (q1 , #babb#) (h, #babb#) 3 Automatentheorie Nr. 5 6 7 8 9 10 Theoretische Informatik 3.3 Turingmaschinen Folie 3-128 (222) 3.3.1 Definition Turingmaschine – Arbeitsweise Darstellungsformen für Turing-Maschinen q0 # a b a a # q0 # b b a a # q0 # b a a a # q0 # b a b a # q0 # b a b b # Auch Turing-Maschinen können wir in Tabellenform darstellen: Zustand q0 q1 Eingabe # a b (q1 , #, l ) (q0 , b, r ) (q0 , a, r ) (h, #, r ) (q1 , a, l ) (q1 , b, l ) .................. Abb. 34: Turingmaschine – Arbeitsweise 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-129 (223) 3.3.1 Definition 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen 3.3.1 Definition Turing-Maschine – Definition Deterministisch oder indeterministisch ? Definition 3.21 (Turing-Maschine) TM = (K , Σ, δ, q0 , A), wobei K ... endl. Menge von Zuständen, h 6∈ K Σ ... Alphabet, Füllzeichen # ∈ Σ Bemerkung 3.22 (Determinismus) A = {l , r , s} ... Aktion Man beachte, dass die Definition eine TM als deterministische Maschine festlegt. q0 ∈ K ... Initialzustand δ : K × Σ → (K ∪ {h}) × Σ × A (totale Fkt.) Das Band ist nach links und rechts mit # aufgefüllt. Wichtig: Die Turing-Maschine 1 schreibt zunächst ein Zeichen auf die aktuelle Position, 2 erst danach bewegt sich der Lese-/Schreibkopf nach links, rechts oder bleibt auf der aktuellen Position (l , r , s). Folie 3-130 (224) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-131 (225) 3.3.1 Definition 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-132 (226) 3.3.1 Definition Konfiguration Beispiel 3.30 (TM) TM, die für Strings (a/b/c) prüft, ob Anzahl von b/c durch 3 teilbar ist. ; Nur ein endliches Teilstück des Bandes ist ungleich #. q1 b; #, R c; #, R a; #, R Unterschied Konfiguration – innerer Zustand Auch die Zeichen links vom Kopf sind wichtig. a; #, R Definition: eine Konfiguration ist ein Element aus: #; N, S (K ∪ {h}) × Σ∗ × Σ × Σ∗ b; #, R #; Y, S q0 c; #, R b; #, R c; #, R h (3.3) Eine Konfiguration besteht also aus: #; N, S dem inneren Zustand der TM, q2 den Zeichen links vom Kopf, a; #, R dem aktuellen Zeichen und den Zeichen rechts vom Kopf. Abb. 35: TM in JFLAP für b/c durch 3 teilbar 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-133 (227) 3.3.1 Definition 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-134 (228) 3.3.2 Berechnungen mit Turingmaschinen Konfiguration und Konfigurationsübergang Berechnungen mit Turingmaschinen 1 Halte-Konfiguration: innerer Zustand ist der Haltezustand h 2 Schreibweise für eine Konfiguration: (p, abcbaba) Man hat bei Turing-Maschinen eine Reihe von Freiheitsgraden: Wo steht der Kopf am Anfang? Wie erkennt man das linke/rechte Ende des Eingabestrings? Konfigurationsübergang: analog zur Definition bei den endlichen Automaten Wo steht der Kopf am Ende? Berechnung: endliche Folge von Konfigurationsübergängen 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-135 (229) 3.3.2 Berechnungen mit Turingmaschinen 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-136 (230) 3.3.2 Berechnungen mit Turingmaschinen Berechnungen mit TM – Konventionen Wann akzeptiert eine TM einen String? Eingabe-String links und rechts durch ein # eingeschlossen. Der Kopf steht zu Beginn auf dem ersten Zeichen, also rechts vom linken Begrenzungs-#. Definition 3.23 (Akzeptierte Zeichenkette) Eine TM M hält bei Eingabe w gdw., (q0 , #w #) `∗M (h, . . .). Eine TM akzeptiert einen String, wenn sie den Haltezustand h erreicht. Hält TM, so muss der Kopf auf dem ersten Zeichen des Antwortstrings stehen, also rechts vom linken Begrenzungs-#. Auf dem Band darf ausschließlich die Antwort stehen, sonst nur #. 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-137 (231) 3.3.2 Berechnungen mit Turingmaschinen Folie 3-138 (232) Verallgemeinerte Funktionen Definition 3.24 (Berechnungen mit TM) Bisher: TM bildet strings auf strings ab. Seien Σ0 , Σ1 Alphabete (ohne #). Sei f : Σ∗0 → Σ∗1 . TM berechnet f , falls: Für alle w ∈ Σ∗0 : (q0 , #w #) `∗TM (h, #u #) Theoretische Informatik 3.3 Turingmaschinen 3.3.2 Berechnungen mit Turingmaschinen Berechnungen mit TM Σ0 , Σ1 ⊂ Σ 3 Automatentheorie ⇔ f (w ) = u Existiert zu einer Funktion f eine TM, so heißt f Turing-berechenbar. Mehrstellige Funktionen (strings × . . . × strings → string) : Trennzeichen auf Band: z.B. #string #string . . . # Funktionen über den natürlichen Zahlen – Kodierung durch Strings: 0=e 1=I 2 = II 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-139 (233) 3.3.2 Berechnungen mit Turingmaschinen Definition 3.25 (Turing-Entscheidbarkeit) Eine Sprache L heißt Turing-entscheidbar, falls Beispiel 3.31 (TM) Wir suchen TM als Entscheidungsverfahren für die Sprache L = {w ∈ Σ∗ : |w | ist gerade}, Σ = {a}. M = (K , Σ, δ, q0 ), K = {q0 , . . . , q3 }, Σ = {a, Y, N, #} f : Σ∗ → {Y, N} f (w ) = Folie 3-140 (234) Entscheidungsverfahren Sei L ⊂ Σ∗ . 2 Symbole: Y, N TM schreibt auf das Band Y oder N. Y N Theoretische Informatik 3.3 Turingmaschinen 3.3.2 Berechnungen mit Turingmaschinen TM zur Sprachentscheidung 3 Automatentheorie (q0 , a) (q0 , #) δ : (q1 , a) (q1 , #) falls w ∈ L sonst eine Turing-berechenbare Funktion ist. → → → → (q1 , a, r ) (q3 , #, l ) (q0 , a, r ) (q2 , #, l ) (q2 , a) (q2 , #) (q3 , a) (q3 , #) Auf unnötige Regeln wurde verzichtet. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-141 (235) 3.3.2 Berechnungen mit Turingmaschinen → → → → (q2 , #, l ) (h, N, s) (q3 , #, l ) (h, Y, s) 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-142 (236) 3.3.2 Berechnungen mit Turingmaschinen Entscheidungsverfahren – 2 Semi-Entscheidbarkeit Beispiel 3.32 (TM 2) TM für L = {w ∈ Σ∗ : w = a2k bk , k ≥ 0}, Σ = {a, b}. Definition 3.26 (Semi-Entscheidbarkeit) Eine Sprache L heißt Turing-semientscheidbar, falls eine Turingmaschine existiert, so dass diese TM bei jeder Eingabe eines Wortes aus L das Resultat Y liefert. Falls das Wort nicht aus L ist, kann das Verhalten der TM undefiniert sein. Turing-entscheidbar und Turing-semientscheidbar sind nicht äquivalent. Jede Turing-entscheidbare Sprache ist auch Turing-semientscheidbar, aber nicht umgekehrt. Abb. 36: Turingmaschine – a2k bk 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-143 (237) 3.3.2 Berechnungen mit Turingmaschinen Zustandsübergang Füllzeichen Haltezustand 3.3 Turingmaschinen Theoretische Informatik Folie 3-144 (238) 3.3.3 Kombinationen und Erweiterungen von Turingmaschinen Turing-Maschinen – Unterschiede Vorlesung/JFLAP Vorlesung deterministisch (totale Funktion) # h 3 Automatentheorie TM als Prozedur Ziel: TM als generelles Berechnungsmodell. Frage: TM als Prozeduren? Überlegung: Gibt es Konfigurationsübergänge: JFLAP indeterministisch (Relation) (q1 , w1 a1 u1 ) `∗TM (q2 , w0 w2 a2 u2 ) und 2 (q2 , w2 a2 u2 ) `∗TM (q3 , w3 a3 u3 ) , beliebig viele so ist auch (q1 , w1 a1 u1 ) `∗TM (q3 , w0 w3 a3 u3 ) ein Konfigurationsübergang. 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-145 (239) 3.3.3 Kombinationen und Erweiterungen von Turingmaschinen Kombination von Turing-Maschinen Es gibt 2 Möglichkeiten, Turing-Maschinen zu kombinieren: TM1 hält, dann startet TM2 . In TM0 wird eine Fallunterscheidung gemacht, im Fall i übernimmt dann TMi . 3 Automatentheorie 3.3 Turingmaschinen 3.3.3 Kombinationen und Erweiterungen von Turingmaschinen Erweiterung von Turing-Maschinen TM können wie folgt erweitert werden: 2 Bänder mehrere Köpfe 2-dimensionales Band All diese Erweiterungen sind äquivalent zur einfachen TM. Theoretische Informatik Folie 3-146 (240) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-147 (241) 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-148 (242) 3.3.3 Kombinationen und Erweiterungen von Turingmaschinen Turing-Maschinen Sprachen und Automaten – Ergänzungen Zusammenfassung 3.27 (Turing-Maschinen) Turingmaschine kann sich auf dem Eingabeband frei bewegen und auch schreiben. Die TM schreibt die Antwort auf das Band. The simpler it looks, the more problems it hides. Lee’s Law of Electrical Repair. Die TM ist deterministisch. Ihr Verhalten muss in jeder Situation eindeutig definiert sein. TM hat keinen Hilfsspeicher (sie kann das Band dazu benutzen). Turingmaschine deterministisch ja überall eindeutig definiert ja Wann hält sie an? im Haltezustand 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-149 (243) 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-150 (244) 3.4.1 Chomsky-Hierarchie Bisher . . . Chomsky-Hierarchie Satz 3.28 (Sprachklassen) Typ 0 Grammatik allgemeine 1 (kontextsensitiv) 2 (kontextfrei) kontextsensitiv kontextfrei 3 (regulär) regulär Automat TuringMaschine ?? indet. Kellerautomat DFA/NFA Die Sprachen-Klasse des Typs n ist eine echte Teilmenge der Sprachen-Klasse vom Typ n-1. sonst ?? Typ 0 aufzählbar ?? ?? Typ 1 kontext−sensitiv Typ 2 kontext−frei reguläre Ausdrücke Typ 3 regulär Abb. 37: Chomsky-Hierarchie 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-151 (245) 3.4.1 Chomsky-Hierarchie 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-152 (246) 3.4.2 LL-Sprachen Chomsky-Hierarchie LL-Sprachen Typ-0-Sprachen werden durch Turing-Maschinen akzeptiert. Eine Turing-Maschine akzeptiert eine Zeichenkette, wenn sie bei Eingabe der Zeichenkette anhält. Welcher Automat gehört zu den kontextsensitiven Sprachen? Dies sind die linear-beschränkten indeterministischen Turing-Maschinen. Grammatiken sind elegante Form zur Beschreibung der Syntax einer Sprache. Für effiziente Parser: sinnvoll, sich auf Sprachen zu beschränken, die sich von „links nach rechts“ prüfen lassen. Die Typ-0-Sprachen entsprechen den aufzählbaren Sprachen. 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-153 (247) 3.4.2 LL-Sprachen 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-154 (248) 3.4.2 LL-Sprachen LL-Sprachen – Beispiel LL-Grammatiken Es wird folgende Grammatik betrachtet: S → aSb S→e Prüft man mit dieser Grammatik die Korrektheit einer Zeichenkette, so kann man anhand des nächsten Zeichens in der Zeichenkette erkennen, welche Regel anzuwenden ist. Grammatik arbeitet also mit einer Vorschau von nur 1 Zeichen. Man bezeichnet diese Grammatik als LL(1)-Grammatik: L . . . Eingabe wird von links nach rechts gelesen. L . . . Es wird immer das linkeste Nichtterminal ersetzt. 1 . . . Vorausschau 1 Mit LL1-Grammatiken: deterministisches Verfahren zur Prüfung der Korrektheit einer Zeichenkette Methode des rekursiven Abstiegs LL-Sprachen sind eine Unterklasse der kontextfreien Sprachen. 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-155 (249) 3.4.2 LL-Sprachen 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-156 (250) 3.4.3 Syntaxdiagramme Beispiel – Rekursiver Abstieg Syntaxdiagramm Beispiel 3.33 (Rekursiver Abstieg) S X Y B A → Xa | Yb → s|e → t C A=BC A=B* A B A Jedem Nichtterminal wird eine Prozedur zugeordnet: A Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-157 (251) 3.4.3 Syntaxdiagramme B A=B+ B A=B | C C procedure S procedure X procedure Y case nextSymbol case nextSymbol match(t) s,a : X; match(a) s : match(s) t : Y; match(b) a : else : error else : error 3 Automatentheorie A=e A Sei folgende Grammatik gegeben. Das Zeichen | steht für „oder“: a A A=a Abb. 38: Syntaxdiagramm 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-158 (252) 3.4.4 BISON Syntaxdiagramm BISON Compilerbau mit Grammatiken: JavaStatement CompoundStatement Statement CompoundStatement { Statement } Y Yet A Another C Compiler C Compiler FLEX: nur Scanning (lexikalische Analyse). YACC dagegen führt ein Parsing durch. Abb. 39: Syntaxdiagramm JavaStatements Resultat: Struktur gemäß der vorgegebenen Grammatik 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-159 (253) 3.4.4 BISON Theoretische Informatik Folie 3-160 (254) BISON %% /* Grammar rules and actions follow */ input: /* empty */ | input line ; line: ’\n’ | exp ’\n’ { printf ("\t%.10g\n", $1); } ; exp: NUM { $$ = $1; } | exp exp ’+’ { $$ = $1 + $2; } | exp exp ’-’ { $$ = $1 - $2; } | exp exp ’*’ { $$ = $1 * $2; } | exp exp ’/’ { $$ = $1 / $2; } | exp exp ’^’ { $$ = pow ($1, $2);} /*Exponentiation*/ | exp ’n’ { $$ = -$1; } /* Unary minus */ ; Das Beispiel implementiert einen Rechner in UPN. %{ #define YYSTYPE double #include <math.h> #include <stdio.h> %} %token NUM 3.4 Sprachen und Automaten – Ergänzungen 3.4 Sprachen und Automaten – Ergänzungen 3.4.4 BISON BISON 3 Automatentheorie 3 Automatentheorie Theoretische Informatik Folie 3-161 (255) 3.4.4 BISON BISON %% #include <ctype.h> yylex () { int c; /* skip white space */ while ((c = getchar ()) == ’ ’ || c == ’\t’) ; if (c == ’.’ || isdigit (c)) /* process numbers */ { ungetc (c, stdin); scanf ("%lf", &yylval); return NUM; } if (c == EOF) return 0; /* return end-of-file */ return c; } /* return single chars */ 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen 3.4.4 BISON BISON main () { yyparse (); } #include <stdio.h> yyerror (s) /* Called by yyparse on error */ char *s; { printf ("%s\n", s); } Theoretische Informatik Folie 3-162 (256) 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-163 (257) 3.4.4 BISON 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-164 (258) 3.4.4 BISON BISON BISON Man übersetzt das File: bison <file_name>.y Bison liefert eine Datei namens <file_name>.tab.c. Nun kann man diese Datei kompilieren: # List files in current directory. ls pol.tab.c pol.y # Compile the Bison parser. # ‘-lm’ tells compiler to search math library for pow. cc pol.tab.c -lm -o pol # List files again. ls pol pol.tab.c pol.y Ein Dialog unter pol könnte wie folgt aussehen: ./pol 4 9 + 13 3 7 + 3 4 5 *+-13 3 7 + 3 4 5 * + - n 13 5 6 / 4 n + -3.166666667 3 4 ^ 81 ^D einstelliges Minus n Exponent Eingabeende BISON läuft auf rothko. 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-165 (259) 3.4.5 Übersetzung von Programmiersprachen 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-166 (260) 3.4.5 Übersetzung von Programmiersprachen Übersetzung von Programmiersprachen Beispiel – Syntaxbaum Betrachten den arithmetischen Ausdruck (3 + 1) ∗ 4 − 7. Quellprogramm lexikalische Analyse 2 Interpretationen möglich, die zu SCANNER unterschiedlichen Resultaten führen. Folge von Token syntaktische Analyse Durch Grammatik wird eine Interpretation ausgeschlossen. PARSER − * Ableitungsbaum semantische Analyse und Codegenerierung + * − 7 Zielprogramm Codeoptimierung 3 1 4 optimiertes Zielprogramm 3 4 1 Abb. 41: Syntaxbaum Abb. 40: Übersetzung von Programmiersprachen 3 Automatentheorie + 7 Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-167 (261) 3 Automatentheorie Theoretische Informatik 3.5 Zusammenfassung (Automaten) Folie 3-168 (262) 3.4.6 Resümee Resümee Das sollten Sie wissen . . . Typ 0 Grammatik allgemeine 1 (kontextsensitiv) kontextsensitiv 2 (kontextfrei) 3 (regulär) kontextfrei regulär Automat TuringMaschine linear beschränkte TM indet. Kellerautomat DFA/NFA 3 Automatentheorie sonst aufzählbare Sprachen ?? Zusammenfassung 3.29 (Automaten) Endliche Automaten, (in)determinstisch, Gleichwertigkeit Umwandlung vom NFA zum DFA Kellerautomaten Syntaxdiagramm reguläre Ausdrücke Theoretische Informatik 3.6 Aufgaben (Automaten) Folie 3-169 (263) Aufgaben Turingmaschinen Grammatiken Sprachklassen und -hierarchie 3 Automatentheorie 3.6 Aufgaben (Automaten) Theoretische Informatik Folie 3-170 (264) Aufgaben Aufgabe 3.16 (DFA/NFA – leeres Wort) Aufgabe 3.18 (DFA/NFA – Cola-Automat) Wann liegt das leere Wort e in der Sprache eines DFA / NFA? Konstruieren Sie auf der Basis eines DFA oder NFA einen Automaten, der Cola-Büchsen verkauft. Eine Cola kostet 1 Euro. Der Automat soll nur folgende Münzen akzeptieren : 10c, 50c, 1 Euro. Wechselgeld ist nicht vorgesehen. Der Betrag muss also passend eingeworfen werden. Aufgabe 3.17 (DFA/NFA) Konstruieren Sie einen DFA und NFA für die Sprache aller Wörter (aus a und b), in denen sowohl ab als auch ba als Teilstring vorkommen. Korrekte Strings sind beispielsweise aba, bab, baaab. Finden Sie für diese Sprache auch eine (reguläre) Grammatik und einen regulären Ausdruck. Aufgabe 3.19 (Grammatik und Kellerautomat) Geben Sie eine Kf-Grammatik und einen Kellerautomaten für die Sprache {vv R ww R |v , w ∈ {a, b}∗ } an! 3 Automatentheorie Theoretische Informatik 3.6 Aufgaben (Automaten) 4 Logik Theoretische Informatik Folie 3-171 (265) 10. Juli 2016 Aufgaben Inhaltsverzeichnis Aufgabe 3.20 (TM) 1 TI – Einführung Finden Sie eine TM, die die Sprache L ⊂ {a, b}∗ , so dass im Wort 2 aufeinanderfolgende a enthalten sind, entscheidet! 2 Grundlagen Aufgabe 3.21 (Regulärer Ausdruck) 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit Finden Sie für den regulären Ausdruck Automaten. ab∗ (ba)+ c einen endlichen Aufgabe 3.22 (Regulärer Ausdruck) Wandeln Sie den regulären Ausdruck ((ab)+ ∪ ba∗ )b in eine reguläre Grammatik um. 4 Logik Theoretische Informatik 4 Logik Theoretische Informatik Folie 4-1 (268) 10. Juli 2016 Inhaltsverzeichnis – Kapitel 4 4 Logik Logic is a systematic method of coming to the wrong conclusion with confidence. Manly’s Maxim Logik Aussagenlogik Beispiele (Resolution) Zusammenfassung (Aussagenlogik) Aufgaben (Aussagenlogik) 4 Logik Theoretische Informatik 4 Logik Theoretische Informatik Folie 4-2 (269) Ein Rätsel Folie 4-3 (270) Logik Alle Vögel können fliegen. Ich gehe schwimmen, wenn die Sonne scheint. Um einen runden Tisch herum sitzt eine unbekannte Anzahl von Leuten. +Speicherkarte −CF Alltagslogik Ein Teil von ihnen sagt IMMER die Wahrheit, die anderen lügen IMMER. Suchmaschinen ...... ...... Logik Jeder behauptet über seine beiden Nachbarn, dass sie lügen. Einer von ihnen sagt: „Es sitzen 53 Leute am Tisch.“ Daraufhin sagt ein anderer: „Er lügt. Es sind 52.“ Programmierung Systembeschreibung Wieviele sitzen denn nun am Tisch ? IF A=4 THEN ..... Der Chef muss alle Beschaffungen unterschreiben. Abb. 42: Logik-Anwendungen 4 Logik Theoretische Informatik Folie 4-4 (271) Informatik und Logik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-5 (272) Aussagenlogik Aussagen im Alltag: Es regnet. Nicht jeder Schnee ist weiß. Für die Informatik ist die Logik aus 2 Gründen interessant: Beschreibungsmittel Berechnungsmittel ; ; Aussagen sind wahr oder falsch. Wahrheitswert muss nicht unbedingt bekannt sein! GOLDBACHsche Vermutung: Jede gerade natürliche Zahl lässt sich darstellen als Summe zweier Primzahlen. Bis heute nicht bewiesen bzw. widerlegt. Sie ist jedoch in jedem Fall wahr oder falsch. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-6 (273) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-7 (274) 4.1.1 Syntax und Übersetzen von Aussagen Aussagenlogik Syntax Beispiel 4.1 (Aussagenlogik) In der Aussagenlogik werden elementare Aussagen durch aussagenlogische Variablen dargestellt: Es seien die Aussagen gegeben: Wenn es regnet, ist die Straße nass. A für die Aussage: „BMW-Aktien sind hoch im Kurs.“ Es regnet. B für die Aussage: „Heute ist Montag.“ Dies kann man in der Aussagenlogik so darstellen: Man kann Aussagen auch verknüpfen, z.B. steht A ∨ B für: regnet → strasse_nass „BMW-Aktien sind hoch im Kurs oder heute ist Montag.“ regnet Aus diesen beiden Aussagen kann man schließen, dass die Straße nass ist. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-8 (275) 4.1.1 Syntax und Übersetzen von Aussagen Die Aussagen A und B sind elementare (atomare) Aussagen. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-9 (276) 4.1.1 Syntax und Übersetzen von Aussagen Syntax Das logische Oder Die Aussage Wir fahren nach Frankreich, falls das Quartier billig ist oder sehr gutes Wetter ist. Die Aussagenlogik ist aufgebaut aus: Aussagenvariablen (atomare Aussagen) kann aussagenlogisch dargestellt werden: Verknüpfungen: I ¬ (Negation) I ∨ (Oder) I ∧ (Und) I → (Implikation, Wenn . . . dann . . . ) I ↔ (Äquivalenz, . . . genau dann wenn . . . ) billig ∨ guteswetter → urlaubfrankreich Wann fahren wir also garantiert nach Frankreich? Gutes Wetter und nicht billig. Kein gutes Wetter und billig. Gutes Wetter und billig. Das Oder ist also ein einschließendes Oder. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-10 (277) 4.1.1 Syntax und Übersetzen von Aussagen 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-11 (278) 4.1.1 Syntax und Übersetzen von Aussagen Die Implikation Die Implikation – 2 Wir betrachten Spielkarten. Wann ist die folgende Aussage wahr? Vorderseite der Karten: Buchstabe Falls es regnet, ist die Straße nass. Rückseite: eine Ziffer Einzige Bedingung: Fall 1: Es regnet, die Straße ist nass. Falls auf der Vorderseite ein Vokal ist, dann muss auf der Rückseite eine gerade Zahl stehen. Was ist, wenn es gar nicht regnet? Aussage ist nicht verletzt! Nur falls es regnet, muss die Straße nass sein. Fall 2: Es regnet nicht, die Straße ist nass. A D 5 8 Fall 3: Es regnet nicht, die Straße ist nicht nass. Jemand zeigt uns folgende 4 Karten: . Frage: Welche Karte(n) müssen wir umdrehen, um obige Restriktion zu prüfen? Der einzige Fall, der nicht eintreten darf, der die Aussage also verletzen würde, ist: Fall 4: Es regnet, die Straße ist nicht nass. 4 Logik Antwort: Nur die Karten Theoretische Informatik 4.1 Aussagenlogik Folie 4-12 (279) 4.1.1 Syntax und Übersetzen von Aussagen A 5. 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.1 Syntax und Übersetzen von Aussagen Aussagenlogik Aussagenlogik Satz . . . und . . . sowohl . . . als auch . . . aber, jedoch, obwohl . . . oder . . . Wenn A dann B, aus A folgt B A, vorausgesetzt dass B gilt A, falls/wenn B A nur dann, wenn B A genau dann, wenn B entweder A oder B weder A noch B A, es sei denn B Es stimmt nicht, dass . . . aussagenlogisch A ∧ B A ∧ B A ∧ B A ∨ B A → B B → A B → A A → B A ↔ B (A ∨ B ) ∧ (¬A ∨ ¬B ) ¬A ∧ ¬B (B → ¬A) ∧ (¬B → A) ¬(. . .) Tabelle 3: Übersetzen von Aussagen Beispiel 4.2 (Übersetzen) Betrachten wir die Aussage Beate und Klaus mögen sich nicht. Offensichtlich stecken in dieser Aussage 2 Teilaussagen: Beate mag Klaus nicht. Klaus mag Beate nicht. Mit der Negation als Operator: Nicht (Beate mag Klaus). Nicht (Klaus mag Beate). 2 aussagenlogische Variablen: BmagK, KmagB. Nun können wir die gesamte Aussage aufschreiben: ¬BmagK ∧ ¬KmagB. Folie 4-13 (280) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-14 (281) 4.1.1 Syntax und Übersetzen von Aussagen 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-15 (282) 4.1.1 Syntax und Übersetzen von Aussagen Typisches Vorgehen beim Übersetzen Aussagenlogik Beispiel 4.3 (Übersetzen) 1 Finden von Teilaussagen. 2 Zerlegen der Aussage(n), Finden der atomaren Aussagen. 3 Namen für die atomaren Aussagen vergeben. 4 Aufstellen der Formel. Klaus und Bernd gehen nur gemeinsam zum Fußball: fklaus ↔ fbernd Klaus und Bernd gehen nie gemeinsam zum Fußball: ¬(fklaus ∧ fbernd) Entweder geht Klaus oder Bernd zum Fußball: (fklaus ∧ ¬fbernd) ∨ (¬fklaus ∧ fbernd) Wenn Klaus geht, dann auch Bernd: fklaus → fbernd 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-16 (283) 4.1.1 Syntax und Übersetzen von Aussagen 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-17 (284) 4.1.1 Syntax und Übersetzen von Aussagen Das XOR Aussagenlogische Formeln Definition 4.1 (Aussagenlogische Formeln) In vielen Programmiersprachen gibt es das ausschließende Oder, meist XOR genannt. a XOR b ist äquivalent zu: Die Menge der aussagenlogischen Formeln ist definiert durch: Alle Aussagenvariablen (atomare Aussagen) sind Formeln. Sind A und B Formeln, dann auch: I A ∧ B I A ∨ B I ¬A I A → B I A ↔ B (a ∧ ¬b) ∨ (¬a ∧ b) oder auch a ↔ ¬b 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-18 (285) 4.1.1 Syntax und Übersetzen von Aussagen 4 Logik Folie 4-19 (286) 4.1.2 Gültigkeit und Erfüllbarkeit Äquivalenz und Implikation Wahr oder falsch? Die Frage, die uns natürlich interessiert, ist die, ob eine Formel wahr oder falsch ist. Man kann die Äquivalenz und Implikation auch definieren durch: A ↔ B gdw. (A → B ) ∧ (B → A) Die BMW-Aktie steigt oder die BMW-Aktie steigt nicht. ist eine immer wahre Aussage. A → B gdw. ¬A ∨ B, Demnach braucht man die Implikation und die Äquivalenz eigentlich nicht. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Theoretische Informatik 4.1 Aussagenlogik Folie 4-20 (287) 4.1.2 Gültigkeit und Erfüllbarkeit Wahr oder falsch? 1999 war der Bundeskanzler Helmut Kohl. ist eine falsche Aussage. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-21 (288) 4.1.2 Gültigkeit und Erfüllbarkeit Gültigkeit und Erfüllbarkeit Beispiel 4.4 (Wahrheitswert von Aussagen) (A ∨ B ) ∧ ¬A ∧ ¬B ist falsch, unabhängig davon, ob A oder B wahr sind. (A ∧ B ) ∨ ¬A ∨ ¬B ist wahr, unabhängig davon, ob A oder B wahr sind. A ∨ B ist wahr, wenn A oder B wahr ist, sonst falsch. Allgemeine Unterscheidung: immer wahre Aussage: wahr immer falsche Aussage: falsch sonst: nur in Abhängigkeit von der jeweiligen realen Welt Gelingt es durch geschicktes Belegen der aussagenlogischen Variablen, eine Formel φ „wahrzumachen“, so heißt φ erfüllbar, geht dies nicht: unerfüllbar (falsch). Wird die Formel unter jeder Belegung wahr, so heißt φ allgemeingültig (Tautologie). Gibt es eine Belegung, so dass die Formel falsch wird: falsifizierbar. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-22 (289) 4.1.2 Gültigkeit und Erfüllbarkeit 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-23 (290) 4.1.2 Gültigkeit und Erfüllbarkeit Aussagenlogische Formeln Mengen von Formeln φ ist allgemeingültig, gdw. ¬φ ist unerfüllbar. Die erfüllbaren und die falschen Formeln sind komplementär. Allgemeingültige Formeln ⊂ Erfüllbare Formeln Falsche Formeln ⊂ Falsifizierbare Formeln (Erfüllbare F. ∩ Falsifizierbare F.) ∪ Allgemeingültige F. = Erfüllbare Formeln (Erfüllbare F. ∩ Falsifizierbare F.) ∪ Falsche Formeln = Falsifizierbare F. sowohl erfüllbar als auch falsifizierbar Tauto− logien Wir vereinbaren, dass eine Menge von Formeln {F1 , F2 , . . . , Fn } wahr ist, genau dann wenn jedes Element der Menge wahr ist. falsche Formeln Abb. 43: Aussagenlogische Formeln 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-24 (291) 4.1.2 Gültigkeit und Erfüllbarkeit 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-25 (292) 4.1.2 Gültigkeit und Erfüllbarkeit Aufgaben Aufgaben Aufgabe 4.2 (Erfüllbarkeit, Falsifizierbarkeit) Sind folgende Formeln wahr / erfüllbar / falsifizierbar / falsch ? Aufgabe 4.1 (Implikation) a → b Wann ist die logische Implikation a → b wahr? a → ¬a Betrachten Sie dazu eine Alltagsaussage wie „Wenn ich Geburtstag habe, dann mache ich eine Fete“. a → a ¬a → a Prüfen Sie für die 4 Fälle (a und b wahr/falsch), wann die Aussage erfüllt bzw. verletzt ist. (a ∧ ¬a) → b (a → b) ∨ (a → ¬b) (a → b) ∧ (a → ¬b) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-26 (293) 4.1.3 Berechnungen mit Aussagenlogik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-27 (294) 4.1.3 Berechnungen mit Aussagenlogik Wahrheitswerttabellen Wahrheitswerttabellen Beispiel 4.5 (Wahrheitswerttabelle) A B W W F F W F W F A ∨ B W W W F A ∧ B W F F F ¬A A → B A ↔ B F W W F F F W W F W W W Wir betrachten ¬A → (A → B ): Tabelle 4: Wahrheitswerttabelle für ∨ , ∧ , ¬, → , ↔ A B W W F F W F W F A → B W F W W ¬A → (A → B ) W W W W Die Formel ist eine Tautologie. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-28 (295) 4.1.3 Berechnungen mit Aussagenlogik Logischer Zusammenhang von Formeln Beispiel 4.6 (Aussagenlogik) Zwei Zeugen beobachten ein Verbrechen. Die Zeugen machen folgende Aussagen: 1 A und B arbeiten nie zusammen. 2 Wenn A der Täter war, dann hat er mit B zusammengearbeitet. Aus Aussage 1 und 2 folgt, dass A unschuldig ist. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-29 (296) 4.1.3 Berechnungen mit Aussagenlogik Logischer Zusammenhang von Formeln Definition 4.2 (Folgen) Sei Φ eine Menge von Formeln, φ eine Formel. Wir sagen, φ folgt aus Φ (Φ |= φ), falls jede Variablenbelegung, die Φ erfüllt, auch φ erfüllt. Aus A und B folgt z.B. A ∨ B. Prinzipiell mit Wahrheitswerttabellen beweisbar: In der Wahrheitswerttabelle nur die Zeile untersuchen, wo A und B wahr sind oder Beweis, dass die Aussage A ∧ B → A ∨ B eine Tautologie ist. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-30 (297) 4.1.3 Berechnungen mit Aussagenlogik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-31 (298) 4.1.3 Berechnungen mit Aussagenlogik Beispiel Beispiel Diese Aussagen müssen wir zunächst in die Aussagenlogik übersetzen. Seien folgende Aussagen gegeben: Michael Schumacher fährt mit: faehrt Wenn Michael Schumacher mitfährt, sehen die Leute Formel 1. Wenn Schumacher nicht mitfährt, dann hat Mercedes nicht viel Geld bezahlt. Die Leute sehen Formel 1: formel1 Mercedes zahlt viel Geld an MS: geld Nun können wir die Aussagen formulieren: Mercedes bezahlt viel Geld an Schumacher. faehrt → formel1 ¬faehrt → ¬geld geld formel1 Wir möchten beweisen, dass die Leute sich Formel 1 anschauen. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-32 (299) 4.1.3 Berechnungen mit Aussagenlogik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-33 (300) 4.1.3 Berechnungen mit Aussagenlogik Beispiel Beweis von (1) (2) (3) (Behauptung) Beispiel - Wahrheitswerttabelle formel1 mittels Wahrheitswerttabellen. Die Formel [(faehrt → formel1) ∧ (¬faehrt → ¬geld) ∧ geld] → formel1 faehrt formel1 geld F F F F F W W F ... muss eine Tautologie sein. W ... W 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-34 (301) 4.1.3 Berechnungen mit Aussagenlogik W W (faehrt → formel1) ∧ . . . . . . → formel1 W W W W W W 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-35 (302) 4.1.3 Berechnungen mit Aussagenlogik Wahrheitswerttabellen Inferenz-Regeln Verknüpfen logische Formeln (Aussagen) zu neuen Formeln . . . bis gewünschte Formel entsteht. Nachteil: hoher Aufwand! n 2 Möglichkeiten Modus Ponens Deshalb hat man nach anderen Beweis-Verfahren gesucht. L → K L (4.1) K Man beachte, dass es keine Rolle spielt, welche Aussagen sich hinter L und K verbergen. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-36 (303) 4.1.3 Berechnungen mit Aussagenlogik Folgen und Ableiten Tautologische Form Name [(L → K ) ∧ M → L] → (M →)K Kettenregel [(L → K ) ∧ ¬K ] → ¬L Modus tollens (indirekter Beweis) [(L ∨ K ) ∧ ¬K ] → L Disjunktiver Syllogismus K [¬(¬K )] → K Doppelte Negation K ∨ K) K [K ∨ K ] → K Faktorisierung L → K ¬K ¬L L ∨ K ¬K L ¬(¬K ) Theoretische Informatik 4.1 Aussagenlogik 4.1.3 Berechnungen mit Aussagenlogik Inferenzregeln Inferenzregel L → K M → L M → K 4 Logik 2 unterschiedliche Begriffe für Zusammenhänge von Formeln: Tabelle 5: Inferenzregeln Folgen: Φ |= φ (φ folgt aus Φ) Ableiten: Φ ` φ (φ ist aus Φ – mittels Inferenzregeln – berechenbar). Folie 4-37 (304) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-38 (305) 4.1.3 Berechnungen mit Aussagenlogik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-39 (306) 4.1.3 Berechnungen mit Aussagenlogik Normalformen Äquivalenzen A ↔ B ≡ (A → B) ∧ (B → A → B ≡ ¬A ∨ B DeMorgan ¬(A ∨ B) ≡ ¬A ∧ ¬B DeMorgan ¬(A ∧ B) ≡ ¬A ∨ ¬B Distributivität (A ∨ (B ∧ C)) ≡ ((A ∨ B) ∧ Distributivität (A ∧ (B ∨ C)) ≡ ((A ∧ B) ∨ Kommutativität A ∨ B ≡ B ∨ A Kommutativität A ∧ B ≡ B ∧ A Assoziativität (A ∨ (B ∨ C)) ≡ ((A ∨ B) ∨ Assoziativität (A ∧ (B ∧ C)) ≡ ((A ∧ B) ∧ Doppelte Neg. ¬¬A ≡ A Beobachtung: Es gibt äquivalente Formeln. Aus der Sicht des Beweisens ungünstig! Definition 4.3 (Äquivalenz von Formeln) 2 Formeln A, B heißen äquivalent (A ≡ B), falls für jede beliebige Belegung der aussagenlogischen Variablen gilt: Die Belegung erfüllt A gdw. sie auch B erfüllt. Es gilt: A ≡ B gdw. A ↔ B eine Tautologie ist. A) (A ∨ C)) (A ∧ C)) C) C) Tabelle 6: Aussagenlogische Äquivalenzen – 1 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-40 (307) 4.1.3 Berechnungen mit Aussagenlogik Absurdität Kontraposition Theoretische Informatik 4.1 Aussagenlogik Folie 4-41 (308) 4.1.3 Berechnungen mit Aussagenlogik Äquivalenzen – 2 Idempotenz Idempotenz Absorption Absorption 4 Logik Aufgaben A ∨ A ≡ A A ∧ A ≡ A (A ∨ (A ∧ B)) ≡ A (A ∧ (A ∨ B)) ≡ A (A ∧ B) → C ≡ A → (B → C) (A → B) ∧ (A → ¬B) ≡ ¬A A → B ≡ ¬B → ¬A ( W ∨ A) ≡ W ( W ∧ A) ≡ A (F ∨ A) ≡ A (F ∧ A) ≡ F Aufgabe 4.3 (Umwandeln) Vereinfachen Sie – mit Hilfe der Äquivalenzen – die Formel ¬((A ∨ ¬(B ∧ A)) ∧ (C ∨ (D ∨ C ))). Tabelle 7: Aussagenlogische Äquivalenzen – 2 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-42 (309) 4.1.3 Berechnungen mit Aussagenlogik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-43 (310) 4.1.3 Berechnungen mit Aussagenlogik KNF – Klauselnormalform KNF – Klauselnormalform Wir führen die konjunktive Normalform, auch Klauselnormalform genannt, ein: KNF: n ^ i =1 mi _ Lij j =1 Beispiel 4.7 (Normalformen) ! (4.2) (A ∨ B ) ∧ (C ∨ ¬D ) ∧ E ist eine korrekte konjunktive Normalform. Wir lassen die ∧ weg und schreiben die Klauseln untereinander: A ∨ B C ∨ ¬D E Lij . . . Literal (elementare Aussage oder deren Negation) Wmi j =1 Lij . . . Klausel Satz 4.4 (KNF) Jede Formel hat mindestens eine äquivalente KNF. 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.3 Berechnungen mit Aussagenlogik Transformation auf konjunktive NF Folie 4-44 (311) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-45 (312) 4.1.3 Berechnungen mit Aussagenlogik Transformation auf konjunktive NF Beispiel 4.8 (KNF) 1 Ersetzen der Äquivalenzen und Implikationen 2 Negation ganz nach innen 3 „Ausmultiplizieren“ (Anwendung des Distributivgesetzes) Beispiel siehe Skript Was entsteht beim „Ausmultiplizieren“ aus dieser Formel? (A ∧ B ∧ C ) ∨ (D ∧ E ) Kombination von jedem Element der ersten bzw. zweiten Und-Verknüpfung: (A ∨ D ) ∧ (A ∨ E ) ∧ (B ∨ D ) ∧ (B ∨ E ) ∧ (C ∨ D ) ∧ (C ∨ E ) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-46 (313) 4.1.3 Berechnungen mit Aussagenlogik 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-47 (314) 4.1.4 Resolution Transformation auf konjunktive NF Resolution Beispiel 4.9 (KNF) Wie bringt man diese Formel geschickt auf KNF? Wenn dieser Apfel süß ist, dann isst man ihn gern. Wenn man ihn gern isst, werde ich ihn essen. (A ∧ (B ∨ C )) ∨ ((D ∨ E ) ∧ F ) ALSO: Wenn dieser Apfel süß ist, dann werde ich ihn essen. (B ∨ C ) und (D ∨ E ) haben Oder-Form. Ersetzen durch X und Y . Dieser Schluss ist logisch gültig, es gilt: (A ∧ X ) ∨ (Y ∧ F ) {(A → B ), (B → C )} |= (A → C ) Jetzt multiplizieren wir aus: Nicht möglich: (A → B ) und (B → C ) beide wahr (A ∨ Y ) ∧ (A ∨ F ) ∧ (X ∨ Y ) ∧ (X ∨ F ) A → C falsch und ersetzen einfach X und Y wieder durch die Originalterme: ; Dies muss zum Widerspruch führen. (A ∨ D ∨ E ) ∧ (A ∨ F ) ∧ (B ∨ C ∨ D ∨ E ) ∧ (B ∨ C ∨ F ) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-48 (315) 4.1.4 Resolution 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-49 (316) 4.1.4 Resolution Resolution Klausel-Normalform Im folgenden setzen wir die konjunktive Normalform voraus: ((A ∨ B ∨ . . .) ∧ . . . ∧ (E ∨ F ∨ . . .)) Einheitliche Darstellung der Formeln (konjunktive Normalform) Rechnen mit Formeln: Resolution und verwenden dafür abkürzend die Mengenschreibweise Widerspruchsbeweis: Verfahren, welches erkennt, ob eine Formel widersprüchlich ist. {{A, B , . . .}, . . . , {E , F , . . .}} Es gilt: Φ |= φ, gdw. Φ ∧ ¬φ widersprüchlich Beweis, dass Φ |= φ äquivalent zum Beweis, dass Φ ∧ ¬φ widersprüchlich Die Mengen {A, B , . . .} und {E , F , . . .} heißen Klauseln. Wir vereinbaren, dass die leere Klausel den Widerspruch repräsentiert und kennzeichnen sie durch 2. Beispiel 4.10 (Klausel-Normalform) {A, B , C } und 2 und {A, ¬A} sind Klauseln, {{A}} und {¬¬A} nicht. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-50 (317) 4.1.4 Resolution 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-51 (318) 4.1.4 Resolution Apfelbeispiel und Resolution Formel1-Beispiel Beispiel 4.11 (Apfelbeispiel – KNF) Für das Apfelbeispiel erhalten wir: Wenn dieser Apfel süß ist, dann isst man ihn gern: suess → gernessen, in KNF: {¬suess, gernessen} Beispiel 4.12 (Formel 1 – KNF) Formel faehrt → formel1 ¬faehrt → ¬geld geld ¬formel1 Wenn man ihn gern isst, werde ich ihn essen: gernessen → ichesse, in KNF: {¬gernessen, ichesse} ALSO: Wenn dieser Apfel süß ist, dann werde ich ihn essen: suess → ichesse, negiert in KNF: {suess} und {¬ichesse} Durch Resolution erhält man: KNF ¬faehrt ∨ formel1 faehrt ∨ ¬geld geld ¬formel1 (1) (2) (3) (4, neg. Behauptung) {¬suess, gernessen} und {suess}: {gernessen} {gernessen} und {¬gernessen, ichesse}: {ichesse} {ichesse} und {¬ichesse}: {} 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-52 (319) 4.1.4 Resolution 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-53 (320) 4.1.4 Resolution Resolution Resolutionsregel – Aussagenlogik Seien die Klauseln {¬a, b}, {¬b, c , ¬a}, {a}, {¬a, ¬c } gegeben. Den Widerspruch findet man wie folgt: {¬a, b} {¬b, c , ¬a} {a } {¬a, ¬c } aa HH PPP H PP a a {¬a, c } {¬a, ¬b} {¬c } H # H H # # {c } # HH # H # 2 Abb. 44: Resolution – Beispiel Definition 4.5 (Resolvente) Seien C1 , C2 Klauseln, L ein positives Literal und L ∈ C1 , ¬L ∈ C2 . Dann heißt (C1 \{L}) ∪ (C2 \{¬L}) Resolvente von C1 und C2 . Die Resolutionsregel sieht also wie folgt aus: C1 C2 Resolvente = {L, L2 , L3 , . . . , Ln } = {¬L, K2 , K3 , . . . , Km } = {L2 , L3 , . . . , Ln , K2 , K3 , . . . , Km } (4.3) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-54 (321) 4.1.4 Resolution 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-55 (322) 4.1.4 Resolution Resolution – Hinweis Aufgaben Aufgabe 4.4 (Simultanes Streichen von Literalen) Folgender Resolutionsschritt ist nicht korrekt! C1 C2 Resolvente Gleichzeitiges Streichen von mehr als 1 Literal ist nicht zulässig! {A, B } {¬A, ¬B } = {L1 , L2 , L3 , . . . , Ln } = {¬L1 , ¬L2 , K3 , . . . , Km } {} = {L3 , . . . , Ln , K3 , . . . , Km } 4 Logik Dies ist kein korrekter Schritt, da sich die Klauseln nicht widersprechen! Wieso widersprechen sich die Klauseln nicht? Theoretische Informatik 4.1 Aussagenlogik Folie 4-56 (323) 4.1.4 Resolution 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-57 (324) 4.1.4 Resolution Aufgaben Fortsetzung des Formel1-Beispiels Beispiel 4.13 (Formel 1 – Resolution) ¬faehrt ∨ formel1 faehrt ∨ ¬geld geld ¬formel1 ¬faehrt ¬geld faehrt Aufgabe 4.5 (Resolventen) Bilden Sie alle Resolventen aus {A, B , ¬C }, {¬A}, {¬C } und {¬A, ¬B }. Verwenden Sie auch die Resolventen wieder zur Resolution. {} (1) (2) (3) (4, neg. Behauptung) 1+4: (5) 2+5: (6) 2+3: (7) 3+6: (8) Widerspruch gefunden. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-58 (325) 4.1.5 Validierung der Resultate 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-59 (326) 4.1.5 Validierung der Resultate Validieren des Resultats Validieren des Resultats faehrt → formel1 ¬faehrt → ¬geld geld Wir wollen prüfen, ob unsere Lösung eventuell fehlerhaft ist. Übersetzen der Aussagen mit Wahrheitswerttabellen überprüfbar Prüfen des Resolutionsbeweis anhand des Formel1-Beispiels Theoretische Informatik 4.1 Aussagenlogik Folie 4-60 (327) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Korrektheit Wie verhält sich die Resolutionsregel? Ist sie korrekt: Folgt jede Formel, die man mittels Resolution erhält, aus den Formeln? Satz 4.6 (Korrektheit der Resolution) Resolution ist korrekt, d.h. ist Φ eine Klauselmenge und φ eine Resolvente von 2 Klauseln aus Φ, so sind Φ und Φ ∪ {φ} äquivalent. D.h. es gilt: Φ |= φ. wahr unklar als wahr gegeben Bei Aussage (2) ist unklar, ob sie erfüllt wird. Beweis lieferte: formel1 stimmt. Setzen überall W für formel1 ein . . . . . . und prüfen, welche Formeln erfüllt werden . . . und ob es Widersprüche gibt. 4 Logik (1) (2) (3) (2) ist eine Implikation ist. ¬geld ist falsch, also muss ¬faehrt ebenso falsch sein. Das passt zu den anderen Aussagen. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-61 (328) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Vollständigkeit Ist Resolution vollständig? Kann man jede Formel, die logisch folgt, auch mittels Resolution berechnen? Nein: Aus {A} ist nicht ableitbar, dass {A, B } gilt. Satz 4.7 (Widerlegungsvollständigkeit der Resolution) Ist die Klauselmenge widersprüchlich, so existiert eine endliche Folge von Resolutionsschritten, die zur leeren Klausel führt. (Widerlegungsvollständigkeit) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-62 (329) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-63 (330) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Widerspruchsbeweis Tautologien Wie beweist man, dass aus A die Formel A ∨ B folgt? Zu beweisen: A ∨ B gilt, falls A gilt. I I I Welchen Informationsgehalt hat die Klausel A ∨ ¬A? Die Behauptung wird negiert, zur gegebenen Aussage A hinzugefügt und anschließend ein Widerspruch abgeleitet. Keinen! Sie kann gelöscht werden! {A, ¬(A ∨ B )} ≡ {{A}, {¬A}, {¬B }} Der Widerspruch (die leere Klausel) folgt dann mittels Resolution von {A} und {¬A}. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-64 (331) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Theoretische Informatik 4.1 Aussagenlogik Folie 4-65 (332) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Subsumption Resolution als Beweistechnik Widerspruchsbeweis Ziel wird negiert hinzugenommen. Widerspruch suchen. Welche Klausel hat einen höheren Informationsgehalt: A ∨ B 4 Logik „Falsch“-Beweis Beweis, dass eine gegebene Formel falsch ist. Nichts negieren. Widerspruch mittels Resolution suchen. oder A ∨ B ∨ C ? Direkter Beweis Man hat kein Ziel. Resolution anwenden, eventuell bekommt man was vernünftiges raus. Offensichtlich die Klausel A ∨ B. Die zweite Klausel kann folglich gelöscht werden. 4 Logik Aus der Unvollständigkeit der Resolution folgt, dass der direkte Beweis meistens nicht funktionieren wird. Probieren darf man es natürlich trotzdem. Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-66 (333) 4.2.1 Konzert-Beispiel 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-67 (334) 4.2.1 Konzert-Beispiel Beispiel (Resolution) Schritt 1: Umwandeln in AL Seien folgende Aussagen gegeben: Wenn X ein Konzert gibt, werden viele kommen, falls der Eintrittspreis nicht zu hoch ist. X → (billig → viele) X → billig Wenn X ein Konzert gibt, ist der Eintrittspreis nicht zu hoch. Behauptung: X → viele Wir möchten beweisen, dass dann gilt: Wenn X ein Konzert gibt, dann kommen viele. 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-68 (335) 4.2.1 Konzert-Beispiel 4 Logik Folie 4-69 (336) 4.2.1 Konzert-Beispiel Schritt 2: Umwandeln in KNF Schritt 3: Resolutionsbeweis 1 2 X → (billig → viele) ; ¬X ∨ ¬billig ∨ viele 3 negierte Behauptung: ¬(X → viele) ; ¬(¬X ∨ viele) ≡ X ∧ ¬viele 5 X → billig Theoretische Informatik 4.2 Beispiele (Resolution) ; ¬X ∨ billig 4 6 7 8 ¬X ∨ ¬billig ∨ viele ¬X ∨ billig X ¬viele ¬X ∨ ¬billig ¬X (1+4) (2+5) ¬X ∨ viele (1+2) leere Klausel (Widerspruch) Damit ist die Behauptung bewiesen. (3+6) 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-70 (337) 4.2.2 Koalitions-Beispiel Theoretische Informatik 4.2 Beispiele (Resolution) Ein weiteres Beispiel Erste Überlegungen: Seien folgende Aussagen gegeben: Angela: „Peer oder ich werden an der Koalition beteiligt sein.“ Peer: „Entweder Rainer oder ich werden an der Koalition beteiligt sein.“ Wir haben 3 Aussagen gegeben. Ein Ziel haben wir nicht gegeben. Da wir kein Ziel gegeben haben, können wir 2 Varianten versuchen: „Entweder Angela oder ich werden an der Koalition beteiligt sein.“ 1 Wir stellen eine Vermutung auf, z.B. Rainer ist beteiligt. 2 Wir rechnen einfach mit den gegebenen Aussagen, also ohne Ziel. Wie sieht die Koalition aus? 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-71 (338) 4.2.2 Koalitions-Beispiel Beispiel (Resolution) Rainer: 4 Logik Folie 4-72 (339) 4.2.2 Koalitions-Beispiel 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-73 (340) 4.2.2 Koalitions-Beispiel KNF Resolution P ∨ A Kein Ziel gegeben. (R ∧ ¬P ) ∨ (¬R ∧ P ) Also einfach Resolution anwenden, ohne (neg.) Ziel. Vielleicht bekommen wir was raus. (R ∧ ¬A) ∨ (¬R ∧ A) 6 (2+5) Durch Ausmultiplizieren entsteht: 1 2 3 4 5 P ∨ A 7 (6+1) R ∨ P 9 (8+3) A ∨ ¬P A ¬R ∨ ¬P 8 (7+4) ¬R ∨ ¬A Weitere Resolutionsschritte bringen nichts Neues. Wir finden auch keinen Widerspruch. Wir haben ohne negiertes Ziel gerechnet, also abgeleitete Formeln ok. A und P bilden eine Koalition, ohne R. R ∨ A Die anderen Klauseln sind Tautologien und können weggelassen werden. 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-74 (341) 4.2.3 Auto-Beispiel ¬R P 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-75 (342) 4.2.3 Auto-Beispiel Auto-Beispiel Auto-Beispiel Seien folgende Aussagen gegeben: 1 Wenn die Batterie in Ordnung ist, dann gibt es Strom. 2 Wenn Strom vorhanden ist und die Zündkerzen in Ordnung sind, dann funktioniert die Zündung. B . . . Die Batterie ist in Ordnung. 3 Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird der Motor laufen. Z . . . Die Zündung funktioniert. 4 Wenn der Motor läuft und die Räder in Ordnung sind, dann wird das Auto fahren. 5 Wenn die Batterie in Ordnung ist, die Zündkerzen funktionieren, genug Benzin im Tank ist und die Räder in Ordnung sind, dann wird das Auto fahren. Zunächst wählen wir aussagenlogische Variablen: S . . . Strom ist vorhanden. T . . . Es ist genug Benzin im Tank. M . . . Der Motor wird laufen. A . . . Das Auto wird fahren. R . . . Die Räder sind in Ordnung. K . . . Die Zündkerzen sind in Ordnung. Wir möchten beweisen, dass die letzte Aussage aus den Aussagen 1-4 folgt. 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-76 (343) 4.2.3 Auto-Beispiel Auto-Beispiel – AL-Formeln 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-77 (344) 4.2.3 Auto-Beispiel Auto-Beispiel – KNF Jetzt können wir die Aussagen aufschreiben. 1 2 3 4 Wenn die Batterie in Ordnung ist, dann gibt es Strom: B → S. Wenn Strom vorhanden ist und die Zündkerzen in Ordnung sind, dann funktioniert die Zündung: S ∧ K → Z . Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird der Motor laufen: Z ∧ T → M. Wenn der Motor läuft und die Räder in Ordnung sind, dann wird das Auto fahren: M ∧ R → A. Das Ziel: Wenn die Batterie in Ordnung ist, die Zündkerzen funktionieren, genug Benzin im Tank ist und die Räder in Ordnung sind, dann wird das Auto fahren: B ∧ K ∧ T ∧ R → A. Nun bilden wir die KNF: 1 2 3 4 B → S ; ¬B ∨ S S ∧ K → Z ; ¬S ∨ ¬K ∨ Z M ∧ R → A ; ¬M ∨ ¬R ∨ A Z ∧ T → M ; ¬Z ∨ ¬T ∨ M Das Ziel wird negiert: ¬(B ∧ K ∧ T ∧ R → A) ; ¬(¬(B ∧ K ∧ T ∧ R ) ∨ A) ; ¬¬(B ∧ K ∧ T ∧ R ) ∧ ¬A ; B ∧ K ∧ T ∧ R ∧ ¬A Das negierte Ziel ergibt also 5 Klauseln. 4 Logik Theoretische Informatik 4.2 Beispiele (Resolution) Folie 4-78 (345) 4 Logik Theoretische Informatik 4.3 Zusammenfassung (Aussagenlogik) Folie 4-79 (346) 4.2.3 Auto-Beispiel Auto-Beispiel – Resolution ¬B ∨ S 1 ¬S ∨ ¬K ∨ Z 2 ¬Z ∨ ¬T ∨ M 3 ¬M ∨ ¬R ∨ A 4 B 5 6 K 7 T 8 R 9 ¬A Das sollten Sie wissen . . . Resolution: 10 (1+5) S 11 (2+10) ¬K ∨ Z 12 13 14 15 16 17 18 Zusammenfassung 4.8 (Aussagenlogik) Aussagenlogik, Umwandeln von Aussagen in die AL (11+6) Z Gültigkeit und Erfüllbarkeit (12+3) ¬T ∨ M Wahrheitswerttabellen (13+7) M Folgen und Ableiten, Inferenzregeln (14+4) ¬R ∨ A KNF (1+2) ¬B ∨ ¬K ∨ Z Resolution, Korrektheit und Widerlegungsvollständigkeit (15+8) A (17+9) Widerspruch 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Folie 4-80 (347) Aufgaben 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Folie 4-81 (348) Aufgaben Aufgabe 4.6 (Übersetzen) Aufgabe 4.7 (Übersetzen) Übersetzen Sie folgende Aussagen in die aussagenlogische Sprache! 3 Personen wollen einen Ausflug unternehmen. Es bedeuten: A = Anton fährt mit, B = Bruno fährt mit, C = Chris fährt mit. Die Sonne scheint, aber es ist nicht heiß. Was bedeutet die Formel ¬(¬A ∧ ¬B ∧ C ). Erwin läuft von Wismar nach Gägelow, aber nicht nach Rostock. Lösen Sie die Negation auf und übersetzen Sie das Resultat in die Umgangssprache. Wenn es warm ist, fährt Hans mit dem Fahrrad. Anna und Bernd mögen sich nicht. Nur wenn Lutz zum Fußball geht, geht Jürgen hin. Aufgabe 4.8 (Resolution) Herbert will Informatik und Betriebswirtschaft studieren, es sei denn, er geht nach Kaiserslautern. Beweisen Sie mit Resolution, dass B gilt, falls (B → (A ∨ C )) ∧ (B ∨ C ) ∧ (A → C ) ∧ ¬(¬B ∧ C ) gilt. 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Folie 4-82 (349) Aufgaben 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Folie 4-83 (350) Aufgaben Aufgabe 4.9 (Übersetzen) Formulieren Sie folgende Sätze sowie deren Negation: Aufgabe 4.10 (Resolution) Das Buch ist zwar umfangreich, aber nicht schwer zu lesen. Der Text ist nicht lang, doch er hat eine komplizierte Struktur. Petra mag Gemüse und Obst, jedoch keine Nüsse. Lutz spielt weder Geige noch Piano, aber sowohl Cello als auch Kontrabass. Ist der folgende Schluss korrekt? Beweisen Sie Ihre Vermutung mittels Resolution. Wenn es kalt ist und schneit, so zieht Uli seinen Mantel an. Aber Uli zieht seinen Mantel nicht an. Folglich ist es nicht kalt, oder es schneit nicht. Wenn Jürgen Aktien hat, dann sind BMW-Aktien immer dabei. Aufgabe 4.11 (Resolution) Die Hautallergie verschwindet genau dann, wenn Olaf keine Milch trinkt. Beweisen Sie mit Resolution, dass die folgende Formel falsch ist: (A ↔ (B → C )) ∧ (A ↔ B ) ∧ (A ↔ ¬C ) Die Wirkungen S und T treten genau dann nicht zusammen ein, wenn von den Ursachen U und V mindestens eine vorliegt. Nur wenn Bernd zur Vorlesung geht, dann geht auch Beate. 5 Komplexität Theoretische Informatik 5 Komplexität 10. Juli 2016 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 10. Juli 2016 Inhaltsverzeichnis – Kapitel 5 5 Komplexität Speicherplatz und Zeitaufwand Komplexitätsklassen P und N P Zusammenfassung (Komplexität) Aufgaben (Komplexität) 5 Komplexität Theoretische Informatik Folie 5-1 (353) Komplexität 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-2 (354) Speicherplatz und Zeitaufwand Ein Reisender soll 20 Städte besuchen. Program complexity grows until it exceeds the capability of the programmer who must maintain it. Arthur Bloch, Murphy’s Law, 1981 Gesucht: Reiseroute mit der minimalen Streckenlänge Idee: Durchprobieren aller möglichen Kombinationen. Möglichkeiten: 20!, d.h. etwa 2, 433 · 1018 . Annahme: Computer benötigt pro Strecke 0,01 sec Aufwand: etwa 770 Mio Jahre 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-3 (355) Problemklassen 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-4 (356) Komplexität Beispiel 5.1 (Komplexität) unlösbar Sortieren einer Liste von Namen (Länge n) und Suchen in der Liste zunächst den kleinsten Namen, 1 Durchlauf lösbar I I praktisch lösbar praktisch unlösbar Stellen diesen auf Position 1 (durch Tauschen) und Im nächsten Durchlauf: Suchen kleinsten Namen ab Position 2 Stellen diesen auf Position 2 (durch Tauschen) ... 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-5 (357) Komplexität 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-6 (358) Komplexität Beispiel 5.1 cont. Wie hoch ist der Aufwand? Welche Operationen zählen wir? Wir zählen die Vergleiche, die (im schlimmsten Fall) nötig sind. Definition 5.1 (Komplexität) Sei M eine Turing-Maschine, t ∈ IN. Die Relation `tM ist definiert durch: 1. Durchlauf n-1 C `tM C 0 gdw. die TM in t Schritten von der Konfiguration C nach C 0 kommt. 2. Durchlauf n-2 3. Durchlauf n-3 ... Wir zählen, wie oft ein Konfigurationsübergang erfolgt. n-1. Durchlauf 1 Der Aufwand ist also (Gaußsche Summenformel): n−1 ∑i= i =1 n ∗ ( n − 1) (5.1) 2 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-7 (359) Komplexität 1 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Komplexität 2 Komplexitätsmessung muss in Abhängigkeit der Problemgröße erfolgen, Entscheidbarkeit ist manchmal eine zu harte Forderung. . . . bei TM also bezüglich der Länge der Eingabe (|w |). Sei T : IN → IN, L ⊂ Σ∗0 , M = (K , Σ, δ, s, A) eine TM, Σ0 ⊂ Σ. M semientscheidet L in der Zeit T , falls: Definition 5.2 (Komplexität) Sei T : IN → IN. Sei L ⊂ Σ∗0 eine Sprache. Sei M = (K , Σ, δ, s, A) eine TM mit Σ0 ⊂ Σ. M entscheidet L in der Zeit T , falls: (s, #w #) `tM (h, #Y#), falls w ∈ L (s, #w #) `tM (h, #N#), falls w 6∈ L Folie 5-8 (360) mit t ≤ T (|w |) (5.2) L heißt entscheidbar in der Zeit T , falls eine TM existiert, die L in der Zeit T entscheidet. Definition 5.3 (Komplexität) (s, #w #) `tM (h, #Y#), gdw. w ∈ L mit t ≤ T (|w |) (5.3) L heißt semientscheidbar in der Zeit T , falls eine TM existiert, die L in der Zeit T semientscheidet. Definition 5.4 (TIME) Die Klasse aller Sprachen, die in T -Zeit semientscheidbar sind, bezeichnen wir mit TIME (T ). 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-9 (361) Komplexität 3 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-10 (362) Beispiel Andere Definition von TIME, mittels Akzeptierbarkeit: Definition 5.5 (Komplexität) Sei T : IN → IN. Sei L ⊂ Σ∗0 eine Sprache. Sei M = (K , Σ, δ, s, A) eine TM mit Σ0 ⊂ Σ. M akzeptiert L in der Zeit T , gdw. (s, #w #) `tM (h, . . .), gdw. w ∈ L mit t ≤ T (|w |) Wir suchen eine TM, die L = {w ∈ {a, b, c }∗ |w hat die gleiche Anzahl von a, b, c } (5.4) L heißt akzeptierbar in der Zeit T , falls eine TM existiert, die L in der Zeit T akzeptiert. entscheidet. Unterschied: Semientscheidbarkeit und Akzeptierbarkeit? Keiner. Eine Sprache ist semientscheidbar gdw. akzeptierbar. Beide Begriffe sind also äquivalent. 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-11 (363) 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-12 (364) Aufwand Sei n die Länge der Eingabe. 1 Jeder Durchlauf (maximal n Symbole durchsuchen und zurück auf das linke Ende) : 2n Schritte 2 Pro Tripel (a, b, c ) maximal 3 · 2n Schritte 3 maximal [n/3]↑ + 1 Tripel (Durchläufe) 4 Ende: Band löschen, Schreiben von Y / N : n + 2 Schritte 5 Also Aufwand maximal: ([n/3]↑ + 1) · 3(2n) + n + 2 2 Mit [n/3]↑ ≤ n+ erhält man: L ∈ TIME (2n2 + 11n + 2) 3 6 Abb. 45: Turing-Maschine, die L entscheidet 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-13 (365) Komplexitätsuntersuchungen 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-14 (366) Komplexität von Algorithmen Wichtige Unterscheidung: Wie hoch ist der Aufwand im: polynomialer Aufwand worst case analysis schlechtesten Fall exponentieller Aufwand. oder Exponentieller Aufwand: Abschätzung enthält Term r n mit r > 1. best case analysis besten Fall Jedes Polynom wächst langsamer als r n , r > 1. average case analysis Durchschnitt nk +1 wächst schneller als nk . Sind unsere Abschätzungen genau, d.h. scharf? Also: Jede exponentielle Funktion wächst schneller als jedes Polynom. 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-15 (367) Polynome 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-16 (368) Polynome Beispiel 5.2 (Polynomwachstum 1) 1 · n3 − 3 · n und g (n) = 10 · n2 + 20 · n + 20. Vergleichen f (n) = 1000 Erster Eindruck: g (n) wächst rasant. Beispiel 5.2 cont. Erstes Polynom f (n) wächst jedoch deutlich schneller. 8e+09 10000 8000 f(x) g(x) 7e+09 f(x) g(x) 6e+09 5e+09 6000 4e+09 3e+09 4000 2e+09 2000 1e+09 0 0 0 20 40 60 80 Abb. 46: Polynomvergleich f (n) und g (n) 100 0 5000 10000 15000 Abb. 47: 2. Polynomvergleich f (n) und g (n) 20000 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-17 (369) Polynome 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-18 (370) SPACE Beispiel 5.3 (Polynomwachstum) 1 · n4 − n2 wächst schneller als Das Polynom 10 1 Wann gilt: 10 · n4 − n2 > 100 · n3 − n2 ? Dazu stellen wir die Ungleichung um: 100 · n3 − n2 . SPACE(S) : Klasse aller TMs, deren Speicherbedarf durch S (|w |) abgeschätzt werden kann. 1 10 1 10 · n4 > 100 · n3 · n > 100 n > 1000 Ist n > 1000, dann ist das 1. Polynom garantiert größer als das 2. Kein wesentlicher Unterschied zwischen 1 10 Quadratischer Aufwand · n2 . . . und 700 · n2 . . .. 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-19 (371) Typische Komplexitätsklassen 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Typische Komplexitätsklassen konstanter Aufwand Beispiel 5.4 (Komplexitätsklassen) log (n) n n 2 20 100 1000 n ∗ log (n) n2 n3 en 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-21 (373) linear 10 ∗ n 20 200 1000 10000 logar. n ∗ log n 0,6 26 200 3000 quadr. n2 4 400 10000 1 ∗ 106 expon. en 7 4, 85 ∗ 108 2, 688 ∗ 1043 1, 97 ∗ 10434 expon. n! 2 2, 43 ∗ 1018 9, 33 ∗ 10157 ... 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-22 (374) P und N P Komplexität und Kryptographie Unterschied zwischen exponentiellem und polynomialem Aufwand ist wesentlich! (Jede exponentielle Funktion wächst schneller als jedes Polynom.) Also: Unterscheidung zwischen Problemen, die lösbar sind mit Bemerkung 5.6 (Komplexität und Kryptografie) Kryptographie nutzt Komplexität aus. Kryptographische Verfahren verschlüsseln Informationen x ; y = f (x ). Berechnung der Umkehrfunktion Komplexität de facto unmöglich. Folie 5-20 (372) f −1 (y ) polynomialem Aufwand oder exponentiellem Aufwand. ist wegen hoher Definition 5.7 (P ) P = ∪{TIME (nd ) : d > 0} 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-23 (375) 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-24 (376) NP NTIME Definition 5.9 (N P ) Definition 5.8 (NTIME) Sei T : IN → IN. Sei L ⊂ 0 eine Sprache. Sei M = (K , Σ, δ, s, A) eine indeterministische TM mit Σ0 ⊂ Σ. M semientscheidet L in der Zeit T, falls: Σ∗ (s, #w #) `tM (h, #Y#), gdw. w ∈ L mit t ≤ T (|w |) (5.5) L heißt indeterministisch semientscheidbar in der Zeit T , falls eine indeterministische TM existiert, die L in der Zeit T akzeptiert. Die Klasse aller dieser Sprachen bezeichnen wir mit NTIME (T ). N P = ∪{NTIME (nd ) : d > 0} Offensichtlich: P ⊂ N P Frage: P = N P ? ! Das ist ungeklärt ! D.h es ist noch kein Problem gefunden worden, welches in N P ist, aber nicht in P . August 2010: Inder Vinay Deolalikar beweist Ungleichheit. Beweis wird jedoch angezweifelt. 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-25 (377) N P -vollständige Probleme 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-26 (378) N P -vollständige Probleme – Beispiele Knapsack problem (Rucksack-Problem) Gegeben sind n Objekte mit Gewichten g1 , . . . , gn und Nutzen w1 , . . . , wn sowie ein Rucksack, der maximal das Gewicht G trägt. Gesucht ist die Bepackung mit maximalem Nutzen. ; Ganzzahlige Optimierung Man kann zeigen: Travelling salesman problem P =NP BPP (bin packing problem) Gegeben sind k Behälter (Volumen b) und n Objekte der Größe g1 , . . . , gn . Kann man die Objekte auf die Behälter verteilen, ohne dass einer überläuft? gdw. die ganzzahlige Optimierung ist in P . Hamilton-Pfad Gibt es in einem Graphen einen Hamilton-Pfad? Solche Probleme, die typisch für N P sind, bezeichnet man als N P -vollständig. SAT Gegeben ist eine aussagenlogische Formel in KNF. Ist die Formel erfüllbar? Ganzzahlige Optimierung Domino-Problem Kann man aus n Steinen einen Kreis bilden? Stundenplanproblem 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-27 (379) PRIME 5 Komplexität Theoretische Informatik 5.4 Zusammenfassung (Komplexität) Folie 5-28 (380) Das sollten Sie wissen . . . Ist eine natürliche Zahl p eine Primzahl? Einfacher Algorithmus: Ausprobieren aller potentiellen Teiler: 2 p . . . p − 1 (genauer nur bis ≤ p) Zusammenfassung 5.10 (Komplexität) Praktisch unlösbare Probleme Betrachten für p eine 128-Bit-Zahl (n = 128). Speicherplatz, Zeitbedarf n 2n bzw. 2 2 mögliche Teiler: 264 ≈ 1.8 · 1019 Möglichkeiten Bestimmung der relevanten Operation, Quantifizieren/Abschätzen des Aufwands Bei 109 Divisionen pro Sekunde: ca. 1.8 · 1010 Sekunden ≈ 570 Jahre Komplexitätsklassen Problem galt lange als N P -Problem. P und N P 2002. Aagrawal, Kayal und Saxena finden polynomialen Algorithmus. 5 Komplexität Theoretische Informatik 5.5 Aufgaben (Komplexität) Folie 5-29 (381) Aufgaben 5 Komplexität Theoretische Informatik 5.5 Aufgaben (Komplexität) Folie 5-30 (382) Aufgaben Aufgabe 5.3 (Sortieren) Eine Liste von Zahlen soll sortiert werden. Aufgabe 5.1 (Aufwand) Entwickeln Sie einen Sortieralgorithmus für Listen von Zahlen oder greifen Sie auf einen Ihnen bekannten Algorithmus wie Bubblesort oder Nachbarvertauschen zurück. Bisher haben wir immer vom Aufwand einer Maschine (bzw. eines Algorithmus) gesprochen. Wie würden Sie den Aufwand eines Problems definieren (beispielsweise Tourenplanung)? Wie verhält sich Ihr Algorithmus? Berechnen Sie seine Komplexität in Abhängigkeit von der Länge n der Liste! Wie verhält sich Ihr Algorithmus im „besten“ Fall? Wie muss die gegebene Liste dann aussehen? Wie hoch ist der Aufwand im „schlimmsten“ Fall? Aufgabe 5.2 (Rundreiseproblem) Finden Sie ein Verfahren, welches (näherungsweise) eine gute Lösung für das Rundreiseproblem bestimmt! Untersuchen Sie den Aufwand in Abhängigkeit von der Anzahl der Städte! Aufgabe 5.4 (Komplexität) Untersuchen Sie die Turingmaschine aus Abbildung 45. Finden Sie eine bessere Aufwandsabschätzung. 5 Komplexität Theoretische Informatik 5.5 Aufgaben (Komplexität) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 5-31 (383) 10. Juli 2016 Aufgaben Inhaltsverzeichnis Aufgabe 5.5 (Komplexität – Wachstum der Polynome) Prüfen Sie, ob das Polynom tatsächlich das Polynom 1 1000 · n4 − 2000 · n3 1000 · n3 + 7000 · n2 „überholt“, d.h. dass es ab einem bestimmten n immer größer ist. 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-1 (386) 10. Juli 2016 Inhaltsverzeichnis – Kapitel 6 6 Berechenbarkeit & Entscheidbarkeit Berechenbarkeit & Entscheidbarkeit Grammatik-Berechenbarkeit Gödelisierung LOOP- und WHILE-Berechenbarkeit Churchsche These Aussagen über Turingmaschinen und unlösbare Probleme Zusammenfassung (Berechenbarkeit) Aufgaben (Berechenbarkeit) 6 Berechenbarkeit & Entscheidbarkeit The one who says it cannot be done should never interrupt the one who is doing it. The Roman Rule Arthur Bloch, Murphy’s Law Theoretische Informatik 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-2 (387) Arten der Nichtberechenbarkeit Arten der Nichtberechenbarkeit – 2 Unkenntnis der Gesetze Simulation der Evolution, Entwicklung neuer Gene etc. Spontane Systemveränderungen radioaktiver Zerfall (nur Wahrscheinlichkeitsaussagen, nicht wirkliche Aussage über den Zerfall EINES Atoms) Überschreitung der Kapazität der Computer Aufgaben, die zwar lösbar, aber nur unter extremem Aufwand (Rundreiseproblem) 6 Berechenbarkeit & Entscheidbarkeit Folie 6-3 (388) Nichtberechenbarkeit bisher unbekannt Ist die Funktion while(n!=1) { if(n gerade) n=n/2; else n=3*n+1; } für jedes n definiert? Beweisbar nicht berechenbare Probleme Mit Zirkel und Lineal soll ein Winkel in 3 gleiche Teile zerlegt werden. Nichtentscheidbare Probleme Leisten 2 Programme das gleiche? Sind sie äquivalent? Theoretische Informatik 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-4 (389) Berechenbarkeit Berechenbarkeitsbegriffe Frage: Kann eine Funktion mit Hilfe eines Computers berechnet werden? Turing-Berechenbarkeit Grammatik-Berechenbarkeit Einführen verschiedener Berechenbarkeitsbegriffe WHILE-Berechenbarkeit Vergleich der Ausdrucksstärke 6 Berechenbarkeit & Entscheidbarkeit Folie 6-5 (390) Theoretische Informatik 6.1 Grammatik-Berechenbarkeit Folie 6-6 (391) Grammatik-Berechenbarkeit 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.1 Grammatik-Berechenbarkeit Folie 6-7 (392) Grammatik-Berechenbarkeit Beispiel 6.1 (Grammatik-Berechenbarkeit) succ (+1) : IN → IN Definition 6.1 (Grammatik-Berechenbarkeit) f heißt Grammatik-berechenbar gdw.: Es existieren x , y , x 0 , y 0 ∈ V ∗ , so dass für alle u , v gilt f (u ) = v ↔ xuy ⇒∗G x 0 vy 0 . Die Zeichenketten x , y , x 0 , y 0 kann man als Begrenzungen auffassen. Unsere Grammatik sieht wie folgt aus: R: 0S 0C 0X SC → → → → C1 C0 C1 e 1S 1C 1X SX → → → → X0 C1 X0 1 S101S →G S10X 0 →G S1C10 →G SC110 →G 110 Wir wählen hier als Begrenzungszeichen x = y = S und x 0 = y 0 = e. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.2 Gödelisierung Folie 6-8 (393) Gödelisierung 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.2 Gödelisierung Folie 6-9 (394) Gödelisierung – 2 Ziel: Kodierung von Zeichenketten durch Zahlen. Beispiel 6.2 (Kodierung) Sei Σ = {a, b, c }, Bisher: Verarbeitung von Zeichenketten Wir möchten auch über Funktionen über natürlichen Zahlen reden. Kann man Zeichenketten und Zahlen 1-1 aufeinander abbilden? Zahlenbasis: B = |Σ| + 1 = 4 Weisen den Elementen des Alphabets (Σ) Zahlen zu: a → 1, b → 2, c → 3. Kodierung von bbcba : Natürliche Zahlen als Zeichenketten: 6=iiiiii 44 · 2 + 43 · 2 + 42 · 3 + 41 · 2 + 40 · 1 Aufgabe 6.1 (Kodierung) Gibt es hier Zahlen, zu denen es keine Zeichenkette gibt? 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-10 (395) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-11 (396) 6.3.1 LOOP-Berechenbarkeit LOOP- und WHILE-Berechenbarkeit LOOP-Berechenbarkeit Die Programmiersprache LOOP erlaubt folgende syntaktische Elemente: Viele Probleme lassen sich nur iterativ (oder rekursiv) lösen. Folglich muss Iteration bei der Definition von Berechenbarkeit eine Rolle spielen. Variablen x1 , x2 , . . . Konstante 0 Symbole := und ; Operatoren succ und pred Schlüsselwörter LOOP, DO, END 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-12 (397) 6.3.1 LOOP-Berechenbarkeit 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-13 (398) 6.3.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit LOOP-Berechenbarkeit Folgende Programme sind erlaubt: Ausgabevariable . . . x0 Wertzuweisung: (n ∈ IN): I x := succ(x ) (= xj + 1) i j I xi := pred(xj ) (= max(0, xj − 1)) x1 , . . . , xk . . . Eingabe-Variablen Restliche Variablen . . . Hilfsvariablen, die beim Programmstart mit 0 belegt sind. das leere Programm Λ Komposition: Sind P1 und P2 LOOP-Programme, so auch P1 ; P2 (Hintereinanderausführen von P1 und P2 .) P k . . . P ; . . . ; P, also das k-malige Ausführen von P Ist P ein LOOP-Programm, so auch LOOP xi DO P END (P wird xi -mal ausgeführt.) LOOP ist eine Schleife, die xi -mal ausgeführt. 6 Berechenbarkeit & Entscheidbarkeit 6.3 LOOP- und WHILE-Berechenbarkeit Theoretische Informatik Folie 6-14 (399) 6.3.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit P 0 ist das leere Programm Λ. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-15 (400) 6.3.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit LOOP-Sprache wirkt sehr simpel. Wie bekommt man die natürlichen Zahlen? Beispiel 6.3 (LOOP) succ(0) = 1 Können wir die Addition als LOOP-Funktion programmieren? Folgendes Programm berechnet die Addition x1 + x2 und gibt das Resultat auf x0 zurück. succ(succ(0)) = 2 x0 := x1 ; LOOP x2 DO x0 := succ(x0 ) END Im folgenden dürfen wir also die Addition + auch als LOOP-Funktion verwenden. succ(succ(succ(0))) = 3 succ(succ(succ(succ(0)))) = 4 ... Geht IF-THEN in LOOP? Ja. Hier eine Implementierung für: if (xi = 0) then P end : xj := 1; LOOP xi DO xj := 0 END; LOOP xj DO P END; 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-16 (401) 6.3.2 WHILE-Programme 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 LOOP- und WHILE-Berechenbarkeit Folie 6-17 (402) 6.3.2 WHILE-Programme WHILE-Programme WHILE-Programme Beobachtung: Nicht jede Funktion ist LOOP-berechenbar. Beispiel 6.4 (Ackermannfunktion) Da das LOOP-Konzept nicht ausreicht, erweitern wir die LOOP-Programme zu WHILE-Programmen: Die Ackermann-Funktion ist nicht LOOP-berechenbar. ack (0, y ) ack (x + 1, 0) ack (x + 1, y + 1) Jedes LOOP-Programm ist auch ein WHILE-Programm. = y +1 = ack (x , 1) = ack (x , ack (x + 1, y )) Ist P ein WHILE-Programm, dann auch WHILE xi > 0 DO P END In alternativer Schreibweise: ack (x , y ) = falls x = 0 y +1 ack (x − 1, 1) falls x > 0 und y = 0 ack (x − 1, ack (x , y − 1)) falls x , y > 0 Mit den WHILE-Programmen sind wir nun in der Leistungsklasse der Turing-Maschinen. (6.1) 6 Berechenbarkeit & Entscheidbarkeit 6.3 LOOP- und WHILE-Berechenbarkeit Theoretische Informatik Folie 6-18 (403) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Churchsche These Folie 6-19 (404) 6.3.2 WHILE-Programme Aufgaben Leistungskraft der Berechenbarkeitsbegriffe 1. Hälfte des 20. Jhdt.: etliche Berechenbarkeitsbegriffe Welches Konzept war das stärkste? ; Immer wieder in der Leistungsklasse der TM. Aufgabe 6.2 (LOOP) Vorausgesetzt, dass die Addition LOOP-berechenbar ist, ist dann die Multiplikation LOOP-berechenbar? Satz 6.2 (Äquivalenz der Berechenbarkeitsbegriffe) Jede Turing-berechenbare Funktion ist Grammatik-berechenbar. f (n1 , n2 ) = n1 · n2 Jede Grammatik-berechenbare Funktion ist auch WHILE-berechenbar. Begründen Sie Ihre Aussage! Jede WHILE-berechenbare Funktion ist auch Turing-berechenbar. Also: Alle 3 Berechenbarkeitsbegriffe sind äquivalent. 6 Berechenbarkeit & Entscheidbarkeit 6.4 Churchsche These Theoretische Informatik Folie 6-20 (405) Churchsche These 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-21 (406) Aussagen über Turing-Maschinen Wir möchten Turing-Maschinen, die Aussagen über Turing-Maschinen machen können. Zu jeder intuitiv berechenbaren Funktion gibt es eine Turing-Maschine. Z.B.: Gibt es eine TM, die entscheidet, ob eine gegebene Turing-Maschine TM’ eine gegebene Zeichenkette akzeptiert? Wir müssen TM’ als Zeichenkette kodieren können! Eingabe-Band für TM: # TM’-Kodierung # Eingabe-Kodierung # 6 Berechenbarkeit & Entscheidbarkeit 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Theoretische Informatik Folie 6-22 (407) Aussagen über Turing-Maschinen 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-23 (408) Das Halteproblem Existiert eine Turing-Maschine, die entscheidet, ob eine Turing-Maschine TM’ bei der Eingabe einer Zeichenkette w anhält? Satz 6.3 (Unentscheidbarkeit) Hält TM’ bei Ein− TM gabe von w an? Es gibt keinen Algorithmus zur Entscheidung, ob eine beliebige Turing-Maschine M eine (beliebige) Zeichenkette w akzeptiert. TM’ Es gilt nicht, dass zu jeder Turing-Maschine M ein Algorithmus existiert, der entscheidet, ob M eine (beliebige) Zeichenkette w akzeptiert. Eingabe yes/no Eingaben w Abb. 48: Halteproblem Annahme: Es gibt eine solche TM. Diese TM berechnet f : f (i , x ) = 1 falls die TM i bei Eingabe von x anhält 0 sonst 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-24 (409) Das Halteproblem ; Wie verhält sich TM” bei der Eingabe von j? berechnet f (v , v ) Würde TM” anhalten, so muss f (j , j ) = 1 gelten, d.h. TM” hält nicht an. Falls das Resultat = 0 ist, wird eine 0 ausgegeben und angehalten, Hält TM” nicht an, dann wäre f (j , j ) = 0, also hält TM” an. sonst geht TM” in einen unendlichen Zyklus. Widerspruch! Also: Annahme, dass f existiert, ist falsch. Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-26 (411) Unlösbare Probleme 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-27 (412) Unlösbare Probleme Es gibt eine Reihe von weiteren unlösbaren Problemen. Hält eine TM bei der Eingabe einer beliebigen Zeichenkette w? Hält eine fest vorgegebene TM bei der Eingabe einer beliebigen Zeichenkette w? Hält eine TM bei der Eingabe der leeren Zeichenkette? Sind 2 TMs äquivalent, d.h. leisten sie dasselbe? Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folgende Probleme über Grammatiken sind unlösbar: Gilt für eine Grammatik G und eine Zeichenkette w : w ∈ L(G)? Gilt für Grammatiken G1 , G2 : L(G1 ) = L(G2 )? Das folgende Problem ist leider ebenso unlösbar: Es soll für jede beliebige mathematische Aussage geprüft werden, ob sie wahr oder falsch ist (Hilbert-Entscheidungsproblem). Sei eine TM gegeben. Ist die durch sie akzeptierte Sprache regulär, ist sie kontext-frei, ist sie Turing-entscheidbar? Folie 6-28 (413) Die Busy-Beaver-Funktion 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-29 (414) Weitere Begriffe zur Berechenbarkeit Tibor Rado (1895-1965) ging folgender Frage nach: Wie viele Einsen kann eine Turingmaschine (maximal) mit n Zuständen auf ein leeres Band schreiben, bevor sie schließlich anhält? Solche TM wird busy beaver (fleißiger Biber) genannt. Busy-Beaver-Funktion bb(n) ist wohldefiniert, aber schon für n ≥ 6 sehr komplex. Rado bewies: Es gibt kein Verfahren, das für beliebige n bb(n) berechnet. Funktion ist also nicht berechenbar. 6 Berechenbarkeit & Entscheidbarkeit Folie 6-25 (410) Kodierung dieser TM” : j. Eingabe: Zeichenkette v 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Das Halteproblem Konstruieren eine TM” : 6 Berechenbarkeit & Entscheidbarkeit 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-30 (415) Semientscheidbarkeit – Beispiel Berechenbarkeit einer (partiellen) Funktion f : X → Y definiert über die Existenz eines Verfahrens, welches bei Eingabe von x ∈ X einen Wert y ∈ Y liefert genau dann, wenn gilt f (x ) = y . Entscheidbarkeit: Existiert ein Verfahren, welches für eine gegebene Eingabe x prüft, ob x ∈ M gilt, und entsprechend 1 oder 0 liefert, so bezeichnet man M als entscheidbar. Weitere Begriffe zur Berechenbarkeit: Aufzählbarkeit Eine Sprache L heißt aufzählbar, wenn es eine TM gibt, die L akzeptiert. Semientscheidbarkeit Existiert ein Verfahren, welches für jede Eingabe x prüft, ob x ∈ M gilt, und im positiven Fall 1 liefert, so bezeichnet man M als semi-entscheidbar. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-31 (416) Unentscheidbarkeit – diophantische Gleichungen Beispiel 6.6 (Diophantische Gleichungen) Beispiel 6.5 (Semientscheidbarkeit) Wir betrachten die Sprache: L = {x ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}∗ |x ist Teilstring von π} Diese Sprache ist nur semientscheidbar, da wir π nicht komplett kennen und nur ja sagen können, wenn wir x gefunden haben. no können wir nie sagen. Wir betrachten das 10. Hilbertsche Problem, welches die Frage stellt, ob man immer entscheiden kann, ob ein Gleichungssystem wie: x 3 + 5y − 7z u + v − y4 (x − y )2 − u = uv 2 = z3 + 4 = v −1 eine ganzzahlige Lösung hat. Hier gibt es eine Lösung (u = 4, v = 1, x = −1, y = 1, z = 0), aber im allgemeinen kann man dies nicht entscheiden. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-32 (417) Sprachen und Berechenbarkeit 6 Berechenbarkeit & Entscheidbarkeit 6.5 Aussagen über Turingmaschinen und unlösbare Probleme Theoretische Informatik Folie 6-33 (418) Sprachen und Berechenbarkeit abzählbare Sprachen Abzählbarkeit Elementares Kriterium: man kann die Menge abzählen. Typ 0 aufzählbare Sprachen Aufzählbarkeit Schon näher an einem Algorithmus dran: es gibt ein Verfahren, welches bei Eingabe einer korrekten Zeichenkette anhält. Problem: Was machen wir, wenn die TM rechnet und rechnet? Wird sie irgendwann anhalten? entscheidbare Sprachen Typ 1 kontext−sensitive Sprachen Typ 2 kontext−frei Typ 3 regulär Entscheidbarkeit Aufzählbarkeit für Informatik meistens zu schwach. Man will häufig wissen: Ist ein Element in einer Menge oder nicht. Sprich: nach endlicher Zeit Yes/No. Abb. 49: Sprachhierarchie 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.6 Zusammenfassung (Berechenbarkeit) Folie 6-34 (419) Das sollten Sie wissen . . . Aufgabe 6.4 (Entscheidbarkeit) Churche These Ist jede endliche Menge Turing-entscheidbar? Begründen Sie Ihre Aussage! Lösbare/Unlösbare Probleme, Halteproblem Theoretische Informatik Folie 6-36 (421) Aufgaben Aufgabe 6.5 (Abgeschlossenheit) Zeigen Sie, dass die Menge der Turing-entscheidbaren Sprachen abgeschlossen ist bezüglich Komplement-Bildung Durchschnitt Kleene star. Skizzieren Sie dazu passende Turing-Maschinen! Folie 6-35 (420) Kodieren Sie Zeichenketten über Σ = {a, b, c , d , e} mittels Gödelisierung! Berechenbarkeitsmodelle: LOOP/WHILE, Grammatiken, Turing-Berechenbarkeit Vereinigung Theoretische Informatik Aufgabe 6.3 (Kodierung) Gödelisierung 6.7 Aufgaben (Berechenbarkeit) 6.7 Aufgaben (Berechenbarkeit) Aufgaben Zusammenfassung 6.4 (Berechenbarkeit) 6 Berechenbarkeit & Entscheidbarkeit 6 Berechenbarkeit & Entscheidbarkeit