laden

Werbung
Logik für Informatiker
Wintersemester 2007/08
Thomas Schwentick
Teil B: Prädikatenlogik
5. Erfüllbarkeit
Version von: 4. Februar 2008(17:15)
Inhalt
5.1 Einleitung
5.2 Herbrand-Strukturen und Grundresolution
5.3 Unifikation und prädikatenlogische Resolution
5.4 Logische Programmierung: Prolog
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 1
Prolog
•
➞
•
•
Prolog: „Programming in Logic“
Deklarative Programmiersprache
Wird z.B. für wissensbasierte Systeme verwendet
Beispiel-Programm aus Einleitung:
ancestor(X,Y) :- parent(X,Y).
ancestor(X,Y) :- parent(X,Z),ancestor(Z,Y).
parent(bob,allen).
parent(dave,bob).
parent(fred,dave).
? :- ancestor(Y,allen).
• Die Regel
ancestor(X,Y) :- parent(X,Z),ancestor(Z,Y)
entspricht der PL-Formel
∀x ∀y(∃z P (x, z) ∧ A(z, y)) → A(x, y)
• Die Ziel-Regel
? :- ancestor(Y,allen).
entspricht der Formel
F = ∃y A(y, allen)
• Wie bei der AL-Resolution wird nun versucht, zu zeigen, dass die
Programm-Formeln zusammen mit der negierten Zielformel
F = ∀y ¬A(y, allen)
unerfüllbar sind (und passende Werte für y zu finden)
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 2
Prolog (Forts.)
• Wie lässt sich die Unerfüllbarkeit der dem Programm
ancestor(X,Y) :- parent(X,Y).
ancestor(X,Y) :- parent(X,Z),ancestor(Z,Y).
parent(bob,allen).
parent(dave,bob).
parent(fred,dave).
? :- ancestor(Y,allen).
•
entsprechenden Formeln testen?
Einfacher Ansatz: Setze alle möglichen Werte für x und y ein, z.B.:
– P (dave, bob) ∧ A(bob, fred) → A(dave, fred)
– P (bob, fred) ∧ A(fred, allen) → A(bob, allen)
– Zielformel: ¬A(fred, allen), ¬A(bob, allen),...
• Wir können dann Atome wie P (dave, bob) als aussagenlogische
•
•
Variablen betrachten, und mit Resolution versuchen, einen Widerspruch zu
erzeugen
Sogar: alle Formeln sind Hornformeln, deshalb ist ein effizienter
Erfüllbarkeitstest möglich
Schönheitsfehler: bei k-stelligen Prädikaten und n Grundelementen
ergeben sich nk Klauseln
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 3
Prolog: Noch ein Beispiel
• Das Programm
Wahr(t).
Falsch(f).
Wahr(und(X,Y)) :- Wahr(X), Wahr(Y)
Falsch(und(X,Y)) :- Falsch(X)
Falsch(und(X,Y)) :- Falsch(Y)
Falsch(oder(X,Y)) :- Falsch(X), Falsch(Y)
Wahr(oder(X,Y)) :- Wahr(X)
Wahr(oder(X,Y)) :- Wahr(Y)
Wahr(nicht(X)) :- Falsch(X)
Falsch(nicht(X)) :- Wahr(X)
•
beschreibt die Semantik von Termen, die mit Funktionen „und“, „oder“,
„nicht“ und Wahrheitswerten t und f gebildet werden
Die Zielregel:
? :- Wahr(und(t,oder(X,nicht(Y))))
würde dann nach Werten für X und Y suchen, die den angegebenen
•
•
•
Term wahr machen
Auch hier ist eine Lösung durch einen Erfüllbarkeitstest mit Hilfe der
AL-Resolution (und sogar dem Markierungsalgorithmus) möglich
Aber: es gibt unendlich viele Terme und deshalb unendlich viele mögliche
Klauseln
Wir beschäftigen uns nun also mit Erfüllbarkeitstests für PL-Formeln
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 4
Erfüllbarkeit von PL-Formeln: Beispiel
• Prädikatenlogische Erfüllbarkeit wirft völlig neue Probleme auf, wie das
folgende Beispiel zeigt
• Sei F = ∀u ∀v ∀w (P (u, v) ∧ P (v, w) → P (u, w))∧
∀x ¬P (x, x) ∧ ∀y P (y, f (y))
• F hat das Modell A = (N, P, f ) mit
– P (n, m) :⇐⇒ n < m für alle n, m ∈ N
– f (n) = n + 1 für alle n ∈ N
• A ist ein unendliches Modell
• Hat F auch ein endliches Modell? Nein!
– Denn: Angenommen B = (U, P B, f B) wäre ein endliches
Modell
– Sei a ∈ U beliebig
– Wir betrachten die Folge a, f (a), f (f (a))(=: f 2 (a)), . . .
(und lassen dabei den Superskript B weg)
– Dann gibt es i < j , so dass f i(a) = f j (a) ist
– Da immer (x, f (x)) ∈ P gilt und P transitiv ist, folgt
(f i(a), f j (a)) ∈ P
– Das widerspricht aber der Teilformel ∀x
Logik für Inf. / Schwentick / WiSe 07/08
¬P (x, x)
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 5
Erfüllbarkeit prädikatenlogischer Formeln: Plan
• Unser Ziel ist also ein Erfüllbarkeitstest für
PL-Formeln F (ohne Gleichheit!)
– Wir wissen schon: wir können F in eine
erfüllbarkeitsäquivalente geschlossene
Skolem-Formel F 0 umwandeln
– Nebenbei bemerkt: bei dieser
Umwandlung können auch bei Formeln
ohne Funktionssymbole neue
Funktionssymbole hinzukommen
– Wir werden sehen: wenn F 0 ein Modell
hat, dann auch ein Herbrand-Modell:
∗ Die Grundmenge U und die
Funktionen eines Herbrand-Modells H
für F sind dabei durch F schon
eindeutig bestimmt
– Um festzustellen, ob es auch Relationen
für H gibt, die F erfüllen, können wir
dann auf die aussagenlogische
Resolution zurückgreifen
Logik für Inf. / Schwentick / WiSe 07/08
– Wir betrachten jedes Atom, das aus U
und den Prädikaten von F gebildet
werden kann, als aussagenlogische
Variable
– Dann definieren wir die Menge E(F )
aller Klauseln, die sich aus F durch
Einsetzen von (Grund-)Termen für die
Variablen ergeben
– Wir werden sehen:
F prädikatenlogisch erfüllbar ⇐⇒
E(F ) aussagenlogisch erfüllbar
• Leider führt dieses Verfahren aus
prinzipiellen Gründen nicht zu einem
vollständigen Erfüllbarkeitsalgorithmus
• Außerdem ist der Algorithmus extrem
ineffizient, deshalb betrachten wir danach
eine weitere, etwas zielgerichtetere
Methode: prädikatenlogische Resolution
• Wir folgen im Folgenden weitgehend [KuK]
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 6
Inhalt
5.1 Einleitung
5.2 Herbrand-Strukturen und Grundresolution
5.3 Unifikation und prädikatenlogische Resolution
5.4 Logische Programmierung: Prolog
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 7
Das Herbrand-Universum zu einer Skolem-Formel
• Angenommen, wir wollen die Erfüllbarkeit testen von
F1 = ∀x ∀y R(x) ∧ (P (x) ∨ ¬R(y) ∨
¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y)))
• Was wissen wir über Modelle A von F1 ?
• Sie müssen Elemente aA, bA enthalten
• Sie müssen auch Elemente f A(aA),
f A(bA), g A(aA, aA), g A(aA, bA),
g A(bA, aA), g A(bA, bA) enthalten
• Sie müssen Elemente wie f A(f A(aA)),
f A(g A(aA, aA)), g A(f A(aA), aA)
•
•
enthalten usw.
Welche dieser Elemente gleich sind, wissen wir nicht
Herbrand verfolgte einen syntaktischen Ansatz:
Versuche ein Modell zu konstruieren, dessen
Grundmenge U genau aus allen Termen besteht,
die sich aus den Konstantensymbolen a, b, dem
1-stelligen Funktionssymbol f und dem 2-stelligen
Funktionssymbol g bilden lassen
Kurz-Bio: Jacques Herbrand
• Geboren: 12.2.1908 in Paris
• Studium in Paris
• Forschungsaufenthalte in Hamburg
•
• Also: a, b, f (a), f (b), g(a, a), g(a, b),
g(b, a), g(b, b), f (f (a)), f (g(a, a)), . . .
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
und Göttingen
Am 27.5.1931 beim Bergsteigen in
den franz. Alpen tödlich
verunglückt
Folie 8
Das Herbrand-Universum zu einer Skolem-Formel (Forts.)
• Welches Universum wählen wir für
F2 = ∀x P (x) ∧ ¬P (f (x))?
• Kleines Problem: die Formel hat keine
Konstantensymbole
➞ Wir konstruieren U aus dem Symbol a
• Also: U =def alle Terme, die sich aus a, f bilden
lassen:
a, f (a), f (f (a)), f (f (f (a))), . . .
Definition
• Das Herbrand-Universum D(F ) zu einer Formel
F besteht aus allen Termen, die sich aus den in F
vorkommenden Konstantensymbolen und
Funktionssymbolen bilden lassen
• Falls F keine Konstantensymbole enthält, wird a
als Konstantensymbol hinzugenommen
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 9
Herbrand-Strukturen
• Unser Ziel: Modelle für Formeln finden
• Erster Schritt: Grundmenge festlegen X
• Angenommen, wir haben eine Formel mit
einem Funktionssymbol f und das
Herbrand-Universum a, f (a), . . .
• Zweiter Schritt: Konstanten festlegen
– Wie soll in A die Konstante aA definiert
sein?
– Wir wählen das nahe Liegende:
aA := a
• Dritter Schritt: Funktionen auf der
Grundmenge festlegen
– Wie soll in A dann f A(a) definiert
sein?
– Wir wählen auch hier das nahe Liegende:
f A(a) := f (a)
• Sei F eine geschlossene Skolem-Formel
• Eine Struktur A heißt Herbrand-Struktur
für F , falls gilt:
– Die Grundmenge von A ist D(F )
– Ist c ein Konstantensymbol von F , so
ist cA = c
– Ist f ein k-stelliges Funktionssymbol
von F und sind
t1 , . . . , tk ∈ D(F ), so ist
f A(t1 , . . . , tk) = f (t1 , . . . , tk)
• Herbrand-Strukturen unterscheiden sich also
nur bezüglich ihrer Relationen
• Ein Herbrand-Modell einer Formel ist ein
– Zu beachten:
∗ f A(a) bezeichnet hier den
Funktionswert von f A an der Stelle a
∗ f (a) ist ein Element des
Herbrand-Universums
Logik für Inf. / Schwentick / WiSe 07/08
Definition
Modell, das eine Herbrand-Struktur ist
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 10
Satz von Löwenheim-Skolem
Satz 5.1 [Lowenheim-Skolem]
• Jede PL-Formel hat genau dann ein Modell, wenn sie ein Modell
mit abzählbarer Grundmenge hat
Beweisskizze
• Die Richtung „⇐“ ist klar
• Für „⇒“ sei zunächst F = ∀x1 · · · ∀xl G eine zur
•
•
•
•
gegebenen Formel erfüllbarkeitsäquivalente geschlossene
Skolem-Formel
Wir zeigen: Hat F ein Modell, so auch ein Herbrand-Modell H
Klar: Herbrandmodelle haben abzählbare Grundmengen
Sei also A ein Modell für F mit Grundmenge A
Wir konstruieren H wie folgt:
– Grundmenge D(F ), Konstanten, Funktionen gemäß
Definition von Herbrand-Strukturen
– Falls F keine Konstanten enthält, bezeichne aA ein beliebig
gewähltes Element aus A
– Ist P ein k-stelliges Relationssymbol von F und sind
t1 , . . . , tk ∈ D(F ), so sei P H definiert durch:
A
A
(t1 , . . . , tk) ∈ P H ⇐⇒ (tA
1 , . . . , tk ) ∈ P
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 11
Satz von Löwenheim-Skolem: Beweis (Forts.)
Beweisskizze (Forts.)
• Zur Erinnerung:
– F = ∀x1 · · · ∀xl G
A
A
– (t1 , . . . , tk) ∈ P H ⇐⇒ (tA
1 , . . . , tk ) ∈ P
• Wir zeigen durch Induktion nach l: H |= F
• l = 0:
➞ F quantorenfrei
➨ H |= F , da nach Konstruktion:
H |= P (t1 , . . . tk) ⇐⇒ A |= P (t1 , . . . tk)
• l > 0:
– Sei F 0 =def ∀x2 · · · ∀xl G
➨ Für jedes u ∈ A gilt: (A, x1 7→ u) |= F 0
– Insbesondere gilt dies für jedes u, zu dem es einen Term t
gibt mit tA = u
➨ Für jeden Term t gilt: A |= F 0[x1 /t]
– Da F 0 [x1 /t] nur l − 1 Quantoren hat, folgt nach Induktion:
H |= F 0[x1 /t], für jeden Term t
➨ Für jedes t ∈ D(F ) gilt: (H, x1 7→ t) |= F 0
➨ H |= ∀x1 F 0, also: H |= F
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 12
Leopold Löwenheim und Thoralf Skolem
Kurz-Bio: Leopold Löwenheim
•
•
•
•
•
Geboren: 26.6.1878 in Krefeld
Studium in Berlin
Mathematik-Lehrer ab 1906
Teilnahme am ersten Weltkrieg 1915/1916
Kurz-Bio: Thoralf Skolem
•
•
•
•
Geboren: 23.5.1887 in Oslo
Studium in Oslo (Kristiania) ab 1905
Dozent in Oslo und Bergen
Gestorben: 23.3.1963 in Oslo
Als „Nicht-Arier“ 1934 aus dem Schuldienst
entlassen
• 1946-1949: Lehrer in Berlin
• Gestorben: 5.5.1957 in Berlin
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 13
Herbrand-Expansionen
• Um die Erfüllbarkeit einer PL-Formel zu testen, können wir
also:
– sie in eine erfüllbarkeitsäquivalente geschlossene
Skolem-Formel F umwandeln, und
– testen, ob F ein Herbrand-Modell hat
• Für letzteres müssen wir herausfinden, ob Relationen über
D(F ) so konstruiert werden können, dass F wahr wird
• Wir werden jetzt sehen, wie sich diese letzte Frage mit
aussagenlogischer Resolution (partiell) beantworten lässt
• Dazu definieren wir:
Definition
• Sei F = ∀x1 · · · ∀xl G eine geschlossene
Skolem-Formel mit Matrix-Formel G
• Die Herbrand-Expansion E(F ) von F sei die folgende
Menge von PL-Formeln:
{G[x1 /t1 , . . . , xl/tl] | t1 , . . . , tl ∈ D(F )}
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 14
Herbrand-Expansionen: Beispiele
Beispiel
• Für F2 = ∀x P (x) ∧ ¬P (f (x)) gilt:
– D(F ) = {a, f (a), f (f (a)), f (f (f (a))), . . .}
– E(F ) =
{P (a) ∧ ¬P (f (a)),
wegen x 7→ a
P (f (a)) ∧ ¬P (f (f (a))),
wegen x
7→ f (a)
P (f (f (a))) ∧ ¬P (f (f (f (a)))),
wegen x
7→ f (f (a))
P (f (f (f (a)))) ∧ ¬P (f (f (f (f (a))))), wegen x 7→ f (f (f (a)))
. . .}
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 15
Herbrand-Expansionen: Beispiele (Forts.)
Beispiel
• Für F1 = ∀x ∀y R(x) ∧ (P (x) ∨ ¬R(y) ∨ ¬R(f (a)))∧
(¬P (b) ∨ ¬R(g(b, y))) gilt:
– D(F ) = {a, b, f (a), f (b), g(a), g(b),
f (f (a)), f (f (b)), f (g(a)), f (g(b)), g(f (a)), . . .}
– E(F ) =
{R(a) ∧ (P (a) ∨ ¬R(a) ∨ ¬R(f (a)))∧(¬P (b) ∨ ¬R(g(b, a))),
wegen x 7→ a, y 7→ a
R(b) ∧ (P (b) ∨ ¬R(a) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, a)))
wegen x 7→ b, y 7→ a
R(b) ∧ (P (b) ∨ ¬R(b) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, b)))
wegen x 7→ b, y 7→ b
R(a) ∧ (P (a) ∨ ¬R(b) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, b)))
wegen x 7→ a, y 7→ b
R(f (a)) ∧ (P (f (a)) ∨ ¬R(a) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, a)))
wegen x 7→ f (a), y 7→ a
R(f (a)) ∧ (P (f (a)) ∨ ¬R(b) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, b)))
wegen x 7→ f (a), y 7→ b
. . .}
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 16
Satz von Gödel, Herbrand, Skolem
• In der Herbrand-Expansion kommen keine
prädikatenlogischen Variablen mehr vor
➞ Um ein Modell für F zu konstruieren genügt es, eine
Wahrheitsbelegung für die atomaren Formeln von
E(F ) zu finden, die alle Formeln in E(F ) wahr
macht
➞ Das ist ein aussagenlogisches Erfüllbarkeitsproblem
mit unendlich vielen aussagenlogischen Variablen
• Wir sagen: E(F ) ist aussagenlogisch erfüllbar,
wenn es eine Belegung der atomaren Formeln von
E(F ) mit Wahrheitswerten gibt, die alle Formeln in
E(F ) erfüllt
• Dann erhalten wir folgenden Satz
Satz 5.2 [Gödel, Herbrand, Skolem]
• Eine geschlossene Skolemformel F ist genau dann
erfüllbar, wenn E(F ) aussagenlogisch erfüllbar ist
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 17
Erfüllbarkeitstest für prädikatenlogische Formeln
Alg. 5.3 [Grundresolutionsalgorithmus]
• Wenn eine Formel F unerfüllbar ist, lässt
sich also aus E(F ) die leere Klausel per
•
Eingabe: PL-Formel F
Ausgabe: „unerfüllbar“, falls F unerfüllbar ist,
(aussagenlogischer) Resolution herleiten
andernfalls keine Termination
1: Wandle F in eine erfüllbarkeitsäquivalente
Wenn eine Formel F erfüllbar ist, hilft uns
geschlossene Formel G in Skolemform um
die AL-Resolution nicht weiter, da wir nicht in
2: M := ∅, i := 0
endlich vielen Schritten ein (unendliches)
3: while true do
Modell konstruieren können
• Immerhin erhalten wir aus dem Bisherigen
den folgenden Algorithmus, der herausfindet,
ob eine PL-Formel unerfüllbar ist
7:
i := i + 1
Gi := i-te Formel von E(G)
M := M ∪ {Gi}
if M ist aussagenlogisch unerfüllbar
8:
then
Return „unerfüllbar“,
4:
5:
6:
• Bemerkung: der folgende Algorithmus heißt
Grundresolutionsalgorithmus, weil er nur
Grundterme verwendet (im Gegensatz zur
prädikatenlogischen Resolution)
Logik für Inf. / Schwentick / WiSe 07/08
• Wir sagen, dass das Unerfüllbarkeitsproblem
für PL-Formeln semi-entscheidbar ist, weil
es einen Algorithmus gibt, der
– für unerfüllbare Formeln anhält und
„unerfüllbar“ ausgibt und
– für erfüllbare Formeln nicht terminiert
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 18
Grundresolutionsalgorithmus: Erstes Beispiel
Beispiel
• Sei F2 = ∀x P (x) ∧ ¬P (f (x))
• D(F ) = {a, f (a), f (f (a)), f (f (f (a))), . . .}
• E(F ) =
{P (a) ∧ ¬P (f (a)),
P (f (a)) ∧ ¬P (f (f (a))),
. . .}
{P (f (a))}
wegen x
wegen x
7→ a
7 f (a)
→
{¬P (f (a))}
∅
• Leider wird nicht immer so schnell eine unerfüllbare
Klauselmenge erreicht
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 19
Grundresolutionsalgorithmus: Zweites Beispiel
Beispiel
• Sei F1 = ∀x ∀y R(x) ∧ (P (x) ∨ ¬R(y) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y)))
• D(F ) = {a, b, f (a), g(a, a), f (b), g(a, b), g(b, a), g(b, b), f (f (a)), . . .}
• E(F ) = {R(a) ∧ (P (a) ∨ ¬R(a) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, a)))
wegen x 7→ a, y 7→ a (1)
···
···
R(f (a)) ∧ (P (f (a)) ∨ ¬R(a) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, a)))
wegen x 7→ f (a), y 7→ a (5)
···
···
R(b) ∧ (P (b) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, f (a))))
wegen x 7→ b, y 7→ f (a) (8)
···
···
R(g(b, a)) ∧ (P (g(b, a)) ∨ ¬R(a) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, a)))
wegen x 7→ b, y 7→ f (a) (26)
···}
{P (b), ¬R(f (a))}
{R(f (a))}
{R(g(b, a))}
{¬P (b), ¬R(g(b, a))}
{¬P (b)}
{P (b)}
∅
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 20
Grundresolutionsalgorithmus: Zweites Beispiel (Forts.)
• In diesem Beispiel ergibt also erst die 26. Iteration des
Grundresolutionsalgorithmus die Ausgabe „unerfüllbar“
• Einige Beobachtungen bezüglich des Resolutionsbeweises
{P (b), ¬R(f (a))} {R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))}
{P (b)}
{¬P (b)}
∅
(1) Die Klausel {R(x)} haben wir zweimal verwendet
(2) Der Resolutionsschritt auf der linken Seite verwendet die PL-Klauseln
(a) P (x) ∨ ¬R(y) ∨ ¬R(f (a)) mit Substitution x 7→ b, y 7→
(b) R(x) mit Substitution x 7→ f (a)
f (a),
– Die Variable x wird hier also in den beiden Klauseln auf verschiedene Weise
substituiert
– Durch die Substitution verringert sich die Anzahl der Literale in der ersten
Klausel
• Im Folgenden werden wir sehen, wie solche Substitutionen und dann auch
Resolutionsbeweise gezielter gefunden werden können
• Dies führt uns zur prädikatenlogischen Resolution
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 21
Inhalt
5.1 Einleitung
5.2 Herbrand-Strukturen und Grundresolution
5.3 Unifikation und prädikatenlogische Resolution
5.4 Logische Programmierung: Prolog
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 22
PL-Resolution: Vorüberlegungen
• Erfüllbarkeit von F2 = ∀x P (x) ∧ ¬P (f (x)):
• Grundresolution ist eine Art Brute-Force-Ansatz:
– D(F ) = {a, f (a), f (f (a)), f (f (f (a))), . . .}
– E(F ) = {P (a) ∧ ¬P (f (a)),
wegen x 7→ a
P (f (a)) ∧ ¬P (f (f (a))), wegen x 7→ f (a)
. . .}
{P (f (a))}
{¬P (f (a))}
∅
• Könnten wir nicht zielgerichteter vorgehen?
– Matrixklauselform von F2 : {P (x)}, {¬P (f (x))}
{P (x)}
{¬P (f (x))}
x 7→ a
x 7→ f (a)
{P (f (a))}
{¬P (f (a))}
∅
• Dieses Zusammenspiel von Substitutionen und Resolutionsschritten ist die
Grundidee der prädikatenlogischen Resolution
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 23
PL-Resolution: Vorüberlegungen (Forts.)
• Erfüllbarkeit von F1 = ∀x ∀y R(x)∧
(P (x) ∨ ¬R(y) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y)))
• Matrixklauselform von F1 :
{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}
{¬P (b), ¬R(g(b, y))}
y 7→ a
{R(x)}
x 7→ g(b, a)
{P (x), ¬R(y), ¬R(f (a))}
x 7→ b
x 7→ f (a)
y 7→ f (a)
{R(g(b, a))}
{¬P (b), ¬R(g(b, a))}
{P (b), ¬R(f (a))}
{R(f (a))}
{¬P (b)}
{P (b)}
∅
• Wichtigster Schritt: Substitutionen auf zwei Klauseln anwenden, so dass zwei
unifizierbare Literale entstehen (und möglichst außerdem mehrere Literale
zusammen fallen)
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 24
PL-Resolution: Vorüberlegungen (Forts.)
• Ein weiteres Beispiel: {¬R(x)}, {R(f (y)), P (y)}, {¬P (x), ¬P (f (b))}
{¬R(x)}
x→
7 f (a)
{¬R(f (a))}
{R(f (y)), P (y)}
y 7→ a
{¬P (x), ¬P (f (b))}
x 7→ f (b)
{¬P (f (b))}
{R(f (a)), P (a)}
{P (a)}
???
• Problem: Die Festlegung auf a im ersten Schritt war eigentlich unnötig
• Besser:
{¬R(x)}
{R(f (y)), P (y)} {¬P (x), ¬P (f (b))}
x 7→ f (z)
{¬R(f (z))}
y 7→ z
{R(f (z)), P (z)}
x 7→ f (b)
{P (z)}
z→
7 f (b)
{P (f (b))}
{¬P (f (b))}
∅
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 25
Rechnen mit Substitutionen
• Substitutionen:
Zur Erinnerung: PL-Substitutionen sind partielle Funktionen PV → PT
Schreibweise: σ = {x 7→ a, y 7→ f (b), z 7→ x}
Alle Zuordnungen einer Substitution σ werden simultan angewendet
Ist σ(x) für eine Variable nicht definiert, so bleibt die Variable durch die
Anwendung der Substitution unverändert
– Die beiden folgenden Fälle haben also die gleiche Wirkung:
∗ σ(x) ist nicht definiert und
–
–
–
–
∗ σ(x) = x
• Komposition von Substitutionen:
– τ ◦ σ bezeichnet die Substitution, die durch Hintereinanderausführung von
(zuerst) σ und (dann) τ entsteht
– {x 7→ a, y 7→ f (b), z 7→ y} ◦ {u 7→ f (x), v 7→ g(y), y 7→ b} =
{u 7→ f (a), v 7→ g(f (b)), x 7→ a, y 7→ b, z 7→ y}
• Komposition von Substitutionen und Belegungen:
– Ist A eine Struktur mit aA = 1, bA = 4, f A(3) = 5,
σ = {x 7→ a, y 7→ f (u), z 7→ x},und
β = {x 7→ 2, u 7→ 3}, so gilt:
∗ JxK(A,β◦σ) = 1
∗ JyK(A,β◦σ) = 5
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 26
Unifikatoren
• Wir betrachten jetzt das folgende
algorithmische Problem:
– Gegeben eine Menge von
prädikatenlogischen Literalen
L1 , . . . , Lm, finde eine Substitution s,
die σ(L1 ) = · · · = σ(Lm) erfüllt
Beispiel
•
•
•
•
L1 = R(x, a, y),
L2 = R(f (z), u, b),
L3 = R(v, u, w)
Die Substitution σ1 :
u 7→
a
v 7→ f (a)
w 7→
b
x 7→ f (a)
y 7→
b
z 7→
a
bildet alle Literale auf R(f (a), a, b) ab
Logik für Inf. / Schwentick / WiSe 07/08
• Eine solche Substitution heißt Unifikator
• Um uns möglichst viele Möglichkeiten zu
erhalten, interessieren wir uns für
Unifikatoren, die möglichst wenige
Festlegungen treffen
Definition
• Eine Substitution σ heißt Unifikator der
Literale L1 , . . . , Lm, falls
σ(L1 ) = · · · = σ(Lm) gilt
• σ heißt allgemeinster Unifikator für
L1 , . . . , Lm, falls für jeden Unifikator
σ1 von L1 , . . . , Lm eine Substitution
σ2 existiert mit σ1 = σ2 ◦ σ
• Es muss natürlich nicht immer einen
•
•
Unifikator geben (Beispiele: nächste Folie)
Aber wenn es einen Unifikator gibt, dann
auch einen allgemeinsten Unifikator
Die Abkürzung MGU steht für „most general
unifier“
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 27
Unifikatoren (Forts.)
Beispiel
• Die Substitution σ :
u 7→
a
v 7→ f (z)
w 7→
b
x 7→ f (z)
y 7→
b
•
• Es muss natürlich nicht immer einen Unifikator geben
Beispiel
• Beispiele von Literalpaaren ohne Unifikator:
– Verschiedene Relationsnamen:
∗ P (a), R(y)
– Positives und negatives Literal:
∗ P (a), ¬P (y)
– Verschiedene Funktionssymbole:
∗ P (a, f (x)), P (y, g(b))
– Variablen-Rekursion:
∗ P (a, f (x)), P (y, x)
ist sogar ein MGU für
– L1 = R(x, a, y),
– L2 = R(f (z), u, b),
– L3 = R(v, u, w)
Beispielsweise lässt sich σ1 :
u
v
w
x
y
z
7→
a
7
→
f (a)
7→
b
7→ f (a)
7→
b
7→
a
schreiben als:
σ1 = {z 7→ a} ◦ σ
• Der folgende Unifikationsalgorithmus gibt „unerfüllbar“
•
•
•
aus, wenn er eine dieser Situationen vorfindet
Andernfalls gibt er einen allgemeinsten Unifikator aus
Auf einen Korrektheitsbeweis für den Algorithmus werden
wir verzichten
Anhand des folgenden Literal-Paares ist ersichtlich, dass
der MGU exponentiell groß werden kann:
R(x1 , x2 , . . . , xn−1 , xn )
– R(f (x2 , x2 ), f (x3 , x3 ), . . . , f (xn , xn ), a)
–
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 28
Der Unifikationsalgorithmus
Alg. 5.4 [Unifikationsalgorithmus]
Eingabe: Menge L 6= ∅ von PL-Literalen
Ausgabe: Allgemeinster Unifikator σ für L oder „nicht unifizierbar“
1: if es gibt ein positives und ein negatives Literal in L oder es
kommen verschiedene Relationssymbole in L vor then
2:
Return „nicht unifizierbar“
0
3: L := L, σ := ∅
0
4: while |L | > 1 do
5:
Wähle zwei Literale L1 , L2 in L0
6:
Seien z1 (in L1 ) und z2 (in L2 ) die ersten Zeichen, an denen
L1 und L2 verschieden sind
7:
if weder z1 noch z2 ist Variable then
8:
Return „nicht unifizierbar“
9:
if z1 ist Variable then
10:
Sei t der in L2 mit z2 beginnende Term
11:
if z1 kommt in t vor then
12:
Return „nicht unifizierbar“
13:
else
14:
15:
16:
17:
18:
σ := {z1 7→ t} ◦ σ
Wende z1 7→ t auf alle Literale in L0 an
else
Falls z2 Variable ist, analog
Return σ
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 29
Unifikationsalgorithmus: Beispiel
Beispiel
Beispiel
• L = {P (f (x), g(y, h(a, z))),
P (f (g(a, b)), g(g(u, v), w))}
• Also: |L0| = 2
• Sei
–
–
L1 = P (f (x), g(y, h(a, z)))
L2 = P (f (g(a, b)), g(g(u, v), w))
• z1 = x, z2 = g
• Also: t = g(a, b) und x kommt nicht in t
vor
➞ σ := {x 7→ g(a, b)}
• L0 = {P (f (g(a, b)), g(y, h(a, z))),
P (f (g(a, b)), g(g(u, v), w))}
• Immer noch: |L0| = 2
• Sei
–
–
L1 = P (f (g(a, b)), g(y, h(a, z)))
L2 = P (f (g(a, b)), g(g(u, v), w))
• z1 = y , z2 = g
• t = g(u, v) und y kommt in t nicht vor
Logik für Inf. / Schwentick / WiSe 07/08
➞ σ := {y 7→ g(u, v)} ◦ σ
• L0 =
{P (f (g(a, b)), g(g(u, v), h(a, z))),
P (f (g(a, b)), g(g(u, v), w))}
• Immer noch: |L0| = 2
• – L1 =
P (f (g(a, b)), g(g(u, v), h(a, z)))
– L2 = P (f (g(a, b)), g(g(u, v), w))
• z1 = h, z2 = w
• Also: t = h(a, z) und w kommt nicht in
t vor
➞ σ := {w 7→ h(a, z)} ◦ σ
• L0 =
{P (f (g(a, b)), g(g(u, v)), h(a, z))}
• Also: |L0| = 1
• Ausgabe: {x 7→ g(a, b), y 7→ g(u, v),
B: Prädikatenlogik - 5. Erfüllbarkeit
w 7→ h(a, z)}
Folie 30
Prädikatenlogische Resolventen
Definition
• Seien K, K 0 prädikatenlogische Klauseln
• Seien τ, τ 0 Variablenumbenennungen, so dass H =def τ (K)
und H 0 =def τ 0 (K 0 ) keine Variablen gemeinsam haben
• Seien L1 , . . . , Lk Literale in H und L01 , . . . , L0m Literale in
H 0, so dass {¬L1 , . . . , ¬Lk, L01 , . . . , L0m} unifizierbar ist
mit allgemeinstem Unifikator σ
• Dann heißt
σ((H − {L1 , . . . , Lk}) ∪ (H 0 − {L01 , . . . , L0m}))
prädikatenlogische Resolvente von K und K 0
Beispiel
{P (x), S(f (x), a)}
∅
{P (x), S(f (x), a)}
{x 7→ f (u)}
{¬P (f (x)), ¬P (y), ¬R(z)}
{x 7→ u}
{¬P (f (u)), ¬P (y), ¬R(z)}
{y 7→ f (u)}
{S(f (f (u)), a), ¬R(z)}
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 31
Das prädikatenlogische Resolutionslemma
Lemma 5.5 [PL-Resolutionslemma]
(1) Seien K, K 0 prädikatenlogische Klauseln
(2) Seien τ, τ 0 Variablenumbenennungen, so dass H =def τ (K)
und H 0 =def τ 0 (K 0 ) keine Variablen gemeinsam haben
(3) Seien L1 , . . . , Lk Literale in H und L01 , . . . , L0m Literale in
H 0, so dass {¬L1 , . . . , ¬Lk, L01 , . . . , L0m} unifizierbar ist
mit allgemeinstem Unifikator σ
(4) Sei K 00
= σ((H − {L1 , . . . , Lk})∪
(H 0 − {L01 , . . . , L0m}))
die prädikatenlogische Resolvente von K und K 0
(5) Sei A eine zu K 0 und K 00 passende Struktur
Dann gilt: Falls
(a) für alle Belegungen β : (A, β)
(b) für alle Belegungen β : (A, β)
|= K und
|= K 0,
so gilt auch für alle Belegungen β : (A, β) |= K 00
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 32
Das PL-Resolutionslemma: Illustration und Beweisidee
K = {. . . , L , . . .}
τ
H = {M1 , . . . , Mn ,L1 , . . . , Lk }
{. . . , L0 , . . .} = K 0
τ0
{L01 , . . . , L0m ,M10 , . . . , Ml0 } = H 0
σ
σ
K 00 = {M1 , . . . , Mn ,M10 , . . . , Ml0 }
• Sei A eine Struktur, so dass
(a) für alle passenden Belegungen β : (A, β)
(b) für alle passenden Belegungen β : (A, β)
|= K und
|= K 0,
• Sei β eine passende Belegung für K 00
• Zu zeigen: (A, β) |= K 00
• (a) ⇒ β ◦ σ ◦ τ macht ein Literal L aus K wahr
– 1. Fall: τ (L) = Mi, für ein i (oben: i = 1) ⇒ dann wird σ(Mi) in K 00 wahr
– 2. Fall: τ (L) = Li, für ein i (oben: i = 1)
➨ für alle i ist L0i falsch
➨ β ◦ σ ◦ τ 0 macht ein Literal L0 aus K 0 wahr und τ 0(L0) = Mj0 , für ein j
(oben: j = 1)
➨ Dann wird σ(Mj0 ) in K 00 wahr
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 33
Prädikatenlogisches Resolutionslemma: Beweis
Beweisskizze für Lemma 5.5
• Seien K, K 0, K 00 usw. wie im Lemma
vorgegeben
• Sei β eine passende Belegung für K 00
• Vorüberlegung:
– β ◦ σ ◦ τ ist eine zu K passende
Belegung
–
β ◦ σ ◦ τ 0 ist eine zu K 0 passende
Belegung
• Zu zeigen: (A, β) |= K 00
• Wegen (a) gilt:
(A, β ◦ σ ◦ τ ) |= K
➨ Es gibt ein Literal L in K mit
(A, β ◦ σ ◦ τ ) |= L
• (Andere Notation: JLK(A,β◦σ◦τ) =1)
• Wir unterscheiden die beiden Fälle:
(i) τ (L) ∈ H − {L1 , . . . , Lk}
(ii) τ (L) ∈ {L1 , . . . , Lk}
Logik für Inf. / Schwentick / WiSe 07/08
Beweisskizze (Forts.)
• Fall (i): τ (L) ∈ H − {L1 , . . . , Lk}
➨ L00 =def (σ ◦ τ )(L) ist Literal von K 00
und JL00 K(A,β) = J(σ ◦ τ )(L)K(A,β)
=JLK(A,β◦σ◦τ) =1
• Fall (ii): τ (L) ∈ {L1 , . . . , Lk}
• Sei i ≤ k mit τ (L) = Li
• Da σ Unifikator für ¬Li und alle L0j , folgt
σ(¬Li) = σ(L0j ) für alle j ≤ m
➨ für alle j ≤ m: JL0j K(A,β◦σ) = 0
➨ für alle L0 ∈ K 0 mit
τ 0(L0) ∈ {L01 , . . . , L0m} gilt:
JL0K(A,β◦σ◦τ 0 ) = 0
➨ wegen (b) gibt es L0 ∈ K 0 mit
τ 0(L0) 6∈ {L01 , . . . , L0m} und
JL0K(A,β◦σ◦τ 0 ) = 1
➨ L00 =def (σ ◦ τ 0)(L0) ist Literal von
K 00 mit JL00K(A,β) = 1
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 34
Das Lifting-Lemma
• Eine Substitution σ heißt Grundsubstitution für eine PL-Klausel
K , falls σ(K) keine Variablen mehr enthält
Lemma 5.6 [Lifting-Lemma]
• Seien K1 , K2 prädikatenlogische Klauseln mit
Grundsubstitutionen σ1 , σ2
• Seien K10 = σ1 (K1 ), K20 = σ2 (K2 )
• Dann gilt: falls K30 aussagenlogische Resolvente von K10 und
K20 ist, so gibt es eine PL-Resolvente K3 von K1 und K2 und
eine Grundsubstitution σ3 mit
σ3 (K3 ) = K30
K1
σ1
K10
K2
K3
σ3
σ2
K20
K30
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 35
Lifting-Lemma: Beispiel
• Der nicht schwierige aber etwas technische Beweis des Lifting-Lemmas findet
sich in [KuK]
• Wir geben die Idee hier anhand eines Beispiels wieder:
– K1 = {P (x, y), ¬R(g(x), f (y))}
– K2 = {R(x, y), R(g(a), z)}
K1 ={P (x, y), ¬R(g(x), f (y))}
x
y 7→
7→ a
u
x 7→ a
y 7→ b
K2 ={R(x, y), R(g(a), z)}
a ) (u )
(
g f
7→ 7→
x ,z
y
x 7→ g(a)
y, z 7→ f (b)
K3 ={P (a, u)}
K10 ={P (a, b), ¬R(g(a), f (b))}
u 7→ b
K20 ={R(g(a), f (b))}
K30 ={P (a, b)}
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 36
Prädikatenlogische Resolution
• Für PL-Klauselmengen K definieren wir:
– Res(K) =def K ∪ {K | K ist
PL-Resolvente zweier Klauseln aus K}
– Res0 (K)
=def K
– Resk(K)
=def Res(Resk−1 (K)),
– Res∞(K)
=def
[
für alle k
Res
k
≥1
(K)
k≥0
Satz 5.7 [PL-Resolutionssatz]
• Eine prädikatenlogische Formel F ist genau dann
unerfüllbar, wenn für ihre Matrixklauselform K gilt:
∅ ∈ Res∞(K)
• Für eine Klauselmenge K bezeichne ∀K im
Folgenden die Formel, die aus der KNF zu K durch
All-Quantifizierung aller vorkommenden Variablen
entsteht
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 37
Der Resolutionssatz der Prädikatenlogik: Beweis
Satz 5.7 [PL-Resolutionssatz]
• Eine prädikatenlogische Formel F ist
genau dann unerfüllbar, wenn für ihre
Matrixklauselform K gilt: ∅ ∈ Res∞(K)
Beweisskizze
• Korrektheit des PL-Resolutionskalküls:
Zu zeigen:
∅∈
Res∞(K)
⇒ F unerfüllbar
• Wir zeigen zuerst, dass aus dem
PL-Resolutionslemma für jede
PL-Klauselmenge K0 folgt:
∀K0 erfüllbar ⇒ ∀Res(K0) erfüllbar
– Sei A ein Modell für ∀K0
– Sei K ∈ Res(K0 ) Resolvente von
K1 , K2 ∈ K0
– Wegen Lemma 5.5 gilt dann:
Beweisskizze für Satz 5.7 (Forts.)
• Vollständigkeit des PL-Kalküls: Zu
zeigen:
F unerfüllbar ⇒ ∅ ∈ Res∞(K)
• Sei also F unerfüllbar
• Mit Satz 5.2 folgt, dass E(F ) unerfüllbar
ist
➨ ∅ ∈ Res∞(E(F ))
➨ Es gibt also einen aussagenlogischen
Resolutionsbeweis für ∅, der (endlich viele)
Klauseln aus E(F ) verwendet
• Durch Anwendung des Lifting-Lemmas auf
jeden einzelnen Resolutionsschritt lässt
sich daraus ein prädikatenlogischer
Resolutionsbeweis gewinnen
A |= ∀K
➨ A ist ein Modell für ∀Res(K0)
• Der Rest des Korrektheits-Beweises erfolgt
wie in Lemma 3.2 durch Induktion
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 38
Inhalt
5.1 Einleitung
5.2 Herbrand-Strukturen und Grundresolution
5.3 Unifikation und prädikatenlogische Resolution
5.4 Logische Programmierung: Prolog
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 39
Prolog: Beispiel
Beispiel
• Wir betrachten wieder das folgende Prolog-Programm:
ancestor(X,Y) :- parent(X,Y).
ancestor(X,Y) :- parent(X,Z),ancestor(Z,Y).
parent(bob,allen).
parent(dave,bob).
parent(fred,dave).
? :- ancestor(Y,allen).
• Konventionen in Prolog:
•
•
– Variablennamen beginnen mit Großbuchstaben
– Prädikate, Funktionen, Konstanten beginnen mit Kleinbuchstaben
Wir verwenden folgende Relations- und Konstantensymbole:
– P für parent, A für ancestor
– a für allen, b für bob, d für dave und f für fred
Umwandlung in Matrixklauselform ergibt:
– {¬P (x, z), ¬A(z, y), A(x, y)}
– {¬P (x, y), A(x, y)}
– {P (b, a)}, {P (d, b)}, {P (f, d)}
– {¬A(y, a)} (aus der Zielklausel)
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 40
Prolog: Beispiel (Forts.)
Beispiel
{¬P (x, y), A(x, y)}
{¬A(y, a)} {¬P (x, z), ¬A(z, y), A(x, y)}
{P (b, a)}
y 7→ x
y 7→ a
x 7→ z
y 7→ a
{¬A(x, a)} {¬P (x, z), ¬A(z, a), A(x, a)}
{¬P (x, z), ¬A(z, a)}
{P (f, d)}
{P (d, b)}
{¬P (z, a), A(z, a)}
{¬P (x, z), ¬P (z, a)}
z 7→ b
{¬P (x, b), ¬P (b, a)}
{¬P (x, b)}
• Komposition von y 7→ x und x 7→ d
liefert die „Lösung“ y
x→
7 d
{¬P (d, b)}
7→ d
∅
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 41
Ein komplizierteres Prolog-Beispiel
• Eine leicht modifizierte Version des Affe-Stuhl-Banane-Beispiels aus Kapitel 1:
(1) Wenn der Affe die Banane greifen kann, kann er sie auch essen
(2) Ist der Stuhl in der Mitte des Raumes und ist der Affe auf dem Stuhl, so kann
er die Banane greifen
(3) Befinden sich der Affe und der Stuhl an derselben Position des Raumes, so
kann der Affe auf den Stuhl steigen
(4) Befinden sich der Affe und der Stuhl an derselben Position des Raumes, so
kann der Affe den Stuhl zu einer anderen Position schieben
(5) Der Affe kann zur Position des Stuhles laufen
• Wir wollen ein Prolog-Programm entwerfen, das nicht nur testet, ob der Affe
die Banane essen kann, sondern auch einen Plan dafür findet
• Dazu verwenden wir:
– Terme, die verschiedene Zustände unseres Szenarios repräsentieren:
state(PosAffe,AufStuhl,PosStuhl,HatBanane)
door
Funktions- door
true
true
window
window
symbol
false
false
middle
middle
– das Prädikat can_eat(State,Actions) mit der intuitiven Bedeutung:
Von State aus kann der Affe mit Actions zum Verzehr der Banane
kommen
– das Prädikat reach(Actions), das wahr werden soll, wenn der Affe mit
Actions aus der Situation mit dem Stuhl an der Tür und dem Affen am
Fenster zum Verzehr gelangen kann
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 42
Ein komplizierteres Prolog-Beispiel (Forts.)
(1) Wenn der Affe die Banane greifen kann, kann er sie auch essen
(2) Ist der Stuhl in der Mitte und der Affe auf dem Stuhl, so kann er die Banane greifen
(3) Befinden sich der Affe und der Stuhl an derselben Position des Raumes, so kann der Affe
auf den Stuhl steigen
(4) Befinden sich der Affe und der Stuhl an derselben Position des Raumes, so kann der Affe
den Stuhl zu einer anderen Position schieben
(5) Der Affe kann zur Position des Stuhles laufen
state(PosAffe,AufStuhl,PosStuhl,HatBanane)
door
window
middle
(1’)
(2’)
(3’)
(4’)
(5’)
(6’)
(7’)
true
false
door
window
middle
true
false
can_eat(state(X,Y,Z,true),eat).
can_eat(state(middle,true,middle,false),grasp(Act1)):can_eat(state(middle,true,middle,true),Act1).
can_eat(state(Pos,false,Pos,false),climb(Act2)):can_eat(state(Pos,true,Pos,false),Act2).
can_eat(state(Pos1,false,Pos1,false),push(NewPos,Act3)):can_eat(state(NewPos,false,NewPos,false),Act3).
can_eat(state(Pos2,false,ChairPos,false),go(NewPos1,Act4)):can_eat(state(NewPos1,false,ChairPos,false),Act4).
reach(Actions):can_eat(state(door,false,window,false),Actions).
? :- reach(Actions)
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 43
Ein komplizierteres Prolog-Beispiel (Forts.)
Beispiel
{R(x), ¬C(s(d, f, w, f ), x)}
{C(s(y, f, y 0 , f ), go(z, x)), ¬C(s(z, f, y 0 , f ), x)}
{¬R(x)}
{¬C(s(d, f, w, f ), x)}
w
y
{¬C(s(z, f, w, f ), x)}
{C(s(y, f, y, f ), c(x)), ¬C(s(y, t, y, f ), x)}
{C(s(m, t, m, f ), gr(x)), ¬C(s(m, t, m, t), x)}
{C(s(y, y 0 , y 00 , t), e)}
7→
7→
d
,y
7→
{C(s(y, f, y, f ), p(z, x)), ¬C(s(z, f, z, f ), x)}
y
x 7→ go(z, x)
0
w
x 7→ p(z, x), z 7→ w
{¬C(s(z, f, z, f ), x)}
x 7→ c(x), z 7→ y
y 7→ m
y 0 7→ t
y 00 7→ m
{¬C(s(y, t, y, f ), x)}
x 7→ gr(x)
y 7→ m
{¬C(s(m, t, m, t), x)}
x 7→ e
• Durch Komposition der Substitutionen ergibt sich die
Lösung x 7→ go(w, p(m, c(gr(e))))
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
∅
Folie 44
PL-Resolution: Einschränkungen
• Die PL-Resolution ist vollständig (Satz 5.7)
• Also: wenn eine Formelmenge unerfüllbar ist, findet
die PL-Resolution einen Beweis dazu
• Problem: es gibt oft sehr viele resolvierbare Klauseln
➞ viele Wege, die (möglicherweise) nicht zum Ziel
führen
• Wir betrachten jetzt Einschränkungen der
PL-Resolution
➞ kleinerer Suchraum
– Einige dieser Einschränkungen sind vollständig,
einige sind nur für Hornformeln vollständig
– Für Prolog wird in der Regel die SLD-Resolution
verwendet
• Danach betrachten wir systematische Suchstrategien
zum Auffinden von SLD-Resolutionen
• Wir folgen jetzt weitgehend dem Schöning-Buch
[Sch]
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 45
PL-Resolution: Vollständige Restriktionen
Beispiel: Lineare Resolution
• K bezeichne immer die gegebene
Klauselmenge
• P-Restriktion: eine der beiden verwendeten
{A, B}{A, ¬B} {¬A, B} {¬A, ¬B}
{A}
Klauseln darf nur positive Literale enthalten
{B}
• N-Restriktion: eine der beiden verwendeten
Klauseln darf nur negative Literale enthalten
{¬A}
• Lineare Restriktion: Der Resolutionsbeweis
besteht aus einer Folge K0 , . . . , Kn und
es gelten:
– K0 ∈ K,
– für jedes i > 0 ist Ki Resolvente von
Ki−1 und einer anderen Klausel (Kj
mit j < i oder aus K)
∅
Satz 5.8
• Resolution mit P-Restriktion, N-Restriktion
oder linearer Restriktion ist jeweils
vollständig
• Der Beweis kann zunächst für die
Aussagenlogik geführt und dann per
Lifting-Lemma auf die Prädikatenlogik
übertragen werden (siehe [Sch])
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 46
PL-Resolution: Unvollständige Restriktionen
• Input-Restriktion: Mindestens eine der beiden
verwendeten Klauseln muss immer aus K sein
• Einheits-Resolution: Mindestens eine der beiden
verwendeten Klauseln muss einelementig sein
• SLD-Resolution:
– Lineare Restriktion mit negativem K0 und
– Input-Restriktion
– (und eine Auswahlfunktion für das zu resolvierende
Literal in der jeweils aktuellen Zielklausel)
• Ein Beispiel für die SLD-Resolution haben wir schon
gesehen: Affe, Stuhl, Banane
Satz 5.9
(a) Resolution mit Input-Restriktion, Einheits-Resolution und
SLD-Resolution ist jeweils unvollständig
(b) Resolution mit Input-Restriktion, Einheits-Resolution und
SLD-Resolution ist jeweils vollständig für Hornklauseln
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 47
Logik-Programme
• Logik-Programme (Prolog-Programme) verwenden nur Hornklauseln:
Name
Klausel
Regel
Prozedurklauseln
{¬A1 , . . . , ¬An, B}
{B}
{¬A1 , . . . , ¬An}
B :- A1,...,An.
B.
? :- A1,...,An
Tatsachenklauseln
Zielklauseln
• Die SLD-Resolution startet mit der Zielklausel
• In jedem Schritt wird mit einer Prozedurklausel oder einer Tatsachenklausel
resolviert:
➞ Ein Atom der Zielklausel muss ausgewählt werden (mit der Auswahlfunktion)
➞ Eine passende Klausel für dieses Atom muss ausgewählt werden
• Um Variablendisjunktheit zu erreichen, genügt es, jeweils die Variablen in der
Prozedurklausel umzubenennen
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 48
SLD-Resolution: Berechnungen
• Wenn wir einen SLD-Beweis schrittweise
➞
aufbauen, haben wir also jeweils
– eine Zielklausel G und
– eine Substitution σ , die die bisherigen
Resolutionsschritte zusammenfasst
Konfiguration: (G, σ)
• Wir schreiben (G1 , σ1 ) `K (G2 , σ2 )
•
falls
– G2 durch Anwendung eines
Resolutionsschrittes mit einer Klausel
aus K aus (G1 , σ1 ) hervorgeht und
– σ2 = σ ◦ σ1 ist, wobei σ die auf G1
angewendete Substitution bezeichnet
Eine Berechnung eines Logik-Programmes
K mit Zielklausel G ist eine Folge
(G, [ ]) `K (G1 , σ1 ) `K
(G2 , σ2 ) `K · · ·
•
Beispiel
• Beispiel-Programm:
p(X,Z) :- q(X,Y), p(Y,Z).
p(U,U).
q(a,b).
? :- p(V,b).
({¬P (v, b)}, [ ])
`K ({¬Q(x, y), ¬P (y, b)}, [v/x])
`K ({¬P (b, b)}, [v/a])
`K (∅, [v/a])
• Lösung: v 7→ a
• (es gibt natürlich hier noch andere Lösungen)
(im Allgemeinen unendlich)
Erfolgreiche Berechnung:
(G, [ ]) `K (G1 , σ1 ) `K
· · · `K (∅, σn)
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 49
Vollständigkeit der SLD-Resolution für die PL: Präzisierung
• Das Verhältnis zwischen Folgerungen aus und Berechnungen von
•
Logik-Programmen lässt sich präzise beschreiben
Für eine Formel F = A1 ∧ · · · ∧ Ak und eine Substitution τ ,
die jeder Variablen von F einen Grundterm zuordnet, nennen wir
τ (F ) eine Grundinstanz von F
Satz 5.10 [Clark]
(a) Ist K die Klauselmenge zu einem Logik-Programm P mit
Zielklausel G von der Form ? :- A1,...,Ak und ist
(G, [ ]) `K · · ·K ` (∅, σ)
eine erfolgreiche Berechnung, so ist jede Grundinstanz von
σ(A1 ∧ · · · ∧ Ak) eine Folgerung aus P
(b) Ist für ein σ jede Grundinstanz von σ(A1 ∧ · · · ∧ Ak) eine
Folgerung aus P , so gibt es eine erfolgreiche Berechnung
(G, [ ]) `K · · ·K ` (∅, σ 0),
und eine Substitution σ 00 mit
σ(A1 ∧ · · · ∧ Ak) = σ 00(σ 0(A1 ∧ · · · ∧ Ak)
• Also: die Folgerungen aus einem Logik-Programm lassen sich
gerade durch erfolgreiche Berechnungen finden
• Der Beweis findet sich in [Sch]
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 50
Auswertungsstrategien
• Zu einem Logik-Programm und einer Zielklausel kann es viele verschiedene
Berechnungen geben
• In jedem Schritt gibt es zwei Wahlmöglichkeiten:
(1) Auswahl eines Literals in der (aktuellen) Zielklausel
(2) Auswahl der passenden Prozedurklausel
Beispiel
A :A :B :B.
B :C :C.
B,C.
D.
D.
?:-A,B,C
?:-A,B,C
E,F.
A,C.
?:-A,D,C
? ;- A,B,C
?:-A,C
?:-A,B,C
?:-A,E,F,C
• Die Reihenfolge der Auswertung hinsichtlich (1) ist egal
➞ Zu jeder erfolgreichen Berechnung gibt es eine äquivalente Berechnung, in der immer mit
dem ersten Literal resolviert wird
• In Prolog wird immer eine solche „Links-nach-rechts-Auswertung“ vorgenommen
➞ kanonische Berechnungen
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 51
Auswertungsstrategien (Forts.)
• Die möglichen kanonischen Berechnungen lassen sich etwas
kompakter in einem Baum darstellen:
Die Ebenen, in denen Literale ausgewählt werden, entfallen jeweils
Beispiel
1:
2:
3:
Z:
q(X,Z):-q(Y,Z), r(X,Y)
q(X,X).
r(b,c).
?:-q(X,c)
? :- q(X,c).
1
?:-q(Y,c),r(X,Y)
1
2
?:-q(V,c),r(Y,V),r(X,Y)
1
2
2
Ergebnis: X 7→ c
?:-r(X,c)
2
3
?:-r(Y,c),r(X,Y)
3
2
Ergebnis: X 7→ b
?:-r(X,b)
unendlich
nicht erfolgreich
• Der Baum kann mit Backtracking durchsucht werden
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 52
Auswertungsstrategien (Forts.)
• Zur systematischen Durchsuchung des Baumes
bieten sich (wie immer) zunächst zwei Strategien an:
– Breitensuche:
∗ Zuerst alle Kinder der Wurzel, dann alle Kinder
der Kinder usw.
∗ Auf diese Weise wird jede Lösung gefunden
∗ Aber es ist sehr aufwändig
– Tiefensuche:
∗ Immer zuerst im ersten Teilbaum suchen
∗ wenn er ganz durchsucht ist, im zweiten
Teilbaum weitersuchen usw.
∗ Das ist oft effizient und wird deshalb in Prolog
üblicherweise verwendet
∗ Problem: Die Auswertung eines unendlichen
Teilbaumes terminiert nicht!
➞ Das muss beim Schreiben von
Prolog-Programmen im Auge behalten
werden...
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 53
Zusammenfassung
• Es ist nicht leicht, die Erfüllbarkeit prädikatenlogischer Formeln zu
•
testen:
– Wir haben nur Semi-Entscheidungsverfahren für die
Unerfüllbarkeit kennen gelernt:
∗ Der Grundresolutionsalgorithmus führt das Problem auf einen
Unentscheidbarkeitstest für eine unendliche Menge
aussagenlogischer Klauseln zurück
∗ Die prädikatenlogische Resolution versucht, „direkt“ einen
Unerfüllbarkeitsbeweis zu finden
– Es gibt erfüllbare Formeln, die nur unendliche Modelle haben
– Allerdings: wenn es ein Modell gibt, so auch ein abzählbares
Logische Programmierung:
– Prolog-Programme verwenden nur Hornformeln
– Die Auswertung versucht, einen SLD-Resolutionsbeweis zu
finden
– Die Suchstrategie wählt immer das am weitesten links stehende
Literal für den nächsten Resolutionsschritt und verfolgt eine
Tiefensuche
• Mehr über wissensbasierte Systeme und logische Programmierung
lernen Sie in DVEW
Logik für Inf. / Schwentick / WiSe 07/08
B: Prädikatenlogik - 5. Erfüllbarkeit
Folie 54
Herunterladen