Vorlesung Logik für Informatiker 5. Aussagenlogik – Normalformen – Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS ’06 – p.1 Normalformen Definition: Literal Atom (aussagenlogische Variable) oder die Negation eines Atoms Logik für Informatiker, SS ’06 – p.2 Normalformen Definition: Literal Atom (aussagenlogische Variable) oder die Negation eines Atoms Definition: Klausel Eine Disjunktion von Literalen (A ∨ ¬ B ∨ C) mehrstellige Disjunktionen einstellige Disjunktionen A die nullstellige Disjunktion (leere Klausel) 0 Logik für Informatiker, SS ’06 – p.2 Konjunktive Normalform Definition: Konjunktive Normalform (KNF) Eine Konjunktion von Disjunktionen von Literalen, d.h., eine Konjunktion von Klauseln Logik für Informatiker, SS ’06 – p.3 Konjunktive Normalform Definition: Konjunktive Normalform (KNF) Eine Konjunktion von Disjunktionen von Literalen, d.h., eine Konjunktion von Klauseln mehrstellig, einstellig oder nullstellig Logik für Informatiker, SS ’06 – p.3 Konjunktive Normalform Definition: Konjunktive Normalform (KNF) Eine Konjunktion von Disjunktionen von Literalen, d.h., eine Konjunktion von Klauseln mehrstellig, einstellig oder nullstellig Beispiele (A ∨ ¬ B) ∧ (B ∨ ¬C ∨ ¬ D) A∨B A ∧ (B ∨ C) A∧B 1 Logik für Informatiker, SS ’06 – p.3 Disjunktive Normalform Definition: Disjunktive Normalform (DNF) Eine Disjunktionen von Konjunktionen von Literalen mehrstellig, einstellig oder nullstellig Beispiele (A ∧ ¬ B) ∨ (B ∧ ¬C ∧ ¬ D) A∧B A ∨ (B ∧ C) A∨B 0 Logik für Informatiker, SS ’06 – p.4 Konjunktive und Disjunktive Normalform Eigenschaften • Zu jeder aussagenlogischen Formel gibt es – eine äquivalente Formel in KNF – eine äquivalente Formel in DNF Logik für Informatiker, SS ’06 – p.5 Konjunktive und Disjunktive Normalform Eigenschaften • Zu jeder aussagenlogischen Formel gibt es – eine äquivalente Formel in KNF – eine äquivalente Formel in DNF • Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig Logik für Informatiker, SS ’06 – p.5 Konjunktive und Disjunktive Normalform Eigenschaften • Zu jeder aussagenlogischen Formel gibt es – eine äquivalente Formel in KNF – eine äquivalente Formel in DNF • Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig • Solche Formeln können aus einer Wahrheitstafel abgelesen werden – Disjunktionen in der KNF entsprechen den Zeilen mit true – Konjunktionen in der DNF entsprechen den Zeilen mit false Logik für Informatiker, SS ’06 – p.5 Konjunktive und Disjunktive Normalform Eigenschaften • Zu jeder aussagenlogischen Formel gibt es – eine äquivalente Formel in KNF – eine äquivalente Formel in DNF • Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig • Solche Formeln können aus einer Wahrheitstafel abgelesen werden – Disjunktionen in der KNF entsprechen den Zeilen mit true – Konjunktionen in der DNF entsprechen den Zeilen mit false • Solche Formeln können durch Umformungen hergestellt werden Logik für Informatiker, SS ’06 – p.5 Umformung in KNF Vier Schritte Logik für Informatiker, SS ’06 – p.6 Umformung in KNF Vier Schritte 1. Elimination von ↔ Verwende A↔B ≡ (A → B) ∧ (B → A) Logik für Informatiker, SS ’06 – p.6 Umformung in KNF Vier Schritte 1. Elimination von ↔ Verwende A↔B ≡ (A → B) ∧ (B → A) ≡ ¬A ∨ B 2. Elimination von → Verwende A→B Logik für Informatiker, SS ’06 – p.6 Umformung in KNF Vier Schritte 1. Elimination von ↔ Verwende A↔B ≡ (A → B) ∧ (B → A) ≡ ¬A ∨ B 2. Elimination von → Verwende A→B 3. „Nach innen schieben“ von ¬ Verwende de Morgans Regeln und ¬¬ A ≡ A Logik für Informatiker, SS ’06 – p.6 Umformung in KNF Vier Schritte 1. Elimination von ↔ Verwende A↔B ≡ (A → B) ∧ (B → A) ≡ ¬A ∨ B 2. Elimination von → Verwende A→B 3. „Nach innen schieben“ von ¬ Verwende de Morgans Regeln und ¬¬ A ≡ A 4. „Nach innen schieben“ von ∨ Verwende Distributivität von ∨ über ∧ Logik für Informatiker, SS ’06 – p.6 Umformung in KNF: Beispiel 0. Gegeben B1,1 ↔ (P1,2 ∨ P2,1 ) Logik für Informatiker, SS ’06 – p.7 Umformung in KNF: Beispiel 0. Gegeben B1,1 ↔ (P1,2 ∨ P2,1 ) 1. Elimination von ↔ (B1,1 → (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) → B1,1 ) Logik für Informatiker, SS ’06 – p.7 Umformung in KNF: Beispiel 0. Gegeben B1,1 ↔ (P1,2 ∨ P2,1 ) 1. Elimination von ↔ (B1,1 → (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) → B1,1 ) 2. Elimination von → (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ (¬(P1,2 ∨ P2,1 ) ∨ B1,1 ) Logik für Informatiker, SS ’06 – p.7 Umformung in KNF: Beispiel 0. Gegeben B1,1 ↔ (P1,2 ∨ P2,1 ) 1. Elimination von ↔ (B1,1 → (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) → B1,1 ) 2. Elimination von → (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ (¬(P1,2 ∨ P2,1 ) ∨ B1,1 ) 3. Nach innen schieben von ¬ (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ ((¬ P1,2 ∧ ¬ P2,1 ) ∨ B1,1 ) Logik für Informatiker, SS ’06 – p.7 Umformung in KNF: Beispiel 0. Gegeben B1,1 ↔ (P1,2 ∨ P2,1 ) 1. Elimination von ↔ (B1,1 → (P1,2 ∨ P2,1 )) ∧ ((P1,2 ∨ P2,1 ) → B1,1 ) 2. Elimination von → (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ (¬(P1,2 ∨ P2,1 ) ∨ B1,1 ) 3. Nach innen schieben von ¬ (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ ((¬ P1,2 ∧ ¬ P2,1 ) ∨ B1,1 ) 4. Nach innen schieben von ∨ (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ (¬ P1,2 ∨ B1,1 ) ∧ (¬ P2,1 ∨ B1,1 ) Logik für Informatiker, SS ’06 – p.7 Beispiel zur exponentiellen Länge der KNF Gegeben An = (P1,1 ∧ P1,2 ) ∨ . . . ∨ (Pn,1 ∧ Pn,2 ) Logik für Informatiker, SS ’06 – p.8 Beispiel zur exponentiellen Länge der KNF Gegeben An = (P1,1 ∧ P1,2 ) ∨ . . . ∨ (Pn,1 ∧ Pn,2 ) Zu An äquivalente KNF ^ { P1, f (1) ∨ . . . ∨ Pn, f (n) | f : {1, . . . , n} → {1, 2}} Logik für Informatiker, SS ’06 – p.8 Beispiel zur exponentiellen Länge der KNF Gegeben An = (P1,1 ∧ P1,2 ) ∨ . . . ∨ (Pn,1 ∧ Pn,2 ) Zu An äquivalente KNF ^ { P1, f (1) ∨ . . . ∨ Pn, f (n) | f : {1, . . . , n} → {1, 2}} Größe der KNF Literale in An : 2 ∗ n Literale in KNF von An : n ∗ 2n Logik für Informatiker, SS ’06 – p.8 Beispiel zur exponentiellen Länge der KNF Zu An äquivalente KNF ^ { P1, f (1) ∨ . . . ∨ Pn, f (n) | f : {1, . . . , n} → {1, 2}} Logik für Informatiker, SS ’06 – p.9 Beispiel zur exponentiellen Länge der KNF Zu An äquivalente KNF ^ { P1, f (1) ∨ . . . ∨ Pn, f (n) | f : {1, . . . , n} → {1, 2}} Für n = 3 (P1,1 ∨ P2,1 ∨ P3,1 ) ∧ (P1,1 ∨ P2,1 ∨ P3,2 ) ∧ (P1,1 ∨ P2,2 ∨ P3,1 ) ∧ (P1,1 ∨ P2,2 ∨ P3,2 ) ∧ (P1,2 ∨ P2,1 ∨ P3,1 ) ∧ (P1,2 ∨ P2,1 ∨ P3,2 ) ∧ (P1,2 ∨ P2,2 ∨ P3,1 ) ∧ (P1,2 ∨ P2,1 ∨ P3,2 ) Logik für Informatiker, SS ’06 – p.9 KNF: Mengenschreibweise Notation Klausel als Menge von Literalen Formel in KNF als Menge von Klauseln Logik für Informatiker, SS ’06 – p.10 KNF: Mengenschreibweise Notation Klausel als Menge von Literalen Formel in KNF als Menge von Klauseln Beispiel (¬ B1,1 ∨ P1,2 ∨ P2,1 ) ∧ (¬ P1,2 ∨ B1,1 ∧ (¬ P2,1 ∨ B1,1 ) als { {¬ B1,1 , P1,2 , P2,1 )}, {¬ P1,2 , B1,1 }, {¬ P2,1 , B1,1 } } Logik für Informatiker, SS ’06 – p.10 KNF: Mengenschreibweise Bedeutung der leeren Menge Leere Klausel = leere Menge von Literalen = leere Disjunktion = Logik für Informatiker, SS ’06 – p.11 KNF: Mengenschreibweise Bedeutung der leeren Menge Leere Klausel = leere Menge von Literalen = leere Disjunktion = 0 Logik für Informatiker, SS ’06 – p.11 KNF: Mengenschreibweise Bedeutung der leeren Menge Leere Klausel = leere Menge von Literalen = leere Disjunktion = 0 Leere Menge von Klauseln = leere Konkunktion = Logik für Informatiker, SS ’06 – p.11 KNF: Mengenschreibweise Bedeutung der leeren Menge Leere Klausel = leere Menge von Literalen = leere Disjunktion = 0 Leere Menge von Klauseln = leere Konkunktion = 1 Logik für Informatiker, SS ’06 – p.11 Vereinfachung der KNF: Subsumtion Theorem Enthält eine KNF-Formel (= Klauselmenge) Klauseln K , K 0 mit K ( K0 dann entsteht eine äquivalente Formel, wenn K 0 weggelassen wird Logik für Informatiker, SS ’06 – p.12 Das SAT-Problem (Erfüllbarkeitsproblem) Definition: SAT-Problem Gegeben: Eine aussagenlogische Formel F Frage: Ist F erfüllbar? Logik für Informatiker, SS ’06 – p.13 Das SAT-Problem (Erfüllbarkeitsproblem) Definition: SAT-Problem Gegeben: Eine aussagenlogische Formel F Frage: Ist F erfüllbar? Theorem (ohne Beweis) SAT ist ein NP-vollständiges Problem Logik für Informatiker, SS ’06 – p.13 NP-Vollständigkeit Zur Erinnerung / Vorausschau NP-vollständig heißt: • SAT ist nichtdeterministisch in polynomieller Zeit entscheidbar Logik für Informatiker, SS ’06 – p.14 NP-Vollständigkeit Zur Erinnerung / Vorausschau NP-vollständig heißt: • SAT ist nichtdeterministisch in polynomieller Zeit entscheidbar • Jedes nichtdeterministisch in polynomieller Zeit entscheidbare Problem kann in polynomieller Zeit auf SAT reduziert werden Logik für Informatiker, SS ’06 – p.14 NP-Vollständigkeit Zur Erinnerung / Vorausschau NP-vollständig heißt: • SAT ist nichtdeterministisch in polynomieller Zeit entscheidbar • Jedes nichtdeterministisch in polynomieller Zeit entscheidbare Problem kann in polynomieller Zeit auf SAT reduziert werden • Wenn es stimmt, dass N P 6= P, dann ist SAT nicht in polynomieller Zeit entscheidbar Logik für Informatiker, SS ’06 – p.14 Teilklassen des Erfüllbarkeitsproblems Definition: k-KNF KNF-Formeln, deren Klauseln höchstens k Literale haben Logik für Informatiker, SS ’06 – p.15 Teilklassen des Erfüllbarkeitsproblems Definition: k-KNF KNF-Formeln, deren Klauseln höchstens k Literale haben Theorem KNF ist NP-vollständig (ohne Beweis) Logik für Informatiker, SS ’06 – p.15 Teilklassen des Erfüllbarkeitsproblems Definition: k-KNF KNF-Formeln, deren Klauseln höchstens k Literale haben Theorem KNF ist NP-vollständig 3-KNF ist NP-vollständig (ohne Beweis) (Beweisidee an Tafel) Logik für Informatiker, SS ’06 – p.15 Teilklassen des Erfüllbarkeitsproblems Definition: k-KNF KNF-Formeln, deren Klauseln höchstens k Literale haben Theorem KNF ist NP-vollständig 3-KNF ist NP-vollständig (ohne Beweis) (Beweisidee an Tafel) 2-KNF ist polynomiell entscheidbar (Beweisidee an Tafel) Logik für Informatiker, SS ’06 – p.15 Teilklassen des Erfüllbarkeitsproblems Definition: k-KNF KNF-Formeln, deren Klauseln höchstens k Literale haben Theorem KNF ist NP-vollständig 3-KNF ist NP-vollständig (ohne Beweis) (Beweisidee an Tafel) 2-KNF ist polynomiell entscheidbar DNF ist polynomiell entscheidbar (Beweisidee an Tafel) (Beweis einfach) Logik für Informatiker, SS ’06 – p.15 Horn-Formeln Defintion: Horn-Formel Formel in KNF, in der jede Klausel höchstens ein positives Literale enthält Logik für Informatiker, SS ’06 – p.16 Horn-Formeln Defintion: Horn-Formel Formel in KNF, in der jede Klausel höchstens ein positives Literale enthält Notation: Als Implikation ¬ B1 ∨ . . . ∨ ¬ Bm ∨ A B1 ∧ . . . ∧ Bm ¬ B1 ∨ . . . ∨ ¬ Bm A → A B1 ∧ . . . ∧ Bm → → A Logik für Informatiker, SS ’06 – p.16 Horn-Formeln Defintion: Horn-Formel Formel in KNF, in der jede Klausel höchstens ein positives Literale enthält Notation: Als Implikation ¬ B1 ∨ . . . ∨ ¬ Bm ∨ A B1 ∧ . . . ∧ Bm ¬ B1 ∨ . . . ∨ ¬ Bm A → A B1 ∧ . . . ∧ Bm → → A B1 ∧ . . . ∧ Bm : „Rumpf“ A: „Kopf“ Logik für Informatiker, SS ’06 – p.16 Horn-Formel: Beispiel Notation als Literalmengen { ¬P } { Q, ¬ R, ¬ S } { ¬Q ∨ ¬S } {R} {S} { ¬Q ∨ P } Logik für Informatiker, SS ’06 – p.17 Horn-Formel: Beispiel Notation als Literalmengen Notation als Implikationen { ¬P } P → { Q, ¬ R, ¬ S } R∧S → Q { ¬Q ∨ ¬S } Q∧S → {R} → R {S} → S { ¬Q ∨ P } Q → P Logik für Informatiker, SS ’06 – p.17 Horn-Formel: Beispiel Notation als Literalmengen Notation als Implikationen { ¬P } P → { Q, ¬ R, ¬ S } R, S → Q { ¬Q ∨ ¬S } Q, S → {R} → R {S} → S { ¬Q ∨ P } Q → P Logik für Informatiker, SS ’06 – p.17 Erfüllbarkeitsproblem für Horn-Formeln Theorem Die Erfüllbarkeit von Horn-Formeln ist in quadratischer Zeit entscheidbar Logik für Informatiker, SS ’06 – p.18 Erfüllbarkeitstest für Horn-Formeln Eingabe: C = D1 ∧ . . . ∧ Dm eine Hornformel Ein Atom in C zu markieren, bedeutet, es an allen Stellen seines Auftretens in C zu markieren Logik für Informatiker, SS ’06 – p.19 Erfüllbarkeitstest für Horn-Formeln 0: IF keine Fakten (Klausel mit leerem Rumpf) vorhanden THEN Ausgabe: erfüllbar ELSE markiere alle Fakten 1: IF keine Klausel Ri → Hi in C, so dass alle Atome in Ri markiert aber Hi nicht THEN Ausgabe: erfüllbar ELSE wähle das erste solche IF Hi leer THEN Ausgabe: unerfüllbar ELSE markiere Hi in C GOTO 1 Logik für Informatiker, SS ’06 – p.20 Erfüllbarkeitstest für Horn-Formeln Logik für Informatiker, SS ’06 – p.21 Zusammenfassung: Normalformen • Literale, Klauseln Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF • Mengenschreibweise Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF • Mengenschreibweise • Subsumtion Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF • Mengenschreibweise • Subsumtion • SAT-Problem (SAT, 3-SAT, 2-SAT, DNF-SAT) Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF • Mengenschreibweise • Subsumtion • SAT-Problem (SAT, 3-SAT, 2-SAT, DNF-SAT) • Horn-Formeln Logik für Informatiker, SS ’06 – p.22 Zusammenfassung: Normalformen • Literale, Klauseln • Konjunktive und Disjunktive Normalform • Ablesen von DNF und KNF aus Wahrheitstafeln • Umformen in KNF • Mengenschreibweise • Subsumtion • SAT-Problem (SAT, 3-SAT, 2-SAT, DNF-SAT) • Horn-Formeln • Erfüllbarkeitstest für Hornformeln Logik für Informatiker, SS ’06 – p.22