1 / 53

Inferenz in Prädikatenlogik

Inferenz in Prädikatenlogik. Überblick. Reduktion prädikatenlogischer (PL) Inferenz auf aussagenlogische (AL) Inferenz Generalisierter Modus Ponens Unifikation Vorwärtsverkettung Rückwärtsverkettung Resolution. Universelle Instantiierung (UI).

adamma
Download Presentation

Inferenz in Prädikatenlogik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Inferenz in Prädikatenlogik

  2. Überblick • Reduktion prädikatenlogischer (PL) Inferenz auf aussagenlogische (AL) Inferenz • Generalisierter Modus Ponens • Unifikation • Vorwärtsverkettung • Rückwärtsverkettung • Resolution KI 9-Inferenz in PL

  3. Universelle Instantiierung (UI) • Aus einem universell quantifizierten Satz folgen alle seine Instantiierungen: vαSubst({v/g}, α) für jede Variable v und jeden Grundterm g (Grundterm = Term ohne Variablen). • Z.B. Aus  x König(x) Gierig(x)  Böse(x) folgt: König(John) Gierig(John) Böse(John) König(Richard) Gierig(Richard)  Böse(Richard) König(Vater(John)) Gierig(Vater(John)) Böse(Vater(John)) … KI 9-Inferenz in PL

  4. Existentielle Instantiierung (EI) • Für jeden Satz α, jede Variable v, und jedes Konstantensymbol k, das nicht an anderer Stelle in der WB auftritt, gilt:  vα Subst({v/k}, α) •  vα heißt, dass es ein v gibt, das α erfüllt. Diesem v kann man einen Namen geben, der noch nicht in der WB vorkommt. • Z.B.  xKrone(x) AufKopf(x,John) ergibt: Krone(C1) AufKopf(C1,John) wobei C1 eine neues Konstantensymbol ist, genannt Skolem-Konstante. KI 9-Inferenz in PL

  5. Existentielle Instantiierung (EI) • Beachte: UI wird mehrmals angewendet, EI nur einmal. • Danach wird existentiell quantifizierter Satz aus WB entfernt. • Bsp.: • WB enthält:  x Ehefrau(x, Paul) • Füge EI zu WB hinzu: Ehefrau(Anne, Paul). • Entferne Satz  x Ehefrau(x, Paul) aus WB. • Neue WB ist nicht logisch äquivalent zur alten, denn diese hätte z.B. Ehefrau(Petra, Paul) zugelassen (vorausgesetzt Petra kommt nicht in WB vor). • Neue WB ist aber inferentiell äquivalent zu alter WB. KI 9-Inferenz in PL

  6. Reduktion auf aussagenlogische Inferenz • Idee: Wir sparen uns Inferenzmechanismen für PL, reduzieren einfach auf AL und verwenden die bekannten! • Bsp.: WB enthält nur die folgenden Sätze:  x König(x)  Gierig(x)  Böse(x) König(John) Gierig(John) Bruder(Richard,John) • Instantiiere (UI) ersten Satz mit allen möglichen Substitutionen, erhalte neue WB: König(John)  Gierig(John)  Böse(John) König(Richard)  Gierig(Richard)  Böse(Richard) König(John) Gierig(John) Bruder(Richard,John) • Betrachte atomare Sätze Gierig(John) etc. als Aussagensymbole. • Neue WB ist damit rein aussagenlogisch.

  7. Reduktion • Jede PL-WB kann so in eine aussagenlogische WB umgewandelt werden, dass die logische Konsequenz erhalten bleibt. • Problem: Für Funktionssymbole gibt es unendlich viele Grundterme, z.B. Vater(Vater(Vater(John))) KI 9-Inferenz in PL

  8. Reduktion Theorem (Herbrand, 1930): Wenn ein Satz α Konsequenz einer PL-WB ist, ist er Konsequenz einer endlichen Untermenge der aussagenlogischen WB. Idee: For n = 0 to ∞ do Erzeuge aussagenlogische WB durch Instantiierung mit Termen der Tiefe n. Prüfe ob α Konsequenz dieser WB ist. Problem: Klappt, falls α aus WB folgt; Schleife falls α nicht folgt ! Theorem (Turing,1936; Church, 1936): Konsequenz ist für PL semientscheidbar: • Es gibt Algorithmen, die jeden aus der WB beweisbaren Satz beweisen. • Aber es gibt keine Algorithmen, die beweisen, dass ein Satz nicht Konsequenz der WB ist. • Bekannt als Halteproblem der Turing-Maschine!

  9. Probleme der Umwandlung in AL • Umwandlung von PL nach AL generiert viele irrelevante Sätze. • Bsp.  x König(x)  Gierig(x)  Böse(x) König(John)  y Gierig(y) Bruder(Richard,John) Es ist offensichtlich Böse(John), aber Umwandlung in AL produziert zahlreiche irrelevante Fakten wie Gierig(Richard). • Mit p k-stelligen Prädikaten und n Konstanten, gibt es p·nk Instantiierungen. • Suche „Lifting“ der AL-Inferenzregeln zur PL-Tauglichkeit. KI 9-Inferenz in PL

  10. Unifikation • WB:  x König(x)  Gierig(x)  Böse(x) König(John) Gierig(Richard) Gierig(John) • Folgere Böse(John): • Idee: Suche x, so dass König(x) und Gierig(x), folgere Böse(John). • Formal: Suche Substitutionθ: {x / John}. • Andere WB:  x König(x)  Gierig(x)  Böse(x) König(John) • y Gierig(y) • Folgere Böse(John):  Suche Substitution für zwei Variable: {x / John, y / John}. KI 9-Inferenz in PL

  11. Unifikation • Böse(John) kann direkt inferiert werden, wenn wir eine Substitution θ finden, so dass König(x) und Gierig(x) zu König(John) und Gierig(y) passen. θ = {x/John, y/John} funktioniert. • Ersetzungsprozess heißt Unifikation. • Suche Unifikationsalgorithmus: Unify(p,q) = θ wenn pθ = qθ. Beispiele: p q θ Kennt(John,x) Kennt(John,Jane) {x / Jane} Kennt(John,x) Kennt(y,Richard) {x / Richard, y / John} Kennt(John,x) Kennt(y,Mutter(y)) {y / John, x / Mutter(John)} Kennt(John,x) Kennt(x,Richard) { } KI 9-Inferenz in PL

  12. Unifikation Problem: p q θ Kennt(John,x) Kennt(x,Richard) { } • Offenbar entsteht das Problem durch ungünstige Variablen-Benennung. • Standardisierung eliminiert Konflikt der Variablen, z.B. Kennt(z,Richard). KI 9-Inferenz in PL

  13. Allgemeinster Unifikator • Kennt(John,x) und Kennt(y,z) kann auf verschiedene Arten substituiert werden: • θ = {y/John, x/z }, Ergebnis: Kennt(John,z), Kennt(John,z) • θ = {x/John, y/John, z/John}, Ergebnis: Kennt(John,John), Kennt(John,John) • Der erste Unifikator ist allgemeiner als der zweite. • Es gibt für jedes Paar von Ausdrücken nur einen allgemeinsten Unifikator (MGU, most general unifier) der eindeutig ist (bis auf Umbenennung von Variablen). MGU = { y/John, x/z } KI 9-Inferenz in PL

  14. Unifikationsalgorithmus • Unify(x,y,θ) • Vergleicht x und y stückweise • Parallel wird Unifikator θ aufgebaut • Problem: Vergleich einer Variablen var mit komplexem Term x • Occur-Check löst Problem durch Test, ob var in x vorkommt. Wenn ja, failure. KI 9-Inferenz in PL

  15. Unifikationsalgorithmus KI 9-Inferenz in PL

  16. Unifikationsalgorithmus KI 9-Inferenz in PL

  17. Generalisierter Modus Ponens (GMP) Modus Ponens der AL: p1 , p2 , … , pn , ( p1 p2 …  pn q) q KI 9-Inferenz in PL

  18. Generalisierter Modus Ponens (GMP) Allgemein: p1', p2', … , pn', ( p1 p2 …  pn q) qθ wobei pi'θ = piθ für alle i KI 9-Inferenz in PL

  19. Generalisierter Modus Ponens (GMP) Allgemein: p1', p2', … , pn', ( p1 p2 …  pn q) qθ p1' ist König(John) p1 ist König(x) p2' ist Gierig(y) p2 ist Gierig(x) θ ist {x/John,y/John} q ist Böse(x) q θ ist Böse(John) • GMP wird verwendet für WB mit definiten Klauseln (genau ein positives Literal). • Es wird angenommen, dass alle Variablen universell quantifiziert sind. wobei pi'θ = piθ für alle i KI 9-Inferenz in PL

  20. Definite Klauseln erster Stufe • Disjunktion von Literalen, wobei genau eins positiv ist, bzw. • Implikation der Form (Konjunktion positiver Literale)  positives Literal • Unterschied zu AL: Literale dürfen Variable enthalten, • diese sind implizit universell quantifiziert. KI 9-Inferenz in PL

  21. Beispiel • WB: • Gesetz: Jeder Amerikaner, der Waffen an feindliche Nationen verkauft, ist ein Verbrecher. • Das Land Nono gehört zu den Feinden Amerikas, … • … und hat Raketen. • Alle Raketen des Landes Nono wurden von Colonel West verkauft, ... • … der Amerikaner ist. • Beweise, dass Col. West ein Verbrecher ist! KI 9-Inferenz in PL

  22. Beispiel Jeder Amerikaner, der Waffen an feindliche Nationen verkauft, ist ein Verbrecher: Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z)  Verbrecher(x) Das Land Nono gehört zu den Feinden Amerikas … Feind(Nono,Amerika) … und hat Raketen: x Hat(Nono,x)Rakete(x):Hat(Nono,R1)  Rakete(R1) Alle Raketen des Landes Nono wurden von Colonel West verkauft, ... Rakete(x)  Hat(Nono,x)  Verkauft(West,x,Nono) … der Amerikaner ist. Amerikaner(West) KI 9-Inferenz in PL

  23. Beispiel Jeder Amerikaner, der Waffen an feindliche Nationen verkauft, ist ein Verbrecher: Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z)  Verbrecher(x) Das Land Nono gehört zu den Feinden Amerikas … Feind(Nono,Amerika) … und hat Raketen: x Hat(Nono,x)Rakete(x):Hat(Nono,R1)  Rakete(R1) Alle Raketen des Landes Nono wurden von Colonel West verkauft, ... Rakete(x)  Hat(Nono,x)  Verkauft(West,x,Nono) … der Amerikaner ist. Amerikaner(West) Was fehlt ?? KI 9-Inferenz in PL

  24. Beispiel Jeder Amerikaner, der Waffen an feindliche Nationen verkauft, ist ein Verbrecher: Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z)  Verbrecher(x) Das Land Nono gehört zu den Feinden Amerikas … Feind(Nono,Amerika) … und hat Raketen: x Hat(Nono,x)Rakete(x):Hat(Nono,R1)  Rakete(R1) Alle Raketen des Landes Nono wurden von Colonel West verkauft, ... Rakete(x)  Hat(Nono,x)  Verkauft(West,x,Nono) … der Amerikaner ist. Amerikaner(West) Ein Feind von Amerika ist feindlich: Feind(x,Amerika)  Feindlich(x) Raketen sind Waffen: Rakete(x)  Waffe(x) KI 9-Inferenz in PL

  25. Vorwärtsverkettung: Algorithmus • Gegeben: WB in Form definiter Klauseln • Idee: Verwende Vorwärtsverkettung, um nacheinander passende Ersetzung(en) zu finden, so dass aus bekannten Fakten neue abgeleitet werden können. • Prinzip: • Sammle alle bekannten Fakten. • Alle Regeln ausführen, deren Prämissen erfüllt sind. • Schlüsse den bekannten Fakten hinzufügen. • Falls zu beweisender Satz dabei: Erfolg, Ende. • Falls keine neuen Fakten: Failure, Ende. • Goto 2. KI 9-Inferenz in PL

  26. Vorwärtsverkettung: Algorithmus KI 9-Inferenz in PL

  27. WB des Beispiels • Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z)  Verbrecher(x) • Feind(Nono,Amerika) • Hat(Nono,R1)  Rakete(R1) • Rakete(x)  Hat(Nono,x)  Verkauft(West,x,Nono) • Amerikaner(West) • Feind(x,Amerika)  Feindlich(x) • Rakete(x)  Waffe(x) KI 9-Inferenz in PL

  28. WB des Beispiels • Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z)  Verbrecher(x) • Feind(Nono,Amerika) • Hat(Nono,R1)Rakete(R1) • Rakete(x)  Hat(Nono,x)  Verkauft(West,x,Nono) • Amerikaner(West) • Feind(x,Amerika)  Feindlich(x) • Rakete(x)  Waffe(x) KI 9-Inferenz in PL

  29. Vorwärtsverkettung Beispiel KI 9-Inferenz in PL

  30. WB des Beispiels • Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z)  Verbrecher(x) • Feind(Nono,Amerika) • Hat(Nono,R1)Rakete(R1) • Rakete(x)  Hat(Nono,x) Verkauft(West,x,Nono) • Amerikaner(West) • Feind(x,Amerika) Feindlich(x) • Rakete(x) Waffe(x) KI 9-Inferenz in PL

  31. Vorwärtsverkettung Beispiel KI 9-Inferenz in PL

  32. Vorwärtsverkettung Beispiel KI 9-Inferenz in PL

  33. WB des Beispiels • Amerikaner(x)  Waffe(y)  Verkauft(x,y,z)  Feindlich(z) Verbrecher(x) • Feind(Nono,Amerika) • Hat(Nono,R1)Rakete(R1) • Rakete(x)  Hat(Nono,x) Verkauft(West,x,Nono) • Amerikaner(West) • Feind(x,Amerika) Feindlich(x) • Rakete(x) Waffe(x) KI 9-Inferenz in PL

  34. Vorwärtsverkettung Beispiel KI 9-Inferenz in PL

  35. Eigenschaften der Vorwärtsverkettung • Korrekt und vollständig für definite Klauseln 1. Stufe. • Datalog • Datenbank-Programmiersprache • Definite Klauseln 1. Stufe, aber keine Funktionen • Keine Anwendungen • Vorwärtsverkettung terminiert für Datalog nach endlicher Zahl von Iterationen. • Terminiert u.U. nicht, falls α keine Konsequenz ist, denn • Konsequenz ist für definite Klauseln nur halbentscheidbar. KI 9-Inferenz in PL

  36. Effiziente Vorwärtsverkettung: Beschränkung der Regelkomplexität • Problem: Reihenfolge bei Auswertung von Konjunkten • Bsp.: Rakete(x)  Hat(Nono,x)  Verkauft(West,x,Nono) • Teste für alle Raketen, ob Nono sie besitzt; oder: • Teste für alle Objekte, die Nono sie besitzt, ob sie Raketen sind. Reihenfolge 1 besser, falls es weniger Raketen gibt, als Nono Objekte besitzt. • Ermittlung optimaler Reihenfolge NP-hart. • Abhilfe: • Heuristiken wie most constrained variable • Beschränkung der Länge der Regeln und Stelligkeit der Prädikate. KI 9-Inferenz in PL

  37. Effiziente Vorwärtsverkettung: Inkrementelle Vorwärtsverkettung • Problem: Regeln werden wiederholt verglichen. • Idee: „Inkrementelle Vorwärtsverkettung“ • Bei Iteration k muss eine Regel nicht verglichen werden, wenn nicht eine ihrer Prämissen bei Iteration k-1 hinzugefügt wurde. KI 9-Inferenz in PL

  38. Rückwärtsverkettung: Algorithmus SUBST(COMPOSE(θ1, θ2), p) = SUBST(θ2, SUBST(θ1, p)) KI 9-Inferenz in PL

  39. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  40. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  41. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  42. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  43. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  44. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  45. Rückwärtsverkettung: Beispiel KI 9-Inferenz in PL

  46. Eigenschaften der Rückwärtsverkettung • Tiefensuche zum Beweis eines Satzes: Speicherbedarf linear in Beweisgröße • Unvollständig, da u.U. Endlosschleifen: • Abhilfe: Vergleiche gegenwärtiges Ziel mit allen Zielen auf Stack. • Ineffizient, da Wiederholung der Teilziele (sowohl bei Erfolg als auch failure) • Abhilfe: Caching früherer Resultate. • Weit verbreitet für Logikprogrammierung. KI 9-Inferenz in PL

  47. Logikprogrammierung: Prolog • Programming in Logic • Weit verbreitet in Europa und Japan (Basis des 5th Generation Project) • Programm = Menge von Hornklauseln = Kopf :- Literal1, … Literaln. Verbrecher(X) :- Amerikaner(X), Waffe(Y), Verkauft(X,Y,Z), Feindlich(Z). • Anfragen an die WB werden durch Tiefensuche und links-nach-rechts Rückwärtsverkettung beantwortet. • Eingebaute Prädikate für Arithmetik etc., z.B. X is Y*Z+3 • Eingebaute Prädikate mit Nebeneffekten (z.B. Eingabe- und Ausgabe-Prädikate, assert/retract zur Veränderung der WB) • Closed-world assumption: Alles, was nicht als wahr deklariert ist oder bewiesen werden kann, ist falsch (Gegensatz zu PL!). KI 9-Inferenz in PL

  48. Prolog • Da Kontrolle durch Schleifen (for, while etc.) fehlt, werden Schleifen durch Rekursion auf Listen programmiert. • Verkettung zweier Listen zu einer dritten: append([],Y,Y). append([X|L],Y,[X|Z]) :- append(L,Y,Z). • Anfrage: append(A,B,[1,2]) ? • Antworten: A=[] B=[1,2] A=[1] B=[2] A=[1,2] B=[] KI 9-Inferenz in PL

  49. Resolution • PL-Version: l1···lk, m1···mn Subst(θ, l1···li-1li+1 ···lkm1···mj-1mj+1···mn) wobei Unify(li, mj) = θ. • Die zwei Klauseln müssen dabei standardisiert sein, d.h. keine gemeinsame Variable haben. • Bsp.: Reich(x) Unglücklich(x) , Reich(Ken) Unglücklich(Ken) mit θ = {x/Ken} • Anwendung der Resolution analog AL: KNF(WB α) KI 9-Inferenz in PL

  50. Konversion nach KNF Jeder, der alle Tiere liebt, wird von jemand geliebt: x [y Tier(y) Liebt(x,y)]  [y Liebt(y,x)] 1. Eliminiere Bikonditionale und Implikationen: x [y Tier(y) Liebt(x,y)]  [yLiebt(y,x)] 2. Schiebe  nach innen (x p ≡x p,  x p ≡x p): x [y (Tier(y) Liebt(x,y))]  [y Liebt(y,x)] x [y Tier(y) Liebt(x,y)]  [y Liebt(y,x)] x [y Tier(y) Liebt(x,y)]  [y Liebt(y,x)] 3. Standardisiere Variable: Jeder Quantor muss andere Variable verwenden x [y Tier(y) Liebt(x,y)]  [z Liebt(z,x)] KI 9-Inferenz in PL

More Related