x,y

Werbung
Methoden der KI in der
Biomedizin
Prädikatenlogik
Karl D. Fritscher
Prädikatenlogik
●
●
●
●
Sprache der Aussagenlogik zu schwach, um Wissen aus
komplexen Umgebungen präzise zu repräsentieren (Beispiel
Wumpus-Welt: für jedes Quadrat mussten separate Regeln für
Luftzüge und Falltüren geschrieben werden)
Ein großer Teil unseres Allgemeinwissens kann in First-OrderLogic (FOL) (Prädikatenlogik) repräsentiert werden.
Die formale Sprache der FOL ist bzgl. ihrer
Syntax und Semantik gut erforscht.
Programmiersprachen für Prädikatenlogik (PROLOG).
Aussagenlogik - deklarative Sprache
Die Aussagenlogik
●
●
●
●
ist eine deklarative Sprache; Semantik basiert auf einer Wahrheitsrelation
zwischen Sätzen und möglichen Welten .
kann mit Hilfe von Disjunktion und Negation auch mit partiellen
Informationen umgehen.
ist kompositional, d.h. die Bedeutung eines Satzes ist eine Funktion der
Bedeutung seiner Bestandteile.
kann nur umständlich eine Umgebung mit vielen Objekten beschreiben.
Formale Sprachen und ihre Bindungen
Ziel: deklarative Semantik
●
●
Deklarative, kompositionale Semantik, die kontextunabhängig
und eindeutig ist.
Objekte, Relationen, Funktionen
Objekte: Menschen, Häuser, …
Relationen zwischen den Objekten
• Unär: rot, rund, falsch, weiblich, …
• n-äre: ist Bruder von,
ist größer als,
liegt innerhalb,
istTeil von,…
–
Funktionen: ist Vater von,
ist bester Freund,
ist Dritter von rechts,
liegt am Anfang von, …
Beispiel - König-Modell mit 5 Objekten
Bruder(Richard Löwenherz, John)
AufDemKopf(Krone, John)
Person(John)
König(John)
Krone(John)
LinkesBein(Richard Löwenherz)
LinkesBein(John)
Richard Löwenherz, John, Krone, linken Beine von Richard und John
5 Objekte:
2 binäre Relationen: Bruder, AufDemKopf
3 unäre Relationen: Person, König, Krone
LinkesBein
1 unäre Funktion:
Modelle für FOL
1) Modelle für die Aussagenlogik sind einfach nur Wahrheitswertemengen für
die Aussagensymbole.
2) Modelle für die FOL beinhalten
Objekte (Domänenelemente): Anzahl kann unbegrenzt sein (ganze Zahlen)
Relationen: Die Menge der Tupel der Objekte, die in Beziehung zueinander
stehen (z.B. die binäre Relation Brüder). Ein Tupel ist eine
Sammlung von Objekten (=Menge), die auf bestimmte Weise
angeordnet sind. Tupel sind von spitzen Klammern umgeben:
{⟨Richard Löwenherz, John ⟩, ⟨John, Richard Löwenherz⟩}
Funktionen: Jedes Tupel von Objekten steht in Beziehung zu genau einem
Objekt (totale Funktion). z.B. die unäre Funktion LinkesBein
⟨Richard Löwenherz⟩ → Richards linkes Bein
⟨King John⟩ → Johns linkes Bein
Abbildung
Symbole und Interpretationen
Die grundlegenden syntaktischen Elemente der FOL sind die
Symbole, die für Objekte, Relationen und Funktionen stehen. Es
gibt also 3 Arten von Symbolen:
- Konstantensymbole für Objekte
- Prädikatsymbole für Relationen (mit Stelligkeit)
- Funktionssymbole für Funktionen (mit Stelligkeit)
Die Semantik muss Sätze mit Modellen in Beziehung bringen, um
den Wahrheitsgehalt festzulegen.
Dazu wird eine Interpretation gebraucht, die genau angibt, welche
Objekte, Relationen und Funktionen mit welchen Symbolen
angesprochen werden.
Interpretation des König-Modells
Eine mögliche Interpretation für das König-Modell:
• Richard bzw. R bezieht sich
auf Richard Löwenherz
• John bzw. J bezieht
sich auf König John
• Bruder bezieht sich auf die
Bruderbeziehung
•
•
AufDemKopf bezieht sich auf die Relation
„auf dem Kopf“, die zwischen Krone und König John gilt
Person, König und Krone beziehen sich auf die Objektmengen, die
Personen, Könige und Kronen sind
• LinkesBein bezieht sich auf die Funktion „linkes Bein“
Wahrheit eines Satzes
• Die Wahrheit eines Satzes wird durch ein Modell m und eine
Interpretation I für die Symbole des Satzes festgelegt.
• Aus diesem Grund sind logische Konsequenz, Allgemeingültigkeit usw. im Hinblick auf alle möglichen Strukturen
(Modelle und Interpretationen) definiert.
• Eine Überprüfung der logischen Konsequenz durch Auflistung
aller möglichen Modelle ist bei der Logik erster Stufe nicht
mehr möglich
• Falls die Anzahl der Objekte unbegrenzt ist, ist auch die
Anzahl der möglichen Modelle und die Anzahl der
Interpretationen unbegrenzt.
Terme
Term: Logischer Ausdruck, der sich auf ein Objekt bezieht,
z.B. John, f(t1, …, ), LinkesBein(John),
• Konstantensymbole sind Terme. Es ist aber unpraktisch,
jedem Objekt einen Namen zu geben, d.h. für jedes Objekt ein
separates Symbol zu verwenden. z.B. geben wir dem linken
Bein von König John keinen Namen, sondern sagen „König
Johns linkes Bein“.
Genau dafür verwendet man Funktionssymbole wie
LinkesBein.
• Komplexer Term: Funktionssymbol mit einer in Klammern
eingeschlossenen Liste mit Termen als Argument
Semantik von Termen
Betrachte den Term f(t1, …, tn):
• Das Symbol f verweist auf irgendeine Funktion im Modell, die
Argumentterme t1, …, tn verweisen auf Objekte in der Domäne.
zB linkesBein(John)
Funktion
Objekt in
Domäne
Der Term als Ganzes verweist auf das Objekt „linkes Bein von
König John“.
Atomare Sätze
Ein atomarer Satz wird aus einem Prädikatsymbol gefolgt von
einer in Klammern eingeschlossen Termliste gebildet:
Beispiele:
●
Bruder(Richard, John)
●
Verheiratet(Vater(Richard), Mutter(John))
Ein atomarer Satz ist in einem bestimmten Modell unter einer
bestimmten Interpretation wahr, wenn die durch das
Prädikatsymbol angegebene Relation für die von den
Argumenten angegebenen Objekte gilt.
Komplexe Sätze
Durch logische Verknüpfungen werden komplexere Sätze konstruiert (Semantik
von Sätzen, die mit logischen Verknüpfungen gebildet werden, ist analog zur
Aussagenlogik)
Beispiele:
¬Bruder(LinkesBein(Richard), John)
Bruder(Richard,John) ⋀ Bruder(John,Richard)
König(Richard) ⋁ König(John)
¬König(Richard) ⇒ König(John)
Quantoren in FOL
Mit Quantoren können Eigenschaften ganzer Objektsammlungen ausgedrückt
werden. Die Objekte müssen nicht mit ihrem Namen aufgelistet werden.
Die FOL enthält zwei Standardquantoren:
∀- universell
∃- existentiell
•
Mit dem Allquantor ∀ trifft man Aussagen über jedes Objekt.
•
Mit dem Existenzquantor ∃ kann eine Aussage zu einem bestimmten Objekt im
Universum gemacht werden, ohne es beim Namen zu nennen.
Allquantor ∀
Alltägliche Aussagen wie „Quadrate, die an das Quadrat mit dem Wumpus
grenzen, stinken“ oder „Alle Könige sind Personen“ können in der FOL mit Hilfe
des Allquantors einfach ausgedrückt werden.
Beispiel:
„Alle Könige sind Personen“ :
∀ x König(x) ⇒ Person(x)
Sprechweise: Für alle x gilt, wenn x ein König ist, dann ist x auch eine Person,
oder kurz: alle Könige sind Personen
Das Symbol x wird als Variable bezeichnet.
Intuitiv besagt ein Satz ∀ x P, dass P für jedes Objekt x wahr ist, wobei P ein
beliebiger logischer Ausdruck ist.
Genauer: ∀ x P ist in einem bestimmten Modell unter einer bestimmten
Interpretation wahr, wenn P in allen möglichen erweiterten
Interpretationen, die aus der gegebenen Interpretation konstruiert
werden können, wahr ist.
????????????????????????????
Beispiel: universelle Quantifizierung im KönigModell
Die Interpretation des Modells
kann auf mehrere Arten erweitert werden:
x → Richard Löwenherz
x → König John
x → Richards linkes Bein
x → Johns linkes Bein
x → die Krone
Der allquantifizierte Satz ∀ x König(x) ⇒ Person(x) ist unter der ursprünglichen
Interpretation wahr, wenn der Satz König(x) ⇒ Person(x) in jeder der 5
erweiterten Interpretationen wahr ist.
Allquantor ∀
Mit der erweiterten Interpretation des Modells ist
der universell quantifizierte Satz
∀x König(x) ⇒ Person(x)
äquivalent mit der Zusicherung der folgenden 5 Sätze:
Richard Löwenherz ist ein König ⇒ Richard Löwenherz ist eine Person König
John ist ein König ⇒ König John ist eine Person
Richards linkes Bein ist ein König ⇒ Richards linkes Bein ist eine Person
John‘s linkes Bein ist ein König ⇒ John linkes Bein ist eine Person
Die Krone ist ein König ⇒ Die Krone ist eine Person
Die Implikation ist wahr, wenn ihre Prämisse
falsch ist - unabhängig von der Wahrheit der
Schlussfolgerung. Also sind die obigen 5 Sätze
wahr, denn bis auf John ist keines der 5 Objekte
ein König.
Unterscheide Implikation und Konjugation
Die Verwendung der Konjunktion ⋀ als Hauptverknüpfung mit dem Allquantor
führt zu einer überstarken Aussage.
Die Implikation ⇒ ist die natürliche Verknüpfung für die Verwendung in
Kombination mit dem Allquantor
Existenzquantor ∃
Mit dem Existenzquantor ∃ kann eine Aussage zu einem
bestimmten Objekt im Universum gemacht werden, ohne es per
Namen zu nennen.
Um beispielsweise zu sagen, dass König John eine Krone auf dem Kopf hat,
schreiben wir:
∃ x Krone(x) ⋀ AufDemKopf(x, John)
Sprechweisen für ∃ x :
„Es gibt ein x, so dass gilt …“ oder „Für ein x …“
Intuitiv besagt der Satz: ∃ x P, P ist mindestens für ein Objekt wahr.
Genauer: ∃ x P ist in einem bestimmten Modell unter einer
bestimmten Interpretation wahr, wenn P in mindestens
einer erweiterten Interpretation wahr ist, die x einem
Domänenelement zuweist.
Existenzquantor und Konjunktion
Die natürliche Verknüpfung des Existenzquantors ist die Konjunktion.
Die Verwendung der Implikation als Hauptverknüpfung mit dem Existenzquantor
führt zu einer sehr schwachen Aussage.
Betrachten wir den folgenden Satz:
∃ x Krone(x) ⇒ AufDemKopf(x, John)
Wendet man auf diesen Satz die Semantik an, so besagt der Satz, dass
mindestens eine der folgenden Behauptungen wahr sei:
Richard Löwenherz ist eine Krone ⇒
Richard Löwenherz befindet sich auf dem Kopf von John
König John ist eine Krone ⇒
König John befindet sich auf dem Kopf von John
Richards linkes Bein ist eine Krone ⇒
Richards linkes Bein befindet sich auf dem Kopf von John
usw.
Verschachtelte Quantoren
Komplexe Sätze werden unter Verwendung mehrerer Quantoren ausgedrückt.
Einfacher Fall: alle Quantoren vom selben Typ:
∀x ∀ y Bruder(x,y) ⇒ Geschwister(x,y)
Gemischte Fälle:
„Jeder liebt jemanden“ bedeutet, dass es für jede Person jemanden gibt, den
diese Person liegt.
∀x ∃y Liebt(x,y)
„Es gibt jemanden, der von jedem geliebt wird“:
∃x ∀y Liebt(x,y)
Es kommt also auf die Reihenfolge der Quantoren an.
Verbindungen zwischen Quantoren
Die beiden Quantoren sind durch die Negation eng miteinander verknüpft:
∀x ¬Mag(x,Honig)
ist äquivalent mit
¬∃x Mag(x, Honig)
Die de Morganschen Regeln können für quantifizierte und nicht quantifizierte
Sätze formuliert werden.
(wir bräuchten demnach nur einen der beiden Quantoren)
Gleichheit
Wenn sich zwei Terme auf dasselbe Objekt beziehen, so wird das
Gleichheitssymbol verwendet:
Vater(John) = Henry
Um auszudrücken, dass Richard mindestens zwei Brüder hat, schreiben wir:
∃x, y Bruder(x, Richard) ⋀ Bruder(y, Richard) ⋀ ¬(x = y)
Syntax der FOL
Anwendungen der FOL
TELL/ASK-Schnittstelle für eine Wissensbasis erster Stufe:
Mit TELL werden Sätze zu einer Wissensbasis hinzugefügt. Solche Sätze
werden als Zusicherung bezeichnet:
TELL(KB, König(John)).
TELL(KB,∀x König(x) ⇒ Person(x).
Mit ASK fragen wir die Wissensbasis:
ASK(KB, König(John)). Antwort: true
ASK(KB, ∃ x Person(x)).Antwort: {x/John}
Fragen, die mit ASK gestellt werden, werden als Abfragen oder Ziele (Goals)
bezeichnet.
Die Standardform für eine Antwort auf Fragen dieser Art ist eine Substitution
oder Bindungsliste, wobei es sich um eine Menge von Variablen/TermPaaren handelt
Gibt es mehr als eine mögliche Antwort, kann eine Liste mit Substitutionen
zurückgegeben werden.
Beispiel: Verwandtschaftsdomäne
Wir definieren binäre Prädikate wie Eltern, Geschwister, Bruder, Schwester, Kind,
etc. Wir verwenden Funktionen wie Mutter und Vater, weil jeder Mensch
genau eine(n) davon hat.
Die Mutter ist der weibliche Elternteil:
∀ m, c Mutter(c) = m ⇔ Weiblich(m) ⋀ Eltern(m, c)
Der Ehemann ist der männliche Gatte:
∀ w, h Ehemann(h, w) ⇔ Männlich(h) ⋀ Gatte(h, w)
Männlich und weiblich sind disjunkte Kategorien:
∀ x Männlich(x) ⇔ ¬Weiblich(x)
Eltern und Kind sind inverse Relationen:
∀ p, c Eltern(p, c) ⇔ Kind(c, p)
Großeltern-Relation:
∀ g, c Großeltern(g,c) ⇔∃p Eltern(g, p) ⋀ Eltern(c, p)
Verwandtschaftsdomäne ...
Ein Geschwister ist ein weiteres Kind der Eltern:
∀x, y Geschwister(x, y) ⇔ (x y) ⋀ ∃p Eltern(p,x) ⋀ Eltern(p,y)
usw.
Jeder dieser Sätze kann als Axiom der Verwandschaftsdomäne betrachtet
werden. Die Verwandschaftsaxiome sind auch eine Menge von grundlegenden
Definitionen. Sie definieren die Funktion Mutter und die Prädikate Ehemann,
Gännlich, Eltern, Großeltern und Geschwister. Mit diesen können weitere Prädikate
definiert werden.
Theoreme sind durch die Axiome folgerbar, z.B.:
∀ x, y Geschwister(x, y) ⇔ Geschwister(y, x)
Verwandtschaftsdomäne
Nicht jedes Prädikat muss vollständig definiert werden.
Es gibt z.B. keine offensichtliche Möglichkeit den folgenden Satz zu
vervollständigen:
∀ x Person(x) ⇔ ...
Allerdings erlaubt die FOL das Prädikat Person zu verwenden, ohne es
vollständig zu definieren.
Es reichen partielle Spezifikationen von Eigenschaften.
Beispiel: ∀ x Person(x) ⇒ ...
∀ x …⇒ Person(x)
Axiome können auch einfache Tatsachen sein wie etwa
Männlich(Jim) oder Gatte(Jim,Laura)
Beispiel: Natürliche Zahlen
Die Peano-Axiome definieren natürliche Zahlen und die Addition.
Natürliche Zahlen sind rekursiv definiert:
NatNum(0)
∀n NatNum(n) ⇒ NatNum(S(n))
(Prädikat NatNum)
(Funktionssymbol S (=Successor, Nachfolger))
(Konstantensymbol 0)
Axiome, die die Nachfolgerfunktion S(n) beschränken:
Definition der Addition mit Hilfe der Nachfolgerfunktion:
S(n) kann auch als n+1 geschrieben werden (Infixnotation):
Wissensengineering
Folgende Schritte sind hilfreich beim Aufstellen einer
Wissensbasis
1. Identifizieren der Aufgabe:
• Festlegung des Bereichs der Fragen, welche die Wissensbasis
unterstützt
2. Sammeln von relevantem Wissen(=Wissensakquisition):
• Identifizierung des relevanten Wissens (noch keine formale
Repräsentation)
3. Festlegung eines Vokabulars aus Prädikaten, Funktionen und
Konstanten
• Übersetzung wichtiger Konzepte auf Domänenebene in Namen auf
Logikebene  Ontologie der Domäne (Ontologie bestimmt welche
Arten von Dingen existieren, legt aber nicht Ihre Eigenschaften oder
Beziehungen untereinander fest)
4. Kodieren des allgemeinen Wissens über die Domäne
• Aufschreiben aller Axiome für alle Vokabel  Festlegung der Bedeutung
der Terme
Wissensengineering
5. Codierung einer Beschreibung der spezifischen Probleminstanz
• Niederschreiben einfacher atomarer Sätze über Instanzen von
Konzepten, die bereits Teil der Ontologie sind (Bei logischen Agenten
werden die Probleminstanzen über Sensoren bereitgestellt)
6. Abfragen an Inferenzprozedur richten und Antworten erhalten
• Ableiten neuer Fakten
7.
Elimination von Fehlern in der Wissensbasis
• Identifikation inkorrekter Axiome
• Identifikation von fehlenden oder zu schwachen Axiomen
Die Wumpuswelt …
Mit Hilfe der FOL können wir die Wissensbasis der Wumpus-Welt sehr viel
knapper und in natürlicherer Weise definieren als in der Aussagenlogik.
Ein typischer Wahrnehmungssatz enthält auch die Zeit, wann die Wahrnehmung
aufgetreten ist. Für die Zeitschritte werden ganze Zahlen verwendet
Percept([Stench, Breeze, Glitter, None, None], 5)
Percept ist ein binäres Prädikat und Stench usw. sind Konstanten die in einer Liste
abgelegt sind.
Aktionen können durch logische Terme repräsentiert werden:
Turn(Right), Turn(Left), Forward, Shoot, Grab, Release, Climb
Um zu erkennen, welche Aktion die beste ist, erstellt das Agentenprogramm
eine Abfrage wie etwa:
∃a BestAction(a, 5)
ASK soll diese Abfrage auflösen und eine Bindungsliste zurückgeben, wie z.B.
{a | Grab }
Die Wumpuswelt …
Die reinen Wahrnehmungsdaten implizieren bestimmte Fakten über den
aktuellen Zustand, zum Beispiel:
∀ s, t, g, m, c Percept([s, Breeze, g, m, c], t) ⇒ Breeze(t)
∀ t, s, g, m, c Percept([s, b, Glitter, m, c], t) ⇒ Glitter(t)
…
Durch quantifizierte Implikationssätze kann auch einfaches „Reflexverhalten“
implementiert werden. Zum Beispiel:
∀ t Glitter(t) ⇒ BestAction(Grab, t)
Die Nachbarschaft von zwei Quadraten kann definiert werden als:
∀ x,y,a,b Adjacent([x,y], [a,b]) ⇔ [a,b]
{[x+1,y], [x-1,y], [x,y+1], [x, y-1]}
Die Position des Agenten ändert sich über der Zeit; At(Agent, s, t), d.h. der Agent
befindet sich zur Zeit t auf Quadrat s. Wir schreiben:
∀ s, t At(Agent, s, t) ⋀ Breeze(t) ⇒ Breezy(s)
Regeln in der Wumpuswelt
Diagnoseregeln führen von beobachteten Effekten zu verborgenen Dingen.
Um Falltüren zu finden, besagen die Diagnoseregeln, dass, wenn
ein Quadrat windig ist, ein benachbartes Quadrat eine Falltür enthalten muss:
∀s Breezy(s) ⇒ ∃ r Adjacent(r,s) ⋀ Pit(r)
Und die Negation gilt auch:
∀ s ¬Breezy(s) ⇒ ¬∃Adjacent(r,s) ⋀ Pit(r)
Kombiniert man diese beiden Regeln, so folgt:
∀ s Breezy(s) ⇔ r Adjacent(r,s) ⋀ Pit(r)
Regeln in der Wumpuswelt
Kausale Regeln reflektieren die angenommene Richtung der Kausalität in der
Welt: Einige verborgenen Eigenschaften bewirkten, dass bestimme
Wahrnehmungen erzeugt werden.
Beispiel: Eine Falltür bewirkt, dass alle benachbarten Quadrate windig sind:
∀s Pit(r) ⇒ [∀s Adjacent (r,s)r ⇒ Breezy(s)]
Und wenn alle mit einem bestimmten Quadrat benachbarten Quadrate windfrei sind,
ist das Quadrat nicht windig:
∀ s [∀r Adjacent(r,s) ⇒ ¬Pit(r)] ⇒ ¬Breezy(s)
Systeme die mit kausalen Regeln schließen werden als modellbasierte
Schlusssysteme bezeichnet, weil die kausalen Regeln ein Modell dessen bilden,
wie die Umgebung arbeitet. Modellbasierte Schlusssysteme werden vor allem
beim Einsatz der KI in medizinischen Diagnosesystemen verwendet (später mehr
dazu)
Inferenz in FOL: Unifikation
Für gegebene Sätze (Wissensbasis)
∀x König(x) ⋀ Gierig(x) ⇒ Böse(x)
König(John) 
∀y Gierig(y)
können wir Inferenz durchführen, wenn wir eine Substitution θ finden, die
die Prämisse der Implikation identisch mit Sätzen macht, die sich
bereits in der KB befinden.
Konkret: …wenn wir eine Substitution θ finden, sodass König(x) und Gierig(x)
mit König(John) und Gierig(y) übereinstimmen.
Notation: SUBST({x / t},α) wendet die Substitution {x / t} auf Satz α an
Versuch: Wir wollen schließen, dass John böse ist:
θ ={ x / John, y / John }, SUBST(θ, ∀x König(x) ⋀ Gierig(x) ⇒ Böse(x))
König(John) ⋀ Gierig(John)
König(John) 
Gierig(John)
Daraus kann durch Verwendung des (gelifteten) Modus Ponens Böse(John)
geschlossen werden.
Inferenz in FOL: Unifikation
Das Auffinden von Substitutionen, die bewirken, dass unterschiedliche
logische Ausdrücke identisch aussehen, wird als Unifikation (=Unify)
bezeichnet.
Der Algorithmus Unify nimmt zwei Sätze entgegen und gibt einen Unifikator für
Sie zurück, falls es einen solchen gibt:
Unify(p,q) = θ wobei SUBST(θ,p)=SUBST(θ,q)
Beispiel: Abfrage - Kennt(John,x) – Wen kennt John?
Antwort: Suche Sätze in der Wissensbasis, die sich mit Kennt(John,x)
unifizieren lassen.
Ergebnisse einer Unifikation mit 4 verschiedenen Sätzen, die sich in
der KB befinden könnten:
Inferenz in FOL: Unifikation
Das Auffinden von Substitutionen, die bewirken, dass unterschiedliche
logische Ausdrücke identisch aussehen, wird als Unifikation (=Unify)
bezeichnet.
Der Algorithmus Unify nimmt zwei Sätze entgegen und gibt einen Unifikator für
Sie zurück, falls es einen solchen gibt:
Unify(p,q) = θ wobei SUBST(θ,p)=SUBST(θ,q)
Beispiel: Abfrage - Kennt(John,x) – Wen kennt John?
Antwort: Suche Sätze in der Wissensbasis, die sich mit Kennt(John,x)
unifizieren lassen.
Ergebnisse einer Unifikation mit 4 verschiedenen Sätzen, die sich in
der KB befinden könnten:
Inferenz in FOL: Unifikation
Letzte Unifikation schlägt fehl, weil beide Sätze den selben Variablennamen x
verwenden  zu unifizierende Sätze sollten standardisiert werden, d.h.
Variablennamen werden so umbenannt, dass keine Namenskonflikte entstehen.
Beispiel:
Unify(Kennt(John, x), Kennt (z17, Elizabeth)) = {x/Elizabeth, z17=John}
Bei mehreren Möglichkeiten der Unifikation gibt es immer einen
allgemeinsten Unifikator.
Beispiel:
Unifiy(Kennt(John,x), Kennt(y,z)) = {x/John, y/John, z/John}={y/John, x/z}
allgemeinster Unifikator: {y/John, x/z}
Verallgemeinerter Modus Ponens
Gibt es für atomare Sätze p‘ i, p i ,q eine Lösung für Unify(p‘i,pi)= θ gilt:
p'1, p'2 , … , p'n , (p1 ⋀ p2 ⋀ … ⋀ pn ⇒ q)
SUBST(θ, q)
wobei
SUBST(θ, p'i) = SUBST(θ, pi)
p'1 ist König(John)
p'2 ist Gierig(y)
θ ist { x / John, y / John }
SUBST(θ, q) ist Böse(John)
für alle i
p1 ist König(x)
p2 ist Gierig(x)
q ist Böse(x)
Beispiel einer Wissensbasis
Laut Gesetz ist es für einen Amerikaner ein Verbrechen, Waffen am
feindliche Nationen zu verkaufen. Das Land Nono, ein Feind von
Amerika, besitzt einige Raketen, und alle seine Raketen wurden ihm von
Colonel West verkauft, der Amerikaner ist.
Beweise, dass West ein Krimineller ist!
Beispiel einer Wissensbasis
1. Formuliere Fakten als definite Klauseln erster Stufe
• Eine definite Klausel ist entweder atomar oder sie ist eine Implikation,
deren Antezedenz eine Konjuntkion positiver Literale und deren
Konsequenz ein einziges positives Literal ist
„... ist es für einen Amerikaner ein Verbrechen, Waffen an feindliche Nationen zu
verkaufen.“
1. Amerikaner(x) ⋀Waffe(y) ⋀ Verkauft(x, y, z) ⋀ Feindlich(z) ⇒ Kriminell(x)
„Nono ... besitzt einige Raketen,“ d.h. ∃x Besitzt(Nono, x) ⋀ Rakete(x)
2. Besitzt(Nono, M1) und
Rakete(M1)
„... alle seine Raketen wurden ihm von Colonel West verkauft,“
3. Besitzt(Nono, x) ⋀ Rakete(x) ⇒ Verkauft(West, x, Nono)
Raketen sind Waffen.
Alle Variablen in den Literalen sind
4. Rakete(x) ⇒ Waffe(x)
allquantifiziert
Ein Feind Amerikas ist feindlich.
5. Feind(x, Amerika) ⇒ Feindlich(x)
„Das Land Nono, ein Feind von Amerika, ...“
„West ..., der Amerikaner ist.“
7. Feind(Nono, Amerika)
6.Amerikaner(West)
Vorwärtsverkettung
Idee der Vorwärtsverkettung in der FOL für definite Klauseln erster Stufe:
1. Führe - beginnend bei den bekannten Fakten – alle Regeln aus, deren
Prämissen erfüllt sind
2. Füge die Schlüsse dieser Regeln den bekannten Fakten hinzu
3. Wiederhole diesen Prozess, bis die Frage beantwortet ist, oder bis keine
neuen Fakten mehr hinzugefügt werden können.
BEACHTE: Ein Fakt ist nicht neu, wenn er nur eine Umbenennung eines
bekannten Fakts darstellt (z.B. sind Mag(x, Eis) und Mag(y,Eis) nur
Umbenennungen voneinander  Ihre Bedeutungen sind identisch)
Vorwärtsverkettung: Beweisbaum
Iteration 1:
Regel 3 ist mit { x / M1} erfüllt und Waffe (West, M1, Nono) wird hinzugefügt
Regel 4 ist mit { x / M1} erfüllt und Waffe (M1) wird hinzugefügt
Regel 5 ist mit { x / Nono } erfüllt und Feindlich(Nono) wird hinzugefügt
Iteration 2:
Regel 1 ist mit { x / West, y / M1, z / Nono} erfüllt und Kriminell(West) wird
hinzugefügt
{ x / West, y / M1, z / Nono}
R1
{ x / Nono}
{ x / M1}
R4
R3
R5
Vorwärtsverkettung
new…. Die neuen Sätze die bei jeder Iteration abgeleitet werden
Standardize-Apart….Führt Standardisierung der Variablen durch
Resolution
Auch die Resolution ist auf die FOL erweiterbar. Resolution zeigt, dass
KB ⊧ α, indem sie beweist, dass KB ⋀ ¬ α unerfüllbar ist (durch Ableiten der
leeren Klausel)
l 1 ⋁ …. ⋁ lk, m1 ⋁ …. ⋁ m k
SUBST(θ, l1 ⋁.. ⋁ li-1 ⋁ li+1 ⋁ … ⋁ lk ⋁ m1 ⋁ … ⋁ mj-1 ⋁ mj+1 ⋁ … ⋁ mn)
wobei UNIFY(li, ¬mj) = θ
Um die Resolution anwenden zu können müssen die Sätze der KB in
konjunktive Normalform umgewandelt werden
Jeder Satz der Logik erster Stufe kann in einen im Hinblick auf die Inferenz
äquivalenten Satz in KNF umgewandelt werden (mit entfernten Quantoren)
Beispiel:
Die Klauseln [Tier(F(x)) ⋁ Liebt(G(x),x)] und [¬Liebt(u,v) ⋁ ¬Tötet(u,v)] können
resolviert werden indem die Literale Liebt(G(x),x) und ¬Liebt(u,v) mit dem
Unifikator θ={u/G(x),v/x)} elminiert werden  resolvierte Klausel: [Tier(F(x)) ⋁
¬Tötet(u,v)]
47
Resolution
Umwandlung in KNF:
Beispiel:
1.Jeder, der alle Tiere liebt wird von irgendjemand geliebt
∀x [ ∀y Tier(y) ⇒ Liebt(x,y)] ⇒ [∃y Liebt(y,x)]
Elimiere Implikationen (schreibe α ⇒ β als (¬ α ⋁ β))
∀x [¬ ∀y ¬ Tier(y) ⋁ Liebt(x,y)] ⋁ [∃y Liebt(y,x)]
Wende Regel nach DeMorgan an (schreibe (¬ ∀x α) als (∃x ¬α))
∀x [∃y Tier(y) ⋀ ¬ Liebt(x,y)] ⋁ [∃y Liebt(y,x)]
Standardisiere Variablen:
∀x [∃y Tier(y) ⋀ ¬ Liebt(x,y)] ⋁ [∃z Liebt(z,x)]
Skolemisiere: (=Entferne Existenzquantoren durch Eliminierung Ersetze
∃x P(x) durch P (F(X)))
∀x [Tier(F(x)) ⋀ ¬ Liebt(x,F(x))] ⋁ [Liebt(G(x),x)]
Skolem Funktionen
48
Resolution
Beispiel:
1.Jeder, der alle Tiere liebt wird von irgendjemand geliebt
∀x [ ∀y Tier(y) ⇒ Liebt(x,y)] ⇒ [∃y Liebt(y,x)]
Skolemisiere: (=Entferne Existenzquantoren durch Eliminierung Ersetze
∃x P(x) durch P (F(X)))
∀x [Tier(F(x)) ⋀ ¬ Liebt(x,F(x))] ⋁ [Liebt(G(x),x)]
Entferne Allquantoren:
[Tier(F(x)) ⋀ ¬ Liebt(x,F(x))] ⋁ Liebt(G(x),x)
⋀ über ⋁ verteilen:
[Tier(F(x)) ⋁ Liebt(G(x),x)] ⋀ [¬ Liebt(x,F(x)) ⋁ Liebt(G(x),x)]
49
Resolution - Beispiel
Beispiel KB:
1. Jeder, der alle Tiere liebt wird von irgendjemand geliebt
2. Jemand, der ein Tier tötet wird von niemandem geliebt
3. Jack liebt alle Tiere
4. Jack oder Neugier hat die Katze getötet, deren Name Tuna ist.
Frage: Hat Neugier die Katze getötet??
1.∀x [ ∀y Tier(y) ⇒ Liebt(x,y)] ⇒ [∃y Liebt(y,x)]
2.∀x [ ∃y Tier(y) ⋀ Tötet (x,y)] ⇒[∀z ¬Liebt(z,x)]
3.∀x Tier(x) ⇒ Liebt(Jack,x)
4.Tötet(Jack, Tuna) ⋀ Tötet(Neugier,Tuna)
5.Katze(Tuna)
6.∀x Katze(x) ⇒Tier(x)
7. (negiertes Ziel) ¬ Tötet(Neugier,Tuna)
50
Resolution - Beispiel
Umwandlung in KNF:
1. ∀x [ ∀y Tier(y) ⇒ Liebt(x,y)] ⇒ [∃y Liebt(y,x)]
2. ∀x [ ∃y Tier(y) ⋀ Tötet (x,y)] ⇒[∀z ¬Liebt(z,x)]
3. ∀x Tier(x) ⇒ Liebt(Jack,x)
4. Tötet(Jack, Tuna) ⋀ Tötet(Neugier,Tuna)
5. Katze(Tuna)
6. ∀x Katze(x) ⇒Tier(x)
7. (negiertes Ziel) ¬ Tötet(Neugier,Tuna)
1.a.
Tier(F(x)) ⋁ Liebt(G(X),x)
1.b.
¬Liebt(x,F(x)) ⋁ Liebt(G(x),x)
2.
¬ Tier(y) ⋁ Tötet (x,y) ⋁ ¬Liebt(z,x)
3.
¬ Tier(x) ⋁ Liebt(Jack,x)
4.
Tötet(Jack, Tuna) ⋁ Tötet(Neugier,Tuna)
5.
Katze(Tuna)
6.
¬ Katze(x) ⋁ Tier(x)
7. (negiertes Ziel) ¬ Tötet(Neugier,Tuna)
51
Resolution - Beispiel
52
Resolution - Beispiel
53
Inferenz in der FOL: Zusammenfassung
Resolution ist auf die FOL erweiterbar (Anwendung von UNIFY).
•
•
Jeder Satz der Logik erster Stufe kann in einen im Hinblick auf die
Inferenz äquivalenten Satz in KNF umgewandelt werden
Die (binäre) Resolutionsregel ist in Kombination mit der sog.
Faktorisierung in der FOL (Reduktion von 2 Literalen auf ein
Literal, wenn die beiden unifizierbar sind) vollständig
Vollständigkeitstheorem (Kurt Gödel, 1930):
•
Jede logische Konsequenz hat einen endlichen Beweis, d.h. jeder Satz,
der aus einer Formelmenge folgt, lässt sich mit den Schlussregeln des
Systems aus der Formelmenge herleiten.
1. Unvollständigkeitstheorem (Kurt Gödel, 1931):
•
In jedem formalen System der Zahlen, das zumindest eine Theorie der
Arithmetik der natürlichen Zahlen enthält, gibt es einen
unentscheidbaren Satz, also einen Satz, der nicht beweisbar und
dessen Negierung ebenso wenig beweisbar ist.
Herunterladen