Gabriele Kern-Isberner LS 1 – Information Engineering WS 2014/15

Werbung
Logik
Gabriele Kern-Isberner
LS 1 – Information Engineering
TU Dortmund
Wintersemester 2014/15
WS 2014/15
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
1 / 263
PL – Prädikatenlogische Resolution
Übersicht Prädikatenlogik
8. Strukturen & Syntax
9. Modellierung und Normalformen
10. Erfüllbarkeit: Grundresolution
11. Prädikatenlogische Resolution
12. Logische Programmierung und Prolog
13. Weitere Ergebnisse
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
130 / 263
PL – Prädikatenlogische Resolution
Teil C
C – Prädikatenlogik (PL)
Kapitel 11: Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
131 / 263
PL – Prädikatenlogische Resolution
Übersicht Kapitel 11
11.1 Einleitung
11.2 Substitutionen
11.3 Vorüberlegungen
11.4 Unifikation
11.5 Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
132 / 263
PL – Prädikatenlogische Resolution
Einleitung
Übersicht Kapitel 11
11.1 Einleitung
11.2 Substitutionen
11.3 Vorüberlegungen
11.4 Unifikation
11.5 Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
133 / 263
PL – Prädikatenlogische Resolution
Einleitung
Prädikatenlogische Resolution: Einleitung (1/2)
Beispiel: Wiederholung
• Test der Erfüllbarkeit von ϕ2 = ∀x [P (x) ∧ ¬P (f (x))] mit
Grundresolution
• Ansatz:
– H(ϕ2 ) = {a, f (a), f (f (a)), f (f (f (a))), . . .}
– E(ϕ2 ) = {P (a) ∧ ¬P (f (a)), P (f (a)) ∧ ¬P (f (f (a))), . . .}
{P (f (a))} {¬P (f (a))}
Grundresolution ist ein Brute-Force-Ansatz:
• Sie erzeugt zuerst „wahllos“ Literale der Herbrand-Expansion und
versucht dann, passende Literale für Resolutionsschritte zu finden
Können wir zielgerichteter vorgehen?
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
134 / 263
PL – Prädikatenlogische Resolution
Einleitung
Prädikatenlogische Resolution: Einleitung (2/2)
Beispiel
• „Direkterer“ Resolutionsbeweis für die Unerfüllbarkeit von ϕ2 :
– Matrixklauselform von ϕ2 : {P (x)}, {¬P (f (x))}
{P (x)} {¬P (f (x))}
x 7→ a
x 7→ f (a)
{P (f (a))} {¬P (f (a))}
Die prädikatenlogische Resolution sucht in der Matrixklauselform gezielt
nach Paaren von Literalen, die nach Anwendung geeigneter Substitutionen
für einen Resolutionsschritt genutzt werden können.
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
135 / 263
PL – Prädikatenlogische Resolution
Substitutionen
Übersicht Kapitel 11
11.1 Einleitung
11.2 Substitutionen
11.3 Vorüberlegungen
11.4 Unifikation
11.5 Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
136 / 263
PL – Prädikatenlogische Resolution
Substitutionen
Substitutionen: Definition (1/3)
Wie bereits erwähnt, spielen Variablen in der Aussagenlogik und der
Prädikatenlogik völlig unterschiedliche Rollen:
• Aussagenlogische Variablen stehen für Wahrheitswerte
• Prädikatenlogische Variablen stehen für Elemente der Grundmenge
Dem entsprechend sind Substitutionen in Aussagenlogik und
Prädikatenlogik sehr verschieden:
• Aussagenlogische Substitutionen ordnen aussagenlogischen Variablen
jeweils aussagenlogische Formeln zu
• Prädikatenlogische Substitutionen ordnen prädikatenlogischen
Variablen jeweils Terme zu
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
137 / 263
PL – Prädikatenlogische Resolution
Substitutionen
Substitutionen: Definition (2/3)
Wir notieren Substitutionen häufig in der Form
σ = {x1 7→ t1 , . . . , xk 7→ tk }
Beispiel
• Sei L = ¬R(x, y, x)
• Für σ = {y 7→ g(b)} ist σ(L) = ¬R(x, g(b), x)
• Für σ = {x 7→ f (y)} ist σ(L) = ¬R(f (y), y, f (y))
• Für σ = {x 7→ f (y), y 7→ g(b)} ist σ(L) = ¬R(f (y), g(b), f (y))
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
138 / 263
PL – Prädikatenlogische Resolution
Substitutionen
Substitutionen: Definition (3/3)
Definition 11.14 (prädikatenlogische Substitution, σ(L))
• Eine prädikatenlogische Substitution ist eine partielle Funktion
σ : PV * PT
• Ist σ eine Substitution und L ein Literal, so bezeichnet σ(L) das
Literal, das aus L durch simultane Ersetzung aller Variablen x durch
σ(x) entsteht
– Dabei bleiben Variablen x, für die σ(x) undefiniert ist, unverändert
Zu beachten:
• Die Ersetzungen finden nicht nacheinander sondern simultan statt:
– Sowohl {x 7→ y, y 7→ a} als auch {y 7→ a, x 7→ y} bilden x auf y (und
nicht etwa auf a) ab
Substitutionen können auch auf beliebige Formeln angewendet werden
– Wir benötigen sie aber nur für Literale
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
139 / 263
PL – Prädikatenlogische Resolution
Substitutionen
Komposition von Substitutionen
Definition 11.15 (Komposition von Substitutionen)
Sind σ, τ Substitutionen, so bezeichnet τ ◦ σ die Substitution, die durch
Hintereinanderausführung von (zuerst) σ und (dann) τ entsteht.
Beispiel
• {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)),
y 7→ b,
x 7→ a,
z 7→ y}
• {x 7→ y} ◦ {y 7→ a} =
6 {y 7→ a} ◦ {x 7→ y}
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
140 / 263
PL – Prädikatenlogische Resolution
Substitutionen
Komposition: Substitutionen und Belegungen
Definition 11.16 (Komposition von Substitutionen und Belegungen)
Ist I = (A, β) eine Interpretation mit Belegung β : P V → A, und ist
σ : P V → P T eine Substitution, so bezeichnet β ◦ σ die Belegung, die
durch Hintereinanderausführung von (zuerst) σ und (dann) β (bzw. I für
Konstanten) entsteht.
Beispiel
• Ist A eine Struktur mit
– aA = 1, bA = 4, f A (3) = 5,
– β = {x 7→ 2, u 7→ 3}, und
– σ = {x 7→ a, y 7→ f (u), z 7→ x}
so gilt:
– [[x]](A,β◦σ) = 1
– [[y]](A,β◦σ) = 5
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
141 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
Übersicht Kapitel 11
11.1 Einleitung
11.2 Substitutionen
11.3 Vorüberlegungen
11.4 Unifikation
11.5 Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
142 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (1/8)
2. Beispiel zur Grundresolution (Wdh.)
• ∀x ∀y (R(x) ∧ (P (x) ∨ ¬R(y) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y))))
• Matrixklauselform:
{{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}}
• Grundresolution:
{P (b), ¬R(f (a))}
{R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))}
{P (b)}
{¬P (b)}
Wie gesagt: Die Grundresolution bildet zuerst die Herbrand-Expansion und
sucht dann nach resolvierbaren Paaren von Klauseln.
Bei der prädikatenlogischen Resolution starten wir mit den Klauseln der
Matrixklauselform und wenden Substitutionen an, die zu resolvierbaren
Paaren von Klauseln führen.
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
143 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (2/8)
2. Beispiel zur Grundresolution (Wdh.)
• ∀x ∀y (R(x) ∧ (P (x) ∨ ¬R(y) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y))))
• Matrixklauselform:
{{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}}
{P (x), ¬R(y), ¬R(f (a))}
x 7→ b
y 7→ f (a)
x 7→ f (a)
{P (b), ¬R(f (a))}
{¬P (b), ¬R(g(b, y))}
x 7→ g(b, a)
y 7→ a
{R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))}
{P (b)}
G. Kern-Isberner (TU Dortmund)
{R(x)}
Logik
{¬P (b)}
WS 2014/15
144 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (3/8)
Bei der prädikatenlogischen Resolution sollen also Substitutionen gezielt
angewendet werden, um Paare resolvierbarer Klauseln zu erzeugen.
Genauer: Auf eine Klausel K mit einem Atom A und eine Klausel K 0 mit
einem Atom ¬A0 werden Substitutionen σ und σ 0 so angewendet, dass
σ(A) = σ 0 (A0 ) gilt.
Wir müssen also gezielt nach Substitutionen suchen, die zwei (oder
mehrere) Atome in dasselbe Atom überführen.
• Das nennen wir Unifikation und die Kombination von σ und σ 0
Unifikator
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
145 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (4/8)
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
{R(f (a)), P (a)}
{¬P (x), ¬P (f (b))}
x 7→ f (b)
{¬P (f (b))}
{P (a)}
???
• In diesem Fall „scheitert“ die Resolution
• Aber: Die Festlegung auf a im ersten Schritt war eigentlich unnötig
• Besser wäre es, den Resolutionsschritt mit R(f (y)) statt mit R(f (a))
durchzuführen
– Dann entstünde die Resolvente {P (y)} und y könnte später durch f (b)
substituiert werden, um zu resolvieren
Die Grundresolution verwendet nur Grund-Substitutionen, die
prädikatenlogische Resolution erlaubt beliebige Substitutionen
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
146 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (5/8)
Ein weiteres Beispiel (Forts.)
• {¬R(x)}, {R(f (y)), P (y)}, {¬P (x), ¬P (f (b))}
{¬R(x)}
{R(f (y)), P (y)}
{¬P (x), ¬P (f (b))}
x 7→ f (y)
{¬R(f (y))}
x 7→ f (b)
{P (y)}
y 7→ f (b)
{P (f (b))}
G. Kern-Isberner (TU Dortmund)
Logik
{¬P (f (b))}
WS 2014/15
147 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (6/8)
Beobachtung: Hier werden voreilige Festlegungen vermieden, und die
Resolution führt zum Erfolg.
Also: Bei der Unifikation sollte möglichst zurückhaltend vorgegangen
werden, d.h.,
⇒ es sollten nicht mehr und stärkere Ersetzungen vorgenommen werden als
für den Resolutionsschritt unbedingt nötig.
Nebenbei bemerkt: Wenn bei der Unifikation innerhalb einer der beiden
Klauseln mehrere Literale zusammen fallen, ist dies ein angenehmer
Nebeneffekt.
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
148 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (7/8)
2. Beispiel zur Grundresolution (Wdh.)
• {{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}}
{P (x), ¬R(y), ¬R(f (a))}
x 7→ b
y 7→ f (a)
{R(x)}
x 7→ f (a)
{P (b), ¬R(f (a))}
{¬P (b), R(g(b, y))}
x 7→ g(b, a)
y 7→ a
{R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))}
{P (b)}
{¬P (b)}
Weitere Beobachtungen:
(1) Klauseln können in Grundresolutionsbeweisen mehrfach verwendet werden
({R(x)})
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
149 / 263
PL – Prädikatenlogische Resolution
Vorüberlegungen
PL-Resolution: Vorüberlegungen (8/8)
2. Beispiel zur Grundresolution (Wdh.)
• {{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}}
{P (x), ¬R(y), ¬R(f (a))}
x 7→ b
y 7→ f (a)
{R(x)}
x 7→ f (a)
{P (b), ¬R(f (a))}
{¬P (b), R(g(b, y))}
x 7→ g(b, a)
y 7→ a
{R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))}
{P (b)}
{¬P (b)}
Weitere Beobachtungen:
(2) In einem Resolutionsschritt können Klauseln verwendet werden, die durch unterschiedliche
Substitutionen entstehen:
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→ f (a),
(b) {R(x)} mit Substitution x 7→ f (a)
– Beides ist erlaubt, da alle vorkommenden Variablen universell quantifiziert sind
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
150 / 263
PL – Prädikatenlogische Resolution
Unifikation
Übersicht Kapitel 11
11.1 Einleitung
11.2 Substitutionen
11.3 Vorüberlegungen
11.4 Unifikation
11.5 Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
151 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikatoren (1/4)
Als Hilfsmittel für die prädikatenlogische Resolution müssen wir das
folgende algorithmische Problem (möglichst effizient) lösen:
Unifikationsproblem
Gegeben: PL-Atome A1 , . . . , Am
Gesucht: Substitution σ mit σ(A1 ) = · · · = σ(Am )
Beispiel
• A1 = R(x, a, y),
A2 = R(f (z), u, b),
A3 = R(v, u, w)
σ0:
• Die Substitution
x 7→ f (a)
u 7→ a
y 7→ b
v 7→ f (a)
z 7→ a
w 7→ b
bildet alle Atome auf R(f (a), a, b) ab
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
152 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikatoren (2/4)
Definition 11.17 (Unifikator)
Eine Substitution σ heißt Unifikator der Atome A1 , . . . , Am , falls
σ(A1 ) = · · · = σ(Am ) gilt.
Um uns im Rahmen eines Resolutionsbeweises möglichst viele
Möglichkeiten für spätere Resolutionsschritte zu erhalten, interessieren wir
uns für Unifikatoren, die möglichst wenige Festlegungen treffen:
Definition 11.18 (allgemeinster Unifikator, MGU)
Ein Unifikator σ heißt allgemeinster Unifikator (MGU) für A1 , . . . , Am , falls
für jeden Unifikator σ1 von A1 , . . . , Am eine Substitution σ2 existiert mit
σ1 = σ2 ◦ σ.
Die Abkürzung MGU steht für „most general unifier“
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
153 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikatoren (3/4)
Beispiel
• Die Substitution σ:
• Die Substitution σ 0 (vorherige
Folie):
u 7→ a
v 7→ f (z)
w 7→ b
x 7→ f (z)
y 7→ b
u 7→ a
v 7→ f (a)
w 7→ b
x 7→ f (a)
y 7→ b
z 7→ a
ist ein MGU für
– A1 = R(x, a, y),
– A2 = R(f (z), u, b),
lässt sich schreiben als:
σ 0 = {z 7→ a} ◦ σ
– A3 = R(v, u, w)
und bildet alle Atome auf
R(f (z), a, b) ab
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
154 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikatoren (4/4)
Natürlich gibt es nicht für jede Menge von Atomen einen Unifikator:
Beispiel
Beispiele von Atompaaren ohne Unifikator:
• Verschiedene Relationsnamen:
– P (a), R(y)
• Verschiedene Funktionssymbole:
– P (a, f (x)), P (y, g(b))
• Variablen-Rekursion:
– P (a, f (x)), P (y, x)
Der Algorithmus auf der nächsten Folie entscheidet, ob die gegebene
Atommenge einen Unifikator hat; er
• berechnet einen allgemeinsten Unifikator oder
• gibt „nicht unifizierbar“ aus
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
155 / 263
PL – Prädikatenlogische Resolution
Unifikation
Der Unifikationsalgorithmus
Unifikationsalgorithmus
Eingabe: Menge L 6= ∅ von PL-Atomen
Ausgabe: Allgemeinster Unifikator σ für L oder „nicht unifizierbar“
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
if es kommen verschiedene Relationssymbole in L vor then
return „nicht unifizierbar“
L0 := L, σ := ∅
while |L0 | > 1 do
Wähle zwei Atome A1 , A2 in L0
Seien z1 (in A1 ) und z2 (in A2 ) die ersten Zeichen,
an denen A1 und A2 verschieden sind
if weder z1 noch z2 ist Variable then
return „nicht unifizierbar“
if z1 ist Variable then
Sei t der in A2 mit z2 beginnende Term
if z1 kommt in t vor then
return „nicht unifizierbar“
else
σ := {z1 7→ t} ◦ σ
Wende z1 7→ t auf alle Atome in L0 an
else
Falls z2 ist Variable: analog
return σ
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
156 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikationsalgorithmus: Beispiele (1/5)
Beispiel 1
• L = {P (f (x), g(y, h(a, z))), P (f (g(a, b)), g(g(u, v), w))}
• 1. Iteration: |L0 | = 2
• A1 = P (f (x), g(y, h(a, z)))
A2 = 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))}
• 2. Iteration: |L0 | = 2
• A1 = P (f (g(a, b)), g(y, h(a, z)))
A2 = P (f (g(a, b)), g(g(u, v), w))
• z1 = y, z2 = g
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
157 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikationsalgorithmus: Beispiele (2/5)
Beispiel 1 (Forts.)
• t = g(u, v) und y kommt in t nicht vor
→ σ := {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))}
• 3. Iteration: |L0 | = 2
• A1 = P (f (g(a, b)), g(g(u, v), h(a, z)))
A2 = 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))}
• 4. Iteration: |L0 | = 1
• Ausgabe: {x 7→ g(a, b), y 7→ g(u, v), w 7→ h(a, z)}
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
158 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikationsalgorithmus: Beispiele (3/5)
Beispiel 2
• L = {P (a, f (x)), P (y, g(b))}
• L0 = {P (a, f (x)), P (a, g(b))}
• Sei
• Sei
• 1. Iteration: |L0 | = 2
• 2. Iteration: |L0 | = 2
– A1 = P (a, f (x))
– A1 = P (a, f (x))
– A2 = P (y, g(b))
– A2 = P (a, g(b))
• z1 = a, z2 = y
• z1 = f, z2 = g
• Also: t = a und y kommt nicht
in t vor
→ σ := {y 7→ a}
G. Kern-Isberner (TU Dortmund)
• Weder z1 noch z2 ist Variable
⇒ Ausgabe: nicht unifizierbar
Logik
WS 2014/15
159 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikationsalgorithmus: Beispiele (4/5)
Beispiel 3
• L = {P (a, f (x)), P (y, x)}
• 1. Iteration: |L0 | = 2
• L0 = {P (a, f (x)), P (a, x))}
– A1 = P (a, f (x))
– A1 = P (a, f (x))
• 2. Iteration: |L0 | = 2
• Sei
• Sei
– A2 = P (y, x)
– A2 = P (a, x)
• z1 = a, z2 = y
• z1 = f, z2 = x
• Also: t = a und y kommt in t vor
→ σ := {y 7→ a}
G. Kern-Isberner (TU Dortmund)
• Also: t = f (x) und z2 = x
kommt in t vor
⇒ Ausgabe: nicht unifizierbar
Logik
WS 2014/15
160 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikationsalgorithmus: Beispiele (5/5)
Beispiel 4
• Sei die folgende Atommenge gegeben
– R(x1 , x2 , x3 , . . . , xn−1 , xn )
– R(f (x2 , x2 ), f (x3 , x3 ), f (x4 , x4 ), . . . , f (xn , xn ), a)
• Im ersten Schritt erhalten wir:
(x1 7→ f (x2 , x2 ))
• Im zweiten Schritt erhalten wir:
(x2 7→ f (x3 , x3 ))
• Im dritten Schritt erhalten wir:
(x3 7→ f (x4 , x4 ))
– R(f (x2 , x2 ), x2 , x3 , . . . , xn−1 , xn )
– R(f (x2 , x2 ), f (x3 , x3 ), f (x4 , x4 ), . . . , f (xn , xn ), a)
– R(f (f (x3 , x3 ), f (x3 , x3 )), f (x3 , x3 ), x3 , . . . , xn−1 , xn )
– R(f (f (x3 , x3 ), f (x3 , x3 )), f (x3 , x3 ), f (x4 , x4 ), . . . , f (xn , xn ), a)
– R(f (f (f (x4 , x4 ), f (x4 , x4 )), f (f (x4 , x4 ), f (x4 , x4 ))),
f (f (x4 , x4 ), f (x4 , x4 )), f (x4 , x4 ), x4 , . . . , xn−1 , xn )
– R(f (f (f (x4 , x4 ), f (x4 , x4 )), f (f (x4 , x4 ), f (x4 , x4 ))),
f (f (x4 , x4 ), f (x4 , x4 )), f (x4 , x4 ), f (x5 , x5 ), . . . , f (xn , xn ), a)
• Die Länge des ersten Terms des ersten Atoms wird in jedem Schritt ungefähr verdoppelt
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
161 / 263
PL – Prädikatenlogische Resolution
Unifikation
Unifikationsalgorithmus: Eigenschaften
MGUs zu einer Atommenge können exponentiell groß sein (im Verhältnis
zur Gesamtlänge der vorkommenden Atome).
Proposition 11.12
Der Unifikationsalgorithmus hat folgende Eigenschaften:
• Wenn eine Menge von Atomen unifizierbar ist, berechnet er einen
MGU für die Menge
• Andernfalls gibt er „unerfüllbar“ aus
• Er terminiert nach höchstens exponentiell vielen Schritten
Korollar 11.13
Jede unifizierbare Menge von Atomen hat einen allgemeinsten Unifikator.
Es gibt im Allgemeinen viele MGUs, die sich aber nur durch die
Benennung von Variablen unterscheiden
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
162 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Übersicht Kapitel 11
11.1 Einleitung
11.2 Substitutionen
11.3 Vorüberlegungen
11.4 Unifikation
11.5 Prädikatenlogische Resolution
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
163 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Prädikatenlogische Resolution: Beispiel
Beispiel
{¬R(x)}
{R(f (y)), P (z)}
x 7→ f (y)
{¬R(f (y))}
{P (z)}
Ein prädikatenlogischer Resolutionsschritt lässt sich auf zwei Klauseln K1
und K2 anwenden, wenn
•
•
•
•
in K1 ein Atom A1 vorkommt,
in K2 ein negiertes Atom ¬A2 vorkommt, und
A1 und A2 unifizierbar sind
(oder umgekehrt)
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
164 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Variablenumbenennungen (1/2)
Lassen sich die beiden Klauseln
– K1 = {R(x, u)}
– K2 = {P (x, y), ¬R(g(x), z)}
resolvieren?
Zunächst nicht, da R(x, u) und R(g(x), z) nicht unifizierbar sind.
Die Unifikation scheitert daran, dass beide Klauseln x verwenden.
Diese Variablengleichheit bedeutet aber nicht, dass x in K1 und K2 immer
denselben Wert annehmen muss, denn:
• x und die anderen Variablen sind ∀-quantifiziert
⇒ alle Klauseln müssen für alle Variablenbelegungen wahr werden
• In der Herbrand-Expansion würden beispielsweise R(g(a), a) und
¬R(g(a), a) entstehen, die resolvierbar sind
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
165 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Variablenumbenennungen (2/2)
An der Bedeutung der Klauseln ändert sich also nichts, wenn wir in K1 die
Variable x in v umbenennen.
⇒ Durch diese Umbenennung werden K1 und K2 dann resolvierbar.
Zu beachten:
• Wenn eine Variable in einer Klausel für einen Resolutionsschritt
umbenannt wird, dann müssen alle Vorkommen der Variablen in der
Klausel umbenannt werden
Eine Variablenumbenennung ist eine Substitution PV * PV
– Variablen werden also durch Variablen ersetzt (und nicht durch
beliebige Terme)
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
166 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Prädikatenlogische Resolventen (1/3)
Ein prädikatenlogischer Resolutionsschritt besteht also im Allgemeinen aus:
• Variablenumbenennungen und
• einer Unifikation
Beispiel
K = {P (x), S(f (x), a)}
K 0 = {¬P (f (x)), ¬P (y), ¬Q(z)}
τ 0 = {x 7→ u}
τ =∅
H = {P (x), S(f (x), a)}
H 0 = {¬P (f (u)), ¬P (y), ¬Q(z)}
{x 7→ f (u)}
{y 7→ f (u)}
R = {S(f (f (u)), a), ¬Q(z)}
Wir teilen hier in der Notation die Substitution σ = {x 7→ f (u), y 7→ f (u)}
in ihre Bestandteile auf.
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
167 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Prädikatenlogische Resolventen (2/3)
Definition 11.19 (prädikatenlogische Resolvente)
• 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 A1 , . . . , Ak Atome in H und ¬A01 , . . . , ¬A0m Literale in H 0 , so
dass {A1 , . . . , Ak , A01 , . . . , A0m } unifizierbar ist mit MGU σ
• Dann heißt R =def σ((H − {A1 , . . . , Ak }) ∪ (H 0 − {¬A01 , . . . , ¬A0m }))
prädikatenlogische Resolvente von K und K 0
K0
τ0
0
H
K
τ
H
σ
σ
R
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
168 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Prädikatenlogische Resolventen (3/3)
Beispiel (Whlg.)
K = {P (x), S(f (x), a)}
K 0 = {¬P (f (x)), ¬P (y), ¬Q(z)}
τ 0 = {x 7→ u}
τ =∅
H = {P (x), S(f (x), a)}
H 0 = {¬P (f (u)), ¬P (y), ¬Q(z)}
{x 7→ f (u)}
{y 7→ f (u)}
R = {S(f (f (u)), a), ¬Q(z)}
A1 = P (x), A01 = P (f (u)), A02 = P (y)
{P (x), P (f (u)), P (y)} unifizierbar mit MGU σ = {x 7→ f (u), y 7→ f (u)}
⇒ R = σ((H − {A1 }) ∪ (H 0 − {¬A01 , ¬A02 }))
= σ({S(f (x), a)} ∪ {¬Q(z)})
= {S(f (f (u)), a), ¬Q(z)}
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
169 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Prädikatenlogische Resolution: Beispiel
Beispiel
• Sei ϕ = ∃x ∀y ∀z [(P (y, f (z)) ∨ P (f (z), y)) ∧ ¬P (f (x), z)]
• Matrixklauselform: {{P (y, f (z)), P (f (z), y)}, {¬P (f (c), z)}}
{P (y, f (z)), P (f (z), y)}
{¬P (f (c), z)}
τ = {z 7→ x}
τ =∅
{P (y, f (z)), P (f (z), y)}
{¬P (f (c), x)}
{z 7→ c, y 7→ x}
{P (x, f (c))}
{x 7→ f (c)}
{¬P (f (c), z)}
{z 7→ f (c)}
• ϕ ist unerfüllbar, da wir mit PL-Resolution die leere Klausel herleiten
konnten
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
170 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
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)), für alle k ≥ 1
S
• Res∞ (K) =def k≥0 Resk (K)
Satz 11.14 (PL-Resolutionssatz)
Eine prädikatenlogische Formel ϕ ist genau dann unerfüllbar, wenn für ihre
Matrixklauselform K gilt: ∈ Res∞ (K).
Der Beweis des Resolutionssatzes wird in Kapitel 13 gegeben.
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
171 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Notation von Resolutionsbeweisen
Ab jetzt: kompaktere Darstellung in Resolutionsbeweisen:
• Variablenumbenennungen, Substitutionen und Übergang zur Resolventen
werden da in einem Schritt kombiniert
• Mengenklammern bei Substitutionen lassen wir weg
Beispiel
Statt
{¬A(y, a)}
{¬P (x, z), ¬A(z, y), A(x, y)}
τ 0 = {y 7→ u}
{¬A(y, a)}
{¬P (x, z), ¬A(z, u), A(x, u)}
{y 7→ x}
{u 7→ a}
{¬P (x, z), ¬A(z, a)}
schreiben wir also
{¬A(y, a)}
y 7→ x
G. Kern-Isberner (TU Dortmund)
{¬P (x, z), ¬A(z, y), A(x, y)}
y 7→ a
{¬P (x, z), ¬A(z, a)}
Logik
WS 2014/15
172 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Prädikatenlogische Resolution: Beispiel
In der kompakten Notation ergibt sich für das vorherige Beispiel dann:
Beispiel (Whlg.)
• Sei ϕ = ∃x ∀y ∀z [(P (y, f (z)) ∨ P (f (z), y)) ∧ ¬P (f (x), z)]
• Matrixklauselform: {{P (y, f (z)), P (f (z), y)}, {¬P (f (c), z)}}
{P (y, f (z)), P (f (z), y)}
{¬P (f (c), z)}
z 7→ c, y 7→ x
z 7→ x
{P (x, f (c))}
{¬P (f (c), z)}
x 7→ f (c)
z 7→ f (c)
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
173 / 263
PL – Prädikatenlogische Resolution
Prädikatenlogische Resolution
Zusammenfassung
Sie sollten die folgenden Themen und Techniken kennen und beherrschen:
• Es ist nicht leicht, die Erfüllbarkeit prädikatenlogischer Formeln zu
testen
• Wir haben zwei 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
G. Kern-Isberner (TU Dortmund)
Logik
WS 2014/15
174 / 263
Herunterladen