Schlußfolgern durch Theorembeweisen Universität Bielefeld fügt eine Frage-Formel in DATABASE ein und versucht, darauf passende Antworten zu deduzieren query INTERFACE Idee: Eine Anfrage wird als zu beweisendes Theorem betrachtet. 8. Vorlesung: Unifikation; Vorwärts- und Rückwärtsverkettung, Goal Trees Antwort Anfrage 3 Logik und Inferenz GATEKEEPER (a) Direkter Beweis – bei den Axiomen (d.h. hier: den assertierten Formeln) beginnen – Schlußregeln anwenden, bis zu beweisendes Theorem dasteht (b) Indirekter Beweis: durch Widerlegung des Gegenteils – Nimm an, die Verneinung (das Negat) der Anfrage sei wahr Methoden der Künstlichen Intelligenz Ipke Wachsmuth – Zeige, daß die Axiome und das Negat zusammen etwas als wahr bezeichnen, das nicht stimmt WS 2004/2005 – Folgere, daß das Negat nicht wahr sein kann, da ein Widerspruch folgt DATABASE – Schließe, daß die Anfrage wahr sein muß, da ihr Negat nicht wahr sein kann 8. Vorlesung Einschub: Schlußfolgern in der Aussagenlogik Ein Blick auf die deduktiven Schlußregeln der Aussagenlogik (AL) Modus ponens A→ B A B ¬ Modus tollens AvB A B A→ B ¬B ¬A AvB ¬B ¬A gegeben: AvB ¬BvC AvC Methoden der Künstlichen Intelligenz Es regnet ¬B nicht Schluß: Ich trage die Sonnenbrille Beweis durch Widerlegung des Gegenteils 3 A Ich trage die Sonnenbrille gegeben: ¬ Resolution ist eine allgemeinere Schlußregel; sie beinhaltet zugleich Modus ponens und Modus tollens. 2 Beispiel: Resolution in der Aussagenlogik Gilt A v C ? Resolutionsregel 8. Vorlesung Klauseldarstellung Methoden der Künstlichen Intelligenz 8. Vorlesung AvB ODER A ¬ Es regnet B ODER Ich nehme den Schirm mit ODER Ich nehme den Schirm mit BvC B ¬ ¬ ∅ A &¬C C C Das Negat der Anfrage B also gilt: A v C Methoden der Künstlichen Intelligenz 4 Verallgemeinerter Modus Ponens PL-Formeln mit Variablen: 2. Weg (PL: Prädikatenlogik) Statt (I) Modus Ponens betrachte folgende allgemeinere Regel: • Unifikation: Sie ermöglicht Inferenzen mit Formeln der PL, die gleiche Prädikate, aber verschiedene Argumente haben. => Verallgemeinerung (zunächst) des Modus ponens für PL (Modus Ponens verallg.) (III) Unifikations-Inferenz Aus p' und (if p q ) inferiere q' wobei p mit p' unifizieren muß und die resultierende Substitution auf q angewandt wird, wodurch man q' erhält. (I) Modus Ponens erneut betrachtet: Aus p und (if p q ) inferiere q • Problem: Was tun, wenn hier statt p eine Formel p' steht, welche andere Argumente hat als in p ? p • Idee: (if p q) p' p' Methoden der Künstlichen Intelligenz (if (inst ?x canary)(color ?x yellow)) (inst tweety canary) (inst ?x canary) (inst tweety canary) unifizieren mit der Substitution: {x = tweety} (inst x canary) und (inst tweety canary) würden gleich bei der Substitution: {x = tweety} 8. Vorlesung Beispiel assert: assert: und durch Anwendung dieser Substitution auf (color ?x yellow) ist (color tweety yellow) das Ergebnis. q' 5 8. Vorlesung Unifikation Methoden der Künstlichen Intelligenz Anderes Beispiel für Unifikation • Unifikation heißt hier: Können Variablensubstitutionen gefunden werden, die die Ausdrücke gleich machen (unifizieren)? Substituiere Werte von Variablen so, daß zwei verschiedene Ausdrücke gleich werden. (Werte können auch andere Variablen sein.) p (freund ?x,hans) • Allgemein ist eine Substitution eine Menge von Variable-Wert-Paaren. p' (freund fritz,?y) • Jedes solche Paar heißt Variablenbindung. p und p' unterscheiden sich in den Argumenten des freund-Prädikats Die Anwendung einer Substitution auf eine Formel heißt, jedes Vorkommen einer dadurch gebundenen Variablen durch ihren Wert zu ersetzen. • Es können auch mehrere Ausdrücke (Formeln oder Terme) einer gemeinsamen Substitution unterzogen werden! Gegenbeispiel (freund ?x,?x) (freund fritz,hans) Methoden der Künstlichen Intelligenz (freund fritz,hans) unifiziert mit der Variablensubstitution {x=fritz,y=hans} • Entsprechende Variablen heißen durch die Substitution gebunden. 8. Vorlesung 6 ? unifiziert nicht (x kann nicht zwei Dinge zugleich sein) 7 8. Vorlesung Methoden der Künstlichen Intelligenz 8 Verallgemeinerter Modus Ponens Weitere Notationen und Begriffe da capo Benennung von Substitutionen durch griechische Buchstaben, z.B.: Die Inferenzregel (III) ist ein Spezialfall der Resolutionsregel in der Prädikatenlogik. Hauptgewinn: θ „theta“ Für p Formel oder Term: notiere in einem Mechanismus zusammengefaßt. Beispiel: • forward chaining für eine assertierte Formel p θ Substitution von • verschiedene separate Inferenz-Mechanismen werden durchzuführen, heißt dann: pθ deren Antezedenten p' mit der Assertion p p: (touching (side ?x) ?y) θ = pθ : { x = a, y = (surface ?z) } (touching (side a) (surface ?z)) Subsumtion unifizieren, Man sagt, eine Formel p subsumiert (schließt ein) eine andere Formel q , wenn es eine Substitution gibt mit p θ = q . (auch: "resolvieren"). Subsumption) Beispiel: (not (divine ?x)) subsumiert (not (divine fred)) 8. Vorlesung Methoden der Künstlichen Intelligenz 9 8. Vorlesung q Eine Substitution schließe θ ist ein Unifikator für eine Menge von Formeln oder Termen folgt aus p wenn 1) 10 "Vereinheitlicher" (engl: unifier) (IV) Subsumtions-Inferenz q = { x = fred } Unifikator Mit der Subsumtion erhält man eine einfache weitere Inferenzregel: subsumiert θ mit Methoden der Künstlichen Intelligenz Subsumtionsinferenz, Varianten Aus p für das Resultat der in p . Begriff der Finde Assertionen (if p' q ) (die mit der Assertion p = { x = a, y = (surface ?z) } p 1θ = p 2θ { p 1, p 2, ..., p n } =... = p nθ = P (das heißt also, daß die p i durch die Substitution θ gleich werden). Zwei Formeln, die sich gegenseitig subsumieren, heißen Varianten (bedeuten das gleiche). Beispiel: 2) Beispiel: (p ?x ?x) und (p ?y ?y) sind Varianten (above ?z floor-19) (if (above ?x ?y) (below ?y ?x)) p subsumiert q echt, wenn gilt: θ p subsumiert q , aber q subsumiert nicht p . Beispiel: 8. Vorlesung 11 8. Vorlesung haben als Unifikator: ={ x = table-21, y = floor-19, z = table-21 } dann folgt (below floor-19 table-21) (p ?x ?y) subsumiert echt (p ?x ?x) Methoden der Künstlichen Intelligenz und der Antezedent von Methoden der Künstlichen Intelligenz . 12 Übersicht Unifikation Allgemeinster Unifikator Ein Unifikator ist ein Most General Unifier (MGU) MGU (für eine Menge von Formeln oder Termen), wenn das produzierte P nicht echt subsumiert wird von dem P , das irgendein anderer Unifikator produziert. Beispiel: (dann folgt (below floor-19 table-21) so, daß zwei Ausdrücke (Terme (Terme oder Formeln) gleich macht. oder Formeln) gleich werden. (D.h. ein Unifikator ist eine spezielle Eine Formel ) Formel und als (ein MGU!!) ={ x = ?z, y = floor-19} (dann folgt (below floor-19 ?z) 8. Vorlesung Die Substitution Der Der MGU MGUist ist eindeutig eindeutig (bis (bisauf auf Varianten) Varianten) Subsumtion: 1. Unifikator (s.o. - kein MGU!) θ 1 ={ x = table-21, y = floor-19, z = table-21 } θ2 das Substituieren von Variablen haben als (if (above ?x ?y) (below ?y ?x)) 2. Unifikator (Vor allen Dingen bleiben Variablen erhalten, was oft wichtig ist.) Unifikator: und der Antezedent von (above ?z floor-19) Es ist günstig, einen möglichst allgemeinen Unifikator zu finden: damit nur so viele Spezialisierungen erfolgen, wie eben nötig sind. Unifikation: ). q p q aus p 13 Das Dasist ist der der beste! beste! Allgemeinster Unifikator (MGU): durch Diejenige unifizierende Substitution, die eine Variablensubstitution hervorgeht. am wenigsten Spezialisierungen vornimmt. (Formeln, die sich gegenseitig Man kann zeigen: Für jede unifizierbare subsumieren, heißen Varianten.) Menge von Formeln existiert ein MGU! MGUs sind gut fürs chaining! Methoden der Künstlichen Intelligenz die zwei Ausdrücke Substitution!) subsumiert eine , wenn θ, siehe siehe z.B. z.B. Lloyd: Lloyd: Foundations Foundations of of Logic Logic Programming Programming 8. Vorlesung Methoden der Künstlichen Intelligenz 14 Rückwärtsverkettung – Idee Vorwärts- und Rückwärtsverkettung Die meisten Inferenzen in einem deduktiven System werden Forward Chaining Aus p' inferiere wobei p mit MGU (if p q ) und q' zur Query Time vorgenommen. (if p q ) • GATEKEEPER wird eine Implikation sei assertiert. p' und unifiziert und q'= q θ wird (if p q ) zwar assertieren, aber nichts damit anstellen, bis eine Frage q' gefragt wird (als goal) q,q' haben MGU θ p'= p θ als subgoal aufgeworfen. Wenn nach mit θ Backward Chaining (query) der Form (subgoal) p' q' gestellt wird. Dann wird subquery gestellt. • Das Stellen von subgoals, sub-subgoals etc. wird durch • Inferenz zur Assertion Time • Inferenz zur Query Time • "Die Assertion resolviert mit der Implikation." • "Das goal resolviert mit der Implikation." Goal Trees (Zielbäume) Ziel backward chaining (Rückwärtsverkettung) bewerkstelligt. • Der Basismechanismus des Backward Chaining bezieht sich auf nichtkonjunktive goals: Verkettung von Implikationen (rückwärts). Rückwärtsverkettung: zielorientiertes Inferenzverfahren (bei konjunktiven (sub-)goals in Verbindung mit Goal Tree-Suche) Teilziele • Als Suchstruktur bei konjunktiven goals von der Form (if (and p1 p2 ) q) 8. Vorlesung Methoden der Künstlichen Intelligenz 15 8. Vorlesung werden Goal Trees eingesetzt. Methoden der Künstlichen Intelligenz 16 Goal-Formeln kennzeichnen Goal-Formeln skolemisieren Für goals werden die Konventionen fürs Skolemisieren Verwende (Show: formula ) zur Kennzeichnung von umgedreht (entsprechend dem Verfahren bei not ): goal-Formeln. Logisch gesehen ist Show: Antwort Anfrage INTERFACE Hier am Beispiel (Show: (color tweety yellow)) gleichbedeutend mit not bzw. subgoal (Show: (inst tweety canary)) (die entsprechenden Aus- • Show: ist kein logischer Junktor! (manchmal Pseudo-Junktor genannt) • hängt aber zusammen mit dem DATABASE Junktor not 8. Vorlesung (kommt später) Wenn eine Anfrage (query) an DATABASE gestellt wird, muß die entsprechende Formel gekennzeichnet werden, um sie von den "beliefs" (assertierten Formeln) unterscheiden zu können. Methoden der Künstlichen Intelligenz 17 (Show: (forall (y) (color y yellow))) • (not (color tweety yellow)) wird probeweise assertiert – als Annahme; entspricht Show: einer gemachte Assertion) intuitiv: Wenn es für ein gewisses sk-8 gezeigt werden kann, kann es für beliebige Instanzen gezeigt werden. 8. Vorlesung Methoden der Künstlichen Intelligenz 18 mit forward und backward chaining als Spezialfällen: Klauseldarstellung! Schreibe (if p q) als (or (not p) q) Chaining Aus und inferiere Forward p' (or (not p) q) q' Abschnitt 6.6 Backward (not q') (or q (not p)) (not p') in Charniak/ Allgemein not m' Forward m =(not p) n = q Backward m = q n =(not p) siehe Schon vorhandene "geglaubte" Assertionen: (inst tweety canary) (if (inst ?x canary)(color ?x yellow)) was gleichbedeutend ist mit: (or (not(inst ?x canary))(color ?x yellow)) (or m n) n' McDermott mit unifizierender Substitution analog zu (III) Das negierte goal resolviert mit der Implikation zu (not (inst tweety canary)) Methoden der Künstlichen Intelligenz (Show: (color sk-8 yellow)) Annahme (probeweise Weitere Details (beide RegelAntezedenten dürfen disjunktiv sein) WIDERSPRUCH! Also gilt das ursprüngliche goal. 8. Vorlesung wird skolemisiert als pragmatisch gesehen Allgemeine Resolutionsregel (Show: (color tweety yellow)) – goal – kann als Versuch verstanden werden, (color tweety yellow) durch Widerspruch zu beweisen: • (Show: (color ?y yellow)) Weise skolemisiert) Resolutionsregel – grobe Idee • wird skolemisiert als drücke werden in gleicher (bezogen auf früheres Beispiel) GATEKEEPER (Show: (exists (y) (color y yellow))) 19 8. Vorlesung (V) Allgemeine Resolutionsregel Aus (or n 1 (not m' )) und (or m n 2) inferiere (or n 1' n 2 ') Methoden der Künstlichen Intelligenz 20 Zentral: Antwortsubstitution Theorembeweiser – Goal Tree Beispiel: Assertiert seien Allgemein: (i) Bei konjunktiven Goals sind Antworten für ein (inst tweety canary) Gegeben das goal (Show:q') mit (if p q) in DATABASE und q,q'haben MGU θ . (ii) (if (inst ?x canary)(color ?x yellow)) Produziere subgoal (Show:pθ) und falls das eine Antwort ψ hat, ist θ U ψ eine Antwort auf das resolviert mit (ii) zum subgoal (Show: (inst ?y canary)) ursprüngliche goal. „theta“ (Show: (color ?y yellow)) Dies unifiziert mit (i) zu (inst tweety canary) als goal θ = {x = ?y} Die beim backwardbackwardchaining vorgenommenen Substitutionen liefern eine spezifische Antwort! 8. Vorlesung führt zu der Antwort "Ja, tweety ist gelb": {x = tweety} Theorembeweiser ---> Goal Tree-Suche Ziel Die UND-Knoten eines Goal Trees enthalten constraints: Randbedingungen an die Teilziele Lösungen für jede ihrer Komponenten. • Hier sind das die folgenden: Die Variablen- Charniak & McDermott, Kap. 6, 351-360; 378ff. bindungen für gleich benannte Variablen in den Teillösungen müssen identisch sein! Antwortsubstitution Methoden der Künstlichen Intelligenz 21 8. Vorlesung Methoden der Künstlichen Intelligenz (grossvater fritz ?u) PROLOG: ""PROgramming PROgramming in LOGic" LOGic" (Basis: Hornformeln der PL) Eine Definition von "Großvater": Für alle x, für alle y, für alle z gilt: x ist Großvater von y, wenn x Vater von z ist und z Vater von y. oder ganz formal: ∀x∀ ∀y∀ ∀z (grossvater x y) ← (vater x z)(vater z y) In PROLOG gelten alle Variablen als implizit allquantifiziert (matchen mit beliebigen Termen); Quantoren werden weggelassen: (grossvater ?x ?y)1 ← (vater ?x ?z)(vater ?z ?y) (grossvater ?x ?y)2 ← (vater ?x ?z)(mutter ?z ?y) ∀ x∀ ∀y∀ ∀z (grossvater x y) ← (vater x z)(mutter z y) "klassische" Clocksin/Mellish–Syntax: grossvater(X Y) :− vater(X Z),vater(Z Y) (vater fritz hans) (vater fritz klara) (mutter klara peter) Show: Ist Fritz ein Großvater? (grossvater fritz ?u) >(grossvater fritz peter) Methoden der Künstlichen Intelligenz 23 (grossvater ?x ?y)2 (grossvater ?x ?y)1 (vater ?x ?z) Seien dazu nun noch folgende Fakten assertiert: Die entsprechende Definition "über die Mutter": 22 Goal-Tree-Suche in PROLOG Ein PROLOG-Beispiel 8. Vorlesung anderen Konjunkte sind. ("Deductive Retriever") Leseempfehlung heute: D.h. die Frage "Existiert etwas, das gelb ist?" Konjunkt zu finden, die auch Antworten für die Algorithmus: Goal Trees (Zielbäume) ψ = {y = tweety} und damit bestätigt sich das ursprüngliche goal zu (color tweety yellow) θ U ψ = {x = tweety} „psi“ Bei konjunktiven (sub)goals z.B. (if (and r1 r2) q) (vater fritz hans) (vater fritz klara) (vater ?z ?y) (vater fritz hans) (vater fritz klara) (vater ?x ?z) (vater fritz hans) (vater fritz klara) (mutter ?z ?y) (mutter klara peter) redo: (grossvater fritz ?u) show: (grossvater fritz ?u) show: (vater fritz ?z) show: (vater fritz ?z) success: (vater fritz hans) success: (vater fritz hans) show: (vater hans ?y) show: (mutter hans ?y) redo: (vater hans ?y) fail: (mutter hans ?y) fail: (vater hans ?y) redo: (vater fritz ?z) redo: (vater fritz ?z) success: (vater fritz klara) show: (mutter klara ?y) success: (vater fritz klara) success: (mutter klara peter) show: (vater klara ?y) redo: (vater klara ?y) success: (grossvater fritz peter) fail: (vater klara ?y) 8. Vorlesung Methoden der Künstlichen Intelligenz FRAGE: Was sind hier die Constraints an den UNDKnoten? ANTWORT: Dass die Variablenbindungen gleich benannter Variablen in den Teillösungen auch tatsächlich gleich sind. 24