V. Resolution - TU Darmstadt/Mathematik

Werbung
Logik für Informatik
Sommersemester 2003
Mathias Kegelmann
Technische Universität Darmstadt
Fachbereich Mathematik
20. Mai 2003
V. Resolution
A
Heute werden wir ein Beweisverfahren kennen lernen, das sich besonders gut zur maschinellen Implementierung eignet. Die Grundidee ist dabei die folgende. Zunächst übersetzt man das Problem der Allgemeingültigkeit einer Formel in ein Erfüllbarkeitsproblem: Sei dazu A ∈ PROP eine aussagenlogische
Formel. Diese ist genau dann eine Tautologie, also allgemeingültig, wenn ¬A unerfüllbar ist. Man kann das
Resolutionsverfahren auf mehrere Weisen verstehen, z.B. als Versuch eine Belegung zu konstruieren, die
¬A wahr macht. Scheitert dies, so ist ¬A unerfüllbar und somit A eine Tautologie.
1
Normalformen
Das Resolutionsverfahren arbeitet nicht mit beliebigen Formeln sondern mit einer gewissen Repräsentation
der konjunktiven Normalform.
Wir sind (disjunktiven) Normalformen bereits im letzten Semester (Abschnitt A.2.4) und auch beim
Beweis des Vollständigkeitssatzes (siehe Lemma 3.7) begegnet. Hier noch einmal die relevanten Begriffe:
Definition 5.1. Ein Literal ist entweder eine atomare Aussage oder eine negierte atomare Aussage, also
von der Form A oder ¬A für ein A ∈ ATOM.
Eine Aussage B ∈ PROP ist in konjunktiver Normalform, wenn es eine Konjunktion von Disjunktionen von Literalen ist.
Lemma 5.2. Jede aussagenlogische Formel ist zu einer in konjunktiver Normalform äquivalent.
Dieses Lemma kann man auf viele Arten beweisen. Z.B. ist es eine Konsequenz aus Korrektheit und
Vollständigkeit, da man die (kanonische) konjunktive Normalform an der Wahrheitstafel ablesen kann. In
der Praxis will man aber gerade vermeiden, die gesamte Tafel aufzustellen. Also stellt sich die Frage, wie
man zu einer gegeben Formel eine äquivalente in Normalform schnell bestimmen kann. Dabei kann man
z.B. nach folgenden Schritten vorgehen:
• Zunächst ersetzt man Implikationen A → B durch den äquivalenten Ausdruck ¬A → B.
• Mit den de Morganschen Regeln ¬(A ∧ B) ∼
= ¬A ∨ ¬B und ¬(A ∨ B) ∼
= ¬A ∧ ¬B bringt man die
Negationen nach “innen”.
• Doppelte Negationen kann man wegen ¬¬A ∼
= A weglassen.
• Schließlich benutzt man das Distributivgesetz A∨(B∧C) ∼
= (A∨B)∧(A∨C), um die Konjunktionen
nach “außen” zu bekommen.
Beispiel 5.3. Wir bestimmen eine konjunktive Normalform für die Formel ¬ (A → B) → (¬B → ¬A)
nach diesem Verfahren:
¬ (A → B) → (¬B → ¬A)) ∼
= ¬ ¬(¬A ∨ B) ∨ (¬¬B ∨ ¬A) ∼
= ¬ ¬(¬A ∨ B) ∨ (B ∨ ¬A)
∼
= ¬¬(¬A ∨ B) ∧ ¬(B ∨ ¬A) ∼
= (¬A ∨ B) ∧ ¬(B ∨ ¬A)
∼
= (¬A ∨ B) ∧ (¬B ∧ ¬¬A)
∼
= (¬A ∨ B) ∧ ¬B ∧ A
1.1
Klauseln
Eine Aussage in konjunktiver Normalform besteht aus einer Konjunktion von Disjunktionstermen
D1 ∧ D2 ∧ · · · ∧ Dn
und eine solche Formel ist genau dann unerfüllbar, wenn
{D1 , D2 , . . . , Dn }
unerfüllbar ist. Die Di sind von der Form
Di = L1 ∨ L2 ∨ · · · ∨ Lm
wobei die Lj Literale also entweder A oder ¬A für ein A ∈ ATOM sind. Einen solchen Disjunktionsterm
Di können wir also einfach durch eine Menge von Literalen kodieren.
Definition 5.4. Eine Klausel ist eine endliche Menge von Literalen, und eine Klauselmenge ist eine Menge
von Klauseln.
Jede konjunktive Normalform können wir also durch eine Klauselmenge kodieren. Da wir auch wissen,
wie man eine beliebige Aussage in eine äquivalente konjunktive Normalform überführt, können wir nach
der entsprechenden Umformung jede Aussage durch eine Klauselmenge repräsentieren.
Beispiel 5.5. Wir setzten Beispiel 5.3 fort. Die Formel ¬ (A → B) → (¬B → ¬A) ist äquivalent zur
konjunktiven Normalform (¬A ∨ B) ∧ ¬B ∧ A. Diese entspricht der Klauselmenge
{¬A, B}, {¬B}, {A} .
Es kann passieren, dass man beim Umformen einer Aussage redundante Disjunktionsterme bekommt:
Jeder Ausdruck der Form A ∨ ¬A ∨ C ist unter jeder Belegung wahr und kann deshalb in einer Konjunktion
weggelassen werden. Das motiviert folgende Definition.
Definition 5.6. Eine Klausel K heißt reduziert, wenn sie für kein Atom A ∈ K dessen Negation ¬A
enthält. Eine Klauselmenge heißt reduziert, wenn alle ihre Klauseln reduziert sind.
Beispiel 5.7. Die Klauselmenge {¬A, B}, {¬B}, {A} aus Beispiel 5.5 ist reduziert.
2
Erfüllbarkeit
Wir interessieren uns nun für die Unerfüllbarkeit solcher Klauselmengen. Wir verstehen darunter die Unerfüllbarkeit der konjunktiven Normalform, der solche Klauselmengen entsprechen. Eine Belegung ρ macht
eine Klausel K wahr, wenn sie eine ihrer Literale L ∈ K wahr macht, also JLKρ = w erfüllt. Sie macht
eine Klauselmenge wahr, wenn sie alle ihre Klauseln wahr macht.
Bei der Frage nach der Erfüllbarkeit einer Klauselmenge können wir uns auf reduzierte Mengen beschränken, indem wir alle nicht-reduzierten Klauseln einfach weglassen, da sie zur Erfüllbar- bzw. Unerfüllbarkeit der Klauselmenge nichts beitragen.
Es ist an dieser Stelle wichtig sich den Unterschied zwischen der leeren Klausel und der leeren Klauselmenge klar zu machen:
• Die leere Klausel ∅ entspricht der leeren Disjunktion und somit ⊥. Somit ist diese Klausel unter
keiner Belegung erfüllt und somit jede Klauselmenge, die ∅ enthält, unerfüllbar.
• Die leere Klauselmenge ∅ entspricht der leeren Konjunktion und somit > und ist somit unter jeder
Belegung erfüllt.
Diese Spezialfälle, die bei unserer Definition von konjunktiver Normalform notationelle Probleme machen,
sind also bei der Darstellung als Klauselmengen automatisch mitbehandelt.
Das Resolutionsverfahren geht nun grob wie folgt vor. Beginnend mit einer Klauselmenge erzeugt man
iterativ neue Klauseln, die zusammen mit den bisherigen Klauseln erfüllbar sein müssen, wenn die ursprüngliche Klauselmenge simultan erfüllbar ist. Kann man dabei ∅ — also eine bereits für sich unerfüllbare
Klausel — herleiten, so ist damit auch die ursprüngliche Klauselmenge unerfüllbar.
2.1
Resolutionsschritt
Die Grundidee steckt in folgender Beobachtung:
Satz 5.8. Seien K ∪ {A} und K 0 ∪ {¬A} Klauseln sowie ρ eine Variablenbelegung, die diese beiden
Klauseln wahr macht. Dann macht ρ auch K ∪ K 0 wahr.
Beweis. Sei ρ eine Variablenbelegung, die K ∪ {A} und K 0 ∪ {¬A} erfüllt. Es gilt entweder ρ(A) = f oder
ρ(¬A) = f. Im ersten Fall gibt es L ∈ K mit JLKρ = w und im zweiten Fall ein solches L ∈ K 0 . Also hat
man in beiden Fällen ein L ∈ K ∪ K 0 mit JLKρ = w, und somit macht ρ die Klausel K ∪ K 0 wahr.
Daraus können wir nun unmittelbar folgendes schließen:
Korollar 5.9. Sei M eine erfüllbare Klauselmenge und K ∪ {A}, K 0 ∪ {¬A} ∈ M . Dann ist auch M ∪
{K ∪ K 0 } erfüllbar.
Beweis. Ist M erfüllbar, dann gibt es eine Belegung ρ, die alle Klauseln in M also insbesondere auch
K ∪ {A} und K 0 ∪ {¬A} wahr macht. Nach Satz 5.8 erfüllt ρ dann aber auch K ∪ K 0 und somit ist
M ∪ {K ∪ K 0 } (durch ρ) erfüllbar.
Die Menge {K ∪K 0 } heißt auch die Resolvente von K ∪{A} und K 0 ∪{¬A}. Das Korollar zeigt uns somit, wie wir nach und nach Resolventen zu einer Klauselmenge hinzufügen können, ohne die Erfüllbarkeit
der Klauselmenge zu verändern. Das Hinzufügen einer solchen Resolvente nennen wir einen Resolutionsschritt.
Korollar 5.10. Sei M eine Klauselmenge, für die wir in endlich vielen Resolutionsschritten die leere Klausel ∅ erzeugen können. Dann ist M unerfüllbar.
Beispiel 5.11. Wir kehren zurück zu Beispiel 5.3 und 5.5. Wir können folgende Resolutionsschritte ausführen,
wobei wir die beiden verwendeten Klauseln jeweils unterstreichen:
{¬A, B}, {¬B}, {A}
{¬A, B}, {¬B}, {A}, {¬A}
{¬A, B}, {¬B}, {A}, {¬A}, ∅
Da in dieser letzten Klauselmenge
die leere Klausel ∅ vorkommt, ist diese unerfüllbar. Damit ist auch die
ursprüngliche Klauselmenge {¬A, B}, {¬B}, {A} unerfüllbar. Das bedeutet aber, dass diekonjunktive
Normalform (¬A ∨ B) ∧ ¬B ∧ A und die äquivalente Formel ¬ (A → B) → (¬B → ¬A) unerfüllbar
sind. Also ist (A → B) → (¬B → ¬A) eine Tautologie.
3
Resolutionsverfahren
Im vorangegangenen Abschnitt haben wir eigentlich bereits das ganze Resolutionsverfahren erklärt; fassen
wir es aber noch einmal zusammen:
• Wir wollen zeigen, dass eine Formel A eine Tautologie ist. Dazu zeigen wir die Unerfüllbarkeit von
¬A wie folgt.
• Zuerst überführen wir ¬A in konjunktive Normalform.
• Diese Normalform repräsentieren wir durch eine Klauselmenge M , wobei wir nur reduzierte Klauseln
aufnehmen.
• Jetzt bilden wir iterativ Resolventen und nehmen diese, falls sie reduziert sind, zu unserer Klauselmenge hinzu; entstehen nicht-reduzierte Klauseln, so ignorieren wir diese.
• Sobald wir die leere Klausel erhalten, wissen wir, dass unsere Klauselmenge und somit ¬A unerfüllbar ist, was die Allgemeingültigkeit von A zeigt.
• Erhalten wir keine neuen Resolventen mehr (und wir haben ∅ noch nicht als Resolvente bekommen),
so ist A keine Tautologie, wie wir später im Vollständigkeitsbeweis sehen werden.
Beispiel 5.12. Als weiteres Beispiel zeigen wir nun mit dieser Methode, dass (A → B) → A → A eine
Tautologie ist. Wir erhalten die konjunktive Normalform
¬ (A → B) → A → A ∼
¬
¬
¬(¬A
∨
B)
∨
A
∨
A
=
∼
= ¬(¬A ∨ B) ∨ A ∧ ¬A
∼
= (A ∧ ¬B) ∨ A ∧ ¬A
∼
= A ∧ (¬B ∨ A) ∧ ¬A
und somit die Klauselmenge {A}, {A,
¬B}, {¬A} . Aus der Resolution von {A} und {¬A} erhalten wir
sofort ∅ und somit ist (A → B) → A → A eine Tautologie.
3.1
Korrektheit
Es stellt sich nun natürlich die Frage, ob das Resolutionsverfahren korrekt ist. Wegen Korollar 5.10 ist
klar, dass jede Formel, die vom Verfahren als Tautologie erkannt wird, auch tatsächlich eine Tautologie
ist. Schwieriger ist es zu zeigen, dass auch alle Tautologien auf diese Weise erkannt werden können. Das
Problem ist also, ob Resolution auch vollständig ist, ob wir also im letzten Punkt oben zu recht schließen
können, dass A keine Tautologie ist, wenn das Resolutionsverfahren die leere Klausel nicht erzeugen kann.
3.2
Multi-Resolution
Dass dem so ist, zeigt man am einfachsten mit einer Modifikation des eigentlichen Verfahrens, in dem in
jedem Schritt ein Atom aus der Klauselmenge vollständig eliminiert wird. Dazu führen wir den Multiresolutionsschritt ein, der durch folgenden Satz gerechtfertigt wird:
Satz 5.13. Sei M eine reduzierte Klauselmenge und A ein Atom, dass in M vorkommt. Unterteilt man nun
M in drei disjunkte Teile
MA := {K ∈ M | A ∈ K}
M¬A := {K ∈ M | ¬A ∈ K}
M∗ := {K ∈ M | A ∈
/ K, ¬A ∈
/ K}
dann ist M genau dann erfüllbar, wenn
M 0 := M∗ ∪ K ∪ K 0 \ {A, ¬A} K ∈ MA , K 0 ∈ M¬A , K ∪ K 0 \ {A, ¬A} ist reduziert
erfüllbar ist.
Beweis. Der Beweis ist eine Verfeinerung des Arguments aus Satz 5.8.
Dieser Multiresolutionsschritt hat folgende Eigenschaft. In M 0 kommen höchstens die Atome vor, die in
M vorkommen, aber nicht A. Iteriert man also diesen Resolutionsschritt, so verändert man die Erfüllbarkeit
der betrachteten Klauselmenge nicht, erhält aber immer weniger Atome. Startet man mit einer endlichen
Klauselmenge M so erhält man schließlich entweder ∅ oder {∅}. Im ersten Fall ist die Klauselmenge erfüllbar, im zweiten nicht.
Alle Klauseln, die man mit Multiresolutionsschritten erzeugen kann, kann man aber auch durch mehrere
normale Resolutionsschritte bekommen. Das bedeutet folgendes: Kann das normale Verfahren die leere
Klausel nicht herleiten, so kann das Multiresolutionsverfahren dies auch nicht und endet somit mit ∅. Das
bedeutet aber, dass die zu ¬A korrespondierende Klauselmenge erfüllbar und ¬A somit keine Tautologie
ist.
Herunterladen