Resolution

Werbung
Logik und Diskrete Strukturen (Sommer 2017)
Prof. Dr. Ulrich Hertrampf
Resolution
Grundlage ist immer eine prädikatenlogische Formel in Skolemform.
Wir definieren Grundsubstitutionen, Instanzen, Grundinstanzen:
Eine Grundsubstitution ist eine Substitution, bei der jede
Variable von F durch einen variablenfreien Term ersetzt
wird. (Es ergibt sich dabei ein Element von E (F ).)
Wenn man in der Formel F jede Variable durch einen beliebigen
Term ersetzt, spricht man von einer Instanz der Formel F .
Entsteht die Instanz G aus F durch eine Grundsubstitution,
so nennt man G eine Grundinstanz der Formel F .
Beispiel: F = P(x) ∧ ¬P(f (x))
Die folgende Instanz ist keine Grundinstanz von F : P(f (x)) ∧ ¬P(f (f (x)))
Aber diese Instanz ist eine Grundinstanz von F : P(f (a)) ∧ ¬P(f (f (a)))
Einheit 22
– Folie 22.1 –
30.05.2017
Logik und Diskrete Strukturen (Sommer 2017)
Prof. Dr. Ulrich Hertrampf
Grundresolution
Wir gehen wieder von einer Aussage in Skolemform aus:
F = ∀x1 ∀x2 . . . ∀xk G
Der folgende sogenannte Grundresolutionsalgorithmus benutzt
eine Aufzählung von E (F ) in der Form {F1 , F2 , F3 , . . . }:
i := 0;
M := ∅;
repeat i := i + 1;
M := M ∪ {Fi };
M := Res ∗ (M);
until ∈ M;
output(„unerfüllbar“);
Einheit 22
– Folie 22.2 –
30.05.2017
Logik und Diskrete Strukturen (Sommer 2017)
Prof. Dr. Ulrich Hertrampf
Korrektheit und Beispiel
Der eben angegebene Grundresolutionsalgorithmus ist eine
Variante des Algorithmus von Gilmore (sh. Buch). Folgender
Satz ist leicht zu beweisen:
Satz: Der Grundresolutionsalgorithmus stoppt (und
gibt „unerfüllbar“ aus) genau dann, wenn die
Formel F unerfüllbar ist.
Als erstes Beispiel betrachten wir
F = ∀x (P(x) ∧ ¬P(f (x)))
Wir erhalten D(F ) = {a, f (a), f (f (a)), . . . } und damit für die Matrix (P(x) ∧ ¬P(f (x)))
die Elemente G1 = (P(a) ∧ ¬P(f (a))) und G2 = (P(f (a)) ∧ ¬P(f (f (a)))) von E (F ).
Die Klauseln P(f (a)) und ¬P(f (a)) können zur leeren Klausel resolviert werden.
30.05.2017
Einheit 22
– Folie 22.3 –
Logik und Diskrete Strukturen (Sommer 2017)
Prof. Dr. Ulrich Hertrampf
Noch ein Beispiel
Das folgende Beispiel ist etwas komplizierter als das vorige:
F = ∀x∀y ((¬P(x) ∨ ¬P(f (a)) ∨ Q(y )) ∧ P(y ) ∧ (¬P(g (b, x)) ∨ ¬Q(b)))
Die Matrix ist
G = (¬P(x) ∨ ¬P(f (a)) ∨ Q(y )) ∧ P(y ) ∧ (¬P(g (b, x)) ∨ ¬Q(b))
Wir betrachten vier Elemente von E (F ) (also Grundinstanzen):
G [x/f (a)][y /b]
Hier finden wir die Klausel (¬P(f (a)) ∨ Q(b)).
G [y /f (a)]
Hier finden wir die Klausel P(f (a)).
G [y /g (b, a)]
Hier finden wir die Klausel P(g (b, a)).
G [x/a]
Hier finden wir die Klausel (¬P(g (b, a)) ∨ ¬Q(b)).
Einheit 22
– Folie 22.4 –
30.05.2017
Logik und Diskrete Strukturen (Sommer 2017)
Prof. Dr. Ulrich Hertrampf
Herleitungen
Wir betrachten die Klauseln aus den Grundinstanzen analog
zu unserem Vorgehen bei der aussagenlogischen Resolution.
Auch hier können wir eine Herleitung der leeren Klausel finden,
ohne den ganzen Resolutionsabschluss zu konstruieren:
¬P(f (a)) ∨ Q(b)
P(f (a))
P(g (b, a))
¬P(g (b, a)) ∨ ¬Q(b)
¬Q(b)
Q(b)
Einheit 22
– Folie 22.5 –
30.05.2017
Logik und Diskrete Strukturen (Sommer 2017)
Prof. Dr. Ulrich Hertrampf
Grundresolutionssatz
Eine Formalisierung des Vorgehens beim letzten Beispiel führt
zu dem folgenden Satz, den man Grundresolutionssatz nennt:
Satz: Sei F = ∀y1 ∀y2 . . . ∀yk G eine Aussage in Skolemform,
wobei die Matrix G in KNF vorliegt. F ist unerfüllbar
genau dann, wenn es eine Folge K1 , . . . , Kn von
Klauseln gibt, so dass
1) Kn = und
2) für alle i ist Ki entweder Grundinstanz einer
Klausel aus G oder Resolvent zweier Klauseln
Ka und Kb mit a < b < i.
Einheit 22
– Folie 22.6 –
30.05.2017
Herunterladen