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.