Beruflich Dokumente
Kultur Dokumente
Logikkalküle
Grundthema:
Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von
Wahrheitswerten bzw. Beweis logischer Formeln.
Definition: "Modell"
Sei A eine Basis von Elementaraussagen, F eine Formel über A sowie β : A→B eine
Belegung mit der Eigenschaft Iβ (F)=1. Dann heißt β ein Modell für F.
Definition: "erfüllbar"/"unerfüllbar"
Eine Formel, die (wenigstens) ein Modell besitzt heißt erfüllbar - sonst: unerfüllbar.
Definition: "gültig"
Eine Formel über A, für die jede Belegung von A ein Modell ist, heißt "gültig" oder
"eine Tautologie".
Nachfolgend ist für die drei Definition:en jeweils ein Beispiel gezeigt:
1
2.2 Normalformen (der Aussagenlogik)
Definition: "Literal"
Definition: "Normalformen"
a. Eine Formel heißt "in konjunktiver Normalform (KNF)", wenn sie die Form
n m
repräsentiert ist.
b. Eine Formel heißt "in disjunktiver Normalform (DNF)", wenn sie die Form
n m
repräsentiert ist.
Nachfolgend ist ein Beispiel für die Umformung einer Formel in DNF bzw. in KNF
gezeigt: Umformungsbeispiel
A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
2
DNF:
Betrachte alle Zeilen, für die Iβ(F)=1 ist und bilde eine Disjunktion von
Konjunktionen von Literalen, wobei alle in der Wahrheitswertetabelle mit 0 belegten
Literale negiert werden müssen:
KNF:
Betrachte alle Zeilen, für die Iβ(F)=0 ist und bilde eine Konjunktion von
Disjunktionen von Literalen, wobei alle in der Wahrheitswertetabelle mit 1 belegten
Literale negiert werden müssen:
Eine Formel D heißt Folgerung aus den Formeln F1, ... Fn über der Basis A, falls für
jede Belegung β : A→B gilt:
Wenn β |= Fi für alle i=1..n so auch β |= D.
Schreibweise: {F1, ..., Fn} |= D
Mit anderen Worten: Jede Belegung β, die ein Modell für {F1, ..., Fn} ist, ist auch ein
Modell für D.
Fi D ist gültig
i 1
bzw.
i 1
Unser Ziel ist ein algorithmisches Verfahren zur Bestimmung des Status (gültig /
unerfüllbar / erfüllbar) einer aussagenlogischen Formel.
Im Prinzip kann man die Erfüllbarkeit einer Formel immer mit Hilfe einer
3
Wahrheitswertetabelle nachweisen. Dies ist jedoch nicht immer zweckmäßig. Wollte
man z.B. die Erfüllbarkeit der Formel F1 = ((A∧ B→ O) ∧ (1 → A) ∧ (A∧ C → E) ∧
(A∧ F→ C) ∧ (1→ F)) über eine Wahrheitswertetabelle nachweisen, so müßte man 25
Fälle nachprüfen. Allgemein gilt: Wenn eine Formel F n verschiedene atomare
Formeln enthält, so muß man 2n Belegungen in der Wahrheitswertetabelle testen. Der
Aufwand kann dann schnell gewaltig werden. Für eine Formel mit 100 atomaren
Formeln wäre man selbst mit einem schnellen Rechner Tausende von Jahren
beschäftigt. Wir werden uns daher nachfolgend mit dem sog. Markierungsalgorithmus
beschäftigen, der einen sehr effizienten Erfüllbarkeitstest für Hornformeln darstellt.
Definition: "Hornformel"
Als Hornformel bezeichnen wir Formeln in KNF mit maximal einem nicht negierten
Literal pro Disjunktionsglied.
Die allgemeine Form der Disjunktionsglieder ergibt sich wie folgt:
D = (¬ A1 ∨... ∨ ¬ An∨ B)
≡ (¬ (A1 ∧ ... ∧ An) ∨ B)
≡ ((A1 ∧... ∧ An ) → B)
4
Falls F keine Klauseln der Form A1 ∧ ... ∧ An → 0 enthält, ist F erfüllbar.
Damit F1 erfüllbar ist, muß auf jeden Fall gelten: A=1, F=1. Daraus ergibt sich in der
Folge, daß auch C=1 gilt und daraus wiederum folgt, daß auch E=1 sein muß. Setzt
man zusätzlich B=0, so ist F1 erfüllt.
Beispiel 2:
F2 = ((A∧ E→ O) ∧ (1 → A) ∧ (A∧ C → E) ∧ (A∧ F→ C) ∧ (1→ F))
Damit F2 erfüllbar ist, müßte zunächst gelten: A=F=C=E=1. Daraus ergibt sich aber,
daß A∧ E→ 0 nicht erfüllt ist. Somit ist F2 nicht erfüllbar.
Definition: "Resolvente"
Seien K, K' Klauseln in Hornform und R eine Resolvente aus K, K'. Dann ist R
ebenfalls eine Hornklausel.
Beweis:
Seien
K={¬ A1, ..., ¬ Am, B}
K'={¬ A1', ..., ¬ Am', B'}
5
Damit überhaupt eine Resolvente von K, K' existiert muß gelten
B' = Ai für ein i∈ {1,...,n} oder
B = Ai' für ein i∈ {1,...,n}
6
Hinweis: Das ⊕ steht für die Ableitbarkeit eines Widerspruchs, das "minus"
entsprechend für die "Nicht-Ableitbarkeit" eines Widerspruchs.
Es genügt, sich auf Unerfüllbarkeitstests zu beschränken (zweites Bild), da eine
Formel F gültig ist genau dann, wenn ¬ F unerfüllbar ist. Um also die Gültigkeit einer
Formel F festzustellen, gibt man einfach ¬ F in einen Unerfüllbarkeitstest ein.
Beweis:
Sei F eine Formel über einer Basis Avon Elementaraussagen sowie β : A→B eine
Belegung. Dann ist F gültig g.d.w. für alle β gilt: Iβ (F)=1. Berechne
I F I F 0
g.d.w. ¬ F unerfüllbar.
Voraussetzung für die Anwendung der Resolution ist, daß die Formel in KNF
vorliegt, d.h. die Formel muß ggf. erst in KNF umgeformt werden. Für die
Anwendung der Resolution werden die Formeln, die in KNF vorliegen, in einer
anderen Notation geschrieben, der Mengenschreibweise:
Mengenschreibweise:
7
Definition: "Komplementäre Literale"
Sei L ein Literal. Wir definieren das komplementäre Literal wie folgt:
Resolvente
Zwei Klauseln können ggf. mehrere Resolventen bilden. Dies ist in nachfolgendem
Beispiel gezeigt.
Die Resolvente zweier Klauseln K1 und K2 stellt man grafisch wie folgt dar:
Resolutions-Lemma:
Es sei F eine Formel in KNF mit Klauseln K1, K2, die eine Resolvente R besitzen.
Dann gilt: F≡ F∪ {R}. Hinweis: Der Ausdruck F∪ {R} entspricht dem Ausdruck F∧
R.
Beweis: "Resolutionslemma"
8
I. Sei β |= F
Dann ist auch β |= K1, β |= K2
Es gilt entweder β |= L oder β |= L
Resolutionsverfahren:
Da die Menge der über einer gegebenen Basis A bildbaren Klauseln endlich ist, gibt
es ein n, so daß
Resm(F)=Resn(F) falls m ≥ n
=: Res*(F)
Beweis:
a. Korrektheit:
9
Für alle β : A→B gilt β |= K1 g.d.w.β |≠ K2. D.h. es gibt kein Modell für F.
2. Beispiel:
10
Somit ist die Formel F 2 unerfüllbar.
2.5 Prolog
Ein Prolog-Programm besteht aus Fakten und Regeln, die zusammen eine sog.
Daten- oder Wissensbasis bilden. Hinzu kommen noch Anfragen des Benutzers.
Fakten, Regeln und Anfragen sind aus der Prädikatenlogik bekannte Horn-
Klauseln.
Definition 14 (Klausel)
11
Definition 15 (Prädikat)
Ein Prädikat umfaßt alle Klauseln mit identischem Funktor und gleicher Stelligkeit
in der Datenbasis.
Fakten
Das Fakt person(karl) bedeutet, daß das Objekt karl die Eigenschaft
person besitzt. person ist der Funktor des Ausdrucks, karl das Argument.
Gemäß der Syntax von Prolog beginnt der Funktor mit einem Kleinbuchstaben,
gefolgt von beliebig vielen Buchstaben, Zahlen oder Unterstrichen. Darauf folgt
eine öffnende Klammer, die Argumente, durch Kommata getrennt, und eine
schließende Klammer. Fakten werden immer mit einem ``.``(Punkt)
abgeschlossen. (Syntax: Fakt)
% Die Frauen
% Die Maenner
hund(fido).
Hierbei handelt es sich um einstellige Fakten. Eine mehrstellige Relation ist zum
Beispiel die Eltern-Kind-Relation:
12
kind_von(gitte, gerd).
kind_von(gitte, lore).
kind_von(uli, gerd).
kind_von(uli, lore).
Zu beachten:
Fakten mit gleicher Stelligkeit und Funktor (und auch Regeln) müssen in
compilierenden Prolog-Systemen direkt untereinander stehen.
Anfragen
Definition 11 (Anfrage)
Der Anfrageprompt, den das Prolog-System zur Verfügung stellt, hat die Form
``?-``. Einige Beispiele zu unserer Familienwissensbasis:
?- hund(fido).
yes
?- person(karl).
yes
?- kind_von(uli, karl).
no
Komplexe Anfragen
13
denen Variable vorkommen, wie z.B. mutter( X ) .
vater(X) :-
kind_von(Y,X),
maennlich(X).
?- vater(X).
karl;
gerd;
no
?-
Das Prolog-System hat durch die Eingabe des ``;`` jeweils versucht, neue
Lösungen zu finden. Eine dritte Alternative konnte nicht gefunden werden.
Konjugierte Anfragen
Ist gitte Kind von lore und gerd Kind von uli?
Diese Anfrage besteht aus zwei Zielen, die es zu erfüllen gilt. Um die Anfrage zu
erfüllen, müssen beide Ziele erfüllt werden. Prolog versucht zunächst das erste
Ziel zu erfüllen und dann das zweite. Innerhalb von Anfragen (und auch dem
Regelrumpf) wird versucht, die Ziele von ``links nach rechts`` zu erfüllen.
Das logische ``Oder`` wird in Prolog durch das Semikolon `;' dargestellt.
Ist gitte Kind von lore oder gerd Kind von uli?
14
Diese Anfrage lautet in Prolog:
Der Prologinterpreter versucht nun, zunächst das erste Ziel zu erfüllen und
dann das andere, falls das erste Ziel nicht erfüllt werden kann. Die Anfrage
gelingt, wenn eines der beiden Ziele erfüllt werden kann.
In Prolog:
Rekursive Regeln
Von Interesse ist die Reihenfolge der Klauseln in der Datenbasis. Die Klausel, die
zuvorderst steht, ist die Abbruchbedingung der Rekursion: Kinder sind
Nachfahren der Eltern. In der zweiten Klausel ist die
``Komplexitätsveringerung`` (Die ``Beziehungslücke`` wird eine Generation
geringer) und die rekursive Beschreibung der Restbeziehung formuliert. Dies
kann prozedural als Rekursionsaufruf interpretiert werden. Würde man die
Reihenfolge der Regeln vertauschen, so würde der Prolog-Interpreter in eine
unendliche Rekursio 'abtauchen' (obwohl das Programm aus logischer Sicht
immer noch korrekt wäre).
gleichgen(Name, Name) :-
kind_von( Eltern, Name )
gleichgen(Eltern, Eltern) :-
15
kind_von( Eltern, Name).
gleichgen(Name1, Name2) :-
kind_von( Eltern1, Name1 ),
kind_von( Eltern2, Name2 ),
gleichgen( Eltern1, Eltern2 ).
Negation
kinderlos(Name) :-
kind_von( Eltern, Name ),
not kind_von( Name, Name_1 ).
Hierbei ist zu beachten, dass alle Variablen des Regelkopfes in einem positives
Literal im Rumpf auftauchen müssen, um Werte an sie zu binden.
16
(A1 ∧... ∧ An →B) "Regeln": glücklich(peter):- sonne, freizeit.
A:- true.
oder einfach
A. freizeit.
(G 1 ∧ ... ∧ G n →0) "Ziele": :-glücklich(lisa)
:-G 1, ..., G n .
Nun zu einem Beispiel für einen Resolutionsbeweis in Prolog, der sich an obigem
Beispiel orientiert:
Durch das obige Resolutionsschema wird das Vorgehensweise von Prolog beim
Ableiten der leeren Klausel beschrieben:
17
a. Der Beweisgraph ist eine Kette, d.h. linear.
b. In jedem Resolutionsschritt wird die Zielklausel mit einer Programmklausel
resolviert. Das Ergebnis ist eine neue Zielklausel.
c. Es bestehen folgende Freiheitsgrade:
Die oben beschriebene Form der Resolution nennt man SLD-Resolution (Selection,
Linear, Definite Klausel).
18
die Peano-Zahlen und beschreibt, wie man sie addiert.
An diesem Beispiel kann man die Antworterzeugung durch Prolog veranschaulichen.
Zunächst sind nur die Substitutionen dargestellt:
Hinweise:
19
Erweiterungen:
Definition: "Syntax"
20
(ii) Sind F, G Formeln, so auch ¬ F, (F ∧ G), (F ∨ G) sowie abgeleitete
Verknüpfungen (z.B. (F → G)).
(iii) Ist F eine Formel und x eine Variable, so sind auch ∃x F und ∀x F
Formeln.
Die prädikatenlogische Sprache ist die Menge aller Formeln, die sich in der oben
beschriebenen Weise aus dem Alphabet konstruieren lassen.
, ,
,
Beispiele:
Hinweis :
Eine gebundene Variable in einer Formel ist eine Variable, die an einen
Quantor der Formel gebunden ist und damit innerhalb des
Gültigkeitsbereichs dieses Quantors liegt.
Eine freie Variable in einer Formel ist eine Variable, die nicht an einen
Quantor der Formel gebunden ist und mithin nicht innerhalb des
Gültigkeitsbereichs eines Quantors liegt.
21
wesentlich komplexer ist als in der Aussagenlogik. Zunächst benötigen wir eine
Interpretationsstruktur, auch α -Struktur genannt:
Sα = (Uα , Iα )
Die Interpretationsstruktur ist ein Paar, wobei Uα eine beliebige nicht leere Menge
darstellt, die "Universum", "Interpretationsbereich" oder "Individuenbereich" genannt
wird. Diese Menge ist die Grundmenge von Sα.
Die Interpretation Iαist eine Abbildung mit heterogener Grundmenge. Sie ist definiert
für n-stellige Relationssymbole P, n-stellige Funktionssymbole f sowie für Variablen
x, wobei folgendes gilt:
i. Iα : P→ Pα wobei Pα ∈ Uαn
Es wird jedem n-stelligen Relationssymbol P eine Relation über Uα mit
derselben Stelligkeit zugeordnet.
ii. Iα : f→ fα wobei fα ∈ Uα n→ Uα Es wird jedem n-stelligen Funktionssymbol f
eine Funktion über Uα mit derselben Stelligkeit zugeordnet.
iii.Iα : x→ xα wobei xα ∈ Uα
Jeder Variablen x wird ein Wert aus Uα zugeordnet.
Für eine gegebene Formel F "passt" eine α-Struktur, wenn Iα für alle in F
vorkommenden Relationssymbole, Funktionssymbole und Variablen definiert ist.
Die Interpretation von Termen wird folgendermaßen definiert:
Bemerkung: Für Konstanten c ergibt sich aus (ii) der folgende Spezialfall: Iα (c) = cα
22
t 1,
1 falls I t 1 ,
I tn P
Die Verrechnung der Wahrheitswerte für Formeln vom Typ ¬ F, (F∧ G), (F∨ G)
I P ,t : 0 sonst
entspricht dern Aussagenlogik.
Definition: "Variablenbelegung"
Zur Behandlung der Quantoren wird der Begriff "Belegung von Variablen mit
Werten" (kurz: Variablenbelegung) eingeführt. Die Belegung einer in einer Formel
freien Variablen x mit einem Wert v∈ Uα entsteht dadurch, dass jedes Vorkommen
von x durch v ersetzt wird.
1 falls Iα (G')=1 für alle Varianten von G' die durch Belegungen von x
entstehen.
Iα
(F):=
0 sonst
(ii) Sei F=∃x G
1entstehende
falls ein v ∈ U existiert so dass für die durch Belegung von x mit v
α
Iα
Variante G' von G gilt I (G')=1 α
(F):=
0 sonst
Definition: "Modell":
23
Definition: "Erfüllbarkeit" und "Gültigkeit"
Beispiel:
Modell 1:
Uα = IΝ0 = {0, 1, 2, ...}
Iα (P) = Pα = IN0 (=Uα )
Iα (S) = Sα = {(x ,y, z) ∈ IN03 / x + y = z}
Iα (n) = nα = Nachfolgerfunktion (v∈ Uα → v+1)
Iα (0) = 0α = 0∈ IN0
Damit folgt für die Interpretation Iα der Formel F also für Iα (F):
Iα (P(0))=1 da 0α ∈ Pα
Iα (∀z (P(n(z)) ∨ ¬ P(z)))=1 da für alle v∈ IN0 (v+1)∈ Pα falls v∈ Pα
Iα (∀x∀y∀s ((S(x, 0, x) ∨ ¬ P(x)) ∧ (S(x, n(y), n(s)) ∨ ¬ S(x, y, s))))=1 da für alle u,
v, w ∈ IN0 gilt: u+0=u falls u∈ Pα sowie u+(v+1)=s+1 falls u+v=s.
Das obige Modell ist aber nicht das einzige Modell für F. Nachfolgend werden
weitere Modell vorgestellt:
Modell 2:
Uα = {a, b}
Iα (P) = Pα = {a, b}
Iα (S) = Sα = {x, y, z}∈ {a, b}3 / z = a falls x = y, z = b sonst
Iα (n) = nα = "Alternierungsfunktion", d.h. n(v) = a falls v = b, n(v) = b falls v=a.
Iα (0) = 0α =a
Modell 3:
Uα = {0, n(0), n(n(0)), ...}
24
Iα (P) = Pα = Uα
Iα (S) = Sα = {(x ,y, z) ∈ Uα3 / wobei x=z und y=0 oder y=n(y'), z=n(z') und (x, y',
z')∈ Sα }
Iα (n) = nα : v∈ Uα → n(v)
Iα (0) = 0
Eine wichtige Eigenschaft der Prädikatenlogik 1.Stufe ist, dass wenn eine Formel
überhaupt erfüllbar ist, sie auch ein Herbrand-Modell besitzt.
2.8. Normalformdarstellung
i. ¬ ∀x F ≡ ∃x ¬ F
¬ ∃x ¬ F ≡ ∀x ¬ F
ii. (∀x F ∧ ∀x G) ≡ ∀x (F ∧ G)
(∃x F∨ ∃x G) ≡ ∃x (F ∨ G)
iii.∀x ∀y F ≡ ∀y ∀x F
∃x ∃y F ≡ ∃y ∃x F
Falls in einer Formel der Form F ∧ Qx G (Q steht für Quantor) bzw. F ∨ Qx G die
Variable x in F nicht frei vorkommt, kann F mit in den Geltungsbereich des Quantors
hineingezogen werden: Qx (F∧ G) bzw. Qx (F∨ G).
Substitution:
F[x/t] bezeichne die Formel, die aus F entsteht, wenn man jedes freie Vorkommen der
Variablen x durch den Term t ersetzt. Substitutionen können durch
Hintereinanderausführung kombiniert werden.
Beispiel:
25
Hierbei muß beachtet werden, daß s1s2 ≠ [x / g(a)] ist.
Sei F = Qx G (Q: Quantor) und sei y eine Variable, die in G nicht vorkommt. Dann
gilt: F ≡ Qy G[x/y]
Normalformen
Unser Ziel ist, eine prädikatenlogische Formel F, in der evtl. freie Variablen
vorkommen, in Klauselform umzuwandeln. Die Klauseldarstellung wird u.a. für die
prädikatenlogische Resolution benötigt, auf die wir später noch eingehen werden. Die
Umwandlung einer prädikatenlogischen Formel in die Klauselform durchläuft
mehrere Zwischenstufen: zunächst wird eine bereinigte Pränexform gebildet, die dann
in eine Skolemform umgewandelt wird. Letztere dient dann als Ausgangsbasis für die
Umformung in KNF, die man dann nur noch in Klauselform umschreiben muß.
Definition: "Pränexform"
Eine Formel heißt in Pränexform, wenn sie den folgenden Aufbau besitzt
Q1y1Q2y2...Qnyn F,
wobei Qi Quantoren und yi Variablen sind. Es kommt außerdem kein Quantor in F
vor. Man nennt in diesem Zusammenhang Q1y1Q2y2...Qnyn auch Präfix und F Matrix.
Mit anderen Worten: Eine Pränex-Normalform ist eine Normalform, bei der alle
Quantoren links von einem quantorenfreien Ausdruck erscheinen, der Matrix genannt
wird.
Definition: "Matrix"
Streicht man aus einer prädikatenlogischen Formel F alle Vorkommen der Quantoren
∃ bzw. ∀ inklusive der dahinterstehenden Variablen, so erhält man die Matrix zu
dieser Formel. Man bezeichnet die Matrix einer Formel F meist symbolisch mit F*.
Gegeben sei nun eine prädikatenlogische Formel F mit eventuellem Vorkommen von
freien Variablen. Um diese Formel in Pränexform zu überführen, sind folgende
Schritte zu durchlaufen:
26
A ↔ B ≡ (¬ A ∨ B) ∧ (¬ B ∨ A) sowie A → B ≡ ¬ A ∨ B. Außerdem müssen
die Negationen nach innen gezogen werden.
Ergebnis: Es entsteht eine Formel G, die "erfüllbarkeitsäquivalent" ist zu F
2. Umbenennen der gebundenen Variablen, so dass verschiedene Vorkommen
von Quantoren verschiedene Variablen binden und keine freie Variable den
gleichen Namen wie eine gebundene Variable trägt ("Bereinigung").
Hinweis: Es gibt zu jeder Formel F eine äquivalente Formel G in bereinigter
Form. Man nennt eine Formel "bereinigt", wenn es keine Variable gibt, die in
der Formel sowohl gebunden als auch frei vorkommt, und wenn hinter allen in
der Formel befindlichen Quantoren verschiedene Variablen stehen.
Ergebnis: Es entsteht eine zu F und G äquivalente Formel H.
3. "Nach-vorne-Ziehen" der Quantoren durch wiederholte Anwendung von
Äquivalenzumformungen (s. Anfang Kap. 2.6) und Existenz-Abschluss der
freien Variablen.
Ergebnis: Eine Formel I, die erfüllbarkeitsäquivalent zu F, G und H ist.
Nach Durchführung der Schritte (1) bis (3) erhält man die sog. bereinigte
Pränexform.
Beispiel:
4. Wir gehen von der obigen Pränexform I aus und bilden eine zu I
erfüllbarkeitsäquivalente Skolemform J.
5. Umformung der Matrix von J in KNF und Aufschreiben dieser Formel als
Klauselmenge.
27
Das beschriebene Vorgehen (1) - (5) soll nun nachfolgend noch einmal an einem
Beispiel verdeutlicht werden:
Allgemein gilt:
2.9 Grundresolution
Definition: "Herbrand-Universum"
28
1. Alle in F vorkommenden Konstanten sind in Hα . Falls F keine Konstante
enthält, so ist das nullstellige Funktionssymbol c in Hα .
2. Für jedes in F vorkommende n-stellige Funktionssymbol f und Terme t1, t2, ...,
tn in Hα ist der Term f(t1, t2, ..., tn) ebenso in Hα .
Definition: "Herbrand-Interpretation"
Eine als Klauselmenge dargestellte Formel F ist unerfüllbar g.d.w. es eine endliche
Menge von Grundinstanzen von Klauseln aus F gibt, die unerfüllbar ist.
Bemerkungen:
29
darauf sukzessive die aussagenlogische Resolution an. Dies ist möglich, da die
Formelsequenz variablenfrei ist. Sobald für ein i gilt:
wird mit dem Resultat "unerfüllbar" abgebrochen. Der Satz von Herbrand
garantiert die Korrektheit des Verfahrens sowie seine Terminierung, falls F
unerfüllbar ist. Falls F erfüllbar und Hα unendlich, terminiert das Verfahren
nicht. Eine solche Situation bezeichnet man auch als semi-entscheidbar: Das
Verfahren terminiert falls F unerfüllbar ist, es terminiert nicht, falls F erfüllbar
ist. In der Praxis genügt es, eine Menge von Grundinstanzen zu "raten", die die
Ableitung der leeren Klauseln erlaubt ("Orakel").
Beispiel:
Die Formel F ist unerfüllbar. Dies kann man wie folgt zeigen:
Die Pfeile stehen für Grundsubstitutionen. Auf die sich aus den Grundsubstitutionen
ergebenden Grundinstanzen kann sukzessive die aussagenlogische Resolution
angewendet werden.
Man erkennt an diesem Beispiel, daß es für die Resolutionsherleitung der leeren
Klausel erforderlich sein kann, aus einer prädikatenlogischen Klausel mehrere
verschiedene Grundinstanzen zu generieren.
30
Mit dem Verfahren von Gilmore können nur sehr einfache Formeln (Klauselmengen)
bewiesen werden. Das liegt vor allem daran, daß die Grundinstanzen der Klauseln
völlig ziellos gefunden werden (sie werden geraten). Der ganze Prozeß ist damit nicht
auf das Ziel der Widerlegung der Klauselmenge ausgerichtet und es werden unnötig
viele Zwischenklauseln generiert. Das Verfahren wurde daher von Robinson 1965
noch zur sog. prädikatenlogischen Resolution verfeinert. Dieses Verfahren ist im
nächsten Kapitel beschrieben.
Ein Nachteil der Grundresolution besteht darin, daß man beim ersten Resolvieren
schon alle Variablen der Elternklauseln durch passende Grundterme in
vorausschauender Art und Weise ersetzen muß. D.h. man generiert durch passende
Grundsubstitutionen Grundinstanzen der Elternklauseln und prüft, ob diese zu einer
Resolutionsherleitung der leeren Klausel führen. Das systematische Durchprobieren
(generate and test) aller Grundsubstitutionen ist vor allem bei größeren Klauseln sehr
ineffizient.
Dieser Nachteil wird durch die prädikatenlogische Resolution nach Robinson
beseitigt: Der Zeitpunkt der Substitution einer Variablen durch variablenfreie
Grundterme wird erst ausgeführt, wenn klar ist, welche Ersetzung der Variablen zum
Ziel, d.h. Ableitung von der leeren Klausel, führt. Zunächst werden in
zurückhaltender Art und Weise "variablenbehaftete" Grundterme substituiert, wobei
prädikatenlogische Resolventen erzeugt werden können. Diese "variablenbehafteten"
Grundterme kann man später - wenn nötig - durch einen spezielleren Term ersetzen,
in dem die Variable durch eine Konstante ersetzt ist. Man spricht in diesem
Zusammenhang auch vom "specialize to solution" Ansatz.
Die beiden Verfahren werden nachfolgend anhand eines Beispiels gegenübergestellt:
Gegeben seien die Klauseln {P(x), ¬ Q(x)} und {¬ P(y)} sowie {Q(c)} wobei x und y
Variablen sind und c eine Konstante.
1. Grundresolution:
31
2. Prädikatenlogische Resolution nach Robinson:
32
Definition: "Unifikation" und "Unifikator":
Eine Substitution σ ist Unifikator für eine endliche Menge von Literalen {E1, ..., En},
falls gilt: E1σ = ... = Enσ . Mit anderen Worten: Durch Anwenden der Substitution σ
auf jedes Literal in der Menge entsteht immer das gleiche Literal (|Eσ | = 1). Man
nennt die Menge {E1, ..., En} in diesem Fall unifizierbar.
Definition: "allgemeinster Unifikator" (auch genannt: most general unifier, kurz: m.g.u)
Ein allgemeinster Unifikator für eine Menge von Literalen {E1, ..., En} ist ein
Unifikator, von dem jeder andere Unifikator für {E1, ..., En} eine Variante ist.
Beispielsweise für {P(x, y, f(z)), P(a, g(z), w)} ist σ ={a/x, g(z)/y, f(z)/w} der m.g.u.
Hinweis: Der m.g.u. ist nicht eindeutig bestimmt, Varianten beruhen aber lediglich
auf Variablenumbenennungen.
Definition: "Abweichungsmenge":
Die Abweichungsmenge D(E1, ..., En) für Ausdrücke E1, ..., En, die aus
Prädikatensymbolen und Termen bestehen, wird wie folgt definiert:
1. Lies die Ausdrücke simultan von links nach rechts und brich an der Stelle ab,
an der nicht alle Ei dasselbe Symbol enthalten.
2. Bestimme zu jedem Ei den entsprechenden an der ersten Abweichungsstelle
beginnenden Unterausdruck ti.
3. Ergebnis: D(E1, ..., En) = (t1, ..., tn)
1. Setze σ ={}
2. Prüfe ob gilt: E1 = ... = En
falls ja: Fertig, return σ
falls nein:
Enthält D(E1, ..., En) eine Variable v und einen Term t, in dem v nicht
vorkommt (occurs-check)?
33
Ja:
µ := [v/t]
σ ' := σ µ
Ei' := Eiµ für alle i (d.h. es werden überall Substitutionen durchgeführt) und
fahre bei 2. fort.
Nein: return "fail" (d.h. Ausdrücke sind nicht unifizierbar).
Anmerkungen:
Der Algorithmus terminiert nach endlich vielen Schritten, da jeder Schritt zur
Erweiterung der Substitution σ eine Variable eliminiert.
Das Ziel ist nun eine minimale Substitution zu finden, um die Ausdrücke jeweils
gleich zu machen (unifizieren):
a. E1 , E2: σ = [v/g(y)] [w/z]. Damit folgt E1σ = E2σ = P(x, h(x, g(y)), z).
b. E2 , E3: σ = [v/a] [w/b]. Damit folgt E1σ = E2σ = P(x, h(x, a), b).
c. E1 , E3: σ = "fail" weil die Funktion g(y) nicht mit der Konstante a zur
Deckung gebracht werden kann.
34
1. Bilde K1'=K1s1 und K2'=K2s2 mit Substitutionen s1 und s2 derart, dass K1' und
K2' keine gemeinsamen Variablen enthalten (standardising apart).
2. Falls es eine Menge von Literalen {L1, ..., Lm} ⊆ K1' sowie {Lm+1, ..., Ln} ⊆
K2' gibt, für die
unifizierbar mit m.g.u σ , so bezeichnen wir R=(( K1' - {L1, ..., Lm}) ∪
(K2' - {Lm+1, ..., Ln}))σ als prädikatenlogische Resolvente von K1 und
K2.
Anmerkungen:
1. Für zwei Klauseln K1 und K2 ist die Resolvente R nicht eindeutig bestimmt. Es
bestehen Freiheitsgrade bei der Wahl der Li sowie der Unbestimmtheit von σ .
2. Bei der prädikatenlogischen Resolution können mehrere Literale in einem Schritt
verschwinden (vgl. hierzu Beispiel "Arzt" unten)
3. Wir definieren wie in der Aussagenlogik für eine Formel F: Res(F), Resk(F),
Res*(F).
Beispiel:
35
Behauptung: Es gibt keine Ärzte: Z = ¬ ∃x A(x)
Widerspruchsannahme: ¬ Z = ∃x A(x)
Skolemform A(b), wobei b die Skolemkonstante ist.
Aufgrund der Annahme der Gültigkeit der Axiome wird die Unwahrheit von ¬F und
damit die Wahrheit von F erschlossen.
36