Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Inferenz in Prädikatenlogik

Ähnliche Präsentationen


Präsentation zum Thema: "Inferenz in Prädikatenlogik"—  Präsentation transkript:

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.  x Krone(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) 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: Folgere Böse(John): Andere 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: y Gierig(y)  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) 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) 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: Beweise, dass Col. West ein Verbrecher ist!
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)]  [y Liebt(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

51 Konversion nach KNF 4. Skolemisierung: Jede existentiell quantifizierte Variable wird durch Skolem-Funktion der allquantifizierten Variablen ersetzt: x [Tier(F(x))  Liebt(x,F(x))]  Liebt(G(x),x) Beachte: Ohne die Abhängigkeiten des (Tiers) F und der (Person) G von x würde der Satz heißen: „Alle (Personen) x lieben ein bestimmtes (Tier) F nicht oder werden von einer bestimmten (Person) G geliebt.“ 5. Alle verbleibenden Variablen sind allquantifiziert, Allquantoren weglassen: [Tier(F(x))  Liebt(x,F(x))]  Liebt(G(x),x) 6. Konjunktion zwischen Klauseln herstellen („Klammern ausmultiplizieren“) : [Tier(F(x))  Liebt(G(x),x)]  [Liebt(x,F(x))  Liebt(G(x),x)] KI 9-Inferenz in PL

52 Resolutionsbeweis Analog AL
Um zu zeigen, dass Satz a Konsequenz aus WB ist, wird gezeigt, dass WB   a unerfüllbar ist. KI 9-Inferenz in PL

53 Resolutionsbeweis: Beispiel
KI 9-Inferenz in PL


Herunterladen ppt "Inferenz in Prädikatenlogik"

Ähnliche Präsentationen


Google-Anzeigen