Resolution (1) Voraussetzung: Klauselform Beispiel: {¬P (x , f (y))} {P (z , f (g(z )))} Aus dieser Klauselmenge können wir nur dann die leere Klausel ableiten, wenn es uns gelingt, die beiden Atome P (x , f (y)) und P (z , f (g(z ))) zu identifizieren. Wir versuchen, durch eine Substitution die Variablen in geeigneter Weise durch Terme zu ersetzen, so dass beide Atome gleich werden. Einf. in die KI 7 – 29 Substitution σ = [x1/t1, x2/t2, . . . , xn /tn ] ist eine Substitution. Für eine atomare Formel α ist σα die Anwendung der Substitution σ auf α, die alle Vorkommen der Variablen xi in α durch die entsprechenden ti ersetzt. Beispiel: ϕ = P (f (x ), y) σ = [x /z , y/f (z )] σϕ = P (f (z ), f (z )) Einf. in die KI 7 – 30 Unifikation (1) Ein Unifikator zweier atomarer Formeln α1 und α2 ist eine Substitution σ, die die beiden Ausdrücke unifiziert (gleich macht), d.h. es ist σα1 = σα2. σ ist ein allgemeinster Unifikator (engl. most general unifier, mgu), wenn sich alle anderen Unifikatoren durch Instantiierung der Variablen in σ ergeben, d.h.: Zu jedem solchen Unifikator σ 0 gibt es eine Substitution τ mit σ 0α1 = τ (σα1) = τ (σα2) = σ 0α2. Satz: Für zwei Ausdrücke gibt es, bis auf Variablenumbenennung, jeweils höchstens einen allgemeinsten Unifikator. ; Berechnung des mgu Einf. in die KI 7 – 31 Unifikation (2) Beispiel: Unifikation der Atome Q(f (x ), v , b) und Q(f (a), g(u), y) durch die beiden Substitutionen σ = [x /a, v /g(u), y/b] und σ 0 = [x /a, v /g(c), u/c, y/b] σ is allgemeinster Unifikator der beiden Formeln. Beachte: Die Terme x und f (x ) sind nicht unifizierbar. ; “occur-check” Die Terme f (x ) und g(x ) sind ebenfalls nicht unifizierbar. Einf. in die KI 7 – 32 Unifikation (3) Ein Algorithmus zur Berechnung des mgu für eine Menge von Atomen {αi }. 1. σ = [ ]. 2. Falls alle σαi identisch, return σ (ein mgu) sonst: Bilde die Unterscheidungsmenge (engl. Disagreement Set, DS ), z.B. {P (c, f (c, g(z ), ...)) . . . P (c, f (c, u, ...))} DS = {g(z ), u} 3. Finde eine Variable x ∈ DS und einen Term t ∈ DS , der x nicht enthält. Falls das nicht möglich, return failure {αi } nicht unifizierbar 4. σ := σ + [x /t] 5. Goto 2. Einf. in die KI 7 – 33 Beispiele Sind folgende Atome unifizierbar? P (x ) und Q(y) P (x , y) und P (z ) P (x , y) und P (a, f (a)) P (x , y) und P (f (z ), g(z )) P (x , f (y)) und P (z , f (g(z )) P (x , x ) und P (f (y), f (g(z )) P (x , f (x )) und P (y, y) P (x , a) und P (b, x ) P (x , f (x , x ), z , f (z , z )) und P (f (a, a), y, f (y, y), u) Einf. in die KI 7 – 34 Resolution (2) C1∪{l }, C2∪{l } σ(C1∪C2) C1 ∪ {l } und C2 ∪ {l } sind variablendisjunkt, σ ist ein allgemeinster Unifikator für l und l , d.h. σl = ¬σl . Beispiel: {P (x ), P (f (y)), Q(g(x ))}, {R(f (z )), ¬P (f (z ))} σ = [x /f (v ), y/v , z /v ] {Q(g(f (v ))), R(f (v ))} Satz: Eine prädikatenlogische Klauselmenge ∆ ist unerfüllbar gdw. im prädikatenlogischen Resolutionskalkül die leere Klausel aus ∆ abgeleitet werden kann, ∆ ` 2. Einf. in die KI 7 – 35 Beispiel 1 WB: ∀ x (InfStudent(x ) ⇒ Student(x )) ∀ x (Student(x ) ⇒ ArbeitetViel (x )) InfStudent(moritz ) Frage: ArbeitetViel (moritz ) Einf. in die KI 7 – 36 {~Student(x),ArbeitetViel(x)} {~ArbeitetViel(moritz)} x/moritz {~InfStudent(y),Student(y)} y/moritz {InfStudent(moritz)} (jeder Schritt kann mit einem Unifikator markiert werden) Einf. in die KI {~Student(moritz)} {~InfStudent(moritz)} [] 7 – 37 Beispiel 2 WB: ∀ x [Plus(null , x , x )] ∀ x , y, z [Plus(x , y, z ) ⇒ Plus(succ(x ), y, succ(z ))] Frage: ∃ u Plus(2, 3, u) wobei wir der besseren Lesbarkeit wegen schreiben: 0 statt null , 2 statt succ(succ(null )) usw. Einf. in die KI 7 – 38 {~Plus(x,y,z),Plus(succ(x),y,succ(z))]} {~Plus(2,3,u)} {Plus(0,x,x)} x/1,y/3,u/succ(v),z/v {~Plus(1,3,v)} x/0,y/3,v/succ(w),z/w Beachte: nicht nur die Existenz, auch der Wert von u (5) ist ableitbar! {~Plus(0,3,w)} x/3,w/3 [] Einf. in die KI Var. umbenennen, damit sie verschieden sind 7 – 39 Generierung von Antworten Dem Resolutionsbeweis einer Formel der Form ∃ x P (x ) kann entnommen werden, wie ein “Beispiel” für x aussieht. Um dazu nicht mühsam die verwendeten Unifikatoren durchsuchen zu müssen, kann man sogenannte Antwortprädikate einführen. Sie dienen dazu, die während des Beweises konstruierte Substitution für x zu akkumulieren. Das Antwortprädikat A kommt in der Signatur noch nicht vor. • Ersetze die Formel ∃ x P (x ) durch ∃ x [P (x ) ∧ ¬ A(x )]. • Der Resolutionsbeweis erzeugt statt 2 eine Klausel, die nur das Antwortprädikat enthält. Einf. in die KI 7 – 40 Beispiel 3 WB: Bruder (moritz , max ), Bruder (moritz , fritz ) ... Gross(max ), Gross(fritz ) ... Frage: ∃ x [Bruder (moritz , x ) ∧ Gross(x )] Einf. in die KI 7 – 41 {Bruder(moritz,max} {Gross(max)} {~Bruder(moritz,x), ~Gross(x), A(x)} x/max {~Gross(max), A(max)} {A(max)} Einf. in die KI 7 – 42 Resolutionsstrategien (1) Die Widerlegungsvollständigkeit des Resolutionskalküls garantiert, dass die leere Klausel abgeleitet werden kann, wenn die Klauselmenge unerfüllbar ist. Fragen: Welche Resolutionsschritte sollen durchgeführt werden? Wie arbeiten wir uns durch den Suchraum? Antwort: Verwendung geeigneter Strategien Einf. in die KI 7 – 43 Resolutionsstrategien (2) Klauselelimination • Isolationsregel oder purity principle Eine Klausel, die ein Literal enthält, das mit keinem anderen Literal in der Klauselmenge resolvierbar ist, kann gelöscht werden. Aus ihr entstehen nur Reloventen, die wieder ein isoliertes Literal enthalten. • Tautologien Eine Klausel, die ein Literal und dessen Negation enthält, kann nicht dazu beitragen, die leere Klausel abzuleiten. • Subsumption Eine Klausel, die eine Obermenge der Literale einer anderen Klausel enthält, kann eliminiert werden. Wenn, dann kann bereits mit der kleineren von beiden, die leere Klausel abgeleitet werden. Einf. in die KI 7 – 44 Resolutionsstrategien (3) Restriktionsstrategien: • Unäre Resolution oder unit resolution Es werden nur solche Resolventen erzeugt, die mindestens eine unäre Elternklausel besitzen. Unäre Klauseln sind solche, die nur ein Literal enthalten. Unit resolution ist i.a. nicht widerlegungsvollständig. Sie ist widerlegungsvollständig für die Klasse der unär widerlegbaren Klauselmengen, die insbesondere die Klasse der Hornklauselmengen umfasst. • Eingaberesolution oder input resolution Es werden nur solche Resolventen erzeugt, die wenigstens eine Elternklausel aus der initialen Klauselmenge besitzen. Das heißt, Resolution zwischen Resolventen ist nicht erlaubt. Diese Strategie ist nicht widerlegungsvollständig. Einf. in die KI 7 – 45 Resolutionsstrategien (4) Restriktionsstrategien (Forts.) • Lineare Resolution Resolutionsschritte zwischen zwei Resolventen werden dann zugelassen, wenn eine Resolvente ein “Vorgänger” der anderen ist. Lineare Resolution modifiziert Eingaberesolution zu einer widerlegungsvollständigen Strategie. • Unterstützungsmengen oder set of support Aufteilung der Klauselmenge in die Voraussetzungen (WB ) und die Klauseln aus der negierten Behauptung. Es werden keine Resolutionsschritte zwischen Voraussetzungsklauseln erlaubt, d.h. mindestens eine Elternklausel stammt immer aus der Unterstützungsmenge. Set-of-support ist widerlegungsvollständig, falls das Komplement der Unterstützungsmenge erfüllbar ist. Einf. in die KI 7 – 46 Resolutionsstrategien (5) Ordnungsstrategien: • Stufensättigungsstrategie oder level saturation Jeder Klausel wird ihre Ableitungstiefe zugeordnet. Resolventen der Tiefe n + 1 dürfen erst dann in die Klauselmenge eingefügt werden, wenn alle Klauseln der Tiefe n bereits abgeleitet sind. Reihenfolge der Erzeugung für eine Tiefenstufe ; Implementierung • Bevorzugung unärer Klauseln oder unit preference Abwandlung der Stufensättigungsstrategie dahingehend, dass man die Ableitungstiefe aller Resolventen, die eine unäre Elternklausel besitzen, um eine Konstante k verringert. Einf. in die KI 7 – 47 Resolutionsstrategien (6) Klauseln als gerichtete Implikationen • {¬P , Q} entspricht P ⇒ Q und kann aufgefasst werden als: 1. 2. Schließe von P auf Q. (vorwärts) Um Q zu zeigen, zeige zuerst P . (rückwärts) Prozedurale Lesart von ⇒ • Im 1. Fall würde man {¬P , Q} mit {P , . . .} resolvieren, um {Q, . . .} zu erhalten. • Im 2. Fall würde man {¬P , Q} mit {¬Q, . . .} resolvieren, um {¬P , . . .} zu erhalten. Einf. in die KI 7 – 48 Faktorisierung (1) Beispiel: Russellsche Antinomie (nach: Bertrand Russell, engl. Philosoph und Logiker, 1872 - 1970) “Der Barbier rasiert eine Person genau dann, wenn sie sich nicht selbst rasiert.” ∀ x [Rasiert(barbier , x ) ⇔ ¬Rasiert(x , x )] Aus der entsprechenden (widersprüchlichen) Klauselmenge kann die leere Klausel nicht abgeleitet werden. {~Rasiert(barbier,x),~Rasiert(x,x)} {Rasiert(y,y),Rasiert(barbier,y)} [y/barbier,x/barbier] {~Rasiert(barbier,barbier),Rasiert(barbier,barbier)} ; Verfeinerung der Resolutionsregel Einf. in die KI 7 – 49 Faktorisierung (2) Verschmelzung der Literale in den Elternklauseln durch Anwendung einer geeigneten Substitution, bevor die Resolvente erzeugt wird. Faktorisierungsregel: {¬Rasiert(barbier ,x )}, {¬Rasiert(x ,x )} F 1: {¬Rasiert(barbier ,barbier )} σ 0 = [x /barbier ] {Rasiert(y,y)}, {Rasiert(barbier ,y)} F 2: {Rasiert(barbier ,barbier )} σ 00 = [y/barbier ] Aus F 1 und F 2 kann nun die leere Klausel abgeleitet werden. Einf. in die KI 7 – 50 Logik als Programmiersprache (1) Motivation • Formale (logische) Spezifikationen von Programmen werden ausgeführt. • Deduktion als Berechnung: Konstruktive Beweise von Existenzaussagen → “Berechnung” von Werten, die, eingesetzt für die existenzquantifizierten Variablen, die Aussage wahr machen. Logisches Programm: Menge von Formeln Anfrage: Existenzaussage Antwort: Belegungen (Werte, lösende Terme) für die Variablen aus der Anfrage Einf. in die KI 7 – 51 Logik als Programmiersprache (2) Der Resolutionskalkül ermöglicht eine einfache (automatische) Abarbeitung von prädikatenlogischen Programmen. Aber: Volle Prädikatenlogik ist als Programmiersprache nicht geeignet. • Große Suchräume, die eingeschränkt werden müssen. • Beschränkung der Suchräume erfordert komplizierte Kontrollstrukturen. • Gefahr der Implementierungsunvollständigkeit. • Der Programmablauf ist nicht determiniert, die Ausgabe nicht immer eindeutig. Daher: Beschränkung auf eine bestimmte Klasse prädikatenlogischer Formeln, sogenannte Horn-Formeln bzw. Horn-Klauseln. Einf. in die KI 7 – 52 Horn-Logik (1) Eine Klausel heißt Horn-Klausel, wenn sie höchstens ein positives Literal enthält. Seien Pi (1 ≤ i ≤ n) und Q Atome. Dann sind Horn-Klauseln: • Definite Klauseln oder Regeln: Klauseln mit genau einem positiven Literal {¬P1, ¬P2, . . . , ¬Pn , Q} Sie entsprechen Implikationen, deren Prämissen Konjunktionen sind: (P1 ∧ P2 ∧ . . . ∧ Pn ) ⇒ Q • Fakten: Klauseln, die nur aus einem positiven Literal bestehen. • Negative Klauseln oder Ziele: enthalten nur negative Literale {¬P1, ¬P2, . . . , ¬Pn } Einf. in die KI 7 – 53 Horn-Logik (2) Definite Klausel können auch aufgefasst werden als: Q ist beweisbar, falls P1, P2, . . . und Pn beweisbar sind. Im Logischen Programmieren werden diese Formeln mit Hilfe eines (umgedrehten) Implikationenpfeils wie folgt notiert. Q. Q ⇐ P1 , . . . , Pn ⇐ P1 , . . . , Pn Einf. in die KI (Fakten) (Regeln) (Ziele) 7 – 54 Eingaberesolution (1) Oft haben Resolutionsbeweise folgende Form (Beispiele (1) und (2)): C 1 alt neu C2 C 3 C n-1 Eine Eingabe-Ableitung einer Klausel C aus einer Menge von Klauseln ∆ ist eine Sequenz von Klauseln C1, C2, . . . , Cn = C mit 1. C1 ∈ ∆ 2. Ci +1 ist eine Resolvente von Ci und einer Klausel aus ∆ In Symbolen: ∆ `I C Cn Einf. in die KI 7 – 55 Eingaberesolution (2) Eingaberesolution ist nicht vollständig. Beispiel: Sei ∆ = {P , Q}, {P , ¬Q}, {¬P , Q}, {¬P , ¬Q} Dann gilt ∆ ` 2. Um 2 ableiten zu können, ist aber Resolution zwischen zwei Resolventen erforderlich, das heißt: ∆ 6`I 2. Es gilt jedoch: Satz: Auf Hornklauselmengen ist Eingaberesolution vollständig, d.h. für Hornklauselmengen ∆ gilt: ∆ ` 2 gdw. ∆ `I 2 → Vereinfachung der Beweissuche Einf. in die KI 7 – 56 Prolog Horn-Klauseln und Lineare Resolution sind die logische Basis von Prolog. Zum Resolvieren wählt Prolog immer das am weitesten links stehende Literal. Vorf (x , y) ⇐ Elt(x , y) Vorf (x , y) ⇐ Elt(x , z ) ∧ Vorf (z , y) Elt(a, b) Elt(b, c) Anfrage: ∃ x Vorf (a, x )? Einf. in die KI 7 – 57 {~Vorf(a,x)} {Vorf(x,y),~Elt(x,z),~Vorf(z,y)} {~Elt(a,z),~Vorf(z,y)} {Elt(a,b)} {~Vorf(b,y)} {Vorf(x,y), ~Elt(x,y)} {~Elt(b,v)} {Elt(b,c)} [] Einf. in die KI 7 – 58 Widerspruchsfreiheit Eine Formelmenge Φ ist widerspruchsfrei oder konsistent gdw. es keine Formel ϕ gibt, so dass Φ ` ϕ und Φ ` ¬ϕ. Φ heißt widersprüchlich oder inkonsistent, wenn Φ nicht widerspruchsfrei ist. Satz: Jede widerspruchsfreie Formelmenge ist erfüllbar. Begriffe semantisch syntaktisch Folgerung Ableitbarkeit |= ` Erfüllbarkeit Unerfüllbarkeit Einf. in die KI Widerspruchsfreiheit, Konsistenz Inkonsistenz 7 – 59 Eigenschaften der Prädikatenlogik Korrektheitssatz Für eine Formelmenge Φ und eine Formel ϕ gilt: Wenn Φ ` ϕ, dann Φ |= ϕ. Vollständigkeitssatz (Kurt Gödel 1928) Für eine Formelmenge Φ und eine Formel ϕ gilt: Wenn Φ |= ϕ, dann Φ ` ϕ. Endlichkeitssatz (Kompaktheit) Φ |= ϕ gdw. es eine endliche Formelmenge Φ0 ⊂ Φ gibt mit Φ0 |= ϕ. Φ ` ϕ gdw. es eine endliche Formelmenge Φ0 ⊂ Φ gibt mit Φ0 ` ϕ. Prädikatenlogik erster Stufe ist die ausdrucksstärkste Logik, die korrekt und vollständig ist und den Endlichkeitssatz erfüllt. Einf. in die KI 7 – 60 Beispiele Prädikatenlogischer Beweissysteme MKRP (Markgraf Karl Refutation Procedure), entwickelt seit 1984 an den Universitäten Karlsruhe und Kaiserslautern (Arbeitsgruppe J. Siekmann). Resolutionsbeweiser, Verwendung verschiedener Ordnungs- und Restriktionsstrategien. OTTER (“Organized Techniques for Theorem Proving and Effective Research”), entwickelt seit 1980 am Argonne National Laboratory (L. Wos et al.) Resolutionsbeweiser; arbeitet mit Unterstützungmengen und Suchheuristiken basierend auf “Klauselgewichten”. SETHEO entwickelt an der TU München, integriert verschiedene Beweistechniken, basiert ursprünglich auf der Konnektionsmethode von W. Bibel. PTTP (Prolog Technology Theorem Prover), entwickelt am SRI (M. Stickel) Basiert ebenfalls auf Resolution; benutzt Prolog als Abarbeitungsstrategie, “kompiliert” allgemeine Theorien in Prolog und erweitert Prolog so, dass es vollständig und korrekt wird. Einf. in die KI 7 – 61 Prädikatenlogische Beweissysteme (2) Alternativen: • Beweiser, die nach dem Tableaux-Verfahren arbeiten • Beweis-Assistenten: kombinieren vollautomatisches Beweisen mit interaktivem Beweisen (gesteuert durch Benutzer) Arbeiten häufig mit “Sequenzenkalkülen”, Logik höherer Ordnung. Beispiele: – – – – – PVS (SRI International, seit 1992) Isabelle (Cambridge, München) HOL (“Higher-Order Logic”; Cambridge u.a.) KIV (“Karlsruhe Interactive Verifier”) und etliche andere Einf. in die KI 7 – 62 Zusammenfassung • Prädikatenlogik stellt eine Sprache zur Wissensrepräsentation zur Verfügung, die es erlaubt, Objekte, ihre Eigenschaften und Beziehungen zueinander explizit darzustellen. • Quantoren lassen die Formulierung genereller Regeln zu und ermöglichen Aussagen allgemeiner Art. • Prädikatenlogik ist korrekt, vollständig und kompakt. • Prädikatenlogik ist nicht entscheidbar. • Prädikatenlogik ist jedoch semi-entscheidbar, d.h. rekursiv aufzählbar. • Für allgemeingültige Formeln können effektiv Beweise gefunden werden, bzw. für unerfüllbare Formeln Widerlegungen. • Prädikatenlogik kann auch (mit Einschränkungen) als Programmiersprache verwendet werden. Einf. in die KI 7 – 63