Logik für Informatiker Aussagenlogik Logik für Informatiker 1/19 Proseminar „Logik für Informatiker“ Aussagenlogik Dozent: Dr. Ekkart Kindler Vortragender: Jürgen Hölker, Marco Gießmann 25.04.2005 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Motivation 2/19 Menschliche Logik Computerlogik Es regnet. Die Straße ist trocken. p q 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Grundlagen Atome: 3/19 p = „es regnet“ q = „die Straße ist trocken“ Operatoren: Λ Belegungen: b(p) = 1, b(q) = 0 Formel: F = p → ┐q „und“, v „oder“, ┐ „nicht“, → „impliziert“ Literal 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Grundlagen 25.04.2005 4/19 b(F) b Belegung von F b╞ F b erfüllt F, b(F) = 1 ╞F F Tautologie (allgemeingültig) ╞F <=> ┐F unerfüllbar Marco Gießmann Logik für Informatiker Aussagenlogik Erfüllbarkeit von Formeln 5/19 Intuitiv: Wahrheittafeln auswerten p 0 0 1 1 q 0 1 0 1 pΛq 0 0 0 1 p = 1, q = 1 => 25.04.2005 pΛq erfüllende Belegung erfüllbar Marco Gießmann Logik für Informatiker Aussagenlogik Äquivalenz von Formeln 6/19 Wann sind zwei Formeln äquivalent? p 0 0 1 1 q 0 1 0 1 p→q 1 1 0 1 ┐p v q 1 1 0 1 Was ist mit (p Λ q → p) und (r v ¬r)? ● ● 25.04.2005 beide sind stets 'True' unschiedliche Anzahl Zeilen Marco Gießmann Logik für Informatiker Aussagenlogik Äquivalenz von Formeln 7/19 F1, F2 semantisch Äquivalent <=> F1 ╞ F2 und F2 ╞ F1 Schreibweise: F1 ≡ F2 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Kojunktiv-Normal-Form (KNF) 8/19 ● Konjunktionen von Disjunktionen „(...v...) Λ (...v...)“ ● „┐“ nur vor Atomen Beispiel: (p) Λ (┐q) Λ (p v ┐r) Gegenbeispiele: (p) Λ (┐q) Λ ┐(p v r) (┐┐p) 25.04.2005 Λ (┐q) Λ (p v ┐r) Marco Gießmann Logik für Informatiker Aussagenlogik KNF – Implikationen entfernen 9/19 1. Implikationen entfernen a → b ≡ ┐a v b ( ┐p ( ┐p ┐( ┐p 25.04.2005 q ) → (p Λ Λ Λ Λ (r → q)) q) → ( p Λ ( ┐r v q ) ) q) v (p Λ ( ┐r v q ) ) Marco Gießmann Logik für Informatiker Aussagenlogik KNF - Negativ-Normal-Form 10/19 2. Negativ-Normal-Form ┐┐ a ≡ a ┐( ┐p 25.04.2005 Λ q) v (p ┐( a v b) ≡ ┐a ┐b ( ┐r v q ) ) Λ (┐ ┐p v ┐q ) v ( p Λ ( ┐r v q ) ) ( Λ ( ┐r v q ) ) p v ┐q ) v ( p Λ Marco Gießmann Logik für Informatiker Aussagenlogik Konjunktiv-Normal-Form 11/19 3. Distributivgesetz a v (b Λ c) ≡ (a v b) ( p v ┐q ) v ( p ( p v ┐q v p ) 25.04.2005 Λ Λ Λ (a v c) ( ┐r v q ) ) ( p v ┐q v ┐r v q ) Marco Gießmann Logik für Informatiker Aussagenlogik KNF - Resolution ( p v q v ┐r ) Λ 12/19 (p v q v r) (p v q) Λ (p) Λ ( p v ┐q ) Λ ( p v ┐q ) Λ Λ ( ┐p ) ( ┐p ) ( ┐p ) 0 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Überblick 13/19 ● Atom, Literal, Formel, Operator ● Belegung ● Äquivalenz ● Kojunktiv-Normal-Form ● Resolution ● Erfüllbarkeit zeigen → exponentielle Laufzeit 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Horn-Formeln, -Klauseln 14/19 Hornklausel K: K enthält max. ein positives Literal Hornformel F: F ist Konjunktion von Hornklauseln Beispiele: p, ┐p , p v ┐q, ┐p v q v ┐r Horn-Klauseln p v q, p v ┐q v r keine Horn-Klauseln 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Horn-Formeln 15/19 Implikationsschreibweise (a) (1→a) ( ┐a1 v ┐a2 v ... v ┐an) ( a1 Λ a2 ( ┐a1 v ┐a2 v ... v ┐an v b ) ( a1 Λ a2 25.04.2005 Λ Λ ... ... Λ Λ an → 0 ) an → b ) Marco Gießmann Logik für Informatiker Aussagenlogik Markierungsalgorithmus 16/19 Ausgansformel in KNF: ( ┐a v ┐b v e ) Λ Λ c Λ a Λ ( ┐c v b ) ( ┐c v ┐d v a) Λ ┐e Λ ( ┐a v d ) Λ ┐g Implikationsschreibweise: ((a Λ Λ b) → e ) (a→d) 25.04.2005 Λ ((c Λ Λ (1 →c) Λ ( 1 → a) d)→a) Λ (e→0) Λ Λ ( c → b) ( g → 0) Marco Gießmann Logik für Informatiker Aussagenlogik Markierungsalgorithmus 17/19 Beispiel: ((a 1 2 Λ 1 Λ b)→e) 2 (a→d) 25.04.2005 0 3 Λ ((c Λ 1 ( 1→ c ) 2 Λ 0 1 Λ ( 1→ a ) 3 1 d)→a) 1 Λ 1 Λ (c→b) 4 (e→0) 2 Λ (g→0) Marco Gießmann Logik für Informatiker Aussagenlogik Markierungsalgorithmus 18/19 1 function HORN (F) 2 mark all occurences of 1 in F 3 4 while there is a conjunct (P1Λ P2 Λ ... Λ Pk) → P' such that all Pi are marked but P' isn't do 5 mark P' 6 end while 7 if 0 is marked return 'unsatisfiable' 8 else return 'satisfiable' 9 end function 25.04.2005 Marco Gießmann Logik für Informatiker Aussagenlogik Überblick 19/19 Erfüllbarkeitstest Konjunktiv-Normal-Form: - alle Formeln prüfbar - exponentielle Laufzeit Horn-Formeln: - nicht alle Formeln prüfbar - lineare Laufzeit 25.04.2005 Marco Gießmann