Was ist Logik? - Theoretische Informatik

Werbung
Was ist Logik?
Logik (nach dem Altgriechischen „Logos“: „Vernunft“) ist
die Lehre des vernünftigen Schlussfolgerns.
Die für die Logik zentrale Frage:
Wie kann man Aussagen miteinander verknüpfen, und auf welche Weise kann
man formal Schlüsse ziehen und Beweise führen?
Logik
1 / 79
Logik in der Informatik
Logik wird in der Informatik u.a. genutzt
für die Beschreibung, Analyse, Optimierung und Verifikation digitaler
Schaltungen,
für den Nachweis, dass ein Programm gewisse wünschenswerte
Eigenschaften hat,
für die Wissensrepräsentation, z.B. im Bereich der künstlichen Intelligenz,
als Grundlage für Datenbank-Anfragesprachen,
für die automatische Erzeugung von Beweisen in so genannten
„Theorembeweisern“.
Logik
2 / 79
Aussagenlogik
Aussagen im Sinne der Aussagenlogik sind sprachliche Gebilde,
die entweder wahr oder falsch sind.
Aussagen können mit Junktoren wie „nicht“, „und“, „oder“,
„wenn . . . dann“ etc. zu komplexeren Aussagen verknüpft werden.
Die Aussagenlogik beschäftigt sich
mit allgemeinen Prinzipien des korrekten Argumentierens und
Schließens mit Aussagen und Kombinationen von Aussagen.
Aussagenlogik
3 / 79
Geburtstagsfeier
(1/3)
Fred möchte mit möglichst vielen seiner Freunde
Anne, Bernd, Christine, Dirk und Eva
seinen Geburtstag feiern.
Er weiß, dass Eva nur dann kommt, wenn Christine und Dirk kommen.
Andererseits kommt Christine nur dann, wenn auch Anne kommt;
und Dirk wird auf keinen Fall kommen,
wenn Bernd und Eva beide zur Feier kommen.
Anne wiederum wird nur dann kommen,
wenn auch Bernd oder Christine dabei sind.
Wenn allerdings Bernd und Anne beide zur Party kommen,
dann wird Eva auf keinen Fall dabei sein.
Wie viele Freunde, und welche, werden im besten Fall zur Party kommen?
Aussagenlogik
4 / 79
Geburtstagsfeier
(2/3)
Das Wissen, das im obigen Text wiedergegeben ist, lässt sich in „atomare
Aussagen“ zerlegen, die mit Junktoren verknüpft werden können.
Um welche “atomaren Aussagen“ dreht sich der Text?
A
B
C
D
E
Aussagenlogik
=
b
=
b
=
b
=
b
=
b
Anne kommt zur Feier
Bernd kommt zur Feier
Christine kommt zur Feier
Dirk kommt zur Feier
Eva kommt zur Feier.
5 / 79
Geburtagsfeier
(3/3)
Das im Text zusammengefasste „Wissen“ lässt sich wie folgt repräsentieren:
1. Eva kommt nur dann, wenn Christine und Dirk kommen.
I
(Wenn E , dann (C und D))
2. Christine kommt nur dann, wenn auch Anne kommt,
I
und (wenn C , dann A)
3. Dirk wird auf keinen Fall kommen, wenn Bernd und Eva beide kommen,
I
und (wenn (B und E ), dann nicht D))
4. Anne kommt nur dann, wenn auch Bernd oder Christine dabei sind,
I
und (wenn A, dann (B oder C ))
5. wenn Bernd und Anne beide kommen, dann wird Eva auf keinen Fall dabei
sein.
I
und (wenn (B und A), dann nicht E )
Die Aussagenlogik liefert einen Formalismus, mit dessen Hilfe man
solches „Wissen“ modellieren und Schlüsse daraus ziehen kann.
Aussagenlogik
6 / 79
Syntax und Semantik
Aussagenlogik
7 / 79
Syntax und Semantik: Formeln und ihre Bedeutung
Die Syntax legt fest, welche Zeichenketten Formeln der Aussagenlogik sind.
Die Semantik legt fest, welche „Bedeutung“ die einzelnen Formeln haben.
Für Programmiersprachen ist die Situation ähnlich:
Die Syntax legt fest, welche Zeichenketten korrekte Programme sind,
während die Semantik bestimmt, was das Programm tut.
Aussagenlogik
8 / 79
Die Syntax der Aussagenlogik
Aussagenlogik
9 / 79
Griechische Buchstaben
In der Literatur werden Formeln einer Logik traditionell
meistens mit griechischen Buchstaben bezeichnet.
Buchstabe
Aussprache
φ
phi
Buchstabe
Aussprache
κ
kappa
σ
sigma
Buchstabe
Aussprache
δ
delta
ω
omega
Buchstabe
Aussprache
Σ
Sigma
Die Syntax der Aussagenlogik
ψ
psi
χ
chi
Π
Pi
θ bzw. ϑ
theta
ρ
rho
ξ
xi
ε
epsilon
λ
lambda
ζ
zeta
ι
iota
µ
mü
α
alpha
π
pi
ν
nü
β
beta
∆
Delta
τ
tau
γ
gamma
Γ
Gamma
Φ
Phi
10 / 79
Aussagenvariablen
(a) Eine Aussagenvariable (kurz: Variable) hat die Form Vi für i ∈ N.
Die Menge aller Aussagenvariablen bezeichnen wir mit AVAR. D.h.:
AVAR = {Vi : i ∈ N} = {V0 , V1 , V2 , V3 , . . .}.
(b) Das Alphabet AAL der Aussagenlogik ist
AAL := AVAR ∪ {0, 1, ¬, ∧, ∨, →, ↔, (, )}.
Und was sind aussagenlogische Formeln?
Die Syntax der Aussagenlogik
Aussagenvariablen
11 / 79
Aussagenlogische Formeln
Die Menge AL der aussagenlogischen Formeln (kurz: Formeln) ist die
folgendermaßen rekursiv definierte Teilmenge von A∗AL :
Basisregeln:
(B0) 0 ∈ AL.
(B1) 1 ∈ AL.
(BV) Für jede Variable X ∈ AVAR gilt: X ∈ AL.
Rekursive Regeln:
(R1) Ist φ ∈ AL, so ist auch ¬φ ∈ AL.
(R2) Ist φ ∈ AL und ψ ∈ AL, so ist auch
I
I
I
I
(φ ∧ ψ) ∈ AL
(φ ∨ ψ) ∈ AL
(φ → ψ) ∈ AL
(φ ↔ ψ) ∈ AL.
Eine Formel φ gehört genau dann zu AL, wenn man φ durch
(möglicherweise mehrfache) Anwendung der obigen Regeln erzeugen kann.
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
12 / 79
Beispiele
¬V0 ∨ (V5 → V1 ) ist eine korrekt gebildete Formel.
V1 ∨ V2 ∨ V3 ist keine korrekt gebildete Formel, da die Klammern fehlen,
I
In diesem Fall bleibt die Bedeutung aber klar (warum?).
¬ (V0 ∧ 0) ↔ ¬V3 ist hingegen wieder eine korrekte Formel,
(¬V1 ) ist keine korrekte Formel, da sie zu viele Klammern besitzt.
I
Aber auch in diesem Fall bleibt die Bedeutung klar.
Aber was soll V0 ∧ V1 ∨ V2 bedeuten?
I
I
Möglicherweise (V0 ∧ V1 ) ∨ V2
oder V0 ∧ (V1 ∨ V2 )?
Übrigens, von welcher Bedeutung reden wir überhaupt?
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
13 / 79
Bezeichnungen
(a) 0 (stets falsch), 1 (stets wahr) und die Variablen (d.h. die Elemente aus
AVAR) bezeichnen wir als atomare Formeln bzw. Atome.
(b) Die Symbole ¬, ∧, ∨, →, ↔ heißen Junktoren.
(c) Sind φ und ψ Formeln (d.h. φ ∈ AL und ψ ∈ AL), so heißt:
I
I
I
I
I
¬φ
(φ ∧ ψ)
(φ ∨ ψ)
(φ → ψ)
(φ ↔ ψ)
Negation (bzw. Verneinung) von φ,
Konjunktion (bzw. Verundung) von φ und ψ,
Disjunktion (bzw. Veroderung) von φ und ψ,
Implikation und
Biimplikation (oder Äquivalenz).
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
14 / 79
Das Leben ist schon so hart genug!
Statt V0 , V1 , V2 , . . . bezeichnen wir Variablen oft auch mit
A, B, C , . . . , X , Y , Z , . . . oder mit Variablen wie X 0 , Y1 , . . .
n
V
φi bzw. φ1 ∧ · · · ∧ φn an Stelle von
Wir schreiben
i=1
(φ1 ∧ φ2 ) ∧ φ3 ∧ · · · ∧ φn
I
Analog für „∨“ an Stelle von „∧“.
Die äußeren Klammern einer Formel lassen wir manchmal weg und schreiben
z.B. (A ∧ B) → C an Stelle des (formal korrekten) (A ∧ B) → C .
Wenn Sie eine Formel „vereinfachen“, stellen Sie sicher, dass
die Bedeutung eindeutig ist.
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
15 / 79
Beispiel für die Formulierung von Formeln
(1/2)
Wir möchten die Zeugenaussage
„Das Fluchtauto war rot oder grün und
hatte weder vorne noch hinten ein Nummernschild.“
durch eine aussagenlogische Formel repräsentieren. Dazu verwenden wir die
folgenden atomaren Aussagen:
XR : das Fluchtauto war rot,
XG : das Fluchtauto war grün,
XV : das Fluchtauto hatte vorne ein Nummernschild,
XH : das Fluchtauto hatte hinten ein Nummernschild.
Wir repräsentieren die Zeugenaussage durch
(XR ∨ XG ) ∧ (¬XV ∧ ¬XH ) .
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
16 / 79
Beispiel für die Formulierung von Formeln
(2/2)
Wir greifen das Beispiel der Geburtstagsfeier nochmal auf.
Atomare Aussagen:
A: Anne kommt zur Feier,
B: Bernd kommt zur Feier,
C : Christine kommt zur Feier,
D: Dirk kommt zur Feier,
E : Eva kommt zur Feier.
Die vollständige Wissensrepräsentation wird durch folgende Formel gegeben:
φ := E → (C ∧ D) ∧ (C → A) ∧ (B ∧ E ) → ¬D ∧
A → (B ∨ C ) ∧ (B ∧ A) → ¬E .
Wie viele Personen kommen bestenfalls zur Party?
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
17 / 79
Die Semantik der Aussagenlogik
Die Syntax der Aussagenlogik
Aussagenlogische Formeln
18 / 79
Die Variablen einer Formel
Die Variablenmenge
Var(φ)
einer aussagenlogischen Formel φ ist die Menge aller Variablen X ∈ AVAR,
die in φ vorkommen.
Var
¬V0 ∨ (V5 → V1 )
= {V0 , V1 , V5 },
= {V0 , V3 },
Var ¬ (V0 ∧ 0) ↔ ¬V3
Var (0 ∨ 1) = ∅.
Die Semantik der Aussagenlogik
19 / 79
Belegungen
(a) Eine partielle Funktion
B : AVAR → {0, 1}
von AVAR nach {0, 1} heißt eine
Belegung,
bzw. Wahrheitsbelegung.
I
1 steht für den Wert „wahr“ und 0 für den Wert „falsch“.
(b) Eine Belegung B ist eine Belegung für die Formel φ (bzw. passend zu φ),
wenn B auf allen Variablen von φ definiert ist.
Eine Beispiel: Die Funktion B
mit B(V0 ) = 1, B(V1 ) = 1 und B(V3 ) = 0
besitzt den Definitionsbereich {V0 , V1 , V3 }. B ist eine Belegung für
V0 ∧ (V1 ∨ V3 ) oder (V0 ∧ V3 ), nicht aber für (V0 ∧ V2 ).
Die Semantik der Aussagenlogik
Belegungen
20 / 79
Die Semantik der Aussagenlogik
(1/2)
Wir definieren eine Funktion JφKB ,
die jeder Formel φ ∈ AL
und jeder zu φ passenden Belegung B
einen Wahrheitswert (kurz: Wert) JφKB ∈ {0, 1} zuordnet.
Wir benutzen wieder, wie im Fall der Definition der Syntax,
eine rekursive Definition über den Aufbau aussagenlogischer Formeln.
1. Zuerst definieren wir Wahrheitswerte für atomare Formeln
2. und dann für Negationen, Konjunktionen, Disjunktionen, Implikationen und
Äquivalenzen.
Die Semantik der Aussagenlogik
Belegungen
21 / 79
Die Semantik der Aussagenlogik
(2/2)
Rekursionsanfang:
J0KB := 0.
J1KB := 1.
F.a. X ∈ AVAR gilt: JX KB := B(X ).
Rekursionsschritt:
(
1, falls JφKB = 0
Ist φ ∈ AL, so ist J¬φK :=
0, falls JφKB = 1.
Ist φ ∈ AL und ψ ∈ AL, so ist
B
B
B
I
I
I
I
J(φ ∧ ψ)KB
:=
B
:=
J(φ ∨ ψ)K
1,
0,
falls JφK = 1 und JψK = 1
sonst
0,
1,
falls JφKB = 0 und JψKB = 0
sonst
0,
1,
falls JφKB = 1 und JψKB = 0
sonst
1,
0,
falls JφKB = JψKB
sonst.
J(φ → ψ)KB :=
J(φ ↔ ψ)KB :=
Die Semantik der Aussagenlogik
Belegungen
22 / 79
Beispiel
Betrachte die Formel
φ :=
¬V0 ∨ (V5 → V1 ) .
Dann ist beispielsweise die Funktion
B : {V0 , V1 , V5 } → {0, 1}
mit
B(V0 ) := 1, B(V1 ) := 1 und B(V5 ) := 0
eine Belegung für φ.
Bestimme den Wahrheitswert JφKB von φ unter Belegung B.
Die Semantik der Aussagenlogik
Belegungen
23 / 79
Wie bestimmt man Wahrheitswerte?
Zum Beispiel mit Wahrheitstafeln!
Die Semantik der Aussagenlogik
Wahrheitstafel
24 / 79
Wahrheitstafel
(1/2)
Für jede Formel ψ kann man
die Wahrheitswerte von ψ unter allen möglichen Belegungen
in einer Wahrheitstafel (manchmal auch Funktionstafel genannt) darstellen.
(a) Die Wahrheitstafel hat für jede Belegung B : Var(ψ) → {0, 1} eine Zeile.
(b) Die Zeile für B enthält mindestens
1. f.a. X ∈ Var(ψ) die Werte B(X ) und
2. den Wert JψKB .
Um die Wahrheitstafel für φ auszufüllen, ist es ratsam,
auch Spalten für (alle oder einige) „Teilformeln“ von φ einzufügen.
Die Semantik der Aussagenlogik
Wahrheitstafel
25 / 79
Wahrheitstafel
(2/2)
(a) Wahrheitstafel für φ := ¬V0 ∨ (V5 → V1 ) :
V0
0
0
0
0
1
1
1
1
V1
0
0
1
1
0
0
1
1
(b) Wahrheitstafel für φ := X ∧
X
0
1
Die Semantik der Aussagenlogik
1
1
1
0
0
0
(V5 → V1 )
1
0
1
1
1
0
1
1
(1 → 0) → 0 :
V5
0
1
0
1
0
1
0
1
¬V0
1
1
1
1
0
0
0
0
(1 → 0)
0
0
Wahrheitstafel
((1 → 0) → 0)
1
1
φ
1
1
1
1
1
0
1
1
φ
0
1
26 / 79
Die intuitive Bedeutung der Semantik
(1/3)
Atomare Formeln:
I
I
1 und 0 bedeuten einfach „wahr“ und „falsch“.
Die Variablen X ∈ AVAR stehen für irgendwelche Aussagen.
Uns interessiert hier nur, ob diese Aussagen „wahr“ oder „falsch“ sind
— und dies wird durch eine Belegung B angegeben.
Negation: ¬φ bedeutet „nicht φ“.
Zugehörige Wahrheitstafel:
JφKB
0
1
Die Semantik der Aussagenlogik
J¬φKB
1
0
Wahrheitstafel
27 / 79
Die intuitive Bedeutung der Semantik
(2/3)
Konjunktion: (φ ∧ ψ) bedeutet „φ und ψ“.
Zugehörige Wahrheitstafel:
JφKB JψKB J(φ ∧ ψ)KB
0
0
0
0
1
0
0
1
0
1
1
1
Disjunktion: (φ ∨ ψ) bedeutet „φ oder ψ“.
Zugehörige Wahrheitstafel:
JφKB JψKB J(φ ∨ ψ)KB
0
0
0
0
1
1
1
0
1
1
1
1
Die Semantik der Aussagenlogik
Wahrheitstafel
28 / 79
Die intuitive Bedeutung der Semantik
(3/3)
Implikation: (φ → ψ) bedeutet „φ impliziert ψ“,
d.h. „wenn φ, dann auch ψ“.
Zugehörige Wahrheitstafel:
JφKB JψKB J(φ → ψ)KB
0
0
1
1
0
1
1
0
0
1
1
1
Äquivalenzen: (φ ↔ ψ) bedeutet „φ gilt genau dann, wenn ψ gilt“.
Zugehörige Wahrheitstafel:
JφKB JψKB J(φ ↔ ψ)KB
0
0
1
0
1
0
1
0
0
1
1
1
Die Semantik der Aussagenlogik
Wahrheitstafel
29 / 79
„Oder“ versus „Entweder oder“
Der Sprachgebrauch für „oder“ ist unscharf und meint manchmal wie oben ein
„inklusives oder“, bzw das „exklusive oder“.
(a) Das „inklusive oder“: Die Formel φ ∨ ψ ist nur dann falsch unter einer Belegung B , wenn φ wie auch ψ unter B falsch sind, d.h. wenn JφKB = JψKB = 0.
(b) Das „exklusive oder“ (oder „XOR“): Man verwendet den neuen
Junktor ⊕ und(definiert seine Bedeutung durch
0, falls JφKB = JψKB
Jφ ⊕ ψKB :=
1, sonst.
Unter welchen Belegungen B ist
JV1 ⊕ (V2 ⊕ V3 )KB
wahr? Sind Klammern notwendig?
Die Semantik der Aussagenlogik
Wahrheitstafel
30 / 79
Zurück zum „Geburtstagsproblem“
Sei φ die Formel aus dem Geburtagsproblem. Die Frage
„Wie viele (und welche) Freunde werden bestenfalls zur Party kommen?“
können wir lösen, in dem wir
1. die Wahrheitstafel für φ ermitteln,
2. alle Zeilen heraussuchen,
in denen in der mit „φ“ beschrifteten Spalte der Wert 1 steht und
3. aus diesen Zeilen all jene heraussuchen, bei denen in den mit A, B, C , D, E
beschrifteten Spalten möglichst viele Einsen stehen.
Jede dieser Zeilen repräsentiert dann eine größtmögliche Konstellation von
gleichzeitig erscheinenden Freunden.
Die Semantik der Aussagenlogik
Das Geburtstagsproblem
31 / 79
A
B
C
D
E
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
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
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Die Semantik der Aussagenlogik
E → (C ∧ D)
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
C→A
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
(B ∧ E) → ¬D
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
Das Geburtstagsproblem
A → (B ∨ C)
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
(B ∧ A) → ¬E
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
ϕ
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
32 / 79
Das Geburtstagsproblem: Die Lösung
Es gibt keine Zeile mit genau 5 Einsen, aber genau zwei Zeilen
mit insgesamt 4 Einsen in den mit A bis E beschrifteten Spalten:
Es handelt sich um die beiden Belegungen B1 und B2 mit
B1 (A) = B1 (C ) = B1 (D) = B1 (E ) = 1 und B1 (B) = 0
und
B2 (A) = B2 (B) = B2 (C ) = B2 (D) = 1 und B2 (E ) = 0.
Bestenfalls werden 4 der 5 Freunde kommen, und dafür gibt es zwei
Möglichkeiten, nämlich
(1) dass alle außer Bernd kommen, und
(2) dass alle außer Eva kommen.
Die Semantik der Aussagenlogik
Das Geburtstagsproblem
33 / 79
Widersprüche und Tautologien
Die Semantik der Aussagenlogik
Erfüllbarkeit und Tautologien
34 / 79
Erfüllbare, widersprüchliche und allgemeingültige Formeln
Sei φ eine aussagenlogische Formel.
(a) φ heißt erfüllbar, wenn es mindestens eine erfüllende Belegung B für φ gibt.
I
Die Belegung B passt zu φ und es gilt JφKB = 1.
(b) φ heißt unerfüllbar (oder widersprüchlich), wenn es keine erfüllende
Belegung für φ gibt.
(c) φ heißt allgemeingültig (oder eine Tautologie), wenn jede zu φ passende
Belegung φ erfüllt,
I
d.h. wenn JφKB = 1 für jede zu φ passende Belegung B gilt.
Die Semantik der Aussagenlogik
Erfüllbarkeit und Tautologien
35 / 79
Beispiele
(a) Die Formel
(X ∨ Y ) ∧ (¬X ∨ Y )
ist erfüllbar,
I
I
denn die Belegung B mit
B(X ) = 0 und B(Y ) = 1 erfüllt die Formel,
aber nicht allgemeingültig, denn die Belegung B0 mit
B0 (X ) = 0 und B0 (Y ) = 0 erfüllt die Formel nicht.
(b) Die Formel
(X ∧ ¬X )
ist unerfüllbar (oder widersprüchlich), da für jede zur Formel passenden
Belegung B entweder B(X ) = 1 oder B(X ) = 0 gilt.
I
I
Ist B(X ) = 1, so gilt: J(X ∧ ¬X )KB = 1 ∧ 0 = 0,
Ist B(X ) = 0, so gilt: J(X ∧ ¬X )KB = 0 ∧ 1 = 0.
(c) Die Formel
(X ∨ ¬X )
ist allgemeingültig, da für jede zur Formel passenden Belegung B
entweder B(X ) = 1 oder B(X ) = 0 gilt.
Die Semantik der Aussagenlogik
Erfüllbarkeit und Tautologien
36 / 79
Und nochmals Wahrheitstafeln
Für jede aussagenlogische Formel φ gilt:
(a)
φ ist erfüllbar
⇐⇒
(b)
φ ist unerfüllbar
⇐⇒
(c)
φ ist allgemeingültig
⇐⇒
(d)
φ ist allgemeingültig
⇐⇒
Die Semantik der Aussagenlogik
in der Wahrheitstafel für φ steht in der mit
„φ“ beschrifteten Spalte mindestens eine 1.
in der Wahrheitstafel für φ stehen in der mit
„φ“ beschrifteten Spalte nur Nullen.
in der Wahrheitstafel für φ stehen in der mit
„φ“ beschrifteten Spalte nur Einsen.
¬φ ist unerfüllbar.
Erfüllbarkeit und Tautologien
37 / 79
Semantische Folgerung und Äquivalenz
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
38 / 79
(Semantische) Folgerung
φ und ψ seien zwei aussagenlogische Formeln.
Wir sagen ψ folgt aus φ bzw. φ impliziert ψ und schreiben
φ |= ψ,
falls
Jφ → ψKB = 1
für jede zu φ und ψ passende Belegung B gilt.
Oder äquivalent dazu: Für jede Belegung B mit JφKB = 1 gilt stets
JψKB = 1, bzw.
φ → ψ ist allgemeingültig.
Oder äquivalent dazu: In jeder Zeile der Wahrheitstafel, in der eine 1 in der
Spalte von φ steht, muss auch eine 1 in der Spalte von ψ stehen.
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
39 / 79
Ein Beispiel
Wir betrachten
φ := (X ∨ Y ) ∧ (¬X ∨ Y ) und ψ := Y ∨ (¬X ∧ ¬Y ) .
Wir stellen die Wahrheitstafel für φ und ψ auf:
X Y (X ∨ Y ) (¬X ∨ Y ) φ
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
In jeder Zeile, in der eine 1 in der Spalte von „φ“ steht,
steht auch in der Spalte von „ψ“ eine 1.
I
ψ
1
1
0
1
Somit gilt φ |= ψ.
Aber in Zeile 1, also für die Belegung B mit B(X ) = 0 und B(Y ) = 0,
steht in der Spalte von “ψ“ eine 1 und in der Spalte von “φ“ eine 0.
I
I
Es gilt also JψKB = 1 und JφKB = 0.
Daher gilt ψ 6|= φ.
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
40 / 79
Wie passt das alles zusammen?
Seien φ und ψ beliebige aussagenlogische Formeln. Dann gilt:
(a) 1 |= φ ⇐⇒ φ ist allgemeingültig,
(b) φ |= 0 ⇐⇒ φ ist unerfüllbar,
(c) φ |= ψ ⇐⇒ (φ → ψ) ist allgemeingültig und
(d) φ |= ψ ⇐⇒ (φ ∧ ¬ψ) ist unerfüllbar.
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
41 / 79
Logische Äquivalenz
Zwei aussagenlogische Formeln φ und ψ heißen äquivalent, kurz:
φ ≡ ψ,
wenn für alle zu φ und ψ passenden Belegungen B gilt:
JφKB = JψKB .
φ und ψ sind genau dann äquivalent, wenn in ihrer Wahrheitstafel
die Spalten von φ und ψ übereinstimmen,
denn genau dann gilt JφKB = JψKB für alle zu φ und ψ passenden Belegungen B.
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
42 / 79
Ein Beispiel
Sind
φ := X ∧ (X ∨ Y ) und ψ := X
äquivalent?
Wir stellen die Wahrheitstafel auf:
X Y (X ∨ Y )
0
0
0
0
1
1
1
0
1
1
1
1
φ
0
0
1
1
ψ
0
0
1
1
Die Spalte von „φ“ stimmt überein mit der Spalte von „ψ“: Es folgt
φ ≡ ψ.
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
43 / 79
Wie passt das alles zusammen?
Seien φ und ψ aussagenlogische Formeln. Dann gilt:
(a) φ ≡ ψ ⇐⇒ (φ ↔ ψ) ist allgemeingültig ⇐⇒ φ |= ψ und ψ |= φ.
(b) φ ist allgemeingültig ⇐⇒ φ ≡ 1.
(c) φ ist erfüllbar ⇐⇒ φ 6≡ 0, d.h. „φ ≡ 0“ gilt nicht.
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
44 / 79
Fundamentale Äquivalenzen
(1/2)
Seien φ, ψ und χ aussagenlogische Formeln. Dann gilt:
(a) Idempotenz:
I
I
(φ ∧ φ) ≡ φ
(φ ∨ φ) ≡ φ
(b) Kommutativität:
I
I
(φ ∧ ψ) ≡ (ψ ∧ φ)
(φ ∨ ψ) ≡ (ψ ∨ φ)
(c) Assoziativität:
I
I
((φ ∧ ψ) ∧ χ) ≡ (φ ∧ (ψ ∧ χ))
((φ ∨ ψ) ∨ χ) ≡ (φ ∨ (ψ ∨ χ))
(d) Absorption:
I
I
(φ ∧ (φ ∨ ψ)) ≡ φ
(φ ∨ (φ ∧ ψ)) ≡ φ
(e) Distributivität:
I
I
(φ ∧ (ψ ∨ χ)) ≡ ((φ ∧ ψ) ∨ (φ ∧ χ))
(φ ∨ (ψ ∧ χ)) ≡ ((φ ∨ ψ) ∧ (φ ∨ χ))
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
45 / 79
Fundamentale Äquivalenzen
(2/2)
(f) Doppelte Negation:
I
¬¬φ ≡ φ
(g) De Morgansche Regeln:
I
I
¬(φ ∧ ψ) ≡ (¬φ ∨ ¬ψ)
¬(φ ∨ ψ) ≡ (¬φ ∧ ¬ψ)
(h) Tertium non Datur:
I
I
(φ ∧ ¬φ) ≡ 0
(φ ∨ ¬φ) ≡ 1
(i) True/False 1
I
I
I
I
(φ ∧ 1) ≡ φ
(φ ∧ 0) ≡ 0
(φ ∨ 1) ≡ 1
(φ ∨ 0) ≡ φ
(j) True/False 2
I
I
1 ≡ ¬0
0 ≡ ¬1
(k) Elimination der Implikation:
I
(φ → ψ) ≡ (¬φ ∨ ψ)
(l) Elimination der Äquivalenz:
I
(φ ↔ ψ) ≡ ((φ → ψ) ∧ (ψ → φ))
Die Semantik der Aussagenlogik
Semantische Folgerung und Äquivalenz
46 / 79
Logisches Schließen
Wir können die obigen Folgerungen und Äquivalenzen
auch als Schlußregeln auffassen.
Durch schrittweises Anwenden der Äquivalenzen kann man eine gegebene
aussagenlogische Formel in eine zu ihr äquivalente Formel umformen.
Durch schrittweises Anwenden der Folgerungen erhalten wir eine
implizierte Formel.
Beispiel: Sind φ und ψ aussagenlogische Formeln, so gilt
(φ ↔ ψ)
Die Semantik der Aussagenlogik
≡
(φ → ψ) ∧ (ψ → φ)
≡
(¬φ ∨ ψ) ∧ (¬ψ ∨ φ)
Semantische Folgerung und Äquivalenz
47 / 79
Hoppela
Etwas zu den vielen Äquivalenzen Ähnliches haben wir doch schon im Abschnitt
„Mengenalgebra“ gesehen!
Eine boolesche Algebra (B, ∧, ∨, ¬) besteht aus einer Trägermenge B und den
Funktionen
∧, ∨ : B × B → B, bzw. der Funktion ¬ : B → B.
Es ist 0, 1 ∈ B und die folgenden Gleichheiten gelten für alle a, b, c ∈ B:
Kommutativität: a ∧ b = b ∧ a
a∨b =b∨a
Distributivität:
a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)
a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)
True/False 1:
a∧1=a
a∨0=a
True/False 2:
¬0 = 1
¬1 = 0.
Die Semantik der Aussagenlogik
Boolesche Algebra
48 / 79
Boolesche Algebra
Wir kennen bereits zwei Beispiele boolescher Algebren, nämlich
1. Die Mengenalgebra (P(U), ∩, ∪, Komplement) für jede Menge U.
I
I
Die Mengenalgebra besteht aus allen Teilmengen von U und
besitzt die Operation „Durchschnitt“, „Vereinigung“ sowie die
„Komplementbildung“.
2. Die Aussagenlogik ({0, 1}, ∧, ∨, ¬).
Man trifft sich im Leben immer zweimal.
Die Semantik der Aussagenlogik
Boolesche Algebra
49 / 79
Wir bauen eine disjunktive Normalform
aus einer Wahrheitstafel
Normalformen
DNFs
50 / 79
Literale, Konjunktionsterme und disjunktive Normalformen
(a) Ein Literal ` ist eine Formel der Form ` = X oder ` = ¬X mit X ∈ AVAR,
d.h. X ist eine Aussagenvariable.
I
I
Das Literal X wird auch positives Literal genannt,
das Literal ¬X heißt negatives Literal.
(b) Eine Konjunktion von (positiven oder negativen) Literalen heißt ein
Konjunktionsterm (bzw. eine konjunktive Klausel).
(c) Eine Disjunktion
φ=
mi
m
^
_
i=1
von Konjunktionstermen
Vmi
j=1 `i,j
!
`i,j
j=1
ist in
disjunktiver Normalform (DNF),
wenn m, m1 , . . . , mn ∈ N>0 und `i,j für jedes i ∈ {1, . . . , m}, j ∈ {1, . . . , mi }
ein Literal ist.
Normalformen
DNFs
51 / 79
Wahrheitstafel ⇒ DNF
(1/2)
Die Wahrheitstafel T sei gegeben: Baue eine DNF φ mit T als Wahrheitstafel.
1. Sei z eine Zeile der Wahrheitstafel T
I
I
z heißt eine 1-Zeile, wenn in der Spalte des Wahrheitswerts eine „1“ steht.
Steht in der Spalte des Wahrheitswerts aber eine „0“, nennen wir z eine 0-Zeile.
2. Um eine DNF zu bauen,
I
I
baue zuerst für jede 1-Zeile z einen Konjunktionsterm, der von der
Belegung von z erfüllt wird, aber von allen anderen Belegungen verworfen wird.
Dann veroder e all diese Konjunktionsterme!
Ein Konjunktionsterm K ist ein Minterm, wenn
jede Variable entweder als positives oder negatives Literal in K vorkommt.
Normalformen
DNFs
52 / 79
Wahrheitstafel ⇒ DNF
(2/2)
Die Wahrheitstafel T sei gegeben: Baue eine DNF φ mit T als Wahrheitstafel.
1. Für jede 1-Zeile z mit Belegung Bz : AVAR → {0, 1} konstruiere
den Minterm von z,
als den Konjunktionsterm
der von Bz erfüllt, aber von allen anderen Belegungen verworfen wird.
Der Minterm von z hat also die Form
^
^
Vi ∧
¬Vj .
i:Bz (Vi )=1
j:Bz (Vj )=0
.
2. Die Disjunktion
φ=
_
K,
K ist der Minterm einer 1-Zeile
(also die „Veroderung“ aller Minterme zu 1-Zeilen der Wahrheitstafel) heißt
kanonische DNF.
Normalformen
DNFs
53 / 79
DNFs: Ein erstes Beispiel
Betrachte die Wahrheitstafel T :
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
φ
1
0
0
0
1
1
0
0
Es gibt genau drei 1-Zeilen (für die in der „Spalte von φ“ eine 1 steht), nämlich
X
0
1
1
Y
0
0
0
Z
0
0
1
φ
1
1
1
zur Belegung der Zeile gehörender Minterm:
¬X ∧ ¬Y ∧ ¬Z
X ∧ ¬Y ∧ ¬Z
X ∧ ¬Y ∧ Z
Wir erhalten die zur Wahrheitstafel T passende kanonische DNF
φ := (¬X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ Z ).
Normalformen
DNFs
54 / 79
Implikant und Primimplikant
Um mit DNFs effizient arbeiten zu können, versuchen wir DNFs
mit möglichst wenigen Konjunktionstermen zu erhalten.
(a) Ein Konjunktionsterm M heißt ein Implikant der Formel φ, wenn
M |= φ
gilt. Ein Implikant von φ „impliziert“ also die Formel φ.
(b) Ein Implikant M heißt ein Primimplikant, wenn M nicht verkürzbar ist, wenn
also M, nach Streichen irgendeines Literals kein Implikant von φ mehr ist.
Normalformen
Implikanten und Primimplikanten
55 / 79
Satz von Quine
Warum haben wir den Begriff eines Primimplikanten eingeführt?
Jede DNF mit einer kleinstmöglichen Anzahl von Konjunktionstermen
ist eine Disjunktion von Primimplikanten.
Beweis: Siehe Tafel.
In der Veranstaltung „Hardware Architekturen und Rechensysteme“
lernen Sie das Quine-McCluskey Verfahren kennen, das alle Primplikanten
bestimmt und dann versucht eine möglichst kleine DNF zu „bauen“.
Normalformen
Implikanten und Primimplikanten
56 / 79
Minimierung von DNFs: Beispiele
(1/2)
Im letzten Beispiel haben wir die kanonische DNF
φ := (¬X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ ¬Z ) ∨ (X ∧ ¬Y ∧ Z ).
gefunden.
1. Welche Primimplikanten hat φ?
2. Besitzt φ eine kleinere DNF?
Antworten: Siehe Tafel.
Normalformen
Implikanten und Primimplikanten
57 / 79
Minimierung von DNFs: Beispiele
(2/2)
X1 , . . . , Xn , Y1 , . . . , Yn seien aussagenlogische Variablen. Betrachte die Formel
ψn
:=
n
_
(Xi ⊕ Yi ).
i=1
1. Wieviele 0-Zeilen hat die Wahrheitstafel für φn ? Aus wievielen
Konjunktionstermen besteht die zu ψ äquivalente kanonische KNF für ψ?
2. Wieviele Primimplikanten hat ψ?
ψn hat die DNF
ψn =
n
_
(Xi ∧ ¬Yi ) ∨
i=1
n
_
(¬Xi ∧ Yi )
i=1
mit 2n Konjunktionstermen, die kanonische DNF für ψn besteht aber aus 2n
Konjunktionstermen! Die Minimierung von DNFs ist ein wichtiges Problem.
Normalformen
Implikanten und Primimplikanten
58 / 79
Achtung, Achtung, Achtung!
Gibt es aber immer kleine DNFs?
X1 , . . . , Xn , Y1 , . . . , Yn seien aussagenlogische Variablen. Betrachte die Formel
φn
:=
n
^
(Xi ↔ Yi ).
i=1
Dann hat jede zu φn äquivalente Formel in DNF mindestens
2n
Konjunktionsterme.
Beweis: Siehe Übungen.
Normalformen
Implikanten und Primimplikanten
59 / 79
Die konjunktive Normalform
Normalformen
KNFs
60 / 79
Disjunktionsterme und KNFs
Ein Disjunktionsterm (oder eine (disjunktive) Klausel) ist eine Disjunktion
von Literalen.
Eine Konjunktion
φ=
mi
m
^
_
i=1
!
`i,j
j=1
Wmi
von Disjunktionstermen j=1
`i,j ist in konjunktiver Normalform (KNF),
wenn m, m1 , . . . , mn ∈ N>0 und `i,j für jedes i ∈ {1, . . . , m}, j ∈ {1, . . . , mi }
ein Literal ist.
Normalformen
KNFs
61 / 79
KNFs: Beispiele
DNFs für
φn =
n
^
Xi ↔ Yi
i=1
benötigen viele Konjunktionsterme. Aber φn hat doch eine „kleine“ KNF :-)))
Wie erhält man eine konjunktive Normalform aus einer Wahrheitstafel?
Normalformen
KNFs
62 / 79
Wahrheitstafel ⇒ KNF
(1/2)
Die Wahrheitstafel T sei gegeben: Baue eine KNF φ mit T als Wahrheitstafel.
1. Die Idee: Schließe die Belegungen aller 0-Zeilen mit Disjunktionstermen aus.
2. Wie schließen wir die Belegung einer 0-Zeile z aus?
I
I
baue einen Disjunktionsterm, der von der Belegung von z verworfen wird,
aber von allen anderen Belegungen erfüllt wird.
Verwende den negierten Minterm von z.
3. Dann verunde all negierten Minterme von 0-Zeilen!
Ein Disjunktionsterm D ist ein Maxterm, wenn
jede Variable entweder als positives oder negatives Literal in D vorkommt.
Normalformen
KNFs
63 / 79
Wahrheitstafel ⇒ KNF
(2/2)
Die Wahrheitstafel T sei gegeben: Baue eine KNF φ mit T als Wahrheitstafel.
1. Für jede 0-Zeile z mit Belegung Bz : AVAR → {0, 1} konstruiere
den Maxterm von z,
als den Disjunktionsterm
der von Bz verworfen, aber von allen anderen Belegungen erfüllt wird.
Der Maxterm von z hat also die Form
_
_
¬Vi ∨
Vj .
i:Bz (Vi )=1
j:Bz (Vj )=0
.
2. Die Konjunktion
φ=
^
K,
K ist der Maxterm einer 0-Zeile
also die „Verundung“ aller Maxterme zu 0-Zeilen der Wahrheitstafel, heißt
kanonische KNF.
Normalformen
KNFs
64 / 79
KNFs: Beispiele
Wir betrachten wieder die Wahrheitstafel T :
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
φ
1
0
0
0
1
1
0
0
Um die kanonische KNF zu bestimmen,
müssen wir die Maxterme zu allen 0-Zeilen bestimmen und verunden.
Wie sieht die kanonische KNF in diesem Beispiel aus? Siehe Tafel
Normalformen
KNFs
65 / 79
DNFs und KNFs
Normalformen spielen in vielen Anwendungsgebieten eine wichtige Rolle.
Beispielsweise geht man in der Schaltungstechnik (Hardware-Entwurf) oft
von DNF- oder KNF-Formeln aus,
während bei der Wissensrepräsentation oftmals nur KNF-Formeln auftreten,
da sich eine Sammlung einfach strukturierter Aussagen durch eine
Konjunktion von Klauseln ausdrücken lässt.
Für jede aussagenlogische Formel φ gibt es eine Formel ψD in DNF und eine
Formel ψK in KNF, so dass
φ ≡ ψD und φ ≡ ψK .
Jede Formel ist äquivalent zu einer Formel in DNF und zu einer Formel in KNF.
Normalformen
KNFs
66 / 79
Boolesche Funktionen und Formeln
Normalformen
Boolesche Funktionen
67 / 79
Boolesche Funktionen
Eine Funktion f : X → Y heißt eine boolesche Funktion, wenn
(a) Y = {0, 1} und
(b) wenn es eine natürliche Zahl n ∈ N mit X = {0, 1}n gibt.
Beispiele:
(a) Die boolesche Funktion
Undn : {0, 1}n → {0, 1}
nimmt genau dann den Wert 1 für Eingabe x an, wenn x = 1n .
(b) Die Paritätsfunktion ⊕n ist die boolesche Funktion
⊕n : {0, 1}n → {0, 1}
mit der rekursiven Definition ⊕1 (x1 ) = x1 und
0 ⊕n (x1 , . . . , xn ) = xn+1
⊕n+1 (x1 , . . . , xn+1 ) =
1 sonst.
Das „Paritätsbit“ p = ⊕n (x1 , . . . , xn ) ändert sich, wenn genau ein Bit
„geflippt“ wird (warum?) und wird deshalb zur Fehlererkennung eingesetzt.
Normalformen
Boolesche Funktionen
68 / 79
Boolesche Funktionen und Formeln
Boolesche Funktionen und Formeln der Aussagenlogik sind äquivalente Konzepte.
(a) Für eine Formel φ mit |VAR(φ)| = n bilde die Wahrheitstafel und definiere die
boolesche Funktion fφ : {0, 1}n → {0, 1} für die Formel φ durch
fφ (x ) = Wahrheitswert der Zeile von x .
(b) Für eine boolesche Funktion f : {0, 1}n → {0, 1}
bilde die Wahrheitstafel, die in Zeile x den Wahrheitswert f (x ) besitzt.
Dann bestimme die DNF φf zur Wahrheitstafel:
φf ist eine Formel für die boolesche Funktion f.
Der Entwurf von Schaltungen für boolesche Funktionen ist ein wichtiges Ziel
der technischen Informatik.
Normalformen
Boolesche Funktionen
69 / 79
Haben boolesche Funktionen
immer kleine DNFs oder kleine KNFs?
Wir erinnern an die Paritätsfunktion ⊕n : {0, 1}n → {0, 1}.
Dann hat
(a) jede DNF für ⊕n mindestens 2n−1 Konjunktionsterme und
(b) jede KNF für ⊕n mindestens 2n−1 Disjunktionsterme.
Beweis: Siehe Übungen.
Es gibt also boolesche Funktionen,
die sich weder durch DNFs noch durch KNFs kurz beschreiben lassen!
Normalformen
Boolesche Funktionen
70 / 79
Wie groß sind denn Wahrheitstafeln?
Normalformen
Die Größe von Wahrheitstafeln
71 / 79
Die Größe von Wahrheitstafeln
(1/2)
Sei φ eine aussagenlogische Formel und sei
n := | Var(φ)|
die Anzahl der in φ vorkommenden Variablen. Dann gibt es
2n
verschiedene zu φ passende Belegungen B.
(a) Eine zu φ passende Belegung B ist eine Funktion,
die jede Variable in Var(φ) auf einen Wahrheitswert abbildet.
(b) Wie viele Funktionen B : Var(φ) → {0, 1} gibt es?
I
Genau
|Abb(Var(φ), {0, 1})| = |{0, 1}|| Var(φ)| = 2n
viele.
Normalformen
Die Größe von Wahrheitstafeln
72 / 79
Die Größe von Wahrheitstafeln
(2/2)
Die Wahrheitstafel einer Formel mit n Variablen hat genau 2n Zeilen.
Ist das gut oder schlecht?
n (Anzahl Variablen)
2n
10
20
30
40
50
60
210
220
230
240
250
260
(Anzahl Zeilen der Wahrheitstafel)
=
1.024
=
1.048.576
=
1.073.741.824
=
1.099.511.627.776
=
1.125.899.906.842.624
= 1.152.921.504.606.846.976
≈
≈
≈
≈
≈
≈
103
106
109
1012
1015
1018
Zum Vergleich: Das Alter des Universums wird auf 13, 7 Milliarden Jahre,
das sind ungefähr 1018 Sekunden, geschätzt.
Normalformen
Die Größe von Wahrheitstafeln
73 / 79
Das aussagenlogische Erfüllbarkeitsproblem (KNF-SAT)
Eingabe: Eine aussagenlogische Formel φ in KNF.
Frage: Ist φ erfüllbar?
Normalformen
SAT
74 / 79
Wie schwierig ist das Erfüllbarkeitsproblem?
(1/3)
Natürlich kann man das Erfüllbarkeitsproblem mit einer Wahrheitstafel lösen.
I
I
Teste, ob es in der mit „φ“ beschrifteten Spalte mindestens eine 1 gibt.
Aber die Wahrheitstafel hat exponentiell viele Zeilen,
nämlich 2n Zeilen, wenn φ von n Variablen abhängt.
Ein unter dem Stichwort SAT-Solving bekannter Teilbereich der Informatik
versucht, wesentlich effizientere Verfahren zu entwickeln.
Solche Verfahren können nicht für alle Formeln schnell sein, denn in der
Veranstaltung „Theoretische Informatik 1“ (3. Semester) wird gezeigt:
Satz von Cook
KNF-SAT ist NP-vollständig.
Normalformen
SAT
75 / 79
Wie schwierig ist das Erfüllbarkeitsproblem?
(2/3)
Eine präzise Definition des Begriffs „NP-vollständig“ wird in der
Theoretischen Informatik 1 gegeben.
I
Grob gesagt bedeutet die NP-Vollständigkeit von KNF-SAT, dass es
wahrscheinlich kein effizientes Verfahren gibt, das KNF-SAT für alle
Eingabeformeln löst. :-((
F
F
Ein Verfahren wird effizient gennant, wenn das Verfahren „relativ schnell“
Antworten selbst für große Eingaben findet.
Genauer: Die Laufzeit muss polynomiell in der Eingabelänge sein!
Einige Heuristiken (die so genannten SAT-Solver) lösen KNF-SAT trotzdem
für viele Eingabe-Formeln erstaunlich effizient.
I
I
Ich muss hoffen, dass ich für meine Eingabe-Formel ein Verfahren finde,
dass meine Formel schnell genug löst.
Aber es gibt wahrscheinlich kein „einigermaßen“ schnelles Verfahren
für alle Formeln!
Wie arbeiten denn diese SAT-Solver?
Normalformen
SAT
76 / 79
Wie schwierig ist das Erfüllbarkeitsproblem?
(3/3)
Wenn die Disjunktionsterme ` ∨ E1 und ¬` ∨ E2 wahr sind, dann ist auch
E1 ∨ E2
wahr. Man sagt, dass E1 ∨ E2 in einem Resolutionsschritt
aus ` ∨ E1 und ¬` ∨ E2 ableitbar ist.
Wir sollen feststellen, ob die KNF φ = D1 ∧ D2 ∧ · · · ∧ Dm erfüllbar ist!
:-)) Wenn der leere Disjunktionsterm in einer Folge von Resolutionsschritten aus
den Disjunktionstermen D1 , . . . , Dm ableitbar ist, dann ist φ unerfüllbar!
:-)) Man kann zeigen: Ist φ unerfüllbar, dann gibt es einen Resolutionsbeweis,
I
I
also eine Folge von Resolutionsschritten ausgehend von den
Disjunktionstermen D1 , . . . , Dm ,
so dass am Ende der leere Disjunktionsterm produziert wird.
:-(( Leider, leider gibt es aber KNFs, deren Unerfüllbarkeit nur mit exponentiell
vielen Resolutionsschritten nachgewiesen werden kann!
I
I
Nicht nur ist das Finden eines „Resolutionsbeweises“ kompliziert,
sondern mgl. gibt es nur sehr, sehr lange Beweise.
Normalformen
SAT
77 / 79
Resolution: Ein Beispiel
1. Die Kunden der Bahn sind nicht zufrieden, wenn
I
I
sich die Preise erhöhen: P → ¬Z , bzw. ¬P ∨ ¬Z ,
oder sich die Fahrzeiten verlängern: F → ¬Z , bzw. ¬F ∨ ¬Z .
2. Wenn der Frankfurter Kopfbahnhof nicht in einen Durchgangsbahnhof
umgebaut wird, verlängern sich die Fahrzeiten: ¬B → F , bzw. B ∨ F .
3. Der Bahnhof kann nur dann umgebaut werden,
wenn die Fahrpreise erhöht werden: B → P, bzw. ¬B ∨ P.
Die Bahn kann es niemandem recht machen, denn die KNF
(¬P ∨ ¬Z ) ∧ (¬F ∨ ¬Z ) ∧ (B ∨ F ) ∧ (¬B ∨ P) ∧ Z .
ist unerfüllbar.
Wie sieht ein Resolutionsbeweis aus?
Normalformen
SAT
78 / 79
Model Checking mit SAT-Solvern
(a) Wir haben ein System (z.B. eine Schaltung, ein Softwarepaket) entwickelt und
haben einige Eigenschaften des Systems durch eine Formel φ ∈ AL modelliert.
(b) Wir müssen überprüfen, ob das System die Eigenschaft ψ erfüllt: D.h. gilt
φ |= ψ?
Wenn φ als KNF und ψ als DNF vorliegt, dann überprüfe, ob die KNF
φ ∧ ¬ψ
unerfüllbar ist! Und wie? Mit einem SAT-Solver.
Normalformen
SAT
79 / 79
Herunterladen