Theoretische Informatik Prof. Dr. Jürgen Cleve Hochschule Wismar 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit Infos 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 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 1 TI – Einführung Theoretische Informatik 24. August 2015 Inhaltsverzeichnis – Kapitel 1 1 TI – Einführung Einordnung von TI Inhalte von TI TI – Motivation 1 TI – Einführung Theoretische Informatik Folie 1-1 (6) TI – Einführung The sum of the intelligence on the planet remains a constant; the population, however, continues to grow. Mr. Cole’s Axiom 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 Technische Informatik Theoretische Informatik Informatik Praktische Informatik Angewandte Informatik 1 TI – Einführung 1.2 Inhalte von TI Gegenstand der Vorlesung ; theoretische Grundlagen und Konzepte der Informatik Grundbegriffe, inkl. Graphen Automaten formale Sprachen Algorithmen Berechenbarkeit Komplexität Logik Theoretische Informatik Folie 1-5 (10) 1 TI – Einführung Theoretische Informatik 1.3 TI – Motivation Folie 1-6 (11) Wozu TI ?? 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. 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. 1 TI – Einführung Theoretische Informatik 1.3 TI – Motivation Folie 1-7 (12) Motto der Vorlesung Nichts ist so praktisch wie eine gute Theorie. 2 Grundlagen Theoretische Informatik 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 2 Grundlagen Theoretische Informatik 24. August 2015 Inhaltsverzeichnis – Kapitel 2 2 Grundlagen Mengen Relationen Funktionen Formale Sprachen Graphen Zusammenfassung (Grundlagen) Aufgaben (Grundlagen) 2 Grundlagen Theoretische Informatik Folie 2-1 (15) Grundlagen Wenn Eins besonders groß ist, ist es beinahe so groß wie ein bisschen Zwei. Murphys mathematisches Axiom Arthur Bloch, Murphy’s Law, 1981 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-2 (16) Mengen Menge ist eine Zusammenfassung von Objekten Schreibweise: {x , y , . . .} Element-Beziehung (∈) : x ∈ M, wenn M = {. . . , x , . . .} Gleichheit von Mengen Leere Menge, Darstellung als {} oder 0/ Teilmengen (⊂), echte Teilmengen Es gibt endliche (alle lebenden Menschen) und unendliche (Zahlen) Mengen. Mengen werden i.allg. durch Eigenschaften beschrieben: M = {x ∈ IN | x ≤ 6} Video 25/5 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-3 (17) Mengen 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 WI12: {Klaus, Erwin, Anne, Petra, . . . } M = {(x , y ) ∈ IN × IN | x ∗ y ist gerade} / nicht die leere Menge ist, sondern die Beachten Sie, dass {0} Menge, die die leere Menge als (einziges) Element enthält. 2 Grundlagen Theoretische Informatik 2.1 Mengen Mengenoperationen Vereinigung (∪) Durchschnitt (∩) Mengendifferenz (\) Symmetrische Mengendifferenz (−) Mengenkomplement (A oder Ac ) Folie 2-4 (18) 2 Grundlagen Theoretische Informatik 2.1 Mengen Mengenoperationen Beispiel 2.2 (Mengenoperationen) {3, 2, 1} ∪ {3, 4, 5} = {1, 2, 3, 4, 5} {1, 2, 3} ∩ {3, 4, 5} = {3} {2, 1, 3} \ {3, 4, 5} = {1, 2} {1, 2, 3} − {3, 4, 5} = {1, 2, 4, 5} Sei die Grundmenge {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, dann ist {3, 4, 5} = {1, 2, 6, 7, 8, 9, 10} Folie 2-5 (19) 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-6 (20) Eigenschaften von Mengenoperationen – 1 Idempotenz Kommutativität Assoziativität Distributivität Absorption 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-7 (21) 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-8 (22) 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 | 2 Grundlagen Theoretische Informatik 2.1 Mengen Folie 2-9 (23) Mengeneigenschaften Beispiel 2.3 (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, Die natürlichen Zahlen sind bezüglich der Addition abgeschlossen. Zur Darstellung von Mengen eignen sich die sogenannten Venn1 -Diagramme. 1 John Venn, 1834-1923 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-10 (24) Relationen Beispiel-Relation: verheiratet_mit = {(Adam,Beate), (Claus,Dana), (Ernst,Franzi)}. Kartesisches Produkt (Kreuzprodukt): A × B = {(a, b) | a ∈ A, b ∈ B } Oder: A × B × C × D = {(a, b, c , d ) | a ∈ A, b ∈ B , c ∈ C , d ∈ D } Das Kreuzprodukt ist also die Menge aller möglichen Kombinationen aus den vorgegebenen Mengen. Jede Relation ist eine Teilmenge des Kreuzprodukts über den Grundmengen: R ⊂ S1 × ... × Sn 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-11 (25) Relationen Beispiel 2.4 (Relationen) Die Relation ist_verheiratet: {(gert, inge), (uwe, petra), (wolfgang, gerda) . . .} ⊂ Männer × Frauen. Die Relation ist_Teiler_von: {(1, 1), (1, 2), (2, 2), (2, 4), (2, 6), (3, 6), . . .} ⊂ IN × IN. {1, 2} × {a, b, c } = {(1, a), (2, a), (1, b), (2, b), (1, c ), (2, c )} 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-12 (26) Relation – Student Beispiel 2.5 (Relation – Student) Die Relation student: Matrikel 104526 103556 113576 104920 ... Name Arnhold Börne Cäsar Dönhoff ... Vorname Anton Carl-Friedrich Cleopatra Dörte ... Studiengang MMT WI MMT WI ... student ⊂ Matrikel × Namen × Vornamen × Studiengänge 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-13 (27) Eigenschaften von 2-stelligen Relationen Betrachten nur 2-stellige Relationen über gemeinsamer Grundmenge: R ⊂ A × A. z.B. Kleiner-Relation auf natürlichen Zahlen: <IN ⊂ IN × IN. Schreibweise: x R y an Stelle von (x , y ) ∈ R . . . x < y an Stelle von (x , y ) ∈< Welche Eigenschaften können 2-stellige Relationen haben? 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. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-14 (28) Eigenschaften von 2-stelligen Relationen 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. Äquivalenzrelation (reflexiv, symmetrisch, transitiv) Ordnungsrelation (reflexiv, antisymmetrisch, transitiv), (partiell, total) 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-15 (29) Partielle / totale Ordnungsrelationen Totale Ordnungsrelation: zwei beliebig gewählte Elemente (x, y) müssen immer vergleichbar sein, d.h. es muss xRy oder yRx gelten. Partielle Ordnungsrelation: Unvergleichbarkeit zugelassen. Relation ist_teiler_von: partielle Ordnungsrelation, da beispielsweise weder 3|7 noch 7|3 gilt. 2 Grundlagen Theoretische Informatik 2.2 Relationen Äquivalenz- / Ordnungsrelationen Beispiel 2.6 (Relationen) Kandidaten für Äquivalenzrelationen sind beispielsweise: gleiche_haarfarbe geschwister_von Kandidaten für Ordnungsrelationen sind: ≥ klüger_als Prüfen Sie die Eigenschaften. Folie 2-16 (30) 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-17 (31) Aufgaben Aufgabe 2.1 (Relationen) Sind folgende Aussagen korrekt? Die Relation ist_verheiratet ist weder reflexiv noch transitiv. Die Relation „x ist Teiler von y“ ist reflexiv und transitiv, jedoch nicht symmetrisch. 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-18 (32) Graphische Darstellung von 2-stelligen Relationen Bemerkung 2.1 (Graphische Darstellung) 2-stellige Relationen lassen sich graphisch darstellen (Abb. 1). c a {(a,b), (f,b), (c,d)} f b d Abb. 1: Relationen – Beispiel 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-19 (33) Hüllenbildung auf 2-stelligen Relationen Bei der Hüllenbildung wird eine Relation um Elemente erweitert, so dass eine bestimmte Eigenschaft gilt. transitive Hülle reflexive Hülle symmetrische Hülle Beachten Sie: Bei der Hüllenbildung muss man auch die neuen Kanten betrachten. Nur die Erweiterungen, die zwingend nötig sind, nicht mehr! 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-20 (34) Hüllenbildung auf 2-stelligen Relationen Wozu braucht man eine solche Hülle? Betrachten ein Computer-Netzwerk. Möchten untersuchen, ob man von jedem Computer zu jedem anderen kommt. Die direkten Verbindungen der Computer seien durch die Relation R dargestellt: Zwischen a und b besteht also eine direkte Verbindung, wenn (a, b) ∈ R. Wie bekommt man auch die indirekten Verbindungen? reflexive, transitive Hülle von R 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-21 (35) Hüllenbildung 0 21 2 0 1 1 0 0 1 2 1 0 0 1 0 21 0 1 1 10 0 1 1 30 0 1 1 10 0 1 1 3 0 0 1 0 11 0 1 3 1 0 0 1 0 51 0 1 4 1 0 0 1 0 51 0 1 0 41 0 1 0 51 0 1 4 0 61 0 1 Ausgangs−Relation 6 1 0 0 1 reflexive Hülle 6 1 0 0 1 1 0 0 1 symmetrische Hülle Abb. 2: Hüllenbildung – Beispiel 1 0 11 0 1 0 31 0 1 1 0 0 1 0 51 0 1 4 6 1 0 0 1 transitive Hülle 2 Grundlagen Theoretische Informatik 2.2 Relationen Folie 2-22 (36) Relationen – weitere Eigenschaften Es gibt eine Reihe weiterer Eigenschaften von zweistelligen Relationen R ⊂ A × B: linkstotal Zu jedem a gibt es (mind.) ein b, so dass (a, b) ∈ R. rechtstotal 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 . rechtseindeutig Falls (a, b1 ) ∈ R und (a, b2 ) ∈ R, dann b1 = b2 . 2 Grundlagen Theoretische Informatik 2.3 Funktionen Funktionen Funktion – spezielle 2-stellige Relation Wichtige Eigenschaft: Eindeutigkeit Zu jedem a existiert höchstens ein b, so dass (a, b) ∈ R gilt. a . . . Urbild b . . . Bild Folie 2-23 (37) 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-24 (38) Eigenschaften von Funktionen totale Funktion: Zu jedem Urbild gibt es genau ein Bild. partielle Funktion: Nicht zu jedem Urbild muss es ein Bild geben. 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 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-25 (39) Funktionen 1 0 11 00 00 11 1 0 1 0 0 1 00 11 11 00 nicht injektiv nicht total 111 00 1 0 0 0 1 0 1 11 00 11 0 00 1 11 00 1 0 nicht surjektiv 00 11 1 0 01 1 0 0 1 1 0 11 00 00 00 11 11 1 0 11 00 Abb. 3: Funktionen – Beispiel bijektiv 1 0 1 0 1 0 1 0 00 11 011 1 00 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-26 (40) Funktionen Beispiel 2.7 (Funktionen) Addition von natürlichen Zahlen: plus : IN × IN → IN Absolutbetrag auf ganzen Zahlen: abs : ZZ → IN 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-27 (41) Funktionen Bemerkung 2.2 (Injektivität, Surjektivität) 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. Ist die Funktion f zusätzlich noch surjektiv, dann ist f −1 sogar total. 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-28 (42) Beispiel 2.8 (Injektivität, Surjektivität) Die Funktion vater_von ist nicht injektiv, denn ihre Umkehrabbildung vater_von−1 ist nicht eindeutig. 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. 2 Grundlagen Theoretische Informatik 2.3 Funktionen Folie 2-29 (43) Weitere Begriffe Definitionsbereich, Wertebereich von Funktionen endliche und unendliche Mengen Kardinalität einer Menge 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.3 Funktionen Folie 2-30 (44) Abzählbarkeit Satz 2.4 (Abzählbarkeit) Jede unendliche Teilmenge einer abzählbaren Menge ist wieder abzählbar. Die Vereinigung von endlich vielen abzählbaren Mengen ist wieder abzählbar. Beispiel 2.9 (Abzählbarkeit) Die rationalen Zahlen sind abzählbar. (Beweis als Aufgabe) 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-31 (45) Formale Sprachen Alphabet (endliche Menge von Symbolen) (endliche) Zeichenketten (Wörter, Strings) über einem Alphabet leere Zeichenkette e, Teilzeichenkette Länge einer Zeichenkette: |w | Anzahl von Zeichen (a) in einer Zeichenkette w: |w |a Konkatenation (Verknüpfung) von Zeichenketten (ist assoziativ) Umkehrung einer Zeichenkette (reversal) 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-32 (46) Formale Sprachen Definition 2.5 (Formale Sprache) Formale Sprache – eine Teilmenge der Menge aller endlichen Zeichenketten über einem vorgegebenen Alphabet Σ. Beschreibung: L = {w ∈ Σ∗ |w hat die Eigenschaft P } wobei die Eigenschaft P endlich beschreibbar sein muss. (Σ∗ = 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 Operationen Konkatenation (Produkt) von Sprachen L1 • L2 = {x • y | x ∈ L1 und y ∈ L2 } Kleenescher Abschluss (Kleene star): Vereinigung aller endlichen Produkte der Sprache L mit sich selbst: S i L∗ = ∞ i =0 L = {e} ∪ L ∪ (L • L) ∪ (L • L • L) ∪ . . .. Folie 2-33 (47) 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-34 (48) Operationen Beispiel 2.10 (Stringoperationen) {a, b} • {d , ff , g } = {ad , aff , ag , bd , bff , bg } {a, bb}∗ = {e, a, bb, aa, abb, bba, bbbb, aaa, aabb, . . .} (Menge aller endlichen Zeichenketten, gebildet aus den Bausteinen a / bb). 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-35 (49) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Man kann Sprachen durch Ausdrücke der folgenden Form beschreiben: 1 2 a∗ b∗ Menge der Zeichenketten, aufgebaut aus endlichen vielen a (einschließlich 0) gefolgt von endlich vielen b (einschließlich 0). a(a∗ ∪ b∗ )a+ I I I 3 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. (a ∪ ab)∗ ∩ (a ∪ ba)∗ alle Zeichenketten, die sowohl durch den ersten als auch den zweiten Ausdruck darstellbar sind. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-36 (50) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Bemerkung 2.7 (Reguläre Ausdrücke) an bm . . . n a, danach m b an bn . . . n a, danach gleich viele b Beispiel 2.11 (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. am bn , m ≥ n . . . a, dann b; mindestens so viele a wie b. (a ∪ b)n , n ≥ 2 . . . Beliebig a/b; mindestens 2. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-37 (51) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Reguläre Ausdrücke sind die leere Menge, die Wörter der Länge 1 sowie Konkatenation, Vereinigung, Durchschnitt und Kleenescher Abschluss von regulären Ausdrücken. Darstellung: Konkatenation a∗ • b∗ oder einfach a∗ b∗ . Vereinigung ∪ Durchschnitt ∩ Kleene-Star ∗ 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-38 (52) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Beispiel 2.12 (Reguläre Ausdrücke) Der Ausdruck a(a∗ ∪ b∗ )b steht für die Zeichenketten, die wie folgt aufgebaut sind: Das 1. Zeichen ist ein a. Dann folgt eine beliebige Zeichenkette, gebildet entweder nur aus as oder nur aus bs (einschließlich dem leeren String). Das letzte Zeichen ist ein b. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-39 (53) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke – Typische Fehler Beispiel 2.13 (Reguläre Ausdrücke – Typische Fehler) 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. 2 Grundlagen Theoretische Informatik 2.4 Formale Sprachen Folie 2-40 (54) 2.4.1 Reguläre Ausdrücke Reguläre Ausdrücke Beispiel 2.14 (Reguläre Ausdrücke) 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∗ 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-41 (55) Königsberger Brückenproblem (Euler 1736) Das Königsberger Brückenproblem geht auf Euler2 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. 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 Abb. 4: Königsberger Brückenproblem Ist das Problem lösbar? 2 Leonhard Euler, 1707-1783 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-42 (56) Graphen – Bedeutung Rechnernetze: Konfiguration, Routing etc. Suche: Suchprobleme als Suche in Graphen Tourenplanung, Verkehrsweg-Planung Compiler Datenbanken Darstellung von zustandsorientierten Modellen I I Automaten Modellierung von Workflows 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-43 (57) Beispiel-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 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Abb. 5: Beispiel-Graphen 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-44 (58) 2.5.1 Grundlagen und Grundbegriffe Grundlagen und Grundbegriffe Definition 2.8 (Graph) Ein Graph ist definiert als Paar G = (K , V ), wobei K eine nichtleere Menge von Knoten und V ⊂ K × K eine Menge von Kanten (Verbindungen) ist. Wir sagen, zwischen den Knoten a und b besteht eine Verbindung, wenn gilt: (a, b) ∈ V oder (b, a) ∈ V . 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-45 (59) 2.5.1 Grundlagen und Grundbegriffe Gerichteter Graph Definition 2.9 (Gerichteter Graph) Ein gerichteter Graph ist definiert als Paar G = (K , V ), wobei K eine nichtleere Menge 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-46 (60) 2.5.1 Grundlagen und Grundbegriffe Komplement eines Graphen, Grad von Knoten Definition 2.10 (Komplement eines Graphen) Das Komplement eines Graphen G = (K , V ) ist definiert durch Gc = (K , V 0 ), wobei V 0 = (K × K ) \ V . Definition 2.11 (Grad) Der Grad eines Knoten k : g (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-47 (61) 2.5.1 Grundlagen und Grundbegriffe Kantenzug, Weg, Kreis Definition 2.12 (Kantenzug, Weg, Kreis) Sei (v1 , v2 , . . . vn ) eine Folge von Kanten eines Graphen G. Man bezeichnet diese Kantenfolge als Kantenzug falls es Knoten k0 , . . . , kn ∈ K gibt, so dass vi = ki −1 ki . Weg falls die ki paarweise verschieden sind. geschlossenen Kantenzug falls k0 = kn Kreis falls im Kantenzug die ki paarweise verschieden sind. 2 Grundlagen 2.5 Graphen Theoretische Informatik Folie 2-48 (62) 2.5.1 Grundlagen und Grundbegriffe Verbindbar, zusammenhängend Definition 2.13 (Verbindbar, zusammenhängend) 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-49 (63) 2.5.1 Grundlagen und Grundbegriffe Spezielle Graphen Vollständige Graphen (Jeder Knoten ist mit jedem verbunden.) Zyklische Graphen (Der Graph ist ein geschlossener Weg.) Reguläre Graphen (Jeder Knoten hat den gleichen Grad.) Ein kreisfreier gerichteter Graph wird als DAG bezeichnet (directed acyclic graph). 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-50 (64) 2.5.1 Grundlagen und Grundbegriffe Graphen 1 1 0 0 1 0 21 0 1 0 41 0 1 3 1 0 0 1 11 00 00 5 11 Abb. 6: Beispielgraph 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 2 und 3 ist 2. 2 Grundlagen 2.5 Graphen Theoretische Informatik Folie 2-51 (65) 2.5.2 Bäume Bäume Definition 2.14 (Baum) 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. Bäume sind also spezielle zusammenhängende Graphen. In Bäumen gilt: Kantenanzahl = Knotenanzahl - 1 Bäume enthalten keine Kreise. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-52 (66) 2.5.2 Bäume Bäume 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 0 1 Abb. 7: Baum oder nicht ? 1 0 0 1 1 0 0 1 1 0 1 0 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-53 (67) 2.5.2 Bäume Gerichteter Baum 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. Wurzelbaum heißt ausgeglichen (engl. balanced), wenn die Tiefe der Blätter um maximal 1 differiert. 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-54 (68) 2.5.2 Bäume Bäume 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? 2 Grundlagen Theoretische Informatik 2.5 Graphen 2.5.2 Bäume Binäre Bäume Definition 2.17 (Binärer Baum) Ein binärer Baum ist ein gerichteter Baum mit der Eigenschaft: Jeder Knoten hat maximal einen Ausgangsgrad von 2. Folie 2-55 (69) 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-56 (70) 2.5.2 Bäume Anwendungen von Bäumen Hierarchische Dateisysteme (Directories und Subdirectories) Ableitungsbäume (Compiler, Sprachverarbeitung) Suchbäume Bemerkung 2.18 (Ausgeglichener Binärbaum) 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-57 (71) 2.5.3 Binäre Suchbäume Binäre Suchbäume Definition 2.19 (Binärer Suchbaum) Ein binärer Suchbaum ist ein Binärbaum, wobei gilt: Alle Elemente im linken Teilbaum sind kleiner als das Element der Wurzel. Alle Elemente im rechten Teilbaum sind größer als das Element der Wurzel (oder gleich). 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-58 (72) 2.5.3 Binäre Suchbäume Suchbaum – Beispiel 19 10 5 3 21 12 7 28 12 24 Abb. 8: Beispiel-Suchbaum 35 2 Grundlagen Theoretische Informatik 2.5 Graphen Folie 2-59 (73) 2.5.3 Binäre Suchbäume Aufgaben Aufgabe 2.3 (Suchbaum) Wie kann man einen Suchbaum aufbauen? Möglichkeit: den Baum „nach und nach “ aufbauen. I I Zu Beginn: Baum besteht nur aus der 1. gegebenen Zahl. Die zweite Zahl vergleicht man nun mit der 1. Zahl. Kleiner sonst I → 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.5 Graphen Folie 2-60 (74) 2.5.4 Beispielprobleme und Algorithmen Beispielprobleme und Algorithmen Typische Aufgaben sind: Weg suchen Nachbarn bestimmen Vorgänger bzw. Nachfolger in gerichteten Graphen bestimmen 2 Grundlagen Theoretische Informatik 2.6 Zusammenfassung (Grundlagen) Folie 2-61 (75) Das sollten Sie wissen . . . Zusammenfassung 2.20 (Grundlagen) Mengen, -operationen und -relationen Eigenschaften von Mengenoperationen und -relationen endliche / unendliche Mengen Relationen, Kreuzprodukt, Eigenschaften von 2-stelligen Relationen Hüllenbildung, Abgeschlossenheit Funktionen und deren Eigenschaften Formale Sprachen, reguläre Ausdrücke Graphen – Grundlagen, typische Graphen Graph, Baum – gerichtet und ungerichtet, binärer Suchbaum 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Aufgaben Aufgabe 2.4 (Zeichenketten) Wie definiert man mittels Rekursion die Länge einer Zeichenkette (|w |), die Anzahl von a in w (|w |a ), das Umdrehen einer Zeichenkette (w R )? Aufgabe 2.5 (Potenzmenge) Berechnen Sie 2{1,2,3,4} und |2{1,2,3,4} | ! Folie 2-62 (76) 2 Grundlagen 2.7 Aufgaben (Grundlagen) Theoretische Informatik Folie 2-63 (77) Aufgaben Aufgabe 2.6 (Hülle) 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? 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? 2 Grundlagen 2.7 Aufgaben (Grundlagen) Aufgaben Aufgabe 2.8 (Regulärer Ausdruck) Wofür steht der Ausdruck (ab ∪ b)∗ ? Aufgabe 2.9 (Kreuzprodukt) Bilden Sie das Kreuzprodukt {1, 3} × {3, 1} Theoretische Informatik Folie 2-64 (78) 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Aufgaben Aufgabe 2.10 (Abgeschlossenheit) Sind folgende Mengen abgeschlossen bez. der folgenden Operationen? Begründen Sie Ihre Aussagen! 1 Ungerade natürliche Zahlen / Subtraktion 2 Positive ganze Zahlen / Multiplikation 3 Negative ganze Zahlen / Subtraktion 4 Natürliche Zahlen / Division Folie 2-65 (79) 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 a(a ∪ b)∗ b a(a∗ ∪ b∗ )∗ b a(a∗ ∩ b∗ )∗ b a(a ∪ b)+ b a(a∗ ∪ b∗ )+ b Welche Sprachen werden durch diese regulären Ausdrücke beschrieben? Folie 2-66 (80) 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-67 (81) Aufgaben Aufgabe 2.12 (surjektiv/injektiv) Sind folgende Funktionen auf den reellen Zahlen total, surjektiv bzw. injektiv? Betragsfunktion f (x ) = abs(x ) inverse Funktion f (x ) = 1 x Multiplikation mit -1: f (x ) = −x Addition: f (x , y ) = x + y Division: f (x , y ) = f (x , y ) = ex × y x y 2 Grundlagen 2.7 Aufgaben (Grundlagen) Theoretische Informatik Folie 2-68 (82) Aufgaben Aufgabe 2.13 (Grad eines Graphen) Ist die Anzahl der Knoten geraden Grades in einem ungerichteten Graphen stets gerade? 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! 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Folie 2-69 (83) 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.16 (Komplementgraphen) 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 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-70 (84) Aufgaben Aufgabe 2.17 (Ungerichtete Bäume) Wieviele (ungerichtete, nicht äquivalente) Bäume mit 5 Knoten gibt es? Wieviele Wurzeln kann ein gerichteter Baum haben? Aufgabe 2.18 (Mengen und Relationen) Sind folgende Aussagen über Mengen korrekt? Begründen Sie Ihre Vermutung. A × (B ∩ C ) = (A × B ) ∩ (A × C ) (A ∪ B ) × C = (A × C ) ∪ (B × C ) 2 Grundlagen Theoretische Informatik 2.7 Aufgaben (Grundlagen) Aufgaben Aufgabe 2.19 (Eigenschaften von Relationen) Ist die Teilmengenbeziehung ⊂: reflexiv, symmetrisch, antisymmetrisch, transitiv? Folie 2-71 (85) 3 Automatentheorie Theoretische Informatik 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 3 Automatentheorie Theoretische Informatik 24. August 2015 Inhaltsverzeichnis – Kapitel 3 3 Automatentheorie Endliche Automaten Kontextfreie Sprachen und Kellerautomaten Turingmaschinen Sprachen und Automaten – Ergänzungen Zusammenfassung (Automaten) Aufgaben (Automaten) 3 Automatentheorie Theoretische Informatik Folie 3-1 (88) Automatentheorie Drücken Start EIN AUS Drücken Abb. 9: Tastschalter 3 Automatentheorie Theoretische Informatik Folie 3-2 (89) Zustandsdiagramm – Telefon klingelt Abheb en mt m ko ver− f u r r e bunden An ruf auf An legt Ruhe Auflegen Teilnehmer nimmt ab Ab heb Wählen en Auflegen Abb. 10: Telefon 3 Automatentheorie 3.1 Endliche Automaten Endliche Automaten Die Hauptursache aller Probleme sind Lösungen. Sevareids Gesetz Arthur Bloch, Murphy’s Law, 1981 Theoretische Informatik Folie 3-3 (90) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-4 (91) Endliche Automaten (Endliche) Automaten als abstraktes Beschreibungsmittel Endliche Automaten – eingeschränktes (Computer-)Modell Viele praktische Probleme lassen sich mit endlichen Automaten lösen. 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-5 (92) 3.1.1 Deterministische endliche Automaten Deterministische endliche Automaten Folgende Komponenten: Endliches Eingabe-Band (Zeichen aus einem vorgegebenen Alphabet) Lesekopf (kann ein Zeichen lesen und dann eine Position nach rechts rücken) Eine „Blackbox“, die in Abhängigkeit vom eingelesenen Zeichen ihren internen Zustand ändert. 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-6 (93) 3.1.1 Deterministische endliche Automaten Deterministische endliche Automaten Liest Zeichen für Zeichen (von links) und kann nach jedem Zeichen seinen internen Zustand wechseln. Wenn Bandende erreicht und Automat in einem der (vorher festgelegten) Finalzustände → Zeichenkette auf dem Band: vom Automaten akzeptiert. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-7 (94) 3.1.1 Deterministische endliche Automaten 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 Einziger Finalzustand ist hier q2 . (s, b) → s (q1 , b) → q1 (q2 , b) → q2 2 4 6 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-8 (95) 3.1.1 Deterministische endliche Automaten Graphische Darstellung eines DFA b b b s a q1 a q2 a Abb. 11: Graphische Darstellung DFA DFA-2a 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-9 (96) 3.1.1 Deterministische endliche Automaten DFA – Abarbeitung 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 Band komplett eingelesen Abb. 12: Abarbeitung DFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-10 (97) 3.1.1 Deterministische endliche Automaten Komponenten eines DFA 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 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 (98) 3.1.1 Deterministische endliche Automaten DFA – Abarbeitung Band bbab Endzustand NICHT final String nicht akzeptiert b b s a q1 a b Abb. 13: Verarbeitung mit DFA q2 a 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-12 (99) 3.1.1 Deterministische endliche Automaten Deterministische endliche Automaten Definition 3.1 (DFA) Ein DFA ist ein Quintupel M = (K , Σ, δ, s, F ), wobei K . . . eine endliche Menge von Zuständen, Σ . . . ein endliches Alphabet, s ∈ K . . . der Startzustand des Automaten, F ⊂ K . . . die Finalzustände und δ . . . die totale Zustandsübergangsfunktion K × Σ → K ist. 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 (100) 3.1.1 Deterministische endliche Automaten Darstellungsformen für DFA Darstellungsformen: Regeln graphisch Tabelle Der Automat, der alle Wörter aus a/b akzeptiert, die mind. 2 a enthalten, kann auch so dargestellt werden: Zustand s q1 q2 Eingabe a b q1 s q2 q1 q2 q2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-14 (101) 3.1.1 Deterministische endliche Automaten DFA – Konfiguration Definition 3.2 (DFA – Konfiguration) Konfiguration: Paar (q , w ) interner Zustand des Automaten: q ∈ K 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 w = σw 0 für ein σ ∈ Σ, so dass δ(q , σ) = q 0 . 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-15 (102) 3.1.1 Deterministische endliche Automaten DFA – Konfiguration 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-16 (103) 3.1.1 Deterministische endliche Automaten DFA – Konfiguration Beispiel 3.2 (DFA – Konfiguration) Automat, der Wörter akzeptiert (aufgebaut aus a und b), die mindestens zwei a enthalten 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 Band babbbb babbbb babbbb babbbb babbbb babbbb babbbb Regel 2 1 4 4 4 4 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-17 (104) 3.1.1 Deterministische endliche Automaten Akzeptierte Sprache 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-18 (105) 3.1.1 Deterministische endliche Automaten Aufgaben Aufgabe 3.2 (DFA) 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-19 (106) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten 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 Theoretische Informatik 3.1 Endliche Automaten Folie 3-20 (107) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten Beispiel 3.3 (NFA) Sprache aller Wörter, die nur aus den Bausteinen aaa und abb aufgebaut sind ( s , a ) → q1 (q1 , a) → q2 ( q2 , a ) → s 1 2 3 ( s , a ) → q3 (q3 , b) → q4 (q4 , b) → s 4 5 6 Startzustand und (einziger) Finalzustand sind identisch (s). Gelingt es, das Band komplett einzulesen und in s zu enden, so wird die Zeichenkette akzeptiert (z.B. abbaaaabb). Gelingt dies nicht, so vereinbaren wir, dass der String nicht akzeptiert wird. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-21 (108) 3.1.2 Indeterministische endliche Automaten Graphische Darstellung a q1 q2 a a s b a q3 q4 b Abb. 14: Graphische Darstellung NFA 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-22 (109) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten Beispiel 3.4 (NFA) (s, aaa) → s (s, abb) → s 1 2 aaa s abb Abb. 15: Kompakter NFA NFA-aaa-abb 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-23 (110) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten Folgender NFA akzeptiert Zeichenketten, die entweder nur aus a oder nur aus b aufgebaut sind. a q1 e s e q2 b Abb. 16: NFA mit leeren Kanten NFA-leer 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-24 (111) 3.1.2 Indeterministische endliche Automaten Indeterministische endliche Automaten Beispiel 3.5 (DFA-NFA) ein deterministischer Automat (q , a) → p (q , b ) → q (p, a) → q (p, b) → p ... ein indeterministischer Automat (q , a) → p (q , a) → q (p, a) → q (p , a ) → p ... 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-25 (112) 3.1.2 Indeterministische endliche Automaten Indeterministischer endlicher Automat Definition 3.4 (NFA) Ein NFA ist ein Quintupel M = (K , Σ, ∆, s, F ), wobei K . . . eine endliche Menge von Zuständen, Σ . . . ein endliches Alphabet, s ∈ K . . . der Startzustand des Automaten, F ⊂ K . . . die Finalzustände und ∆ . . . die Zustandsübergangsrelation ∆ ⊂ K × Σ∗ × K ist. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-26 (113) 3.1.2 Indeterministische endliche Automaten 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. a q1 q2 a s a Band: abb s b a q3 q4 b q1 Band: bb Abb. 17: Verzweigung beim NFA q3 Band: bb 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-27 (114) 3.1.2 Indeterministische endliche Automaten Konfiguration Definition 3.5 (NFA – Konfiguration) Konfiguration: Paar (q , w ) Zustand q ∈ K Zeichenkette w ∈ Σ∗ Konfigurationsübergang: (q , w ) `M (q 0 , w 0 ) 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 Theoretische Informatik 3.1 Endliche Automaten Folie 3-28 (115) 3.1.2 Indeterministische endliche Automaten Konfiguration Konfiguration (wenn das Band komplett gelesen): (q , e) `∗M : reflexive, transitive Hülle von `M (endlich viele Schritte des Automaten) 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-29 (116) 3.1.2 Indeterministische endliche Automaten Akzeptierte Sprache 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}. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-30 (117) 3.1.2 Indeterministische endliche Automaten NFA NFA, der alle Zeichenketten über {a, b} akzeptiert, wo mind. 1x bb vorkommt. a s b a bb q1 b Abb. 18: NFA – Mindestens zwei b 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-31 (118) 3.1.2 Indeterministische endliche Automaten NFA Drehen Aufgabenstellung um: NIE zwei b hintereinander. a s b a bb q1 b Abb. 19: 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. NFA-2b-falsch 3 Automatentheorie 3.1 Endliche Automaten 3.1.3 Gleichwertigkeit von DFA und NFA Gleichwertigkeit von DFA und NFA Wann sind ein DFA und ein NFA äquivalent? Wenn sie die GLEICHE Sprache akzeptieren ! Theoretische Informatik Folie 3-32 (119) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-33 (120) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung NFA-DFA – Schritt 1 aba q0 ab Abb. 20: Gegebener NFA Zunächst löst man die Zeichenketten an den Kanten auf. q1 a q0 b a q2 a b q3 Abb. 21: Umwandlung – Schritt 1 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-34 (121) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung NFA-DFA – Schritt 2 Konstruieren neuen DFA. Wir sammeln jeweils alle Zustände auf, die durch exakt ein Zeichen erreichbar sind. Beginnen am Startzustand q0 = q{0} . Von q0 aus erreicht man mit einem a die Zustände q1 und q3 , mit einem b überhaupt keinen Zustand. q{1,3} a q{0} b a q{} Abb. 22: Umwandlung – Schritt 2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-35 (122) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung NFA-DFA – Schritt 3 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{0} , b) → q{} (q{0,2} , a) → q{0,1,3} (q{0,1,3} , b) → q{0,2} a q{1,3} a q{0} b a q{} b b (q{1,3} , a) → q{} (q{0,2} , b) → q{} (q{} , a) → q{} q{0,1,3} b a q{0,2} a b Abb. 23: Kompletter DFA 1 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-36 (123) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung NFA-DFA – Schritt 4 Umbennen der Zustände (s = p0 ). p2 ist der Fehlerzustand. Welche Zustände sind final? p0 , p3 , p4 . . . . da im ursprünglichen Automaten nur q0 final. a a p0 p4 p1 b b a p2 b b a p3 a b Abb. 24: Kompletter DFA 2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-37 (124) 3.1.3 Gleichwertigkeit von DFA und NFA Ergänzung Wie wandeln wir den NFA in einen DFA um? a q0 q3 q1 e b e q2 c b Abb. 25: NFA – Beispiel Ganz analog. 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. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-38 (125) 3.1.3 Gleichwertigkeit von DFA und NFA Aufgaben Aufgabe 3.3 (DFA-NFA) Wandeln Sie folgenden NFA in einen DFA um: ( s , e ) → q1 (q1 , bb) → q1 Finalzustände: q1 und q2 . Startzustand: s. (q1 , a) → q1 (s, aa) → q2 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-39 (126) 3.1.3 Gleichwertigkeit von DFA und NFA Umwandlung DFA in NFA Bemerkung 3.7 (DFA und NFA) Und wie wandelt man einen DFA in einen NFA um? Man muss am DFA nichts verändern, da jeder DFA auch ein NFA ist. Man kann Fehlerzustände weglassen. 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-40 (127) 3.1.3 Gleichwertigkeit von DFA und NFA DFA und NFA Der DFA arbeitet deterministisch, der NFA indeterministisch. Automat liefert keine Ausgabe. Man bezeichnet solche Automaten als Akzeptor. DFA: totale Zustandsübergangsfunktion NFA: nicht total, indeterministisch, Zustandsübergangsrelation 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-41 (128) 3.1.3 Gleichwertigkeit von DFA und NFA DFA und NFA Man könnte die Automaten folglich abweichend konfigurieren durch: Kriterium Ausgabe Arbeitsweise verarbeitete Zeichen Definiertheit Möglichkeiten nein (Akzeptor) / ja deterministisch / indeterministisch nur 1 / beliebig viele (einschl. e) Totalität / Partialität 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-42 (129) 3.1.3 Gleichwertigkeit von DFA und NFA DFA/NFA – Unterschiede Vorlesung/JFLAP DFA – Unterschiede Vorlesung/JFLAP Definiertheit verarbeitete Zeichen leerer String Vorlesung Totalität nur 1 e JFLAP Partialität beliebig viele (einschl. e) λ oder ε NFA – Unterschiede Vorlesung/JFLAP: Darstellung des leeren Strings 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-43 (130) 3.1.3 Gleichwertigkeit von DFA und NFA Automaten mit Ausgabe Bemerkung 3.8 (Automaten mit Ausgabe) Es gibt zwei Erweiterungen des endlichen Automaten, die Ausgaben erzeugen können: 1 Mealy-Automat 2 Moore-Automat Mealy-Automat gibt bei jedem Zustandsübergang ein Zeichen aus. Moore-Automat gibt in Abhängikeit des erreichten Zustands ein Zeichen aus. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-44 (131) 3.1.4 Sprachen von DFA und NFA Sprachen von DFA und NFA Offene Fragen: Welche Sprachen werden von endlichen Automaten akzeptiert? Welche Eigenschaften haben sie? Die von DFA/NFAs akzeptierten Sprachen sind die regulären Sprachen. 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-45 (132) 3.1.4 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. Bemerkung 3.10 (Reguläre Sprachen) 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. 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-46 (133) 3.1.4 Sprachen von DFA und NFA Reguläre Sprachen und DFA/NFA Wie wandelt man einen regulären Ausdruck in einen DFA/NFA um? Betrachten die Sprache ((ab)∗ ∪ b(a)∗ )b. Zunächst: Zeichenkette muss mit einem b enden. b s .... q1 q2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-47 (134) 3.1.4 Sprachen von DFA und NFA Reguläre Sprachen und DFA/NFA Davor: String, der entweder (ab)∗ oder b(a)∗ genügen muss. q3 e .... s q1 b q2 e q4 Jetzt müssen wir nur noch die beiden Teilmuster (in q3 und q4) darstellen. ab q3 e e s q1 e q4 b e q5 a b q2 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-48 (135) 3.1.4 Sprachen von DFA und NFA Reguläre Sprachen und DFA/NFA Was müssen wir ändern, wenn wir den regulären Ausdruck modifizieren: ((ab)∗ ∪ b(a)∗ )+ b? ab q3 e e s q1 e q4 b e b q2 e q5 a Zusatzaufgabe: Wandeln Sie diesen NFA in einen DFA um. 3 Automatentheorie 3.1 Endliche Automaten 3.1.4 Sprachen von DFA und NFA Reguläre Ausdrücke UNIX: Muster [A-Z][A-z]*[A-Z] Theoretische Informatik Folie 3-49 (136) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten 3.1.4 Sprachen von DFA und NFA Eigenschaften Satz 3.11 (Reguläre Sprachen – Abgeschlossenheit) Die Klasse aller durch einen endlichen Automaten akzeptierten Sprachen ist abgeschlossen bezüglich Vereinigung Durchschnitt Konkatenation (Produkt) Kleene star Komplement Folie 3-50 (137) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-51 (138) 3.1.4 Sprachen von DFA und NFA Beweis der Regularität Beispiel 3.6 (Reguläre Sprache) 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: L1 = 0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)Σ∗ Die Menge der geraden Zahlen wird dann definiert als: L2 = L1 ∩ Σ∗ (0 ∪ 2 ∪ 4 ∪ 6 ∪ 8) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten 3.1.4 Sprachen von DFA und NFA Beweis der Regularität Beispiel 3.6 cont. Teil 2: Durch 3 teilbare Zahlen sind regulär. Konstruieren einen DFA über Quersumme. 3 Zustände: Bisherige Quersumme ist 0/1/2 mod 3. Teil 3: Reguläre Sprachen sind abgeschlossen bezüglich des Durchschnitts. Bilden Durchschnitt aus durch 2 bzw. 3 teilbaren Zahlen. Beweis fertig. Folie 3-52 (139) 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-53 (140) 3.1.4 Sprachen von DFA und NFA DFA/NFA Zusammenfassung 3.12 (DFA/NFA) deterministisch DFA ja überall eindeutig definiert ja NFA nein nein Wann wird String akzeptiert ? Band gelesen und Finalzustand Band gelesen und Finalzustand DFA: alles eindeutig spezifiziert. DFA/NFA akzeptiert eine Zeichenkette, wenn nach dem Einlesen der Zeichenkette ein finaler Zustand erreicht ist. Beim NFA können Zustandsübergänge fehlen. 3 Automatentheorie 3.1 Endliche Automaten Theoretische Informatik Folie 3-54 (141) 3.1.4 Sprachen von DFA und NFA Aufgaben Aufgabe 3.4 (DFA) 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. Aufgabe 3.5 (Regulärer Ausdruck) Beschreiben Sie die Sprache (aufgebaut aus a und b), die nur Zeichenkettenn enthält, wo beliebig viele a gefolgt von beliebig vielen b sind, durch einen regulären Ausdruck! 3 Automatentheorie Theoretische Informatik 3.1 Endliche Automaten Folie 3-55 (142) 3.1.4 Sprachen von DFA und NFA Aufgaben Aufgabe 3.6 (Regulärer Ausdruck) Beschreiben Sie die Sprache, die durch den regulären Ausdruck ab∗ a definiert ist. Aufgabe 3.7 (End- und Finalzustand) 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-56 (143) Kontextfreie Sprachen und Kellerautomaten Die Lösung eines Problems besteht darin, jemanden zu finden, der das Problem löst. Van Herpens Gesetz Arthur Bloch, Murphy’s Law, 1981 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-57 (144) 3.2.1 Kontextfreie Grammatik Kontextfreie Grammatik Beispiel 3.7 (Grammatik) Satz Nominal Artikel Adjektiv Substantiv Verb → → → → → → 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-58 (145) 3.2.1 Kontextfreie Grammatik Grundprinzip der Grammatiken Zeichenketten generieren beginnend mit einem Startsymbol (hier Satz) nicht deterministisch Sind alle Platzhalter wie Satz ersetzt, so ist ein syntaktisch korrekter Satz (String) generiert. Menge aller dieser Zeichenketten: Sprache dieser Grammatik. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-59 (146) 3.2.1 Kontextfreie Grammatik Grammatik Beispiel 3.8 (Grammatik) Welche Zeichenketten werden durch die folgende Grammatik erzeugt? S → aBa B→e B → 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-60 (147) 3.2.1 Kontextfreie Grammatik Wozu 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. Aber: Sie ist zu groß, um sie in Form einer Liste darzustellen. 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 Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-61 (148) 3.2.1 Kontextfreie Grammatik Grammatik Beispiel 3.9 (Reguläre Ausdrücke und Grammatiken) Der reguläre Ausdruck a(a∗ ∪ b∗ )b in Regelform : S → aM M A A → → → A b aA M B B → → → B b bB Beachten Sie, dass wir durch die Regeln M → A und M → B verhindern, dass a und b – zwischen dem linken a und dem rechten b – gemischt auftreten können. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-62 (149) 3.2.1 Kontextfreie Grammatik Grammatik Beispiel 3.9 cont. Durch folgende Ableitung kann man die Zeichenkette aaaab erzeugen: S ; aM ; aA ; aaA ; aaaA ; aaaaA ; aaaab Ausgehend vom Startsymbol (S) ersetzt man die Platzhalter, bis die Zeichenkette nur noch Symbole aus unserem Sprachalphabet Σ enthält. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-63 (150) 3.2.1 Kontextfreie Grammatik Graphische Darstellung – Ableitungsbaum S a M A a A a A a A b Abb. 26: Ableitungsbaum 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-64 (151) 3.2.1 Kontextfreie Grammatik Vorteil von Grammatiken einfache Beschreibung einer Sprache einfache Prüfung, ob eine gegebene Zeichenkette der Grammatik entspricht, möglich (z.B. syntaktische Korrektheit eines JAVAoder C++-Programms) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-65 (152) 3.2.1 Kontextfreie Grammatik Grammatik – JAVA Beispiel 3.10 (Java-Grammatik) Die Syntax einer JAVA-Klasse kann ebenso durch Regeln beschrieben werden: S → R class N {B } R → public R → private B → ... N → ... Vorteil: 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-66 (153) 3.2.1 Kontextfreie Grammatik Aufgaben Aufgabe 3.9 (Grammatik) 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. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-67 (154) 3.2.1 Kontextfreie Grammatik Grammatik Beispiel 3.11 (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): 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 Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-68 (155) 3.2.1 Kontextfreie Grammatik Kontextfreie Grammatiken Definition 3.13 (Kontextfreie Grammatik) Eine kontextfreie Grammatik G ist ein Quadrupel (V , Σ, R , S ), wobei V ist ein Vokabular Alphabet Σ (Terminalsymbole) ⊂ V 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-69 (156) 3.2.1 Kontextfreie Grammatik Kontextsensitive Grammatik Definition 3.14 (Kontextsensitive Grammatik) Eine kontextsensitive Grammatik G ist ein Quadrupel (V , Σ, R , S ) V ist ein Vokabular 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 \Σ) Jede kontextfreie Grammatik ist auch kontextsensitiv. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.1 Kontextfreie Grammatik Allgemeine Grammatik Linke Regelseite: beliebige Kombinationen aus Nichtterminal- und Terminalsymbolen, außer e. In der Definition muss nur der 3. Punkt modifiziert werden: R (Regeln) ist eine endliche Teilmenge von V + × V ∗ Theoretische Informatik Folie 3-70 (157) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-71 (158) 3.2.1 Kontextfreie Grammatik Kf-Grammatiken – Regelanwendung und erzeugte Sprache Terminalsymbole (Alphabet): Σ Nichtterminalsymbole: N = V \Σ 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. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.1 Kontextfreie Grammatik Aufgaben Aufgabe 3.10 (Grammatik) Sei G = (V , Σ, R , S ) mit 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-72 (159) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-73 (160) 3.2.1 Kontextfreie Grammatik Syntax der Aussagenlogik – kontextfreie Grammatik Beispiel 3.12 (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 var (S ∨ S ) (S ∧ S ) ¬S (S → S ) (S ↔ S ) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-74 (161) 3.2.1 Kontextfreie Grammatik Beispiel – Arithmetische Ausdrücke Beispiel 3.13 (Arithmetische Ausdrücke) Sei G = (W , Σ, R , E ) mit W = {E , O } ∪ Σ, Σ = {x , +, −, ∗, /}, E →G E O E O →G ∗ R= O →G / E →G x O →G + O →G − 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.1 Kontextfreie Grammatik Aufgaben Aufgabe 3.11 (Arithmetische Ausdrücke) 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? Folie 3-75 (162) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-76 (163) 3.2.1 Kontextfreie Grammatik Kontextfreie Grammatik Beispiel 3.14 (Grammatik) Sei G = (W , Σ, R , S ) mit W = {S , A} ∪ Σ, Σ = {a, b}, S →G AA A →G a R= A →G Ab A →G AAA A →G bA 1 Welche Sprache wird erzeugt? 2 Wie sieht ein NFA für diese Sprache aus? 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-77 (164) 3.2.1 Kontextfreie Grammatik Zwischenfazit Welche Sprachen und Beschreibungsmittel haben wir bisher? Sprache reguläre Grammatik ?? Automat DFA / NFA kontextfreie kontextfreie Grammatik ?? sonst reguläre Ausdrücke ?? 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-78 (165) 3.2.2 Backus-Naur-Form für kontextfreie Sprachen Backus-Naur-Form für kontextfreie Sprachen Eine äquivalente Repräsentation für kontextfreie Sprachen ist die Backus-Naur-Form. Beispiel 3.15 (Backus-Naur-Form) <Bezeichner> ::= <Buchstabe> | _ | <Bezeichner><Buchstabe> | <Bezeichner> _ | <Bezeichner> <Ziffer> <Buchstabe> ::= a|b|c|d| .... |z <Ziffer> ::= 0|1|2|3|4|5|6|7|8|9 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-79 (166) 3.2.3 Reguläre und kontextfreie Sprachen Reguläre Grammatiken 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 R (Regeln) ist eine endliche Teilmenge von (V \Σ) × Σ∗ ((V \Σ) ∪ {e}) S (Startsymbol) ∈ (V \Σ) 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}) 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-80 (167) 3.2.3 Reguläre und kontextfreie Sprachen Reguläre und kontextfreie Sprachen Nicht jede kontextfreie Sprache ist regulär: {ai bi |i = 1, 2, . . .}. Jede reguläre Sprache ist auch kontextfrei. Wir wissen schon: Reguläre Sprachen sind genau die Sprachen, die durch einen endlichen Automaten akzeptiert werden. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-81 (168) 3.2.3 Reguläre und kontextfreie Sprachen Reguläre Sprache Satz 3.16 (Reguläre Sprachen und Grammatiken) Eine Sprache ist regulär, gdw. eine reguläre Grammatik für sie existiert. Damit haben wir für reguläre Sprachen 3 Formen der Darstellung: reguläre Ausdrücke DFA/NFA reguläre Grammatiken 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-82 (169) 3.2.3 Reguläre und kontextfreie Sprachen Umwandlung reguläre Grammatik – DFA/NFA Beispiel 3.16 (Umwandlung reguläre Grammatik – DFA/NFA) Der reguläre Ausdruck a(a∗ ∪ b∗ )b als reguläre Grammatik: S M M → → → aM A B A B → aA → bB A B b B e s a b f M e A b a Abb. 27: Umwandlung reg. Grammatik – NFA → b → b 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-83 (170) 3.2.3 Reguläre und kontextfreie Sprachen Umwandlung DFA/NFA – reguläre Grammatik Beispiel 3.17 (Umwandlung DFA/NFA – reguläre Grammatik) ab q3 e e s q1 e q4 b e e q5 a b q2 S → Q3 Q3 → abQ3 Q3 → Q1 Q1 → bQ2 Q2 → e q2 (Q2 ) ist final, also kann die Zeichenkette hier enden. S → Q4 Q4 → bQ5 Q5 → aQ5 Q5 → Q1 Q1 → S 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-84 (171) 3.2.3 Reguläre und kontextfreie Sprachen Umwandlung regulärer Ausdruck – reguläre Grammatik Beispiel 3.18 (Umwandlung reguläre Grammatik – regulärer Ausdruck) Wir betrachten den Ausdruck (a∗ bab∗ a) ∪ b(ab)∗ . Zunächst müssen wir ∪ abbilden: S→X S→Y X steht für den linken, Y für den rechten Term. Den rechten Term b(ab)∗ bilden wir wie folgt ab: Y → bN N → abN N →e 1. Zeichen ist ein b. Danach können mehrere ab kommen. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-85 (172) 3.2.3 Reguläre und kontextfreie Sprachen Umwandlung regulärer Ausdruck – reguläre Grammatik Beispiel 3.18 cont. Den linken Term a∗ bab∗ a stellen wir wie folgt dar: X → aX X → baB B → bB B→a Zunächst können a kommen. Dann kommt ba. Dann können mehrere b kommen. Zum Schluss kommt ein a. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-86 (173) 3.2.3 Reguläre und kontextfreie Sprachen Aufgaben Aufgabe 3.12 (NFA – Grammatik) Wie wandelt man einen NFA in eine reguläre Grammatik um? Hinweis: Sie können sich anschauen, wie JFLAP dies tut. 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-87 (174) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-88 (175) 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-89 (176) 3.2.4 Kellerautomaten Graphische Darstellung – Kellerautomat q1 b, e ;b a, e ;a q0 e , e; e a, e; e e ,Z ;e b, e; e Abb. 28: Kellerautomat in JFLAP b, b; e a, a; e q2 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-90 (177) 3.2.4 Kellerautomaten Kellerautomaten Beispiel 3.19 (Kellerautomat) Kellerautomat für {wcw R : w ∈ {a, b}∗ } (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) b, e; b a, e; a s c, e; e Abb. 29: Kellerautomat für wcw R b, b; e a, a; e f 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-91 (178) 3.2.4 Kellerautomaten Beispiel 3.20 (Kellerautomat – Abarbeitung) s b a c a b s b a c a b b s b a c a b a b f b a c a b a b f b a c a b b f b a c a b 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-92 (179) 3.2.4 Kellerautomaten Kellerautomat Definition 3.17 (Kellerautomat) M = (K , Σ, Γ, ∆, s, F ) mit 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) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-93 (180) 3.2.4 Kellerautomaten Kellerautomat – Bemerkungen 1 ((p, u , β), (q , γ)) ∈ ∆ werden wir im folgenden mit dem Pfeil schreiben. (p, u , β) → (q , γ) ist anwendbar, wenn: I I I 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 Σ = Γ. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-94 (181) 3.2.4 Kellerautomaten Kellerautomat – Bemerkungen 2 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-95 (182) 3.2.4 Kellerautomaten Akzeptierte Sprache 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}. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-96 (183) 3.2.4 Kellerautomaten Kellerautomaten Beispiel 3.21 (Kellerautomat – Palindrome) Kellerautomat für {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 ) Keller-ww r b, b; e a, a; e b, e; b a, e; a s e, e; e f 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-97 (184) 3.2.4 Kellerautomaten Kellerautomaten Beispiel 3.22 (Kellerautomat – Klammerstruktur) Kellerautomat, der untersucht, ob die Klammerstruktur eines Programms oder Terms korrekt ist, d.h.: 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-98 (185) 3.2.4 Kellerautomaten Kellerautomaten Beispiel 3.22 cont. Zunächst der Kellerautomat: Alle x können wir einfach ignorieren. Kommt eine öffnende Klammer, legen wir diese auf den Keller. Kommt eine schließende Klammer, löschen wir eine öffnende vom Keller. (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-99 (186) 3.2.4 Kellerautomaten Kellerautomat und Grammatik Beispiel 3.22 cont. Grammatik: Zu jeder öffnenden Klammer muss eine schließende generiert werden. Zwischen den Klammern darf ein beliebiger Ausdruck (x) stehen. S → (S ) S → xS S → Sx S→e 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-100 (187) 3.2.4 Kellerautomaten Aufgaben Aufgabe 3.13 (DFA / NFA) 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. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-101 (188) 3.2.4 Kellerautomaten Verarbeitung mit Kellerautomat Beispiel 3.23 (Kellerautomat – Abarbeitung) {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: (s, abba , e) (s, bba , a) (s, ba , ba) (f, ba , ba) (f, a , a) (f, e , e) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-102 (189) 3.2.4 Kellerautomaten Verarbeitung mit KF-Grammatik Beispiel 3.24 (Verarbeitung mit KF-Grammatik) {ww R : w ∈ {a, b}∗ } S →G e S →G aSa S →G 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-103 (190) 3.2.4 Kellerautomaten Kellerautomaten – Unterschiede Vorlesung/JFLAP Vorlesung JFLAP leerer String e λ oder ε Keller zu Be- leer Z ginn Wann wird Finalzustand er- Finalzustand erString ak- reicht und Keller reicht oder Keller zeptiert? leer leer Der Kellerautomat heißt unter JFLAP: Pushdown-Automat. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-104 (191) 3.2.4 Kellerautomaten Kellerautomaten Zusammenfassung 3.19 (Kellerautomaten) Der Kellerautomat liest (wie die endlichen Automaten) 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 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-105 (192) 3.2.5 Kellerautomaten und kontextfreie Grammatiken Kellerautomaten und kontextfreie Grammatiken Satz 3.20 (Kontextfreie Sprachen) 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 Folie 3-106 (193) 3.2.5 Kellerautomaten und kontextfreie Grammatiken Kurzes Resümee Welche Sprachen und Beschreibungsmittel haben wir bisher? Sprache reguläre 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-107 (194) 3.2.6 Eigenschaften von kontextfreien Sprachen Eigenschaften von kontextfreien Sprachen Kontextfreie Sprachen sind: abgeschlossen bezüglich Mengenvereinigung, Konkatenation, Kleene star nicht abgeschlossen bezüglich Durchschnitt, Komplement abgeschlossen bezüglich Durchschnitt mit regulären Sprachen 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.6 Eigenschaften von kontextfreien Sprachen Leistungskraft von Kellerautomaten Es gibt Sprachen, die nicht kontextfrei sind: {an bn c n |n ∈ IN}. Folie 3-108 (195) 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-109 (196) 3.2.7 Sprachdefinition mit FLEX Sprachdefinition mit FLEX 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. 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.7 Sprachdefinition mit FLEX FLEX Flex benötigt eine Datei, die folgenden Aufbau hat: Definitionen %% Regeln %% Funktionen Die Datei hat die Extension .l. Theoretische Informatik Folie 3-110 (197) 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten 3.2.7 Sprachdefinition mit FLEX FLEX Beispiel 3.25 (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 ); } Folie 3-111 (198) 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-112 (199) 3.2.7 Sprachdefinition mit FLEX FLEX 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. Flex 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-113 (200) 3.2.7 Sprachdefinition mit FLEX Scanner Pascal-like language Beispiel 3.26 (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-114 (201) 3.2.7 Sprachdefinition mit FLEX Scanner Pascal-like language – 2 Beispiel 3.26 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() {} Flex 3 Automatentheorie 3.2 Kontextfreie Sprachen und Kellerautomaten Theoretische Informatik Folie 3-115 (202) 3.2.7 Sprachdefinition mit FLEX Aufgaben 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. 3 Automatentheorie Theoretische Informatik 3.2 Kontextfreie Sprachen und Kellerautomaten Folie 3-116 (203) 3.2.8 Zwischenfazit Resümee Welche Sprachen und Beschreibungsmittel haben wir bisher? Sprache regulär kontextfrei Grammatik reguläre Grammatik kontextfreie Grammatik Automat DFA / NFA sonst reguläre Ausdrücke Kellerautomat ?? 3 Automatentheorie 3.3 Turingmaschinen Turingmaschinen If a program is useful, it will have to be changed. Arthur Bloch, Murphy’s Law, 1981 Theoretische Informatik Folie 3-117 (204) 3 Automatentheorie 3.3 Turingmaschinen 3.3.1 Definition Bisherige Automaten Endliche Automaten Kellerautomaten ; Beide nicht allgemein genug! Theoretische Informatik Folie 3-118 (205) 3 Automatentheorie 3.3 Turingmaschinen 3.3.1 Definition Turing-Maschine – Charakteristika 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. Theoretische Informatik Folie 3-119 (206) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-120 (207) 3.3.1 Definition Turing-Maschine Neu: Lesekopf kann auch schreiben 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 3.3 Turingmaschinen 3.3.1 Definition Turing-Maschine Turing-Maschine kann beliebig lang arbeiten Brauchen folglich einen Haltezustand h TM kann Antwort auf das Band schreiben Theoretische Informatik Folie 3-121 (208) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-122 (209) 3.3.1 Definition Turing-Maschine Was müssen wir ändern? Im Prinzip nur die Regelform. Die Regel (q0 , a) → (q2 , c , r ) bedeutet: Wenn wir im Zustand q0 sind 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-123 (210) 3.3.1 Definition Beispiel 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 (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-124 (211) 3.3.1 Definition Verarbeitung Regel 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#) Nr . 5 6 7 8 9 10 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-125 (212) 3.3.1 Definition Turingmaschine – Arbeitsweise 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 # .................. Abb. 30: Turingmaschine – Arbeitsweise 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-126 (213) 3.3.1 Definition Darstellungsformen für Turing-Maschinen 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 ) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-127 (214) 3.3.1 Definition Turing-Maschine – Definition Definition 3.21 (Turing-Maschine) TM = (K , Σ, δ, q0 , A), wobei K ... endl. Menge von Zuständen, h 6∈ K Σ ... Alphabet, Füllzeichen # ∈ Σ q0 ∈ K ... Initialzustand A = {l , r , s} ... Aktion δ : 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 Danach erst bewegt sich der Lese-/Schreibkopf nach links, rechts oder bleibt auf der aktuellen Position (l , r , s). 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen 3.3.1 Definition Deterministisch oder indeterministisch ? Bemerkung 3.22 Man beachte, dass die Definition eine TM als deterministische Maschine festlegt. Folie 3-128 (215) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-129 (216) 3.3.1 Definition Beispiel 3.27 (TM) TM, die für Strings (a/b/c) prüft, ob Anzahl von b/c durch 3 teilbar ist. a; #, R q1 b; #, R c; #, R a; #, R #; N, S b; #, R #; Y, S q0 h c; #, R b; #, R c; #, R #; N, S q2 a; #, R Abb. 31: TM in JFLAP für b/c durch 3 teilbar 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-130 (217) 3.3.1 Definition Konfiguration ; Unterschied Konfiguration – innerer Zustand Auch die Zeichen links vom Kopf sind wichtig. Nur ein endliches Teilstück des Bandes ist ungleich #. Definition: eine Konfiguration ist ein Element aus: (K ∪ {h}) × Σ∗ × Σ × Σ∗ Eine Konfiguration besteht also aus: dem inneren Zustand der TM, den Zeichen links vom Kopf, dem aktuellen Zeichen und den Zeichen rechts vom Kopf. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-131 (218) 3.3.1 Definition Konfiguration und Konfigurationsübergang 1 Halte-Konfiguration: innerer Zustand ist der Haltezustand h 2 Schreibweise für eine Konfiguration: (p, abcbaba) Konfigurationsübergang: analog zur Definition bei den endlichen Automaten Berechnung: endliche Folge von Konfigurationsübergängen 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-132 (219) 3.3.2 Berechnungen mit Turingmaschinen Berechnungen mit Turingmaschinen Man hat bei Turing-Maschinen eine Reihe von Freiheitsgraden: Wo steht der Kopf am Anfang? Wie erkennt man das linke/rechte Ende des Eingabestrings? Wo steht der Kopf am Ende? 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-133 (220) 3.3.2 Berechnungen mit Turingmaschinen Berechnungen mit TM – Konventionen Eingabe-String links und rechts durch ein # eingeschlossen. Der Kopf steht zu Beginn auf dem ersten Zeichen, also rechts vom linken Begrenzungs-#. Eine TM M hält bei Eingabe w gdw., (q0 , #w #) `∗M (h, . . .). 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-134 (221) 3.3.2 Berechnungen mit Turingmaschinen Wann akzeptiert eine TM einen String? Definition 3.23 (Akzeptierte Zeichenkette) Eine TM akzeptiert einen String, wenn sie den Haltezustand h erreicht. 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-135 (222) 3.3.2 Berechnungen mit Turingmaschinen Berechnungen mit TM Definition 3.24 (Berechnungen mit TM) Seien Σ0 , Σ1 Alphabete (ohne #). Sei f : Σ∗0 → Σ∗1 . TM berechnet f , falls: Σ0 , Σ1 ⊂ Σ Für alle w ∈ Σ∗0 : (q0 , #w #) `∗TM (h, #u #) ⇔ f (w ) = u Existiert zu einer Funktion f eine TM, so heißt f Turing-berechenbar. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-136 (223) 3.3.2 Berechnungen mit Turingmaschinen Verallgemeinerte Funktionen Bisher: TM bildet strings auf strings ab. 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-137 (224) 3.3.2 Berechnungen mit Turingmaschinen TM zur Sprachentscheidung Sei L ⊂ Σ∗ . 2 Symbole: Y, N TM schreibt auf das Band Y oder N. Definition 3.25 (Turing-Entscheidbarkeit) Eine Sprache L heißt Turing-entscheidbar, falls f : Σ∗ → {Y, N} f (w ) = Y, falls w ∈ L N, sonst eine Turing-berechenbare Funktion ist. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-138 (225) 3.3.2 Berechnungen mit Turingmaschinen Entscheidungsverfahren Beispiel 3.28 (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, #} (q0 , a) (q0 , #) δ : (q1 , a) (q1 , #) → → → → (q1 , a, r ) (q3 , #, l ) (q0 , a, r ) (q2 , #, l ) (q2 , a) (q2 , #) (q3 , a) (q3 , #) Auf unnötige Regeln wurde verzichtet. TM-gerade → → → → (q2 , #, l ) (h, N, s) (q3 , #, l ) (h, Y, s) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-139 (226) 3.3.2 Berechnungen mit Turingmaschinen Entscheidungsverfahren – 2 Beispiel 3.29 (TM 2) TM für L = {w ∈ Σ∗ : w = a2k bk , k ≥ 0}, Σ = {a, b}. tm-2a1b Abb. 32: Turingmaschine – a2k bk 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-140 (227) 3.3.2 Berechnungen mit Turingmaschinen Semi-Entscheidbarkeit 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. 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-141 (228) 3.3.2 Berechnungen mit Turingmaschinen Turing-Maschinen – Unterschiede Vorlesung/JFLAP Zustandsübergang Füllzeichen Haltezustand Vorlesung deterministisch (totale Funktion) # h JFLAP indeterministisch (Relation) 2 beliebig viele 3 Automatentheorie 3.3 Turingmaschinen 3.3.3 Kombinationen und Erweiterungen von Turingmaschinen TM als Prozedur Ziel: TM als generelles Berechnungsmodell. Frage: TM als Prozeduren? Überlegung: Gibt es Konfigurationsübergänge: (q1 , w1 a1 u1 ) `∗TM (q2 , w0 w2 a2 u2 ) und (q2 , w2 a2 u2 ) `∗TM (q3 , w3 a3 u3 ) , so ist auch (q1 , w1 a1 u1 ) `∗TM (q3 , w0 w3 a3 u3 ) ein Konfigurationsübergang. Theoretische Informatik Folie 3-142 (229) 3 Automatentheorie 3.3 Turingmaschinen Theoretische Informatik Folie 3-143 (230) 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-144 (231) 3 Automatentheorie Theoretische Informatik 3.3 Turingmaschinen Folie 3-145 (232) 3.3.3 Kombinationen und Erweiterungen von Turingmaschinen Turing-Maschinen Zusammenfassung 3.27 (Turing-Maschinen) Turingmaschine kann sich auf dem Eingabeband frei bewegen und auch schreiben. Die TM schreibt die Antwort auf das Band. 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 3.4 Sprachen und Automaten – Ergänzungen Sprachen und Automaten – Ergänzungen The simpler it looks, the more problems it hides. Lee’s Law of Electrical Repair. Theoretische Informatik Folie 3-146 (233) 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-147 (234) Bisher . . . Typ 0 Grammatik allgemeine 1 (kontextsensitiv) 2 (kontextfrei) kontextsensitiv kontextfrei 3 (regulär) regulär Automat TuringMaschine ?? indet. Kellerautomat DFA/NFA sonst ?? ?? ?? reguläre Ausdrücke 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-148 (235) 3.4.1 Chomsky-Hierarchie Chomsky-Hierarchie Satz 3.28 (Sprachklassen) Die Sprachen-Klasse des Typs n ist eine echte Teilmenge der Sprachen-Klasse vom Typ n-1. Typ 0 aufzählbar Typ 1 kontext−sensitiv Typ 2 Typ 3 kontext−frei regulär Abb. 33: Chomsky-Hierarchie 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-149 (236) 3.4.1 Chomsky-Hierarchie Chomsky-Hierarchie 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. Die Typ-0-Sprachen entsprechen den aufzählbaren Sprachen. 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-150 (237) 3.4.2 LL-Sprachen LL-Sprachen 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. 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-151 (238) 3.4.2 LL-Sprachen LL-Sprachen – Beispiel 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 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-152 (239) 3.4.2 LL-Sprachen LL-Grammatiken 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-153 (240) 3.4.2 LL-Sprachen Beispiel – Rekursiver Abstieg Beispiel 3.30 (Rekursiver Abstieg) Sei folgende Grammatik gegeben. Das Zeichen | steht für „oder“: S X Y → → → Xa | Yb s|e t Jedem Nichtterminal wird eine Prozedur zugeordnet: 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 Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-154 (241) 3.4.3 Syntaxdiagramme Syntaxdiagramm A=e A A B C A=BC A=B* A B A B A=B+ A B A=B | C C A a A=a Abb. 34: Syntaxdiagramm 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-155 (242) 3.4.3 Syntaxdiagramme Syntaxdiagramm JavaStatement CompoundStatement Statement CompoundStatement { Statement Abb. 35: Syntaxdiagramm JavaStatements } 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen 3.4.4 BISON BISON Compilerbau mit Grammatiken: Y Yet A Another C Compiler C Compiler FLEX: nur Scanning (lexikalische Analyse). YACC dagegen führt ein Parsing durch. Resultat: Struktur gemäß der vorgegebenen Grammatik Folie 3-156 (243) 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen 3.4.4 BISON BISON Das Beispiel implementiert einen Rechner in UPN. %{ #define YYSTYPE double #include <math.h> #include <stdio.h> %} %token NUM Theoretische Informatik Folie 3-157 (244) 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-158 (245) 3.4.4 BISON 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 */ ; 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-159 (246) 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-160 (247) 3 Automatentheorie 3.4 Sprachen und Automaten – Ergänzungen Theoretische Informatik Folie 3-161 (248) 3.4.4 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 BISON 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-162 (249) 3.4.4 BISON BISON 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 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-163 (250) 3.4.5 Übersetzung von Programmiersprachen Übersetzung von Programmiersprachen Quellprogramm lexikalische Analyse SCANNER Folge von Token syntaktische Analyse PARSER Ableitungsbaum semantische Analyse und Codegenerierung Zielprogramm Codeoptimierung optimiertes Zielprogramm Abb. 36: Übersetzung von Programmiersprachen 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-164 (251) 3.4.5 Übersetzung von Programmiersprachen Beispiel – Syntaxbaum Betrachten den arithmetischen Ausdruck (3 + 1) ∗ 4 − 7. 2 Interpretationen möglich, die zu unterschiedlichen Resultaten führen. Durch Grammatik wird eine Interpretation ausgeschlossen. − * + 3 * − 1 4 + 7 3 Abb. 37: Syntaxbaum 7 4 1 3 Automatentheorie Theoretische Informatik 3.4 Sprachen und Automaten – Ergänzungen Folie 3-165 (252) 3.4.6 Resümee Resümee 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 sonst aufzählbare Sprachen ?? Syntaxdiagramm reguläre Ausdrücke 3 Automatentheorie Theoretische Informatik 3.5 Zusammenfassung (Automaten) Das sollten Sie wissen . . . Zusammenfassung 3.29 (Automaten) Endliche Automaten, (in)determinstisch, Gleichwertigkeit Umwandlung vom NFA zum DFA Kellerautomaten Turingmaschinen Grammatiken Sprachklassen und -hierarchie Folie 3-166 (253) 3 Automatentheorie Theoretische Informatik 3.6 Aufgaben (Automaten) Folie 3-167 (254) Aufgaben Aufgabe 3.15 (DFA/NFA – leeres Wort) Wann liegt das leere Wort e in der Sprache eines DFA / NFA? Aufgabe 3.16 (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, also z.B. aba oder bab oder baaab. Finden Sie für diese Sprache auch eine (reguläre) Grammatik und einen regulären Ausdruck. 3 Automatentheorie 3.6 Aufgaben (Automaten) Theoretische Informatik Folie 3-168 (255) Aufgaben Aufgabe 3.17 (DFA/NFA – Cola-Automat) Konstruieren Sie auf der Basis eines DFA oder NFA einen Automaten, der Cola-Büchsen verkauft. Eine Cola kostet 1 Euro. Der Automat soll folgende Münzen akzeptieren : 10 c, 50 c, 1 Euro. Aufgabe 3.18 (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 3.6 Aufgaben (Automaten) Theoretische Informatik Folie 3-169 (256) Aufgaben Aufgabe 3.19 (TM) Finden Sie eine TM, die die Sprache L ⊂ {a, b}∗ , so dass im Wort 2 aufeinanderfolgende a enthalten sind, entscheidet! Aufgabe 3.20 (Regulärer Ausdruck) Finden Sie für den regulären Ausdruck ab∗ (ba)+ c einen endlichen Automaten. Aufgabe 3.21 (Regulärer Ausdruck) Wandeln Sie den regulären Ausdruck ((ab)+ ∪ ba∗ )b in eine reguläre Grammatik um. 4 Logik Theoretische Informatik 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 4 Logik Theoretische Informatik 24. August 2015 Inhaltsverzeichnis – Kapitel 4 4 Logik Aussagenlogik Beispiel (Resolution) Zusammenfassung (Aussagenlogik) Aufgaben (Aussagenlogik) 4 Logik Theoretische Informatik Folie 4-1 (259) Logik Logic is a systematic method of coming to the wrong conclusion with confidence. Manly’s Maxim 4 Logik Theoretische Informatik Folie 4-2 (260) Ein Rätsel Um einen runden Tisch herum sitzt eine unbekannte Anzahl von Leuten. Ein Teil von ihnen sagt IMMER die Wahrheit, die anderen lügen IMMER. 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.“ Wieviele sitzen denn nun am Tisch ? 4 Logik Theoretische Informatik Folie 4-3 (261) Logik Alle Vögel können fliegen. Ich gehe schwimmen, wenn die Sonne scheint. +Speicherkarte −CF Alltagslogik Suchmaschinen ...... Programmierung IF A=4 THEN ..... ...... Logik Systembeschreibung Der Chef muss alle Beschaffungen unterschreiben. Abb. 38: Logik-Anwendungen 4 Logik Theoretische Informatik Folie 4-4 (262) Informatik und Logik Für die Informatik ist die Logik aus 2 Gründen interessant: Beschreibungsmittel Berechnungsmittel 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-5 (263) Aussagenlogik Aussagen im Alltag: Es regnet. Nicht jeder Schnee ist weiß. ; ; 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 (264) Aussagenlogik Beispiel 4.1 (Aussagenlogik) Es seien die Aussagen gegeben: Wenn es regnet, ist die Straße nass. Es regnet. Dies kann man in der Aussagenlogik so darstellen: regnet → strasse_nass regnet Aus diesen beiden Aussagen kann man schließen, dass die Straße nass ist. 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.1 Syntax und Übersetzen von Aussagen Syntax In der Aussagenlogik werden elementare Aussagen durch aussagenlogische Variablen dargestellt: A für die Aussage: „BMW-Aktien sind hoch im Kurs.“ B für die Aussage: „Heute ist Montag.“ Man kann Aussagen auch verknüpfen, z.B. steht A ∨ B für: „BMW-Aktien sind hoch im Kurs oder heute ist Montag.“ Die Aussagen A und B sind elementare (atomare) Aussagen. Folie 4-7 (265) 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.1 Syntax und Übersetzen von Aussagen Syntax Die Aussagenlogik ist aufgebaut aus: Aussagenvariablen (atomare Aussagen) Verknüpfungen: I ¬ (Negation) I ∨ (Oder) I ∧ (Und) I → (Implikation, Wenn . . . dann . . . ) I ↔ (Äquivalenz, . . . genau dann wenn . . . ) Folie 4-8 (266) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-9 (267) 4.1.1 Syntax und Übersetzen von Aussagen Das logische Oder Die Aussage Wir fahren nach Frankreich, falls das Quartier billig ist oder sehr gutes Wetter ist. kann aussagenlogisch dargestellt werden: 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 (268) 4.1.1 Syntax und Übersetzen von Aussagen Die Implikation Wann ist die folgende Aussage wahr? Falls es regnet, ist die Straße nass. Fall 1: Es regnet, die Straße ist nass. 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. Fall 3: Es regnet nicht, die Straße ist nicht nass. 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 Theoretische Informatik 4.1 Aussagenlogik Folie 4-11 (269) 4.1.1 Syntax und Übersetzen von Aussagen Die Implikation – 2 Wir betrachten Spielkarten. Vorderseite der Karten: Buchstabe Rückseite: eine Ziffer Einzige Bedingung: Falls auf der Vorderseite ein Vokal ist, dann muss auf der Rückseite eine gerade Zahl stehen. A D 5 8 Jemand zeigt uns folgende 4 Karten: . Frage: Welche Karte(n) müssen wir umdrehen, um obige Restriktion zu prüfen? Antwort: Nur die Karten A 5. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-12 (270) 4.1.1 Syntax und Übersetzen von Aussagen 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 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.1 Syntax und Übersetzen von Aussagen Aussagenlogik 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 (271) 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.1 Syntax und Übersetzen von Aussagen Typisches Vorgehen beim Ü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. Folie 4-14 (272) 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.1 Syntax und Übersetzen von Aussagen Aussagenlogik Beispiel 4.3 (Übersetzen) 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 Folie 4-15 (273) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-16 (274) 4.1.1 Syntax und Übersetzen von Aussagen Das XOR In vielen Programmiersprachen gibt es das ausschließende Oder, meist XOR genannt. a XOR b ist äquivalent zu: (a ∧ ¬b) ∨ (¬a ∧ b) oder auch a ↔ ¬b 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-17 (275) 4.1.1 Syntax und Übersetzen von Aussagen Aussagenlogische Formeln Definition 4.1 (Aussagenlogische Formeln) 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 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-18 (276) 4.1.1 Syntax und Übersetzen von Aussagen Äquivalenz und Implikation Man kann die Äquivalenz und Implikation auch definieren durch: A ↔ B gdw. (A → B ) ∧ (B → A) A → B gdw. ¬A ∨ B, Demnach braucht man die Implikation und die Äquivalenz eigentlich nicht. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-19 (277) 4.1.2 Gültigkeit und Erfüllbarkeit Wahr oder falsch? Die Frage, die uns natürlich interessiert, ist die, ob eine Formel wahr oder falsch ist. Die BMW-Aktie steigt oder die BMW-Aktie steigt nicht. ist eine immer wahre Aussage. 1999 war der Bundeskanzler Helmut Kohl. falsche Aussage. ist eine 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-20 (278) 4.1.2 Gültigkeit und Erfüllbarkeit Wahr oder falsch? 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 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-21 (279) 4.1.2 Gültigkeit und Erfüllbarkeit Gültigkeit und Erfüllbarkeit 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 (280) 4.1.2 Gültigkeit und Erfüllbarkeit Aussagenlogische 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.) ∪ Falschen Formeln = Falsifizierbare F. Tauto− logien sowohl erfüllbar als auch falsifizierbar falsche Formeln Abb. 39: Aussagenlogische Formeln 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.2 Gültigkeit und Erfüllbarkeit Mengen von Formeln Wir vereinbaren, dass eine Menge von Formeln {F1 , F2 , . . . , Fn } wahr ist, genau dann wenn jedes Element der Menge wahr ist. Folie 4-23 (281) 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.2 Gültigkeit und Erfüllbarkeit Aufgaben Aufgabe 4.1 (Implikation) Wann die logische Implikation a → b wahr? Betrachten Sie dazu eine Alltagsaussage wie „Wenn ich Geburtstag habe, dann mache ich eine Fete“. Prüfen Sie für die 4 Fälle (a und b wahr/falsch), wann die Aussage erfüllt bzw. verletzt ist. Folie 4-24 (282) 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.2 Gültigkeit und Erfüllbarkeit Aufgaben Aufgabe 4.2 (Erfüllbarkeit, Falsifizierbarkeit) Sind folgende Formeln wahr / erfüllbar / falsifizierbar / falsch ? a → b a → ¬a a → a ¬a → a (a ∧ ¬a) → b (a → b) ∨ (a → ¬b) (a → b) ∧ (a → ¬b) Folie 4-25 (283) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-26 (284) 4.1.3 Berechnungen mit Aussagenlogik Wahrheitswerttabellen A B A ∨ B A ∧ B W W F F W F W F W W W F W F F F ¬A A → B A ↔ B F W W F F F W W F W W W Tabelle 4: Wahrheitswerttabelle für ∨ , ∧ , ¬, → , ↔ 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-27 (285) 4.1.3 Berechnungen mit Aussagenlogik Wahrheitswerttabellen Beispiel 4.5 (Wahrheitswerttabelle) Wir betrachten ¬A → (A → B ): A B A → B W W F F W F W F W F W W Die Formel ist eine Tautologie. ¬A → (A → B ) W W W W 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-28 (286) 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. Daraus folgt zwingend, dass A unschuldig ist. Ziel ist nicht, die Unschuld von A zu beweisen, sondern dass aus Aussage 1 und 2 folgt, dass A unschuldig ist. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-29 (287) 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 (288) 4.1.3 Berechnungen mit Aussagenlogik Beispiel Seien folgende Aussagen gegeben: Wenn Michael Schumacher mitfährt, sehen die Leute Formel 1. Wenn Schumacher nicht mitfährt, dann hat Mercedes nicht genug Geld bezahlt. Mercedes bezahlt viel Geld an Schumacher. Wir möchten beweisen, dass die Leute sich Formel 1 anschauen. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-31 (289) 4.1.3 Berechnungen mit Aussagenlogik Beispiel Diese Aussagen müssen wir zunächst in die Aussagenlogik übersetzen. Michael Schumacher fährt mit: faehrt Die Leute sehen Formel 1: formel1 Mercedes zahlt genug Geld an MS: geld Nun können wir die Aussagen formulieren: faehrt → formel1 ¬faehrt → ¬geld geld formel1 (1) (2) (3) (Behauptung) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-32 (290) 4.1.3 Berechnungen mit Aussagenlogik Beispiel Beweis von formel1 mittels Wahrheitswerttabellen. Die Formel (faehrt → formel1) ∧ (¬faehrt → ¬geld) ∧ geld muss eine Tautologie sein. → formel1 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-33 (291) 4.1.3 Berechnungen mit Aussagenlogik Beispiel - Wahrheitswerttabelle faehrt formel1 geld F F F F F W W F W W ... W ... W (faehrt → formel1) ∧ . . . . . . → formel1 W W W W W W 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.3 Berechnungen mit Aussagenlogik Wahrheitswerttabellen Nachteil: hoher Aufwand! 2n Möglichkeiten Deshalb hat man nach anderen Beweis-Verfahren gesucht. Folie 4-34 (292) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-35 (293) 4.1.3 Berechnungen mit Aussagenlogik Inferenz-Regeln Verknüpfen logische Formeln (Aussagen) zu neuen Formeln . . . bis gewünschte Formel entsteht. Modus Ponens L → K L 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 (294) 4.1.3 Berechnungen mit Aussagenlogik Inferenzregeln Inferenzregel L → K L K Tautologische Form Name [(L → K ) ∧ L] → K Modus ponens L → K ¬K ¬L [(L → K ) ∧ ¬K ] → ¬L Modus tollens (indirekter Beweis) L ∨ K ¬K L [(L ∨ K ) ∧ ¬K ] → L Disjunktiver Syllogismus [¬(¬K )] → K Doppelte Negation ¬(¬K ) K Tabelle 5: Inferenzregeln 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.3 Berechnungen mit Aussagenlogik Folgen und Ableiten 2 unterschiedliche Begriffe für Zusammenhänge von Formeln: Folgen: Φ |= φ (φ folgt aus Φ) Ableiten: Φ ` φ (φ ist aus Φ – mittels Inferenzregeln – berechenbar). Folie 4-37 (295) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-38 (296) 4.1.3 Berechnungen mit Aussagenlogik Normalformen 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. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-39 (297) 4.1.3 Berechnungen mit Aussagenlogik Ä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 A) (A ∨ C)) (A ∧ C)) C) C) Tabelle 6: Aussagenlogische Äquivalenzen – 1 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-40 (298) 4.1.3 Berechnungen mit Aussagenlogik Äquivalenzen – 2 Idempotenz Idempotenz Absorption Absorption Absurdität Kontraposition 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 Tabelle 7: Aussagenlogische Äquivalenzen – 2 4 Logik 4.1 Aussagenlogik 4.1.3 Berechnungen mit Aussagenlogik Aufgaben Aufgabe 4.3 (Umwandeln) Vereinfachen Sie – mit Hilfe der Äquivalenzen – die Formel ¬((A ∨ ¬(B ∧ A)) ∧ (C ∨ (D ∨ C ))). Theoretische Informatik Folie 4-41 (299) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-42 (300) 4.1.3 Berechnungen mit Aussagenlogik Normalformen Literal (pos./neg. atomare Formel) konjunktive Normalform: disjunktive Normalform: !! n ^ mi _ i =1 j =1 n _ mi ^ i =1 j =1 Lij !! Lij Satz 4.4 (KNF und DNF) Jede Formel hat mindestens eine äquivalente KNF und DNF. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-43 (301) 4.1.3 Berechnungen mit Aussagenlogik Normalformen Beispiel 4.7 (Normalformen) (A ∨ B ) ∧ (C ∨ ¬D ) ∧ E ist eine korrekte konjunktive Normalform. Wir lassen die ∧ weg und schreiben die Klauseln untereinander: A ∨ B C ∨ ¬D E 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.3 Berechnungen mit Aussagenlogik Transformation auf konjunktive NF 1 Ersetzen der Äquivalenzen und Implikationen 2 Negation ganz nach innen 3 „Ausmultiplizieren“ (Anwendung des Distributivgesetzes) Beispiel siehe Skript Folie 4-44 (302) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-45 (303) 4.1.3 Berechnungen mit Aussagenlogik Transformation auf konjunktive NF Beispiel 4.8 (KNF) Was entsteht beim „Ausmultiplizieren“ aus dieser Formel? (A ∧ B ∧ C ) ∨ (D ∧ E ∧ F ) Kombination von jedem Element der ersten bzw. zweiten Und-Verknüpfung: (A ∨ D ) ∧ (A ∨ E ) ∧ (A ∨ F ) ∧ (B ∨ D ) ∧ (B ∨ E ) ∧ (B ∨ F ) ∧ (C ∨ D ) ∧ (C ∨ E ) ∧ (C ∨ F ) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-46 (304) 4.1.3 Berechnungen mit Aussagenlogik Transformation auf konjunktive NF Beispiel 4.9 (KNF) Wie bringt man diese Formel geschickt auf KNF? (A ∧ (B ∨ C )) ∨ ((D ∨ E ) ∧ F ) Die Teilterme (B ∨ C ) und (D ∨ E ) haben ja schon die richtige Oder-Form. Also ersetzen wir diese Teilterme durch X und Y . (A ∧ X ) ∨ (Y ∧ F ) Jetzt multiplizieren wir aus: (A ∨ Y ) ∧ (A ∨ F ) ∧ (X ∨ Y ) ∧ (X ∨ F ) und ersetzen einfach X und Y wieder durch die Originalterme: (A ∨ D ∨ E ) ∧ (A ∨ F ) ∧ (B ∨ C ∨ D ∨ E ) ∧ (B ∨ C ∨ F ) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-47 (305) 4.1.4 Resolution Resolution Wenn dieser Apfel süß ist, dann isst man ihn gern. Wenn man ihn gern isst, werde ich ihn essen. ALSO: Wenn dieser Apfel süß ist, dann werde ich ihn essen. Dieser Schluss ist logisch gültig, es gilt: {(A → B ), (B → C )} |= (A → C ) Nicht möglich: (A → B ) und (B → C ) beide wahr A → C falsch ; Dies muss zum Widerspruch führen. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-48 (306) 4.1.4 Resolution Resolution Einheitliche Darstellung der Formeln (konjunktive Normalform) Rechnen mit Formeln: Resolution Widerspruchsbeweis: Verfahren, welches erkennt, ob eine Formel widersprüchlich ist. Es gilt: Φ |= φ, gdw. Φ ∧ ¬φ widersprüchlich Beweis, dass Φ |= φ äquivalent zum Beweis, dass Φ ∧ ¬φ widersprüchlich 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-49 (307) 4.1.4 Resolution Klausel-Normalform Im folgenden setzen wir die konjunktive Normalform voraus: ((A ∨ B ∨ . . .) ∧ . . . ∧ (E ∨ F ∨ . . .)) und verwenden dafür abkürzend die Mengenschreibweise {{A, B , . . .}, . . . , {E , F , . . .}}. 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 (308) 4.1.4 Resolution Apfelbeispiel und Resolution 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} 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: {¬suess, gernessen} und {suess}: {gernessen} {gernessen} und {¬gernessen, ichesse}: {ichesse} {ichesse} und {¬ichesse}: {} AL: Apfel 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-51 (309) 4.1.4 Resolution Formel1-Beispiel Beispiel 4.12 (Formel 1 – KNF) Formel faehrt → formel1 ¬faehrt → ¬geld geld ¬formel1 KNF ¬faehrt ∨ formel1 faehrt ∨ ¬geld geld ¬formel1 (1) (2) (3) (4, neg. Behauptung) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-52 (310) 4.1.4 Resolution Resolution 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. 40: Resolution – Beispiel 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-53 (311) 4.1.4 Resolution Resolutionsregel – Aussagenlogik 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 = {L, L2 , L3 , . . . , Ln } C2 = {¬L, K2 , K3 , . . . , Km } Resolvente = {L2 , L3 , . . . , Ln , K2 , K3 , . . . , Km } 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-54 (312) 4.1.4 Resolution Resolution – Hinweis Folgender Resolutionsschritt ist nicht korrekt! C1 = {L1 , L2 , L3 , . . . , Ln } C2 = {¬L1 , ¬L2 , K3 , . . . , Km } Resolvente = {L3 , . . . , Ln , K3 , . . . , Km } 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-55 (313) 4.1.4 Resolution Aufgaben Aufgabe 4.4 (Simultanes Streichen von Literalen) Gleichzeitiges Streichen von mehr als 1 Literal ist nicht zulässig! {A, B } {¬A, ¬B } {} Dies ist kein korrekter Schritt, da sich die Klauseln nicht widersprechen! Wieso widersprechen sich die Klauseln nicht? 4 Logik Theoretische Informatik 4.1 Aussagenlogik 4.1.4 Resolution Aufgaben 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. Folie 4-56 (314) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-57 (315) 4.1.4 Resolution Fortsetzung des Formel1-Beispiels Beispiel 4.13 (Formel 1 – Resolution) ¬faehrt ∨ formel1 faehrt ∨ ¬geld geld ¬formel1 ¬faehrt ¬geld faehrt {} Widerspruch gefunden. AL: Formel 1 (1) (2) (3) (4, neg. Behauptung) 1+4: (5) 2+5: (6) 2+3: (7) 3+6: (8) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-58 (316) 4.1.5 Validierung der Resultate Validieren des Resultats 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 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 Theoretische Informatik 4.1 Aussagenlogik Folie 4-59 (317) 4.1.5 Validierung der Resultate Validieren des Resultats faehrt → formel1 ¬faehrt → ¬geld geld (1) (2) (3) wahr unklar als wahr gegeben Bei Aussage (2) ist unklar, ob sie erfüllt wird. (2) ist eine Implikation ist. ¬geld ist falsch, also muss ¬faehrt ebenso falsch sein. Das passt zu den anderen Aussagen. ; keine 100%-ige Sicherheit. Es sieht jedoch alles plausibel aus. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-60 (318) 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: Φ |= φ. 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-61 (319) 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 (320) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Widerspruchsbeweis Wie beweist man, dass aus A die Formel A ∨ B folgt? Zu beweisen: A ∨ B gilt, falls A gilt. I I I Die Behauptung wird negiert, zur gegebenen Aussage A hinzugefügt und anschließend ein Widerspruch abgeleitet. {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 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Tautologien Welchen Informationsgehalt hat die Klausel A ∨ ¬A? Keinen! Sie kann gelöscht werden! Folie 4-63 (321) 4 Logik Theoretische Informatik 4.1 Aussagenlogik Folie 4-64 (322) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Subsumption Welche Klausel hat einen höheren Informationsgehalt: A ∨ B oder A ∨ B ∨ C ? Offensichtlich die Klausel A ∨ B. Die zweite Klausel kann folglich gelöscht werden. 4 Logik 4.1 Aussagenlogik Theoretische Informatik Folie 4-65 (323) 4.1.6 Resolution – Eigenschaften und Anwendungsscenarios Resolution als Beweistechnik Widerspruchsbeweis Ziel wird negiert hinzugenommen. Widerspruch suchen. „Falsch“-Beweis Beweis, dass eine gegebene Formel falsch ist. Nichts negieren. Widerspruch mittels Resolution suchen. Direkter Beweis Man hat kein Ziel. Resolution anwenden, eventuell bekommt man was vernünftiges raus. Aus der Unvollständigkeit der Resolution folgt, dass der direkte Beweis meistens nicht funktionieren wird. Probieren darf man es natürlich trotzdem. 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) 4.2.1 Konzert-Beispiel Beispiel (Resolution) Seien folgende Aussagen gegeben: Wenn X ein Konzert gibt, werden viele kommen, falls der Eintrittspreis nicht zu hoch ist. Wenn X ein Konzert gibt, ist der Eintrittspreis nicht zu hoch. Wir möchten beweisen, dass dann gilt: Wenn X ein Konzert gibt, dann kommen viele. Folie 4-66 (324) 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) 4.2.1 Konzert-Beispiel Schritt 1: Umwandeln in AL X → (billig → viele) X → billig Behauptung: X → viele Folie 4-67 (325) 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-68 (326) 4.2.1 Konzert-Beispiel Schritt 2: Umwandeln in KNF X → (billig → viele) X → billig ; ¬X ∨ ¬billig ∨ viele ; ¬X ∨ billig negierte Behauptung: ¬(X → viele) ; ¬(¬X ∨ viele) ≡ X ∧ ¬viele 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-69 (327) 4.2.1 Konzert-Beispiel Schritt 3: Resolutionsbeweis 1 ¬X ∨ ¬billig ∨ viele 2 ¬X ∨ billig 3 X 4 ¬viele 5 ¬X ∨ ¬billig 6 ¬X 7 ¬X ∨ viele 8 leere Klausel (Widerspruch) (1+4) (2+5) (1+2) Damit ist die Behauptung bewiesen. (3+6) 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-70 (328) 4.2.2 Koalitions-Beispiel Beispiel (Resolution) 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. Rainer Entweder Angela oder ich werden an der Koalition beteiligt sein. Wie sieht die Koalition aus? 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-71 (329) 4.2.2 Koalitions-Beispiel Ein weiteres Beispiel Erste Überlegungen: Wir haben 3 Aussagen gegeben. Ein Ziel haben wir nicht gegeben. Da wir kein Ziel gegeben haben, können wir 2 Varianten versuchen: 1 Wir stellen eine Vermutung auf, z.B. Rainer ist beteiligt. 2 Wir rechnen einfach mit den gegebenen Aussagen, also ohne Ziel. 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-72 (330) 4.2.2 Koalitions-Beispiel KNF P ∨ A (R ∧ ¬P ) ∨ (¬R ∧ P ) (R ∧ ¬A) ∨ (¬R ∧ A) Durch Ausmultiplizieren entsteht: 1 P ∨ A 2 ¬R ∨ ¬P 3 R ∨ P 4 ¬R ∨ ¬A 5 R ∨ A Die anderen Klauseln sind Tautologien und können weggelassen werden. 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-73 (331) 4.2.2 Koalitions-Beispiel Resolution Kein Ziel gegeben. Also einfach Resolution anwenden, ohne (neg.) Ziel. Vielleicht bekommen wir was raus. 6 (2+5) A ∨ ¬P 7 (6+1) A 8 (7+4) ¬R 9 (8+3) P 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. 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-74 (332) 4.2.3 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. 3 Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird der Motor laufen. 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. Wir möchten beweisen, dass die letzte Aussage aus den Aussagen 1-4 folgt. 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) 4.2.3 Auto-Beispiel Auto-Beispiel Zunächst wählen wir aussagenlogische Variablen: B . . . Die Batterie ist in Ordnung. S . . . Strom ist vorhanden. Z . . . Die Zündung funktioniert. 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. Folie 4-75 (333) 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-76 (334) 4.2.3 Auto-Beispiel Auto-Beispiel – AL-Formeln Jetzt können wir die Aussagen aufschreiben. 1 Wenn die Batterie in Ordnung ist, dann gibt es Strom: B → S. 2 Wenn Strom vorhanden ist und die Zündkerzen in Ordnung sind, dann funktioniert die Zündung: S ∧ K → Z . 3 Wenn die Zündung funktioniert und Benzin im Tank ist, dann wird der Motor laufen: Z ∧ T → M. 4 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. 4 Logik Theoretische Informatik 4.2 Beispiel (Resolution) Folie 4-77 (335) 4.2.3 Auto-Beispiel Auto-Beispiel – KNF Nun bilden wir die KNF: ; ¬B ∨ S 1 B → S 2 S ∧ K → Z ; ¬S ∨ ¬K ∨ Z 3 Z ∧ T → M ; ¬Z ∨ ¬T ∨ M 4 M ∧ R → A ; ¬M ∨ ¬R ∨ A 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 Beispiel (Resolution) Folie 4-78 (336) 4.2.3 Auto-Beispiel Auto-Beispiel – Resolution 1 ¬B ∨ S 2 ¬S ∨ ¬K ∨ Z 3 ¬Z ∨ ¬T ∨ M 4 ¬M ∨ ¬R ∨ A 5 B 6 K 7 T 8 R 9 ¬A Resolution: 10 (1+5) S 11 (2+10) ¬K ∨ Z 12 (11+6) Z 13 (12+3) ¬T ∨ M 14 (13+7) M 15 (14+4) ¬R ∨ A 16 (1+2) ¬B ∨ ¬K ∨ Z 17 (15+8) A 18 (17+9) Widerspruch 4 Logik Theoretische Informatik 4.3 Zusammenfassung (Aussagenlogik) Das sollten Sie wissen . . . Zusammenfassung 4.8 (Aussagenlogik) Aussagenlogik, Umwandeln von Aussagen in die AL Gültigkeit und Erfüllbarkeit Wahrheitswerttabellen Folgen und Ableiten, Inferenzregeln KNF und DNF Resolution, Korrektheit und Widerlegungsvollständigkeit Folie 4-79 (337) 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Folie 4-80 (338) Aufgaben Aufgabe 4.6 (Übersetzen) Übersetzen Sie folgende Aussagen in die aussagenlogische Sprache! Die Sonne scheint, aber es ist nicht heiß. Erwin läuft von Wismar nach Gägelow, aber nicht nach Rostock. 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. Herbert will Informatik und Betriebswirtschaft studieren, es sei denn, er geht nach Kaiserslautern. 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Aufgaben Aufgabe 4.7 (Resolution) Beweisen Sie mit Resolution, dass B gilt, falls (B → (A ∨ C )) ∧ (B ∨ C ) ∧ (A → C ) ∧ ¬(¬B ∧ C ) gilt. Aufgabe 4.8 (Resolution) Beweisen Sie mit Resolution, dass ((A ↔ (B → C )) ∧ (A ↔ B ) ∧ (A ↔ ¬C )) falsch ist. Folie 4-81 (339) 4 Logik Theoretische Informatik 4.4 Aufgaben (Aussagenlogik) Folie 4-82 (340) Aufgaben Aufgabe 4.9 (Übersetzen) Formulieren Sie folgende Sätze sowie deren Negation: 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. Wenn Jürgen Aktien hat, dann sind BMW-Aktien immer dabei. Die Hautallergie verschwindet genau dann, wenn Olaf keine Milch trinkt. 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 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 5 Komplexität Theoretische Informatik 24. August 2015 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 (343) Komplexität Program complexity grows until it exceeds the capability of the programmer who must maintain it. Arthur Bloch, Murphy’s Law, 1981 5 Komplexität 5.1 Speicherplatz und Zeitaufwand Speicherplatz und Zeitaufwand Ein Reisender soll 20 Städte besuchen. 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 Theoretische Informatik Folie 5-2 (344) 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-3 (345) Problemklassen unlösbar und lösbar I I praktisch lösbar praktisch unlösbar und 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-4 (346) Komplexität Beispiel 5.1 (Komplexität) Sortieren einer Liste von Namen (Länge n) Suchen in der Liste zunächst den kleinsten Namen, 1 Durchlauf Stellen diesen auf Position 1 (durch Tauschen) 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 (347) Komplexität Beispiel 5.1 cont. Wie hoch ist der Aufwand? Wir zählen dazu nur die Vergleiche, die (im schlimmsten Fall) nötig sind: 1. Durchlauf n-1 2. Durchlauf n-2 3. Durchlauf n-3 ... n-1. Durchlauf 1 Der Aufwand ist also (Gaußsche Summenformel): n−1 ∑i= i =1 n ∗ ( n − 1) 2 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-6 (348) Komplexität Definition 5.1 (Komplexität) Sei M eine Turing-Maschine, t ∈ IN. Die Relation `tM ist definiert durch: C `0M C 0 gdw. C = C 0 C `tM+1 C 0 gdw. eine Konfiguration C 00 existiert, so dass C `tM C 00 und C 00 `M C 0 C `tM C 0 gilt also genau dann, wenn die Konfiguration C 0 in genau t Schritten erreicht wird. Wir zählen, wie oft ein Konfigurationsübergang erfolgt. 5 Komplexität 5.1 Speicherplatz und Zeitaufwand Theoretische Informatik Folie 5-7 (349) Komplexität 1 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 mit t ≤ T (|w |). L heißt entscheidbar in der Zeit T , falls eine TM existiert, die L in der Zeit T entscheidet. 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-8 (350) Komplexität 2 Definition 5.3 (Komplexität) Sei T : IN → IN, L ⊂ Σ∗0 , M = (K , Σ, δ, s, A) eine TM, Σ0 ⊂ Σ. M semientscheidet L in der Zeit T , falls: (s, #w #) `tM (h, #Y#), gdw. w ∈ L mit t ≤ T (|w |). 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 (351) Komplexität 3 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 |). L heißt akzeptierbar in der Zeit T , falls eine TM existiert, die L in der Zeit T akzeptiert. 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 Beispiel Wir suchen eine TM, die L = {w ∈ {a, b, c }∗ |w hat die gleiche Anzahl von a, b, c } entscheidet. Folie 5-10 (352) 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand JFLAP – TM-abc Abb. 41: Turing-Maschine, die L entscheidet Folie 5-11 (353) 5 Komplexität Theoretische Informatik 5.1 Speicherplatz und Zeitaufwand Folie 5-12 (354) Aufwand Sei n die Länge der Eingabe. Jeder Durchlauf (maximal n Symbole durchsuchen und zurück auf das linke Ende) : 2n Schritte Pro Tripel (a, b, c ) maximal 3 × 2n Schritte maximal [n/3]↑ + 1 Tripel (Durchläufe) Ende: Band löschen, Schreiben von Y / N : n + 2 Schritte Also Aufwand maximal: ([n/3]↑ + 1) × 3(2n) + n + 2 2 Mit [n/3]↑ ≤ n+ erhält man: L ∈ TIME (2n2 + 11n + 2) 3 5 Komplexität 5.2 Komplexitätsklassen Komplexitätsklassen Wie hoch ist der Aufwand im: worst case analysis schlechtesten Fall best case analysis besten Fall average case analysis Durchschnitt Sind unsere Abschätzungen genau, d.h. scharf? Theoretische Informatik Folie 5-13 (355) 5 Komplexität 5.2 Komplexitätsklassen Theoretische Informatik Folie 5-14 (356) Komplexität Definition 5.6 (O (g )) Sei f eine Funktion über n. Wir schreiben f = O (g ), falls eine Konstante c > 0 und eine Zahl n0 existieren, so dass f (n) ≤ c × g (n) für alle n ≥ n0 gilt. 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-15 (357) Komplexität von Algorithmen Wichtige Unterscheidung: polynomialer Aufwand oder exponentieller Aufwand. Exponentieller Aufwand: Abschätzung = O (r n ) mit r > 1. Jedes Polynom ist = O (r n ), r > 1. nk +1 wächst schneller als nk . Also: Jede exponentielle Funktion wächst schneller als jedes Polynom. 5 Komplexität 5.2 Komplexitätsklassen Theoretische Informatik Folie 5-16 (358) SPACE SPACE(S) : Klasse aller TMs, deren Speicherbedarf durch S (|w |) abgeschätzt werden kann. 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Typische Komplexitätsklassen konstanter Aufwand log (n) n n ∗ log (n) n2 n3 en Folie 5-17 (359) 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Folie 5-18 (360) Typische Komplexitätsklassen Beispiel 5.2 (Komplexitätsklassen) n 2 20 100 1000 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 18 2, 43 ∗ 10 9, 33 ∗ 10157 ... 5 Komplexität Theoretische Informatik 5.2 Komplexitätsklassen Komplexität und Kryptographie Kryptographie nutzt Komplexität aus. Kryptographische Verfahren verschlüsseln Informationen x ; y = f (x ). Berechnung der Umkehrfunktion f −1 (y ) ist wegen hoher Komplexität de facto unmöglich. Folie 5-19 (361) 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-20 (362) P und N P 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 polynomialem Aufwand exponentiellem Aufwand. Definition 5.7 (P ) P = ∪{TIME (nd ) : d > 0} oder 5 Komplexität 5.3 P und N P Theoretische Informatik Folie 5-21 (363) NTIME 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 |). 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 ). 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-22 (364) NP Definition 5.9 (N P ) 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-23 (365) N P -vollständige Probleme ; Ganzzahlige Optimierung Man kann zeigen: P =NP gdw. die ganzzahlige Optimierung ist in P . Solche Probleme, die typisch für N P sind, bezeichnet man als N P -vollständig. 5 Komplexität 5.3 Theoretische Informatik P und N P Folie 5-24 (366) 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. Travelling salesman problem 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? Hamilton-Pfad Gibt es in einem Graphen einen Hamilton-Pfad? 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 Theoretische Informatik 5.4 Zusammenfassung (Komplexität) Das sollten Sie wissen . . . Zusammenfassung 5.10 (Komplexität) Praktisch unlösbare Probleme Speicherplatz, Zeitbedarf Komplexitätsklassen P und N P Folie 5-25 (367) 5 Komplexität 5.5 Aufgaben (Komplexität) Theoretische Informatik Folie 5-26 (368) Aufgaben Aufgabe 5.1 (Aufwand) Bisher haben wir immer vom Aufwand einer Maschine (bzw. eines Algorithmus) gesprochen. Wie würden Sie den Aufwand eines Problems definieren (beispielsweise Tourenplanung)? 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! 5 Komplexität Theoretische Informatik 5.5 Aufgaben (Komplexität) Folie 5-27 (369) Aufgaben Aufgabe 5.3 (Sortieren) Eine Liste von Zahlen soll sortiert werden. Entwickeln Sie einen Sortieralgorithmus für Listen von Zahlen oder greifen Sie auf einen Ihnen bekannten Algorithmus wie Bubblesort oder Nachbarvertauschen zurück. 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.4 (Komplexität) Untersuchen Sie die Turingmaschine aus Abbildung 41. Finden Sie eine bessere Aufwandsabschätzung. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 24. August 2015 Inhaltsverzeichnis 1 TI – Einführung 2 Grundlagen 3 Automatentheorie 4 Logik 5 Komplexität 6 Berechenbarkeit & Entscheidbarkeit 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 24. August 2015 Inhaltsverzeichnis – Kapitel 6 6 Berechenbarkeit & Entscheidbarkeit Gödelisierung LOOP- und WHILE-Berechenbarkeit Churchsche These Aussagen über Turingmaschinen und unlösbare Probleme Zusammenfassung (Berechenbarkeit) Aufgaben (Berechenbarkeit) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-1 (372) 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 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-2 (373) Arten der Nichtberechenbarkeit 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 Theoretische Informatik Folie 6-3 (374) Arten der Nichtberechenbarkeit – 2 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? 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-4 (375) Berechenbarkeit Frage: Kann eine Funktion mit Hilfe eines Computers berechnet werden? Einführen verschiedener Berechenbarkeitsbegriffe Vergleich der Ausdrucksstärke 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-5 (376) Berechenbarkeitsbegriffe Turing-Berechenbarkeit Grammatik-Berechenbarkeit WHILE-Berechenbarkeit 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik Folie 6-6 (377) 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. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.1 Gödelisierung Gödelisierung Bisher: Verarbeitung von Zeichenketten Wir möchten auch über Funktionen über natürlichen Zahlen reden. Kann man Zeichenketten und Zahlen 1-1 aufeinander abbilden? Natürliche Zahlen als Zeichenketten: 6=iiiiii Folie 6-7 (378) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.1 Gödelisierung Folie 6-8 (379) Gödelisierung – 2 Ziel: Kodierung von Zeichenketten durch Zahlen. Beispiel 6.1 (Kodierung) Sei Σ = {a, b, c }, Zahlenbasis: B = |Σ| + 1 = 4 Weisen den Elementen des Alphabets (Σ) Zahlen zu: a → 1, b → 2, c → 3. Kodierung von bbcba : 44 × 2 + 43 × 2 + 42 × 3 + 41 × 2 + 40 × 1 Aufgabe 6.1 (Kodierung) Gibt es bei dieser Kodierung Zahlen, zu denen es keine Zeichenkette gibt? 6 Berechenbarkeit & Entscheidbarkeit 6.2 LOOP- und WHILE-Berechenbarkeit Theoretische Informatik Folie 6-9 (380) LOOP- und WHILE-Berechenbarkeit Viele Probleme lassen sich nur iterativ (oder rekursiv) lösen. Folglich muss Iteration bei der Definition von Berechenbarkeit eine Rolle spielen. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.2 LOOP- und WHILE-Berechenbarkeit 6.2.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit Die Programmiersprache LOOP erlaubt folgende syntaktische Elemente: Variablen x1 , x2 , . . . Konstanten 0, 1, 2, . . . Symbole := und ; Operatoren + und ÷ Schlüsselwörter LOOP, DO, END Folie 6-10 (381) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.2 LOOP- und WHILE-Berechenbarkeit Folie 6-11 (382) 6.2.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit Folgende Programme sind erlaubt: Wertzuweisung: (n ∈ IN): xi := xj + n bzw. xi := xj ÷ n wobei ÷(n, m) = max(n − m, 0) das leere Programm Λ Komposition: Sind P1 und P2 LOOP-Programme, so auch P1 ; P2 Ist P ein LOOP-Programm, so auch LOOP xi DO P END 6 Berechenbarkeit & Entscheidbarkeit 6.2 LOOP- und WHILE-Berechenbarkeit Theoretische Informatik Folie 6-12 (383) 6.2.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit Ausgabevariable . . . x0 x1 , . . . , xk . . . Eingabe-Variablen Restliche Variablen . . . Hilfsvariablen, die beim Programmstart mit 0 belegt sind. P k . . . P ; . . . ; P, also das k-malige Ausführen von P P 0 ist das leere Programm Λ. LOOP ist eine Schleife, die xi -mal ausgeführt. 6 Berechenbarkeit & Entscheidbarkeit 6.2 LOOP- und WHILE-Berechenbarkeit Theoretische Informatik Folie 6-13 (384) 6.2.1 LOOP-Berechenbarkeit LOOP-Berechenbarkeit Beispiel 6.2 (LOOP) Nehmen wir an, wir hätten nicht bereits die Addition als LOOP-Funktion, sondern nur eine Funktion „+1“. Folgendes Programm berechnet die Addition x1 + x2 und gibt das Resultat auf x0 zurück. x0 := x1 ; LOOP x2 DO x0 := x0 + 1 END 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.2 LOOP- und WHILE-Berechenbarkeit Folie 6-14 (385) 6.2.2 WHILE-Programme WHILE-Programme Beobachtung: Nicht jede Funktion ist LOOP-berechenbar. Beispiel 6.3 (Ackermannfunktion) Die Ackermann-Funktion ist nicht LOOP-berechenbar. ack (0, y ) = y + 1 ack (x + 1, 0) = ack (x , 1) ack (x + 1, y + 1) = ack (x , ack (x + 1, y )) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.2 LOOP- und WHILE-Berechenbarkeit Folie 6-15 (386) 6.2.2 WHILE-Programme WHILE-Programme Da das LOOP-Konzept offensichtlich nicht ausreicht, erweitern wir die LOOP-Programme: Jedes LOOP-Programm ist auch ein WHILE-Programm. Ist P ein WHILE-Programm, dann auch WHILE xi > 0 DO P END Mit den WHILE-Programmen sind wir nun in der Leistungsklasse der Turing-Maschinen. 6 Berechenbarkeit & Entscheidbarkeit 6.2 LOOP- und WHILE-Berechenbarkeit 6.2.2 WHILE-Programme Aufgaben Aufgabe 6.2 (LOOP) Vorausgesetzt, wir wüssten bereits, dass die Addition LOOP-berechenbar ist, ist dann die Multiplikation LOOP-berechenbar? f (n1 , n2 ) = n1 × n2 Begründen Sie Ihre Aussage! Theoretische Informatik Folie 6-16 (387) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.3 Churchsche These Folie 6-17 (388) Leistungskraft der Berechenbarkeitsbegriffe 1. Hälfte des 20. Jhdt.: etliche Berechenbarkeitsbegriffe Welches Konzept war das stärkste? ; Immer wieder in der Leistungsklasse der TM. Satz 6.1 (Äquivalenz der Berechenbarkeitsbegriffe) Jede Turing-berechenbare Funktion ist Grammatik-berechenbar. Jede Grammatik-berechenbare Funktion ist auch WHILE-berechenbar. Jede WHILE-berechenbare Funktion ist auch Turing-berechenbar. Also: Alle 3 Berechenbarkeitsbegriffe sind äquivalent. 6 Berechenbarkeit & Entscheidbarkeit 6.3 Churchsche These Theoretische Informatik Folie 6-18 (389) Churchsche These Zu jeder intuitiv berechenbaren Funktion gibt es eine Turing-Maschine. 6 Berechenbarkeit & Entscheidbarkeit 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Theoretische Informatik Folie 6-19 (390) Aussagen über Turing-Maschinen Wir möchten Turing-Maschinen, die Aussagen über Turing-Maschinen machen können. 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.4 Aussagen über Turingmaschinen und unlösbare Probleme Theoretische Informatik Folie 6-20 (391) Aussagen über Turing-Maschinen Satz 6.2 (Unentscheidbarkeit) Es gibt keinen Algorithmus zur Entscheidung, ob eine beliebige Turing-Maschine M eine (beliebige) Zeichenkette w akzeptiert. Es gilt nicht, dass zu jeder Turing-Maschine M ein Algorithmus existiert, der entscheidet, ob M eine (beliebige) Zeichenkette w akzeptiert. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-21 (392) Das Halteproblem Existiert eine Turing-Maschine, die entscheidet, ob eine Turing-Maschine TM’ bei der Eingabe einer Zeichenkette w anhält? Annahme: Es gibt eine solche TM. Diese TM berechnet folgende Funktion f : f (i , x ) = 1 falls die TM i bei Eingabe von x anhält 0 sonst 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Das Halteproblem Konstruieren eine TM” : Eingabe: Zeichenkette v berechnet f (v , v ) Falls das Resultat = 0 ist, wird eine 0 ausgegeben und angehalten, sonst geht TM” in einen unendlichen Zyklus. Folie 6-22 (393) 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-23 (394) Das Halteproblem Kodierung dieser TM” : j. ; Wie verhält sich TM” bei der Eingabe von j? Würde TM” anhalten, so muss f (j , j ) = 1 gelten, d.h. TM” hält nicht an. Hält TM” nicht an, dann wäre f (j , j ) = 0, also hält TM” an. Widerspruch! Also: Annahme, dass f existiert, ist falsch. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-24 (395) 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? Sei eine TM gegeben. Ist die durch sie akzeptierte Sprache regulär, ist sie kontext-frei, ist sie Turing-entscheidbar? Sind 2 TMs äquivalent, d.h. leisten sie dasselbe? 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-25 (396) 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). 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-26 (397) Die Busy-Beaver-Funktion 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 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Theoretische Informatik Folie 6-27 (398) Weitere Begriffe zur Berechenbarkeit 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.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-28 (399) Semientscheidbarkeit – Beispiel Beispiel 6.4 (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. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Folie 6-29 (400) Unentscheidbarkeit – diophantische Gleichungen Beispiel 6.5 (Diophantische Gleichungen) Wir betrachten das 10. Hilbertsche Problem, welches die Frage stellt, ob man immer entscheiden kann, ob ein Gleichungssystem wie z.B.: 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 dieses nicht entscheiden. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Sprachen und Berechenbarkeit abzählbare Sprachen Typ 0 aufzählbare Sprachen entscheidbare Sprachen Typ 1 kontext−sensitive Sprachen Typ 2 kontext−frei Typ 3 regulär Abb. 42: Sprachhierarchie Folie 6-30 (401) 6 Berechenbarkeit & Entscheidbarkeit 6.4 Aussagen über Turingmaschinen und unlösbare Probleme Theoretische Informatik Folie 6-31 (402) Sprachen und Berechenbarkeit Abzählbarkeit Elementares Kriterium: man kann die Menge abzählen. 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? 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. 6 Berechenbarkeit & Entscheidbarkeit Theoretische Informatik 6.5 Zusammenfassung (Berechenbarkeit) Das sollten Sie wissen . . . Zusammenfassung 6.3 (Berechenbarkeit) Gödelisierung Berechenbarkeitsmodelle: LOOP/WHILE, Grammatiken, Turing-Berechenbarkeit Churche These Lösbare/Unlösbare Probleme, Halteproblem Folie 6-32 (403) 6 Berechenbarkeit & Entscheidbarkeit 6.6 Aufgaben (Berechenbarkeit) Theoretische Informatik Folie 6-33 (404) Aufgaben Aufgabe 6.3 (Kodierung) Kodieren Sie Zeichenketten über Σ = {a, b, c , d , e} mittels Gödelisierung! Aufgabe 6.4 (Entscheidbarkeit) Ist jede endliche Menge Turing-entscheidbar? Begründen Sie Ihre Aussage! 6 Berechenbarkeit & Entscheidbarkeit 6.6 Aufgaben (Berechenbarkeit) Theoretische Informatik Folie 6-34 (405) Aufgaben Aufgabe 6.5 (Abgeschlossenheit) Zeigen Sie, dass die Menge der Turing-entscheidbaren Sprachen abgeschlossen ist bezüglich Vereinigung Komplement-Bildung Durchschnitt Kleene star. Skizzieren Sie dazu passende Turing-Maschinen!