Logikkapitel - Mathematics TU Graz

Werbung
C1. KNF und Resolutionskalkül
1. Nachträge zur Notation
Sei A ein Alphabet (z.B. A = {A, B, C, ...}. Die formale Sprache der Logik
über dem A ist eine kontextfreie Sprache und rekursiv definiert durch die
BNF-Grammatik1
F ::= A
| ¬F
|F ∧F
|F ∨F
|F →F
Negation
Konjunktion
Disjunktion
Implikation
|F ↔F
|⊤
|⊥
Äquivalenz
Tautologie, Verum
Kontradiktion, Falsum
Sei B = {W, F } mit den Verknüpfungen ∧, ∨, ¬, →, ↔ die Boolesche
Algebra der Logik. Die Menge Bn der n-Tupel von Booleschen Werten
heißt Menge der Belegungen.
Jede Aussageform P (A1 , . . . , An ) in den Variablen A1 , A2 , . . . , An induziert
eine Funktion f : Bn → B, die jeder n-fachen Belegung β ∈ Bn den
Wahrheitswert
f (β) = β̄(P ) = JP Kβ
zuordnet. Eine Belegung β erfüllt P , geschrieben
β |= P
wenn JP Kβ = W ist. Man sagt auch, β ist ein Modell für P . P heißt
Tautologie, geschrieben
|= P
1 Backus-Naur-Form
1
C1–2
DISKRETE MATHEMATIK
wenn β |= P gilt für alle Belegungen β oder mit anderen Worten, P ⇐⇒
⊤.
Einige wichtige Probleme der angewandten Logik sind der Nachweis von
Äquivalenz, Tautologie und Erfüllbarkeit von logischen Aussageformen:
(a) Gegeben Aussageformen P und Q, gilt P ⇐⇒ Q?
(b) Dieses kann zurückgeführt werden auf die Frage, ob
|= P ↔ Q
(c) Eine Aussageform Q ist eine Tautologie genau dann, wenn ¬Q unerfüllbar ist.
Es stellt sich also heraus, daß sich alle diese Probleme auf die Frage zurückführen
lassen, ob eine Aussageform erfüllbar ist. Dies läßt sich anhand von Wahrheitstafeln feststellen. Der Aufwand wächst allerdings exponentiell (≈ 2n )
mit der Anzahl n der Variablen.
Es ist kein Algorithmus bekannt, der die Erfüllbarkeit einer beliebigen
aussagenlogischen Formel in polynomieller Zeit feststellt.
Es gibt allerdings Algorithmen, die in vielen Fällen schneller zum Ziel
führen. Grundlage dafür ist die KNF.
2. Herleitung einer KNF
(Definition siehe Skriptum)
Notation:
Seien ℓi Literale, i ∈ I = {1, . . . , n}, dann definieren wir
^
ℓi := ℓ1 ∧ ℓ2 ∧ · · · ∧ ℓn
i∈I
_
ℓi := ℓ1 ∨ ℓ2 ∨ · · · ∨ ℓn
i∈I
weiters definieren wir
(2.1)
^
i∈∅
ℓi := ⊤
_
ℓi := ⊥
i∈∅
(Begründung in Worten: eine leere Konjunktion stellt keine Bedingungen
und ist immer erfüllt, eine leere Disjunktion ist unerfüllbar, weil keine
C1. KNF UND RESOLUTIONSKALKÜL
C1–3
erfüllbare Formel vorhanden ist). Eine pragmatische Begründung für diese
Konvention besteht darin, daß damit uneingeschränkt gilt
³^ ´ ³ ^ ´
^
ℓi
ℓi ∧
ℓi =
i∈I∪J
i∈I
´ ³i∈J
³_
_
_ ´
ℓi
ℓi =
ℓi ∨
i∈I
i∈J
i∈I∪J
Außerdem besitzt mit der Konvention (2.1) jede aussagenlogische Formel
eine KNF und eine DNF, auch Tautologie und Kontradiktion.
Die Herleitung einer n-KNF/DNF mit Hilfe der Wahrheitstafel ist im
Skriptum beschrieben.
Daneben kann eine KNF/DNF auch durch logische Umformungen nach
folgendem Rezept konstruiert werden:
1. Ersetze A → B duch ¬A ∨ B.
2. Verschiebe alle Negationen ins Innere der Klammern (de Morgan).
3. Wende die Distributivgesetze an bis eine KNF/DNF übrigbleibt.
(2.2) Beispiel. Gesucht ist eine KNF der Formel
P = (A ∧ B) ∨ (C → D ∧ ¬A).
Wir benützen die Gesetzestafel (C.5.7)
P ⇐⇒ (A ∧ B) ∨ (¬C ∨ (D ∧ ¬A))
⇐⇒ ((A ∧ B) ∨ ¬C) ∨ (D ∧ ¬A)
(Implikation)
(Assoziativität)
hiermit ist eine DNF erreicht
⇐⇒ ((A ∨ ¬C) ∧ (B ∨ ¬C)) ∨ (D ∧ ¬A)
(Distributivität)
⇐⇒ ((A ∨ ¬C) ∨ (D ∧ ¬A)) ∧ ((B ∨ ¬C) ∨ (D ∧ ¬A) (Distributivität)
⇐⇒ (A ∨ ¬C ∨ D) ∧ (A ∨ ¬C ∨ ¬A)
∧ (B ∨ ¬C ∨ D) ∧ (B ∨ ¬C ∨ ¬A)
(Distributivität)
⇐⇒ (A ∨ ¬C ∨ D) ∧ (B ∨ ¬C ∨ D) ∧ (B ∨ ¬C ∨ ¬A)
(TND)
C1–4
DISKRETE MATHEMATIK
TND (“tertium non datur”), das Gesetz vom ausgeschlossenen Dritten
bezieht sich auf die Tautologie A ∨ ¬C ∨ ¬A, die aus der KNF gestrichen
werden kann.
Eine KNF/DNF ist (im Gegensatz zur n-KNF/DNF) nicht eindeutig bestimmt, d.h., es kann meherere semantisch äquivalente, aber dennoch nichttrivial verschiedene KNF/DNFen geben.
3. Der Resolutionskalkül
Für das Folgende empfiehlt es sich, Klauseln synonym als Mengen zu interpretieren:
ℓ1 ∨ ℓ2 · · · ∨ ℓn ≃ {ℓ1 , ℓ2 , . . . , ℓn }
und ebenso eine KNF als Menge von Klauseln. Damit kann man von Elementen einer Klausel und Elementen einer KNF sprechen. Die leere Klausel
entspricht wegen (2.1) einer Kontradiktion; eine leere KNF entspricht hingegen einer Tautologie. Im folgenden werden wir nur reduzierte Klauseln
betrachten, also solche, in denen jede Variable höchstens einmal vorkommt.
(3.1) Definition. Seien K1 und K2 Klauseln und ℓ ein Literal, sodaß
ℓ ∈ K1 und ¬ℓ ∈ K2 . Dann heißt
R(K1 , K2 ) = (K1 \ {ℓ}) ∪ (K1 \ {¬ℓ})
Resolvente von K1 und K2 .
(3.2) Beispiel. Seien
K1 = A ∨ B ∨ ¬C ≃ {A, B, ¬C}
K2 = ¬C ∨ ¬D ≃ {¬B, C, ¬D}
dann ist ¬C ∈ K1 , C ∈ K2 und damit ist
{A, B} ∪ {¬D} = {A, B, ¬D} ≃ A ∨ B ∨ ¬D
eine Resolvente.
(3.3) Bemerkung. Es kann natürlich sein, daß es mehrere Resolventen
gibt, wenn mehrere Literale die Bedingung erfüllen.
Das folgende Lemma ist die Grundlage des Resolutionskalküls:
C1. KNF UND RESOLUTIONSKALKÜL
C1–5
(3.4) Lemma. Wenn eine Belegung β zwei Klauseln K1 und K2 erfüllt,
dann erfüllt sie auch jede Resolvente. Kurz:
(β |= K1 ∧ K2 ) =⇒ (β |= R(K1 , K2))
Beweis. Es sei ℓ ∈ K1 und ¬ℓ ∈ K2 und β ein Modell für K1 ∧ K2 . Wir
können also schreiben
K1 = P 1 ∨ ℓ
K2 = P 2 ∨ ℓ
und unterscheiden zwei Fälle:
Fall 1: β |= ℓ, dann β 6|= ¬ℓ und wegen β |= P2 ∨ ¬ℓ gilt β |= P2 , und daher
auch β |= P1 ∨ P2 .
Fall 2: β |= ¬ℓ wird analog gezeigt.
Da für jede Belegung β einer der beiden Fälle zutrifft, gilt in jedem Fall
β |= P1 ∨ P2 .
(3.5) Folgerung. Seien K1 und K2 Klauseln und R eine Resolvente, dann
ist K1 ∧ K2 ⇐⇒ K1 ∧ K2 ∧ R.
Es ändert sich also semantisch nichts, wenn man zu einer KNF nach und
nach Resolventen hinzufügt. Man kann zeigen, daß die Erfüllbarkeit einer
Formel mit dem folgenden Algorithmus entschieden werden kann.
(3.6) Algorithmus. Es sei eine Formel P in KNF gegeben. Füge solange
Resolventen hinzu, bis einer der folgenden Fälle eintritt:
1. Die leere Klausel entsteht =⇒ P ist unerfüllbar wegen (2.1).
2. Es können keine neuen Resolventen gefunden werden
erfüllbar.
=⇒
(3.7) Beispiel. Wir untersuchen, ob die Formel
P = (A ∨ B ∨ C) ∧ (¬A ∨ B ∨ C) ∧ (B ∨ ¬C) ∧ (¬B)
erfüllbar ist:
K1
K2
K3
K4
K5
K6
K7
A
C
B
1⇓2 3⇓5 4⇓6
A ∨ B ∨ C ¬A ∨ B ∨ C B ∨ ¬C ¬B B ∨ C B
⊥
P ist
C1–6
DISKRETE MATHEMATIK
nach drei Schritten entsteht die leere Klausel und daher ist die Formel
unerfüllbar.
(3.8) Beispiel. Wir untersuchen, ob die Formel
P = (A ∨ B) ∧ (¬A ∨ ¬C) ∧ (A ∨ C) ∧ (¬B ∧ ¬C) ∧ (B ∨ C)
erfüllbar ist:
K1
K2
K3
K4
K5
A ∨ B ¬A ∨ ¬C A ∨ C ¬B ∨ ¬C B ∨ C
K6
K7
K8
K9 K10
K11
B
C
A
C
B
C
1⇓4
2⇓5
6 ⇓ 7 5 ⇓ 8 9 ⇓ 4 3 ⇓ 10
A ∨ ¬C ¬A ∨ B ¬C ∨ B B
¬C
A
P ist also äquivalent zu A ∧ B ∧ ¬C. Beachte, daß die Resolvente der 4.
und 5. Klausel (es gibt dafür zwei Möglichkeiten) auf eine Tautologie führt
und deshalb hinfällig ist.
(3.9) Beispiel. Wir beweisen den Modus Ponens mit dem Resolutionskalkül:
|= ((P → Q) ∧ P ) → Q =: M
indem wir zeigen, daß ¬M nicht erfüllbar ist. Zunächst bilden wir die DNF
von M :
M = ((P → Q) ∧ P )
⇐⇒ ¬((P → Q) ∧ P ) ∨ Q
⇐⇒ ¬((¬P ∨ Q) ∧ P ) ∨ Q
⇐⇒ ¬(¬P ∨ Q) ∨ ¬P ∨ Q
⇐⇒ (P ∧ ¬Q) ∨ ¬P ∨ Q
(Implikation)
(Implikation)
(Distributivität)
(Negation)
Daher ist
¬M ⇐⇒ (¬P ∨ Q) ∧ P ∧ ¬Q
und wir erhalten
K1
K2 K3
¬P ∨ Q P
K4
K5
1⇓2 3⇓4
P
Q
¬Q Q
⊥
C1. KNF UND RESOLUTIONSKALKÜL
C1–7
und damit ist ¬M nicht erfüllbar, daher M eine Tautologie.
4. Der DPLL-Algorithmus
Der DPLL-Algorithmus2 auch als Multiresolution und SAT-Solver bekannt,
systematisiert den Resolutionsalgorithmus.
(4.1) Definition. Eine Einerklausel ist eine Klausel, die aus nur einem
Literal besteht. Eine Einerresolution ist ein Resolutionsschritt, in dem
eine der beteiligten Klauseln eine Einerklausel ist:
¾
K1 = ℓ1 ∨ ℓ2 ∨ · · · ∨ ℓn
R(K1 , K2 ) = ℓ1 ∨ ℓ2 ∨ · · · ∨ ℓn−1
K2 =
¬ℓn
Eine Einerresolution verkürzt also die Klauseln. Wenn also in einem Ausdruck viele Einerklauseln vorkommen, besteht die Hoffnung, immer kürzer
werdende Resolventen anzuhängen und rasch zum Ziel zu kommen. Darauf
beruht der folgende Algorithmus.
(4.2) Algorithmus. Gegeben eine logische Aussageform P in KNF.
1. Führe alle möglichen Einerresolutionen durch. Sei P ′ der so erhaltene
Ausdruck.
2. Nimm eine beliebige Variable A, die in keiner Einerklausel von P ′
vorkommt und wende DPLL auf die beiden Formeln P1 = P ′ ∧ A
und P2 P ′ ∧ ¬A an. Wenn weder P1 noch P2 erfüllbar sind, dann ist
auch P ′ und damit P unerfüllbar und umgekehrt, denn aufgrund des
Distributivgesetzes gilt die Äquivalenz P ′ ⇐⇒ (P ′ ∧ A) ∨ (P ′ ∧ ¬A).
(4.3) Beispiel. Wir untersuchen noch einmal Beispiel (3.8):
K1
K2
K3
K4
K5
A ∨ B ¬A ∨ ¬C A ∨ C ¬B ∨ ¬C B ∨ C
da keine Einerklauseln vorkommen, machen
nach der Variablen A:
K6 K7
K8
K9
1⇓6 3⇓6 4⇓7
¬A B
C
¬C
2⇓6 3⇓7 5⇓7
A ¬C
A
B
2 benannt
nach Davis-Putnam-Loveland-Logemann
wir eine Fallunterscheidung
K10
8⇓9
⊥
4⇓9
¬C
C1–8
K1
DISKRETE MATHEMATIK
K2
K3
K4
K5
K6
K7
K8
K9 K10
1⇓6 3⇓6 4⇓7 8⇓9
A ∨ B ¬A ∨ ¬C A ∨ C ¬B ∨ ¬C B ∨ C ¬A B
C
¬C
⊥
2⇓6 3⇓7 5⇓7 4⇓9
A ¬C
A
B
¬C
Im Fall “A” wurde nach 5 Schritten eine Kontradiktion abgeleitet, während
im Fall “¬A” nach 4 Schritten die Werte feststehen und keine neuen Resolventen mehr entstehen. Der Ausdruck ist somit äquivalent zu A ∧ B ∧ ¬C
und wird von einer einzigen Belegung erfüllt.
Herunterladen