Logische Strukturen Logische Strukturen 1.+2. Vorlesung • Bachelor, 2. Semester Martin Dietzfelbinger • Übung: Ulf Schellbach (für Informatiker) • Vorlesung: Martin Dietzfelbinger 6.+13. April 2010 • Abschluss: Klausur 90 Min./90 Punkte • 2 Bonusklausuren, zusammen 14 Punkte. • http://www.tu-ilmenau.de/fakia/LS_SS10.html FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 LS – 06.+13.04.2010 1 Bücher Übung Dr. Ulf Schellbach •• M. Kreuzer, S. Kühling, Logik für Informatiker, Pearson, 2006 Montag (U) 17:00 – 18:30 Sr HU 010 Beginn: 12.04. Mittwoch (G) 11:00 – 12:30 Sr HU 012 Beginn: 21.04. Mittwoch (U) 11:00 – 12:30 Sr HU 210 Beginn: 14.04. • U. Schöning, Logik für Informatiker, Spektrum Akad. Verlag, 2000 • Übungsblätter (im Netz) • (Weiterführend) M. Huth, M. Ryan, Logic in Computer Science, 2nd ed., Cambridge Univ. Press, 2004. • Übung vor- und nachbereiten! FG Komplexitätstheorie und Effiziente Algorithmen FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 2 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 3 Logik in der Informatik? was ist . . . ? • Was ist und • Formale Systeme, mit denen sich Sachverhalte beschreiben lassen • wozu betreibt man • Modelle“, in denen die Beschreibungen interpretiert werden ” können Logik in der Informatik? • Methoden/algorithmische Kalküle, um im Rahmen der formalen Systeme Schlussfolgerungen zu ziehen oder um die Unmöglichkeit einer Konstellation nachzuweisen. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 4 was ist . . . ? FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 5 wozu . . . ? • Spezifikation eines geforderten Verhaltens für Informatiksysteme Spannungsfeld • Syntax: Formeln (Texte), formales Vorgehen, Kalküle (Unser Beispiel: Datentypen) Kann man algorithmisch/maschinell tun! • Semantik: Bedeutung/Interpretation der Formeln in Wel” ten“ ( Modellen“). ” • Model Checking: Beweisen von Aussagen über das Verhalten von formal spezifizierten Systemen (nicht in dieser Vorlesung) • KI – Künstliche Intelligenz“: ” Gegeben Wissensbasis“, ” d. h. Liste ϕ1, . . . , ϕn von Aussagen. Kann man Aussage ψ daraus herleiten“? ” FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 6 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 7 Themen Themen • Aussagenlogik – – – – – • Prädikatenlogik Syntax Semantik: Wahrheitstafeln Erfüllbarkeit, Unerfüllbarkeit Unendliche Systeme, Kompaktheit Kalküle: natürliches Schließen, Resolution, Hornlogik FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 – – – – – 8 Themen Syntax Modelle, Strukturen Normalformen Unentscheidbarkeit Resolutionskalkül (Nachweis der Unerfüllbarkeit) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 9 Kapitel 1 Aussagenlogik Erklärung (keine Definition) • Gleichungslogik (Grundzüge) Eine Aussage ist ein (formales oder informales) sprachliches Gebilde (ein Text“), dem man einen Wahrheitswert“ in ” ” {wahr , falsch} • Spezifikation von Datentypen (Grundzüge) ({w , f }, {true, false}, {t, f }, {1, 0}) zuordnen kann. Meist: Für eine Aussage sind je nach Situation“ beide Werte ” möglich. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 10 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 11 Aussagenlogik Beispiele: • . . . abstrahiert völlig vom Inhalt von Aussagen • Es regnet.“ ” (w /f je nach Situation.) • Karl ist krank.“ ” (w /f je nachdem welcher Karl gemeint ist und nach Situation.) • . . . untersucht das Verhalten der Wahrheitswerte von Aussagen bei Kombinationen durch Verknüpfungen“ und, ” oder, nicht, wenn . . . dann . . . usw. Beispiel: 1. Wenn es regnet, dann fahre ich mit dem Auto zur Arbeit. • Schalter A steht auf ‘Aus’ und Schalter B steht auf ‘Ein’“. ” 2. Wenn ich mit dem Fahrrad zur Arbeit fahre, dann nicht mit dem Auto. • Wenn A auf ‘Ein’ steht und B auf ‘Ein’ steht, dann erfolgt ” ein Alarm.“ 3. Ich fahre mit dem Fahrrad zur Arbeit. Möchte schließen“ können: Es regnet nicht. ” FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 12 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 13 Wir bauen komplexere Gebilde, genannt aussagenlogische ” Formeln“. 1.1 Formeln, Wahrheitswerte, Modelle Definition Bausteine: (i) Jede Aussagevariable Ai ist eine (aussagenlogische) Formel (alF). Elementaraussagen, die nicht weiter aufzugliedern sind. Inhalt egal! Abkürzung: A, B, C usw., auch mit Indizes. (ii) Wenn F , G Formeln sind, dann auch Unendlicher Vorrat A1, A2, A3, . . . von Aussagevariablen“. ” Wenn F Formel ist, dann auch ¬F . Wieso . . . variable“? ” Kann beliebige richtige“ Aussagen einsetzen“. ” ” FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 (F ∧ G), (F ∨ G), (F → G), (F ↔ G). Bedeutung“ dieser Texte: Bis jetzt noch gar keine! ” Spaßeshalber lesen als: Dach“, vau“, Pfeil“, Doppelpfeil“, ” ” ” ” Haken“. ” 14 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 15 Beispiele: 1. A1, A2, A3, . . . , A15: Aussagevariable, also Formeln nach (i). Definition von (aussagenlogischen) Formeln“: ” Induktive Definition Wichtiges Grundprinzip/Grundmuster der Informatik. Entspricht: Rekursion in Algorithmen/Programmen. 2. (A1 ∨ A3): Formel nach 1. und (ii). 3. (A4 ∧ (A1 ∨ A3)): Formel nach (i), 2., (ii). 4. ¬¬A2: Formel nach (i) und 2× (ii). 5. A1 ∨ A2 ∨ ¬A4: Keine Formel! 6. ((A3 ∨ A5) ↔ ¬(¬A3 ∧ ¬A5)): Formel. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 16 Syntaxbäume“ für aussagenlogische Formeln: ” Informal an Beispiel, Tafel. Intuitiv klar: Aus jeder Formel kann man algorithmisch einen eindeutigen Syntaxbaum gewinnen und umgekehrt. (Maschinell: Teil des Compilers.) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 17 Bisher: Syntax“. ” Semantik“ der Aussagenlogik: ” Wenn man jeder Aussagevariablen Ai, die in F vorkommt, einen Wahrheitswert zuordnet, kann man einen Wahrheitswert für F berechnen. Vorteil von Bäumen: klammerfrei, Struktur offensichtlich Man kann Konzepte wie Weg in Baum“, Länge des Wegs“, ” ” Tiefe eines Knotens“, Tiefe des Baums“ benutzen. ” ” Vorteil von Formeln: Man kann sie bequem in Strings und in Textdateien speichern. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 18 Formeln ohne Wahrheitswerte für die Variablen können nicht wahr“ oder falsch“ sein; es sind ” ” nur Texte. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 19 Definition 1.1.1 Definition 1.1.1 (Forts.) (a) Sei M ⊆ {A1, A2, . . .}. Eine Abbildung/Zuordnung/Funktion α : M → {w , f } heißt eine Belegung (für die Aussagevariablen in M ). (c) Wenn Belegung α zu Formel F passt, definieren wir α̂(F ), den Wahrheitswert von F unter α, (Intuition: Eine Belegung beschreibt eine mögliche Situation, eine mögliche (sehr primitive) Welt“.) ” (b) Sei F eine Formel, sei M ⊇ {Ai | Ai kommt in F vor}, sei α : M → {w , f }. Dann sagen wir: α passt zu F . durch Induktion über den Aufbau von F“. ” Klar: Wenn α zu F passt und F = (G ∨ H) o. ä., dann passt α auch zu G und H. Wenn α̂(F ) = w , sagen wir F gilt unter α“ oder informal ” F gilt in der durch α beschriebenen Situation/Welt“. ” Beispiele: Tafel. FG Komplexitätstheorie und Effiziente Algorithmen (i) Basisfall: F = Ai. LS – 06.+13.04.2010 20 α̂(Ai) := α(Ai). α̂((G ∧ H)) := w f α̂((G ∨ H)) := falls α̂(G) = α̂(H) = w , sonst. (G ∧ H) soll in einer Welt gelten genau dann wenn G und H ” beide gelten.“ FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 LS – 06.+13.04.2010 21 (ii) Induktionsschritt 2: F = (G ∨ H), Disjunktion“. ” Wir legen fest: (ii) Induktionsschritt 1: F = (G ∧ H), Konjunktion“. ” Wir legen fest: FG Komplexitätstheorie und Effiziente Algorithmen 22 f w falls α̂(G) = α̂(H) = f , sonst. (G ∨ H) soll in einer Welt gelten genau dann wenn in dieser ” Welt G gilt oder H gilt, also nicht beide falsch sind.“ FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 23 (ii) Induktionsschritt 3: F = (G → H), Subjunktion“, ” Folgerung“. ” Wir legen fest: α̂((G → H)) := f w falls α̂(G) = w und α̂(H) = f , sonst. w f falls α̂(G) = f oder α̂(H) = w , sonst. D. h.: In einer Situation, in der (G → H) gilt, folgt aus der Gültigkeit von G die Gültigkeit von H. In Situationen/Welten, in denen (G → H) nicht gilt, oder in denen (G → H) gilt, aber G nicht, wird nichts verlangt. (Dazu dient die etwas unintuitive Festlegung α̂((G → H)) = w wenn α̂(G) = f .) Äquivalent: α̂((G → H)) = Was hat das mit Folgerung“ zu tun? ” Wenn in einer Welt“ die Formel (G → H) gilt und die Formel ” G gilt, dann muss in dieser Welt auch die Formel H gelten. (G → H) soll in einer Welt gelten genau dann wenn in dieser ” Welt G falsch ist oder H wahr ist.“ FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 24 (ii) Induktionsschritt 4: F = (G ↔ H), Bijunktion“, Äqui” ” valenz“. Wir legen fest: α̂((G ↔ H)) := w f (G → H) soll in einer Welt wahr sein genau dann wenn in ” dieser Welt entweder G und H beide wahr sind oder G und H beide falsch sind.“ LS – 06.+13.04.2010 LS – 06.+13.04.2010 25 Übung : Denken Sie sich eine weitere Verknüpfung ⊕, die Antivalenz“ bedeuten soll: (G ⊕ H) soll das exklusive oder“ ” ” modellieren. Wie muss man die induktive Definition der Wahrheitswerte ergänzen? falls α̂(G) = α̂(H), sonst. FG Komplexitätstheorie und Effiziente Algorithmen FG Komplexitätstheorie und Effiziente Algorithmen 26 Aus der Schaltungslogik kannt man NOR“ und NAND“. ” ” Auch diese wären mögliche logische Verknüpfungen. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 27 (ii) Induktionsschritt 5: F = ¬G, Negation“. ” Wir legen fest: α̂(¬G) := w f Weil α̂(Ai) = α(Ai), führt es zu keiner Verwirrung, wenn wir statt α̂(F ) einfach α(F ) schreiben. falls α̂(G) = f , falls α̂(G) = w . ¬G soll in einer Welt wahr sein genau dann wenn in dieser ” Welt G falsch ist.“ FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 28 Lemma 1.1.3 α(F ) hängt nicht von α(Ai) ab, wenn Ai in F nicht vorkommt. Beispiel: Für die durch A1 A3 A5 A7 α(Ai) w f w f gegebene Belegung berechnen wir α((A1 ∧ ¬A3) → (¬A1 ∨ A7)). Systematische Auswertung von α(F ) für alle α : M → {w , f }, wobei M ⊇ {Ai | Ai in F }, führt zu Wahrheitstafeln. (Bekannt aus Rechnerorganisation“.) ” Aufwand: 2|M | Zeilen. Eine Spalte für jeden Operator in F . FG Komplexitätstheorie und Effiziente Algorithmen Definition 1.2.1 Wir schreiben Sparsam also: Wahrheitstafel für M = {Ai | Ai kommt in F vor}. wenn α(F ) = w ist (und α |= F wenn α(F ) = f ist). α |= F Wir sagen: α ist Modell von F“, in α gilt F“, u. ä. ” ” Noch sparsamere Auswertung durch Argumentieren“; ” Anwendung bei Logeleien: Übung. LS – 06.+13.04.2010 29 1.2 Erfüllbarkeit, Tautologien, Äquivalenz (Informal: Klar.“) ” (Formal: [Langweiliger] Beweis durch Induktion über den Aufbau von F .) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 30 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 31 Definition 1.2.1 (Forts.) Definition 1.2.2 Wenn F eine Menge von Formeln und α eine Belegung ist derart, dass α |= F (d. h. α(F ) = w ) für alle F ∈ F gilt, Eine Formel F heißt Tautologie oder allgemeingültig, wenn α |= F für alle Belegungen α gilt, die zu F passen. dann schreiben wir: α |= F , (F gilt in allen Welten“.) ” F heißt unerfüllbar, wenn α |= F für alle Belegungen α, die zu F passen. und sagen: α ist ein Modell von F. Achtung: F könnte sogar unendlich sein! (F gilt in keiner Welt“, F ist widersprüchlich“.) ” ” F heißt erfüllbar, wenn es ein α mit α |= F gibt. Andernfalls heißt F unerfüllbar. Proposition 1.2.3 F ist Tautologie genau dann wenn ¬F unerfüllbar ist. Beispiele: Tafel. (Sieht man durch Blick auf die Wahrheitstafel für Belegungen, in denen genau die Variablen aus F Werte erhalten.) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 32 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 33 Definition 1.2.4 Beobachtung 1: F ≡ G gdw (F ↔ G) ist Tautologie. Formeln F und G heißen (semantisch) äquivalent, falls für jede Belegung α, die zu F und zu G passt, gilt: Beobachtung 2: Die Relation ≡ ist eine Äquivalenzrelation auf der Menge der aussagenlogischen Formeln. D. h. es gilt: (i) Reflexivität: F ≡ F , α(F ) = α(G). (D. h.: α |= F genau dann wenn α |= G, für Belegungen, die für beide Formeln sinnvoll sind.) Wir schreiben: F ≡G. Beispiel: Für völlig beliebige Formeln G und H sind (G → H) und (¬G ∨ H) äquivalent. Beweis: Blick auf die Wahrheitstafel mit Variablen A1, A2: Für jedes α ist α((G → H)) = α((¬G ∨ H)). FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 34 (ii) Symmetrie: aus F ≡ G folgt G ≡ F , (iii) Transitivität: F ≡ G und G ≡ H impliziert F ≡ H. (Ist das trivial? (iii) ist nicht ganz trivial. Herumspielen mit verschiedenen Belegungen ist nötig.) Durch diese Äquivalenzrelation werden die Formeln in Äquivalenzklassen eingeteilt. Sehr wichtige Äquivalenzklassen sind die Tautologien und die unerfüllbaren Formeln. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 35 Beispiele: (A ∨ ¬A) ≡ (C ↔ C) Satz 1.2.5 (Ersetzungssatz) Nanu! (G ∨ ¬G) ≡ (H ↔ H) Ersetzung durch äquivalente Teilformeln liefert äquivalente ” Formeln.“ (F ↔ G) ≡ ((F → G) ∧ (G → F )) Wenn F1 ≡ F2 für Formeln F1 und F2 gilt, (F ↔ G) ≡ ((¬F ∨ G) ∧ (F ∨ ¬G)) und wenn G aus G entsteht, indem man in G die Teilformel (in runde Klammern eingeschlossener Teiltext, Unterbaum im Syntaxbaum!) F1 (an einer Stelle) durch F2 ersetzt, dann gilt G ≡ G . (F ↔ G) ≡ ((F ∧ G) ∨ (¬F ∧ ¬G)) (F ∧ (F ∨ G)) ≡ F ( Absorptionsgesetz“) ” (¬F ∨ ¬G) ≡ ¬(F ∧ G) (ein DeMorgan-Gesetz“) ” Beweise: Über Wahrheitstafeln, auch mit abkürzenden indirekten Argumenten. Nützliche Regel zur Herleitung von neuen Äquivalenzen, ohne über Wahrheitstafeln gehen zu müssen. Ende am 06.04.2010 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 36 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 37 Beispiel: Satz 1.2.6 (Fundamentalsatz der Aussagenlogik) F1 = (A1 ∨ ¬A1). Für aussagenlogische Formeln F , G, H gelten folgende Äquivalenzen: F2 = ((A2 ∧ A3) → A3). (a) Idempotenz (F ∨ F ) ≡ F und (F ∧ F ) ≡ F . Äquivalent, da beides Tautologien sind. Also nach Ersetzungssatz, für G = (¬A3 → (A1 ∨ ¬A1)): (b) Kommutativität (F ∨ G) ≡ (G ∨ F ) und (F ∧ G) ≡ (G ∧ F ). (¬A3 → (A1 ∨ ¬A1)) ≡ (¬A3 → ((A2 ∧ A3) → A3)) Beweis des Ersetzungssatzes: Induktion über den Aufbau von ” G“. (Tafel) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 38 Erlaubt Umordnen von Teilformeln. (c) Assoziativität ((F ∨ G) ∨ H) ≡ (F ∨ (G ∨ H)) und ((F ∧ G) ∧ H) ≡ (F ∧ (G ∧ H)). FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 39 Satz 1.2.6 (Fundamentalsatz der Aussagenlogik) Diese Regeln erlauben Vereinfachungen: • Weglassen von Klammern bei gleichberechtigten Teilformeln: (d) Absorption (F ∧ (F ∨ G)) ≡ F und (F ∨ (F ∧ G)) ≡ F . (e) Distributivität (F ∧ (G ∨ H)) ≡ ((F ∧ G) ∨ (F ∧ H)) und (F ∨ (G ∧ H)) ≡ ((F ∨ G) ∧ (F ∨ H)). (F ∨ G ∨ H)“ anstelle von ((F ∨ G) ∨ H)“. ” ” • Vertauschen gleichberechtigter Teilformeln: Erlaubt Umordnen von Teilformeln. (F ∨ G ∨ H) ≡ (H ∨ G ∨ F )“ usw. ” (f) Doppelnegation ¬¬F ≡ F . • Weglassen oder Einführung von Verdopplungen: (F ∨ G ∨ F ) ≡ (F ∨ G). (g) DeMorgansche Regeln ¬(F ∧ G) ≡ (¬F ∨ ¬G) und ¬(F ∨ G) ≡ (¬F ∧ ¬G). FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 40 Satz 1.2.6 (Fundamentalsatz der Aussagenlogik) (h) Tautologieregel Wenn F eine Tautologie ist, dann gilt (F ∧ G) ≡ G und (F ∨ G) ≡ F . (i) Widerspruchsregel Wenn F unerfüllbar ist (ein Widerspruch“), dann gilt (F ∧ ” G) ≡ F und (F ∨ G) ≡ G. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 41 Die Regeln des Fundamentalsatzes der Aussagenlogik besagen, dass die aussagenlogischen Formeln eine Boolesche Algebra bilden – wenn man äquivalente Formeln identifiziert“ (d. h. als gleich ” betrachtet). Technisch, genauer: BalF ist die Menge der ≡-Äquivalenzklassen. Die Operationen ∧, ∨, ¬ sind mit diesen Klassen verträglich, also definieren sie auch Operationen auf den Klassen. Objekte unserer Überlegungen: Formeln. Rein syntaktisch! FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 42 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 43 Algebraische Auffassung: Schaltfunktionen“ ” Fixiere M ⊆ {Ai | Ai Variable }, M endlich. (Semantik nur zur Definition der Äquiv.-Klassen.) Jede Formel F , deren Variable alle in M vorkommen, definiert eine Funktion ( Wertverlaufsfunktion für F“): ” zF : {w , f }M α → α(F ) ∈ {w , f }. Wenn man w mit 1 und f mit 0 gleichsetzt, ist dies eine Schaltfunktion für die Variablen in M . F Tautologie heißt: zF (α) = w für alle α. F unerfüllbar heißt: zF (α) = f für alle α. F ≡ G heißt: zF = zG. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 44 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 45 Beweis: Induktion über n. (Naheliegende) Frage: I.A.: Wenn n = 1 ist, gibt es nur vier mögliche Funktionen, für die man leicht die Formeln A1, ¬A1, (A1 ∨ ¬A1), (A1 ∧ ¬A1) findet. Sei z : {w , f }M → {w , f } eine beliebige Funktion. Gibt es eine Formel F , die z beschreibt“, d. h. für die z = zF ” gilt? I.V.: Aussage richtig für n. I.Schritt: Sei M = {A1, . . . , An}. Für α : M → {w , f } definiere z0(α) = z(α ∪ {(An+1, 0)}) (belege An+1 mit 0) und Proposition 1.2.7 z1(α) = z(α ∪ {(An+1, 1)}) (belege An+1 mit 1). Sei z : {w , f }M → {w , f }, wobei (o.B.d.A.) M = {A1, . . . , An}, n ≥ 1. Dann sind z0, z1 : {w , f }M → {w , f }, mit kleinerem M , Dann gibt es eine Formel F , in der nur A1, . . . , An und die Verknüpfungen ∧, ∨, ¬ vorkommen, so dass z = zF gilt. also gibt es nach I.V. Formeln F0 und F1 mit z0 = zF0 und z1 = zF1 . Dann gilt zF = z für F := ((An+1 ∧ F1) ∨ (¬An+1 ∧ F0)) . (Wenn man mit dem Distributivitätsgesetz ausmultipliziert, erhält man die kanonische disjunktive Normalform“ – s. Rechnerorganisation.) ” FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 46 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 47 Folgerung: Für jede Formel F gibt es eine äquivalente {∧, ∨, ¬}-Formel F̂ . Beweis: Wende 1.2.7 auf zF an, erhalte {∧, ∨, ¬}-Formel F̂ mit zF = zF̂ , und das heißt F ≡ F̂ . Problem: Darstellung von zF erfordert Aufstellen der Wahrheitstafel von F und damit immer in |M | exponentiellen Zeitaufwand. Selbst wenn F einfach“ ist, zieht diese Kon” struktion daraus keinen Nutzen. Geht es eventuell billiger“? ” Satz 1.2.8 Aus einer beliebigen alF F kann eine äquivalente {∧, ∨, ¬}-Formel F̂ direkt konstruiert werden (ohne Umweg über die Wahrheitstafel). Idee: Man muss die →- und ↔-Operatoren loswerden. Beispiel. (Tafel.) Finde eine Teilformel (G → H) oder (G ↔ H) mit der Eigenschaft, dass G, H beides {∧, ∨, ¬}-Formeln sind. Im Fall → ersetze durch (¬G ∨ H), im Fall ↔ durch ((G ∧ H) ∨ (¬G ∧ ¬H)). Iteriere dies, bis alle → und ↔ verschwunden sind. Achtung: Die Größe kann exponentiell wachsen; Beispiel: (A1 ↔ (A2 ↔ (A3 . . . ↔ (An−1 ↔ An) . . .))). FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 48 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 49 Beispiel konjunktive Normalform“: Variante von {∧, ∨, ¬}” Formeln. Mitteilung, ohne Beweis: (Korrektur im Vergleich zur Vorlesung) Durch eine andere, aufwendigere, recht clevere Konstruktion lässt sich erreichen, dass die Größe (Anzahl der Verknüpfungszeichen) size(F̂ ) in der neuen Formel F̂ nur polynomiell in der Anzahl size(F )der Operatoren in F ist. (A1 ∨ A2 ∨ ¬A4) ∧ (¬A1 ∨ ¬A2) ∧ (¬A1). Achtung: Einerklauseln“ (Ai) und die leere Klausel“ () sind ” ” erlaubt. Definition 1.2.9 (a) heißt ein Literal, wenn = Ai oder = ¬Ai (für Variable Ai). Alternative Schreibweise für ¬Ai: Ai. (b) C = (1 ∨ . . . ∨ s) heißt eine Klausel, wenn s ≥ 0 und 1, . . . , s Literale sind. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 50 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 51 (c) F heißt in konjunktiver Normalform (KNF), wenn F = (C1 ∧ . . . ∧ Cr ) mit r ≥ 0, wobei C1, . . . , Cr Klauseln sind. Wir lassen die innere Klammerung weg, das sie für den Wahrheitswert keine Rolle spielt. Wahrheitswerte, verallgemeinern die von gewöhnlichen Formeln leicht: Sei α eine Belegung für alle Literale in der KNF-Formel C1 ∧ . . . ∧ Cr . • Literale: α(¬Ai) = f falls α(Ai) = w und α(Ai) = f . = w falls • Klauseln: α((1 ∨. . .∨s)) = w genau dann wenn α(i) = w für mindestens ein i. Beachte: α(()) = α() (Einerklausel); α(()) = f (leere Klausel). • KNF-Formeln: α((C1 ∧ . . . ∧ Cr )) = w genau dann wenn α(Cj ) = w für alle j. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 52 0 Beachte: α( j=1 Cj ) = w (leere DNF-Formel) (selten benutzt). FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 53 Alternative Schreibweise für KNF-Formeln: Weil für die Wahrheitswerte die Reihenfolge der Literale in den Klauseln und die Reihenfolge der Klauseln sowie Wiederholungen von Literalen in Klauseln und Wiederholungen von Klauseln gleichgültig sind, schreibt man die Klauseln oft in Mengen um: statt (A ∨ C ∨ B ∨ C ∨ ¬D ∨ A) schreibe {A, B, C, ¬D}. Und DNF-Formeln in Mengen von Klauseln: Statt (A1 ∨ A2 ∨ ¬A4) ∧ (¬A1) ∧ (¬A1 ∨ ¬A2 ∨ ¬A1) ∧ (¬A1) schreibe: { {A1, A2, ¬A4}, {¬A1}, {¬A2, ¬A1} } FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 54 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 55 Beispiel disjunktive Normalform“: ” Kein Bedeutungsunterschied! Leere Klausel: {}, Leere KNF-Formel: {}. (A1 ∧ A2 ∧ ¬A4) ∨ (¬A1 ∧ ¬A2) ∨ (¬A1). Definition 1.2.9 (Forts.) (d) M = (1 ∧ . . . ∧ s) heißt ein Monom, wenn s ≥ 0 und 1, . . . , s Literale sind. (e) F heißt in disjunktiver Normalform (DNF) oder ein (Boolesches) Polynom, wenn F = M1 ∨ . . . ∨ Mr mit r ≥ 0, wobei M1, . . . , Mr Monome sind. Wahrheitswerte für gegebene Belegungen: Analog zu KNF-Formeln. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 56 Auch bei Monomen ist nur die Menge der Literale relevant, und bei DNF-Formeln die Menge der Monome. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 58 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 57 Satz 1.2.10 Wenn F eine aussagenlogische Formel ist, dann gibt es Formeln F und F mit F ≡ F ≡ F , wobei F in KNF ist und F in DNF. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 59 Einschub: Der Satz ist mit den Kenntnissen aus der Schaltungslogik (Rechnerorganisation) klar. Nämlich: Zu F bilde z = zF mit z : {f , w }M → {f , w }. OBdA: M = {A1, . . . , An}. Dann definiere Minterme“, für Belegungen α : M → {f , w }: ” ⎞ ⎛ α(A ) mα = ⎝ Ai i ⎠ das ODER aller Minterme zu Belegungen, die α(F ) = z(α) = w erfüllen. Liefert die Kanonische disjunktive Normalform“ ” Analog: Kanonische konjunktive Normalform“ ” Nachteil: |{α | α(F ) = w }| viele Minterme. bzw. |{α | α(F ) = f }| viele Klauseln. 1≤i≤n mit Awi = Ai, Afi = ¬Ai. Schließlich bilde ⎞ ⎛ ⎠, F = ⎝ α : z(α)=w FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 60 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 Satz 1.2.10 1. Schritt: Starte mit F . Wenn F eine aussagenlogische Formel ist, dann gibt es Formeln F und F mit F ≡ F ≡ F , wobei F in KNF ist und F in DNF. Aus F lässt sich eine äquivalente Klauselmenge K(F ) ablesen. Mit Satz 1.2.8 finde äquivalente {∧, ∨, ¬}-Formel F̂ . 61 Nun: Schiebe Negationen zu den Variablen“. Iteriere: ” (¬¬G) durch G ersetzen (Doppelnegation), F und F können algorithmisch konstruiert werden, ohne zu den vollen Wahrheitstafeln zu gehen. ¬(G ∧ H) durch (¬G ∨ ¬H) ersetzen (deMorgan), Beweis: Wir geben einen Algorithmus an, für KNF bzw. Klauselmenge. bis es nicht mehr weiter geht. ¬(G ∨ H) durch (¬G ∧ ¬H) ersetzen (deMorgan); Ende am 13.04.2010 Beobachtung: Größe/Tiefe des Syntaxbaums erhöht sich nicht, Aufwand gering. Schließlich: Alle ¬-Zeichen direkt an Variablen (maximal eines). FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 62 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 63 Beispiel: 2. Schritt: Starte mit einer ∧-∨-Literal-Formel aus Schritt 1. (¬(A ∧ ¬B) ∨ ¬(¬B ∨ ¬¬(C ∧ ¬A))) Behauptung: Jede ∧-∨-Literal-Formel F besitzt eine äquivalente KNF-Formel F , die man durch einfache Umformungen gewinnen kann. ≡ ((¬A ∨ ¬¬B) ∨ (¬¬B ∧ ¬¬¬(C ∧ ¬A))) ≡ ((¬A ∨ B) ∨ (B ∧ ¬(C ∧ ¬A))) Beweis der Beh. durch Induktion über den Aufbau von F . ≡ ((¬A ∨ B) ∨ (B ∧ (¬C ∨ ¬¬A))) I.A.: F = Ai oder F = ¬Ai: ist in KNF. ≡ ((¬A ∨ B) ∨ (B ∧ (¬C ∨ A))) I.-Schritt: 1. Fall: F = (F1 ∧ F2). Nach I.V. gibt es KNF-Formeln F1 und F2 mit F1 ≡ F1 und F2 ≡ F2 . Setze F = (F1 ∧ F2 ). Nach Ersetzungssatz 1.2.5: F ≡ (F1 ∧ F2) ≡ F . FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 64 2. Fall: F = (F1 ∨ F2). Nach I.V. gibt es KNF-Formeln F1 und F2 mit F1 ≡ F1 und F2 ≡ F2 . FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 65 Gesamtergebnis: Zu beliebiger Formel F konstruiere Klauselmenge K(F ) mit α(F ) = α(K(F )) für alle Belegungen α, die zu F passen. F1 = (D11 ∧ . . . ∧ D1r ), F2 = (D21 ∧ . . . ∧ D2s) Beispiel für Durchführung: Tafel, Übung. Die Dij sind Disjunktionen. Beachte: Im schlimmsten Fall kann die Formelgröße exponentiell anwachsen. Setze F = (D1i ∨ D2j ) . Beispiel: F = (A1 ∧ B1) ∨ . . . ∨ (An ∧ Bn). 1≤i≤r 1≤j≤s F ist Konjunktion von 2n Disjunktionen, kann auch nicht vereinfacht werden. (Beweis wäre anspruchsvolle Übungsaufgabe.) Dann gilt F ≡ F und F ist in KNF. (Ende Induktionsschritt.) FG Komplexitätstheorie und Effiziente Algorithmen K(F ) hat 2n Klauseln. LS – 06.+13.04.2010 66 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 67 Nächstes Ziel: Aussagen zu Erfüllbarkeit/Unerfüllbarkeit unendlicher Formelmengen. Satz 1.2.11 (Kompaktheitssatz) Erinnerung: Eine Menge F von aussagenlogischen Formeln ist erfüllbar genau dann wenn jede endliche Teilmenge von F erfüllbar ist. Für eine beliebige Menge F von Formeln: Beweis: Wenn F endlich ist, ist der Satz trivialerweise richtig. Also o.B.d.A.: F unendlich. • α |= F falls α(F ) = w für alle F ∈ F. • F heißt erfüllbar, falls es eine Belegung α mit α |= F gibt. Ist {A1, A1 ∧ A2, A1 ∧ A2 ∧ A3, . . .} erfüllbar? Ist {F1, F2, F3, . . .} ∪ {Ak , A} mit Fi = (Ai ↔ ¬Ai+1) erfüllbar? ⇒“: Wenn α |= F, dann erfüllt α natürlich jede endliche ” Teilmenge von F. ⇐“: Wir nehmen folgendes an: ” Für jede endliche Teilmenge F0 ⊆ F gibt es eine Belegung α0, die zu F0 passt, mit α0 |= F0. Wo soll jetzt eine Belegung α für F herkommen? Die verschiedenen α0 könnten sich widersprechen! FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 68 Beispiel: F = {A1, A1 ∧ A2, A1 ∧ A2 ∧ A3, . . .} LS – 06.+13.04.2010 69 Technische Vereinfachung: Bilde eine Folge von endlichen Mengen. F0 ⊆ {A1, A1 ∧ A2, . . . , A1 ∧ . . . ∧ Ak } Fi := {F ∈ F | in F nur Variable aus {A1, . . . , Ai}} wird von ⎧ ⎪ ⎨ w αk (Ai) = f ⎪ ⎩ undefiniert FG Komplexitätstheorie und Effiziente Algorithmen Dummerweise könnte auch Fi unendlich sein. falls i ≤ k, falls i = k + 1, falls i > k + 1. ({A1, (A1 ∧ A1), ((A1 ∧ A1) ∧ A1), . . .}) Aber die Menge {zF | F ∈ Fi} der Wertverlaufsfunktionen ist i endlich: höchstens 22 Elemente. erfüllt. Leider passen die αk nicht zusammen. Wir können also aus Fi eine endliche Teilmenge Fi ⊆ Fi auswählen, so dass für F ∈ Fi ein F ≡ F mit F ∈ Fi existiert. Wie findet man jetzt eine erfüllende Belegung für F? Dann definieren wir: Fi = F1 ∪ . . . ∪ Fi. Liefert: F1 ⊆ F2 ⊆ F3 ⊆ . . .. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 70 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 71 Falls in F nur endlich viele Variable vorkommen: Bastelaufgabe“: Baue aus den αi eine Belegung α für F. ” Unendlicher Baum mit Ebenen k = 1, 2, 3, . . ., eine für jede Variable. Fi = Fi+1 = · · · für ein i. Nach Vor. hat Fi eine erfüllende Belegung αi. Auf Ebene k: 2k−1 Ak -Knoten. Dann klar: αi |= F. Jeder hat ein linkes Kind (f -Kind) und ein rechtes Kind (w Kind) auf Ebene k + 1. Ab hier: F enthält unendlich viele Variable. Jede Belegung αi definiert einen Weg im Baum von der Wurzel zu einem Ai+1-Knoten. (Bunt anstreichen.) Wir wählen für jedes i ein αi : {A1, . . . , Ai} → {f , w } mit αi |= Fi. Bild: Tafel: Idee: Es gibt einen unendlichen farbigen Weg. Dieser stellt eine unendliche Belegung α dar. (Hoffnung: Erfüllt F.) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 72 Behauptung: Der beschriebene Belegungsbaum besitzt einen unendlich langen farbigen Weg. (Klassisches Ergebnis. Heißt in der Literatur Lemma von König“.) ” Beweis der Beh.: Wir konstruieren den Weg durch Induktion über k. Knoten vk ist Ak -Knoten und liegt auf Ebene k. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 73 Kinder. ⇒ durch mindestens eines der Kinder gehen unendlich viele αi-Wege. Dieses wählen wir als vk+1. Konstruktion bricht nie ab; es entsteht ein unendlicher Weg W. Invariante (I): Es gibt unendlich viele i, so dass der αi-Weg durch vk geht. k = 1: Der Weg startet in der Wurzel v1. Alle (unendlich vielen) αi-Wege gehen durch v1. I.V.: Habe vk erreicht, (I) erfüllt. I.Schritt: Durch vk gehen unendlich viele αi-Wege, vk hat 2 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 74 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 75 Wissen: αk |= Fk und Fi ⊆ Fk. Definiere α(Ak ) = f w Also αk |= Fi, also αk |= F , also αk |= F . falls W in Ak -Knoten nach links geht, falls W in Ak -Knoten nach rechts geht. Uff! Das war’s. Zu zeigen: α |= F. Sei dazu F ∈ F, alle Variable in {A1, . . . , Ai}. Dann F ≡ F für ein F ∈ Fi. Es gibt eine Belegung αk , k ≥ i, so dass der αk -Weg (mindestens) bis zum Ai+1-Knoten auf dem α-Weg verläuft. (Weil die Kante vom Ai zu Ai+1-Knoten eingefärbt ist.) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 76 Lemma 1.2.12 Eine endliche Formelmenge F = {F1, . . . , Fk } ist erfüllbar genau dann wenn die Formel F = (F1 ∧ . . . ∧ Fk ) erfüllbar ist. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 77 Möglich immer: Wahrheitstafel für F aufstellen. Nächster Abschnitt: Aussagenlogische Resolution. Beweis: (Ziemlich) Klar. Um zu beweisen, dass F = {F1, F2, F3, . . .} unerfüllbar ist: Für k = 1, 2, 3, . . . teste ob Fk = {F1, . . . , Fk } erfüllbar ist, d. h. (Lemma!) ob (F1 ∧ . . . ∧ Fk ) erfüllbar ist. Wenn F erfüllbar: unendliches Verfahren, Pech. Wenn F unerfüllbar/widersprüchlich: Dies stellt sich nach endlich vielen Schritten heraus, wegen des Kompaktheitssatzes. Fehlt: Gutes Verfahren, um Erfüllbarkeit einer Formel zu testen. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 78 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 79 Wieso ist eigentlich gerade die Unerfüllbarkeit einer Formelmenge so interessant? Proposition 1.2.13 Viele andere Aspekte lassen sich darauf zurückführen. Beweis: ⇒“: Es gelte F |= G. ” α sei eine beliebige Belegung mit α |= F. Nach Vor. gilt dann α |= G, also α |= ¬G. Also kann keine Belegung sowohl F als auch G erfüllen, also ist F ∪ {¬G} unerfüllbar. Definition 1.2.12 F |= G, für Formelmenge F und Formel G, wenn für jede Belegung α, die zu F und G passt, und die α |= F erfüllt, auch α |= G gilt. Sprechweise: F impliziert G oder G ist (semantische) Folgerung aus F. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 80 Proposition 1.2.13(a) F |= G gilt genau dann wenn F ∪ {¬G} unerfüllbar ist. ⇒“: Sei F ∪ {¬G} unerfüllbar. ” Sei nun α eine beliebige Belegung mit α |= F. Nach Vor. gilt α |= ¬G, also folgt α |= G. FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 81 Bis nächste Woche (a) F |= G gilt genau dann wenn es eine endliche Teilmenge F0 ⊆ F mit F0 |= G gibt. (b) F |= G gilt genau dann wenn es F1, . . . , Fk ∈ F gibt, so dass ((F1 ∧ . . . ∧ Fk ) → G) eine Tautologie ist. • Folien nacharbeiten. Beweis: (a) F |= G gdw (1.2.13) F ∪ {¬G} unerfüllbar gdw (1.2.11) es ex. endl. Teilmenge F0 ⊆ F mit F0 ∪ {¬G} unerfüllbar gdw (1.2.13) es ex. endl. Teilmenge F0 ⊆ F mit F0 |= G. • Übungsaufgaben drucken und vorbereiten. (Übungen ab Mittwoch, 14.4.!) • Bücher besorgen. (b) Das F0 aus (a) sei {F1, . . . , Fk }. Zu zeigen nur: F0 |= G gdw ((F1 ∧ . . . ∧ Fk ) → G) ist eine Tautologie. (Übung.) FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 82 FG Komplexitätstheorie und Effiziente Algorithmen LS – 06.+13.04.2010 83