Klauseln und und Hornklauseln Durch Transformation in Klauselform entsteht eine sehr einfache Grundstruktur der resultierenden Formeln Eine Eine Disjunktion von von Literalen heißt heißt Klausel. Klausel. Spezialfälle: n = 1: "entartete" Disjunktion aus nur einem Literal ("Einheitsklausel") Einheitsklausel, die nur aus dem Literal false besteht, wird oft identifiziert mit "leerer" Klausel (n = 0) (vorteilhaft bei bestimmten Inferenzverfahren) wichtige Klasse von Klauseln, die Basis der logischen Programmierung bildet: "Hornklauseln" (Alfred Horn, österr. Logiker) Eine Eine Klausel Klausel mit mit maximal einem einempositiven Literal Literal heißt heißt Hornklausel. z.b.: p(x) p(x) q(x,y) q(x,2) q(x,2) p(z) p(z) kein positives Literal 1
Hornklauseln in in implikativer Form Form speziell für Hornklauseln: vier Varianten der implikativen Schreibweise, je nach Anzahl positiver Literale genau ein positives Literal, mindestens ein negatives Literal: "Regeln" der LP (umgekehrt) L 1 1 L 2 2........ L n n K genau ein positives Literal, kein negatives Literal: true true K keinpositives Literal, mindestens ein negatives Literal: L 1 1 L 2 2........ L n n false false keinpositives und kein negatives Literal: true true false false 2
noch noch ein ein kleine kleine Übung Übung im im "Verklausulieren" 1) 1) X [ [ angestellter(x) Y [ [ abteilung(y) gehört_zu(x,y) ] ]] ] 2) 2) Y [ [ abteilung(y) X [ [ angestellter(x) leitet(x,y) ] ]] ] 3) 3) X Y [ [ leitet(x,y) gehört_zu(x,y) ] ] 4) 4) X Y Z [ [ gehört_zu(x,y) leitet(z,y) X Z arbeitet_für(x,z) r(x,z) ] ] 5) 5) X X [ [ arbeitet_für(x,x) r(x,x) ] ] 6) 6) X [ [ angestellter(x) ] ] zugehörige (Horn-?) Klauseldarstellung? 3
Übung Übung im im "Verklausulieren" (2) (2) true true angestellter(a) a: Skolemkonstante abt/chef: Skolemfunktionen angestellter(x) abteilung(abt(x)) abt(x)) angestellter(x) gehört_zu(x, abt(x abt(x)) abteilung(y) angestellter(chef(y)) (Y)) abteilung(y) leitet(chef(y), (Y), Y) Y) leitet(x,y) gehört_zu(x,y) gehört_zu(x,y) leitet(z,y) X Z arbeitet_für(x,z) r(x,z) arbeitet_für(x,x) r(x,x) false false 4
Klauselform statt statt voller voller Prädikatenlogik: Diskussion Vorteile der Klauselform: "minimalistische" Form der Einzelaussagen: nur absolut notwendige Junktoren (,) keine (expliziten) Quantoren keinerlei Verschachtelung von Formeln einheitliche Implikationsform der Darstellung: Alle Formeln haben Regel- oder Produktionscharakter! Nachteile der Klauselform: Natürlichkeit der Darstellung geht verloren (im Vergleich mit natürlichsprachlicher Darstellung). Entschachtelung (KNF) wird erkauft durch u.u. sehr viele Einzelklauseln. Unintuitiver Schritt Unintuitiver Schritt der Skolemisierung ist nötig, um Quantoren eliminieren zu können. 5
Normalform für ffür r die die Semantik von von Formeln?? Bestimmung der (Un-)Erfüllbarkeit von Formeln ist besonders wichtig wegen ihrer Bedeutung für Inferenzverfahren (Folgerungsbegriff, Operationalisierung) daher: Suche nach Modellen einer Formel (Klauselmenge) ist sehr wichtig! Haupthindernis dabei: Es gibt zu viele Interpretationen, die man untersuchen müsste! Solange die Beziehung zur "realen Welt" im Vordergrund steht: Arbeiten mit der "richtigen" Interpretation unerlässlich! aber: Erfüllbarkeit ist eine prinzipielle Eigenschaft (Es gibt irgendeine Interpretation, in der die Formel wahr ist.) ==> Unter Umständen ist die Verwendung einer geeigneten "Referenzinterpretation" n" ausreichend, um Erfüllbarkeit nachzuweisen! Gleichzeitig von Logikern Jacques Herbrand, Kurt Gödel und Thoralf Skolem erkannt: Es gibt eine solche Referenzinterpretation! 6
Herbranduniversum: Idee Idee Zentrale Idee dieser "Referenzinterpretation": Terme Terme werden werden als als Objekte Objekte aufgefasst und und "interpretieren sich sich selber"!! Universum 1 Terme Universum 2 "Selbstreferenz" der Terme Universum 3 7
Herbranduniversum: Definition Bezeichnung für dieses spezielle Referenzuniversum aus "syntaktischen Objekten": Herbrand-Universum Herbrand-Universum einer geschlossenen Formel F in Skolem-Normalform: Menge aller Grundterme (variablenfrei), die aus Konstanten und Funktionssymbolen in F gebildet werden können wenn keine Konstante vorhanden: Wahl einer beliebigen "künstlichen" Konstanten Beispiel: F: X Y [ [ q(c, q(c,, f(x), f(x), h(y, h(y, b)) b)) ] ] zugehöriges Herbrand-Universum: b f(b) f(b) h(b,b) h(b,b) f(f(b)) f(f(b))........ c c f(c) f(c) h(b,c) h(b,c) f(f(c)) f(f(c)) h(c,b) h(c,b) f(h(b,b)) h(c,c) h(c,c).......... 8
Herbrand-Interpretation: Idee Idee Nachteil dieser Konstruktion: Sowie ein "echtes" Funktionssymbol vorliegt, ist das H.-Universum unendlich (jeder Term wird verschieden interpretiert). Vorteil der Konstruktion: Interpretation der Terme liegt fest ("Selbstreferenz") f(t f(t 1, 1,.....,., t n t) n ) f(t f(t 1, 1,.....,., t n t) n ) term term als als Term Term einer einer Sprache Sprache Interpretations- abbildung als als Objekt Objekt des des "Termuniversums" Damit sind in der "Referenzinterpretation" bereits zwei "Freiheitsgrade" fest vorgegeben: Universum, über dem Terme interpretiert werden Abbildungen, die Funktionssymbole interpretieren: Identität nur Bedeutung der Relationssymbole bleibt frei wählbar Bezeichnung für Interpretationen, bei denen Universum und Terminterpretation auf diese Weise fixiert sind: Herbrand-Interpretation 9
Herbrand-Interpretationen und und Herbrand-Modelle Herbrand-Interpretation, die Modell einer Formel F ist: zentrales Resultat der "Herbrand-Theorie": Herbrand-Modell Eine Eine geschlossene Formel Formel in in Skolem-Normalform ist ist genau genau dann dann erfüllbar,, wenn wenn sie sie ein ein Herbrand-Modell besitzt. besitzt. (Beweis siehe z.b. Logik-Buch von Schöning) praktische Bedeutung: Man kann bei der Untersuchung der (Un-)Erfüllbarkeit von Formeln völlig von der "realen Welt" abstrahieren und sich auf die "Welt der Syntax" zurückziehen (und dort "idealistisch" argumentieren). Die meisten Terme in logischen Programmen sind damit als Herbrand-Terme identifiziert, denn sie werden nicht ausgewertet und repräsentieren damit sich selbst : Grundlage der Idee, geschachtelte Terme nur als Datenstruktur zu verwenden. 10
Herbrand-Modelle: Beispiel Beispiel Festlegung der Bedeutung von Relationssymbolen kann dann auch rein syntaktisch erfolgen: Menge der unter der jeweiligen Interpretation wahren Fakten Beispiel: geschlossene Formel mit zugehörigem Herbrand-Universum und zwei möglichen Herbrand-Interpretationen (dargestellt als "Faktenmengen") F: X [ [ q(c, q(c, f(x)) f(x)) p(x, p(x, b)) b)) ] ] Herbrand-Universum zu F: b f(b) f(b) f(f(b)) f(f(b))... c c f(c) f(c) f(f(c)) f(f(c))... R 1 : q(c,f(c)) q(c,f(c)) p(c,b) p(c,b) q(c,b) q(c,b) p(b,c) p(b,c) q(c,f(f(b))) p(f(b),b) Herbrand-Modell von F R 2 : q(c,c) q(c,c) p(c,f(c)) p(c,f(c)) q(b,b) q(b,b) p(c,f(b)) q(c,f(b)) kein Herbrand-Modell von F 11
Herbrand-Interpretationen: Diskussion Vorteile des Arbeitens mit Herbrand-Interpretationen und -Modellen: geringe Vielfalt der Konzepte geringerer Aufwand bei der Semantikfestlegung Abstraktion von der Vielzahl "möglicher Welten": nur ein "repräsentatives" Universum Erfüllbarkeitsfragen rein syntaktisch untersuchbar Auch Folgerungsprobleme lassen sich so systematisch lösen! Nachteile: nicht geeignet für Untersuchung von Bezügen der Formeln zur "Realität" entscheidend: Idee der Selbstreferenz von Termen bedeutet Verzicht auf auf auswertbare Funktionen trotzdem: wichtiges Konzept für automatisches Beweisen und LP! 12
Funktionen in in LP LP grundsätzliche Entscheidung in der logischen Programmierung: Resolution als einziges Inferenzprinzip damit: Verzicht auf auswertbare Terme/definierbare Funktionen trotzdem: Funktionssymbole sind zum Bilden von geschachtelten Strukturen erlaubt. Alle AlleTerme in in logischen Programmen sind sind Herbrandterme! Motivation für Beibehalten von Termen (aus uninterpretierten Funktionssymbolen): Terme dienen als Datenstrukturen (Bäume, Listen etc.) insbesondere: Formeln und Regeln können selbst als Terme auf Parameterposition auftreten "Meta-Programmierung" (Parser, Compiler, Interpreter) Preis für diesen Verzicht auf "echte" Funktionen: Selbst einfachste arithmetische Grundoperationen fehlen und müssen als "built-ins" ins" außerhalb der eigentlichen LP-Sprache zur Verfügung gestellt werden (z.b.: X is 2+3 in PROLOG) 13
Übersicht: zur zur Erinnerung Die logische Programmierung verwendet nur einen kleinen Teil der syntaktischen Ausdrucksmöglichkeiten der Prädikatenlogik ( Fakten und Regeln ): Wie Wie ausdrucksstark ist ist diese diese reduzierte Syntax? Syntax? Zudem werden auswertbare Terme nur quasi außerhalb der LP (rechte Seite von is- Literalen in Prolog) verwendet, die normalen Terme in Prolog sind nicht auswertbar: Welche Welche Semantik haben haben solche solche komischen Terme Terme in in der der Logik? Logik? Der Motor der Operationalisierung logischer Programme ist das Resolutionsverfahren: Ist Ist Resolution eine eine Inferenzregel oder oder gar gar ein ein Kalkül? l? Prolog verwendet als spezielle Resolutionsstrategie das Abarbeiten von Regelmengen von oben nach unten und von Regelrümpfen von links nach rechts : Ist Ist diese diese Strategie korrekt korrekt und/oder vollständig? 14
Kalküle le für ffür r Klauselform? besonders interessant im Zusammenhang mit logischer Programmierung: Inferenzregeln (bzw. ganze Kalküle) für Formeln in Klauselform im folgenden stets verwendet: implikative Notation für Klauseln L 1 1 L 2 2...... L n n K 1 1 K 2 2...... K m m Ursprung der wesentlichen Inferenzregeln für solche implikativen Klauseln: "Modus ponens"-regel dazu erforderlich: erste Voraussetzung (Prämisse der Implikation) muss ebenfalls implikativ notiert werden ( true F ) ( F G) ( true G ) 15
Schnittregel (1) (1) in dieser Darstellung: "Modus ponens" wird zu spezieller Transitivitätsregel tsregel ( true F ) ( F G) ( true G ) im Klauselkontext: zunächst nur anwendbar für einelementige linke und rechte Seiten (da links Konjunktionen, aber rechts Disjunktionen stehen), z.b.: (true (true p(x) p(x) )) (( p(x) p(x) ( ( q(x) q(x) s(x) s(x) ))) )) (true (true ( ( q(x) q(x) s(x) s(x) ))) )) aber: Beschränkung auf true als linke Seite einer der Voraussetzungen ist nicht nötig! Transitivitätsregel tsregel ( H F ) ( F G) ( H G ) 16
Schnittregel (2) (2) entscheidende Verallgemeinerung der "Modus ponens"-regel: Eine transitive Verknüpfung zweier Implikationen kann auch über "eingebettete" Teilformeln erfolgen! ( H F ) ( ( F K ) G) ( ( H K ) G ) ( H ( F K ) ) ( F G) ( H ( G K ) ) Zusammenfassung ( H ( F K 1 ) ) ( ( F K 2 ) G ) ( ( H K 2 ) ( G K 1 ) ) 17
Schnittregel (3) (3) allgemeines Prinzip dieser verallgemeinerten Inferenzregel für Klauselpaare: L L 1. Finde identische Literale auf komplementären Seiten von implikativen Klauseln! 2. Streiche diese beiden Literale aus den beiden Klauseln! 3. Verschmelze "Klauselreste" zu einer Klausel! 18
Schnittregel (4) (4) allgemeines Prinzip für Klauselnotation noch einmal in Form einer Inferenzregel: (( L K 1 1 K 2 2...... F...... K n ) n ) ( ( L 1 1 L 2 2....... F....... L n n K )) (( L L 1 1 L 2 2...... L n n K 1 1 K 2 2...... K n n K )) Bezeichnung wegen des "Herausschneidens" der beiden Vorkommen des gemeinsamen Literals F: Schnittregel 19
Kombination von von Schnitt Schnitt und und Spezialisierung Oft lassen sich keine völlig identischen, komplementären Literale finden, aber Literalpaare, die sich mittels Spezialisierung identisch machen lassen, z.b.: p(x) q(f(x),1) q(f(2),y) false Wegen impliziter Allquantoren für alle Variablen in einer Klausel stellen beliebige Instanzen der beiden Klauseln Folgerungen dar, insbesondere: p(x) p(x) q(f(x),1) q(f(2),y) false false p(2) p(2) q(f(2),1) q(f(2),1) false false p(2) p(2) false false Spezialisierungsregel mit identischer Konstante Schnittregel 20
Resolutionsregel und und Unifizierbarkeit Entscheidender Fortschritt im automatischen Beweisen durch Einführung einer neuen Inferenzregel, die Schnittregel und Spezialisierungsregel kombiniert, im Jahr 1965 durch J.A. Robinson: Resolutionsregel Resolution hat dasselbe generelle Format wie die Schnittregel, aber die "herauszuschneidenden Literale brauchen nicht identisch zu sein, sondern nur unifizierbar: Zwei Zwei Literale Literale L 1 und 1 und L 2 heißen 2 heißen en unifizierbar gdw. gdw. es es ein ein Literal Literal L 3 gibt, 3 gibt, dass dass sowohl sowohl eine eine Instanz Instanz von von L 1 1 als als auch auch eine eine Instanz Instanz von von L 2 ist. 2 ist. Bezeichnung "unifizierbar" motiviert durch: "können durch geeignete Variablensubstitutionen identisch gemacht werden" Bezeichnung "Resolutionsregel" ist kompatibel mit Begriff "Resolution" aus Kap. 2: Resolution in der logischen Programmierung ist Spezialfall der Resolutionsregel 21
Unifikation und und Unifikatoren wichtige Operation beim Konstruieren von Resolutionsschritten: Gezielte Suche nach Literalpaaren, die sich unifizieren lassen! dazu erforderlich: Variablensubstitution, die beide Literale identisch macht Beispiel für verschiedene Unifikatoren zweier Literale: Unifikator L 1 p(x, p(x, f(x,y), f(x,y), 2) 2) p(g(c), p(g(c), f(a,b), f(a,b), B) B) L 2 { X/g(C), Y/2, A/g(C), B/2} sogar: p(g(z), f(g(z), 2), 2) p(g(c), p(g(c), f(g(c), f(g(c), 2), 2), 2) 2) p(g(3), f(g(3), f(g(3), 2), 2), 2) 2) L {....., C/3} L ' 22
Unifikation (2) (2) offensichtlich: qualitativer Unterschied zwischen gemeinsamen Instanzen L 3 und L 3 ' bzw. zwischen Unifikatoren U und U' L p(x, p(x, f(x,y), f(x,y), 2) 1 2) p(g(c), p(g(c), f(a,b), f(a,b), B) B) L 2 gemeinsame Instanzen von L 1 und L 2 L 3 p(g(c), p(g(c), f(g(c), f(g(c), 2), 2), 2) 2) C/3 { X/g(C), Y/2, A/g(C), B/2} U L 3 ' p(g(3), f(g(3), f(g(3), 2), 2), 2) 2) {....., C/3} Unifikatoren U' U enthält enthält nur nur Substitutionen, die die notwendig sind, sind, um um L 1 und 1 und L 2 zu 2 zu unifizieren. U' U' dagegen dagegen führt führt einen einen zusätzlichen, aber aber nicht nicht notwendigen Ersetzungsschritt durch! durch! L3' L3' ist ist folglich folglich seinerseits Instanz Instanz von von L3. L3. 23
Unifikation (3) (3) für Resolution: Nur solche Unifikatoren sind nützlich, die keine "unnötigen" Ersetzungen durchführen, um weitere Resolutionsschritte nicht zu "gefährden" allgemeinster Unifikator engl.: most general unifier (mgu) zugehöriger Begriff: "allgemeinste gemeinsame Instanz" zweier Literale L 3 ist 3 ist allgemeinste gemeinsame Instanz Instanzvon von L 1 und 1 und L 2 gdw. 2 gdw. jede jede (andere) (andere) gemeinsame Instanz Instanz L 3 ' 3 ' von von L 1 und 1 und L 2 ihrerseits 2 Instanz Instanz von von L 3 ist. 3 ist. U ist ist allgemeinster Unifikator von von L 1 und 1 und L 2 gdw. 2 gdw. U die die Literale Literale L 1 und 1 und L 2 in 2 in eine eine allgemeinste gemeinsame Instanz Instanz überf überführt. Bis auf (konsistente) Variablenumbenennung sind allgemeinster Unifikator und allgemeinste gemeinsame Instanz eindeutig bestimmt. z.b.: p(g(z), f(g(z), 2), 2) p(g(c), p(g(c), f(g(c), f(g(c), 2), 2), 2) 2) 24
Resolution damit: generelles Format für Resolutionsregel (( L K 1 1 K 2 2...... F...... K n ) n ) F und und F' F' unifizierbar mit mit allg. allg. Unifikator U ( ( L 1 1 L 2 2....... F' F'....... L n n K )) (( (( L L 1 1 L 2 2...... L n n K 1 1 K 2 2...... K n n K )) )) U Resolvente Anwendung von U auf die ganze Klausel (Postfixnotation) 25