Vorbemerkungen Übungen Wissensbasierte Systeme I Peter Becker FH Bonn-Rhein-Sieg Fachbereich Informatik [email protected] • In die Vorlesung integriert: Hinweise zu den Aufgaben und Vorstellung von Musterlösungen • Art der Aufgaben: Theorie- und Programmieraufgaben • Bearbeitungszeit: abhängig von den Aufgaben, i.d.R. eine oder zwei Wochen • Das erste Übungsblatt gibt es am zweiten Vorlesungstermin. Vorlesung Sommersemester 2004 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Vorbemerkungen 2 Vorbemerkungen Allgemeines zur Vorlesung Voraussetzungen und Lernziele Voraussetzungen: • Es gibt eine Homepage zur Vorlesung: http://www2.inf.fh-rhein-sieg.de/~pbecke2m/wbs1/ • Die Vorlesung wird folienbasiert gehalten. • Die Folien zur Vorlesung (Skript) stehen auf der Homepage vor der Vorlesung zur Verfügung. • Format: PDF, zwei- und vierseitig • Sie können also die ausgedruckten Folien mit in die Vorlesung bringen und dort mit schriftlichen Bemerkungen versehen. • Benutzen Sie zum Drucken bitte die vierseitige Version des Skriptes. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1 • Beherrschung einer Programmiersprache, • Kenntnisse in Algorithmen und Datenstrukturen, • Kenntnisse in Graphentheorie Lernziele: • Erwerb von Grundkenntnissen im Bereich der künstlichen Intelligenz • Erlernen von klassischen logikbasierten Techniken der Suche, Wissensrepr äsentation und Inferenz • Verstehen der Arbeitsweise von Inferenzkomponenten • Anwenden von heuristischen Verfahren und Verfahren der Logikprogrammierung auf anwendungsorientierte Problemstellungen Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3 Vorbemerkungen Vorbemerkungen Prüfung • • • • • • Modulzuordnung: Wahlpflicht, WP, 4. Semester G. F. Luger Künstliche Intelligenz Addison-Wesley 2001 Schriftliche Prüfung in Form einer zweistündigen Klausur keine Hilfsmittel Gegenstand der Klausur sind die Inhalte der Vorlesung und der Übungen 3 Credits keine weiteren Zulassungsvoraussetzungen Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Vorbemerkungen 6 Vorbemerkungen Literatur J. Heinsohn, R. Socher-Ambrosius Wissensverarbeitung: Eine Einführung Spektrum Akademischer Verlag 1999 S. Russell, P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall 2002 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 5 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 7 Vorbemerkungen Vorbemerkungen K. W. Tracy, P. Bouthoorn Object-oriented Artificial Intelligence Using C++ Computer Science Press 1997 U. Lämmel, J. Cleve Lehr- und Übungsbuch Künstliche Intelligenz Fachbuchverlag Leipzig 2004 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 8 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Vorbemerkungen 10 Vorbemerkungen Inhalt 1. Überblick: Künstliche Intelligenz und intelligente Agenten G. Görz, C.-R. Rollinger, J. Schneeberger (Hrsg.) Handbuch der Künstlichen Intelligenz Oldenbourg 2000 2. Intelligente Suchverfahren, Heuristiken 3. Constraintprobleme 4. Inferenz in Aussagen- und Prädikatenlogik 5. Logikprogrammierung am Beispiel von Prolog ☞ KI-Grundlagen mit Schwerpunkt auf Suche, Logik und Inferenz Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 9 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 11 1. Einf ¨uhrung Definition KI 1. Einführung 1. Einf ¨uhrung Definition KI Die in der Vergangenheit getroffenen Definitionen der Künstlichen Intelligenz variieren entlang zweier Dimensionen: Systeme, die ... • Künstliche Intelligenz • Intelligente Agenten • Ausblick denken handeln menschlich ... wie Menschen denken ... wie Menschen handeln rational ... rational denken ... rational handeln Rationalität: Idealisierte Form der Intelligenz: Ein System ist rational, wenn es das richtige tut. Definitionsbeispiele f ür KI: denken/menschlich: “The exiting new effort to make computers think ... machines with minds, in the full and literal sense.” (Haugeland, 1985) handeln/menschlich: “The art of creating machines that perform functions that require intelligence when performed by people.” (Kurzweil, 1990) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 12 Definition KI Was ist Künstliche Intelligenz? Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 14 Definition KI denken/rational: “The study of computations that make it possible to perceive, reason and act.” (Winston, 1992) handeln/rational: “The branch of computer science that is concerned with the automation of intelligent behaviour.” (Luger und Stubblefield, 1993) • In der Vergangenheit ist mal allen Ansätzen gefolgt. • Wir folgen dem des rationales Handelns. Haben Leute, die sich mit KI beschäftigen, im Sinn, ihn zu erschaffen? Nein! ☞ Man muß sich realistische Ziele setzen und ☞ sich am Möglichen orientieren. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 13 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 15 1. Einf ¨uhrung Definition KI 1. Einf ¨uhrung Der Ansatz des menschlichen Handelns Definition KI Der Ansatz des rationalen Denkens • Der Turing Test definiert eine operationelle Form der Intelligenz. Intelligentes Verhalten liegt dann vor, wenn in einem Interview nicht zwischen Mensch und Maschine unterschieden werden kann. • Philosophie: Aristoteles, Syllogismen • Logik: Aussagen- und Prädikatenlogik, Mechanisierung der Logik • Nach wie vor spielt die Logik eine sehr wichtige Rolle in der KI. HUMAN HUMAN INTERROGATOR Probleme dieses Ansatzes: ? AI SYSTEM • Umfasst Wissensrepräsentation, Schlußfolgern, Sprachverstehen, Lernen; trotzdem keine großen Anstrengungen im KI-Bereich, den Turing Test zu bestehen. ☞ Eliza • Trifft nicht den Kern von KI, schwer reproduzierbar, Analysen nicht zug änglich Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 16 Definition KI 1. Logik hat ihre Grenzen bei vagen, unvollständigen oder widersprüchlichen Beschreibungen. 2. Richtiges Handeln basiert nicht ausschließlich auf logischen Ableitungen. ☞ Reflexe Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 18 Definition KI Der Ansatz des menschlichen Denkens Der Ansatz des rationalen Agenten • Wie denken Menschen? Dies ist schwierig zu erfassen und wird in der Psychologie und den Kognitionswissenschaften untersucht. • Ansatz: Modelle des menschlichen Denkens zu erforschen und in Computerprogramme umsetzen • Es gibt durchaus Ergebnisse, die aus diesem Ansatz stammen (☞ means-end analysis). • Aber insgesamt ist der Ansatz zu einschränkend: Der Computer muß nicht wie ein Mensch denken, um Sinnvolles zu tun. • Rationales Handeln bedeutet so zu handeln, daß man auf Basis einer gegebenen “Überzeugung” ein gewünschtes Ziel erreicht. ☞ das Richtige tun • Ein Agent ist etwas, das wahrnehmen und handeln kann. • In diesem Sinne kann die Künstliche Intelligenz als das Gebiet angesehen werden, das sich mit der Untersuchung und insbesondere der Konstruktion von rationalen Agenten befaßt. • D.h. Agenten, die wahrnehmen und “richtig” handeln. Das Handeln muß hierbei nicht unbedingt auf Schlußfolgerungsmechanismen beruhen. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 17 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 19 1. Einf ¨uhrung Definition KI 1. Einf ¨uhrung Intelligente Systeme Agent: Sensoren und Effektoren • Von größerer Bedeutung als reine KI-Systeme ist heute die Integration der KI/Wissensverarbeitung in herkömmliche Software oder technische Prozesse. • Dabei sind die Methoden der KI/Wissensverarbeitung oft nach außen unsichtbar, tragen aber wesentlich zum Erfolg des Produktes bei. • Je nach dem Umfang, in dem man in solch einem System Aspekte des rationalen Handelns nachbildet, bezeichnet man sie als Intelligente Systeme. • “Intelligente Systeme dienen der Lösung komplexer Aufgaben, wie dem Auswerten von Bildern, Steuern, Entwerfen technischer Systeme und Prozesse oder dem Erkennen von Störungsursachen. Sie integrieren Informationsgewinnung und Handlungsplanung sowie deren Kontrolle auch bei unscharfen Randbedingungen.” (http://www.iid.de/) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 20 Definition KI sensors percepts ? environment actions agent effectors Mensch: Augen, Ohren; Hände, Füße, Mund Roboter: Kamera, Infrarotsensor; Motoren Softwareagent: Lese- und Schreiboperationen für Bitstrings Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 22 Intelligente Agenten • Wir benötigen ein Erfolgsmaß (performance measure), das den Erfolg des Agenten misst. • Was rational ist, hängt dann ab von: – dem Erfolgsmaß, – den bisherigen Wahrnehmungen des Agenten (percept sequence), – dem Wissen des Agenten über seine Umgebung, – den Aktionen, die ein Agent ausführen kann. ☞ Ein idealer rationaler Agent wählt die Aktionen, die den erwarteten Nutzen auf Basis seines Wissens, seiner Wahrnehmung und seiner möglichen Aktionen maximieren. ☞ (Ideale) Rationalität ist nicht gleichzusetzen mit – Allwissenheit, – Hellseherei, – Erfolg. Was ist heute möglich? Roboter/Simulator, der vernüftig Tischtennis spielen kann? Entlang einer kurvigen Bergstraße fahren können? In das Zentrum von Bonn finden? Eine vernüftige Partie Dame spielen? Eine lustigen Sketch schreiben? Englisch nach Deutsch in Echtzeit übersetzen? Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 • Ein Agent nimmt seine Umgebung durch Sensoren wahr. • Seine Handlungen führt er durch Effektoren aus. Rationale Agenten Status Quo • • • • • • Intelligente Agenten 21 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 23 1. Einf ¨uhrung Intelligente Agenten • Ideale Rationalität steht häufig im Widerspruch zu einer effizienten Berechenbarkeit. • In diesen Fällen ist die Aufgabe, dem Ideal möglichst nahe zu kommen. Gerade darin liegt oft der Reiz: – Rationalität vs. Rechenzeit – Vielfalt von möglichen Ansätzen – Grad der Abstraktion Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 24 Intelligente Agenten 1. Einf ¨uhrung Intelligente Agenten • Rahmen für ein Agentenprogramm: function SKELETON-AGENT( percept) returns action static: memory, the agent’s memory of the world memory UPDATE-MEMORY(memory, percept) action CHOOSE-BEST-ACTION(memory) memory UPDATE-MEMORY(memory, action) return action Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 26 1. Einf ¨uhrung Agentenprogramme Intelligente Agenten Struktur von Agenten Man unterscheidet Agenten anhand der folgenden Kriterien: • Geht man davon aus, daß für einen Agenten das Erfolgsmaß und die m öglichen Aktion vorgegeben sind, hängt sein Verhalten ausschließlich von seinen bisherigen Wahrnehmungen ab. • Ausführbare Operationen (actions) • Zu verfolgende Ziele (goals) • Prinzipiell könnten wir damit einen Agenten durch eine Agentenfunktion • Umgebung (environment) f : P ∗ −→ A Beispiel: Agent zur Steuerung eines Taxis: Agent Type Percepts Actions beschreiben mit P := Menge der möglichen Wahrnehmungen und A := Menge der möglichen Aktionen. • Unser Ziel ist es, die Funktion eines rationalen Agenten in einem Agentenprogramm zu repräsentieren. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 • Möglichkeiten der Wahrnehmung (percepts) 25 Taxi driver Cameras, speedometer, GPS, sonar, microphone Steer, accelerate, brake, talk to passenger Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Goals Environment Safe, fast, legal, comfortable trip, maximize profits Roads, other traffic, pedestrians, customers 27 1. Einf ¨uhrung Intelligente Agenten 1. Einf ¨uhrung Intelligente Agenten Reaktiver Agent mit Zustand Unterscheidung der folgenden Typen von Agenten: • • • • einfache reaktive Agenten zustandsbasierte Agenten Sensors zielorientierte Agenten State nutzenorientierte Agenten How the world evolves What my actions do Condition−action rules Agent Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 28 Intelligente Agenten Effectors Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 30 Intelligente Agenten Einfacher Reaktiver Agent (reflex agent) Agent What action I should do now Environment What the world is like now Zielorienterter Agent Sensors Sensors State What action I should do now What the world is like now What my actions do What it will be like if I do action A Goals What action I should do now Agent Effectors Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 How the world evolves 29 Environment Condition−action rules Environment What the world is like now Effectors Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 31 1. Einf ¨uhrung Intelligente Agenten 1. Einf ¨uhrung Intelligente Agenten Nutzenorientierter Agent Environment State What my actions do What it will be like if I do action A Utility How happy I will be in such a state What action I should do now Agent Environment What the world is like now Deterministic Episodic Static Discrete Yes Yes No Yes No No Yes No No No Yes Yes No No No No Yes No No No No No No No No No Yes Yes No No Semi Yes Yes Yes No No Semi No No No Yes Yes Yes Yes No No No No No Yes Chess with a clock Chess without a clock Poker Backgammon Taxi driving Medical diagnosis system Image-analysis system Part-picking robot Refinery controller Interactive English tutor Sensors How the world evolves Accessible Effectors Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. Einf ¨uhrung 32 Intelligente Agenten Eigenschaften der Umgebung 34 1. Einf ¨uhrung Ausblick Planung für die kommenden Semester • zugreifbar (accessible) := Sensoren des Agenten erfassen vollst ändig den Zustand der Umgebung effektiv zugreifbar (effectively accessible) := Sensoren des Agenten erfassen alle Aspekte, die für eine Aktion von Bedeutung sind • deterministisch := Der folgende Zustand der Umgebung hängt ausschließlich vom aktuellen Zustand und der Aktion des Agenten ab. • episodenhaft := Die Behandlung der aktuellen Aufgabe hängt nicht von den Aktionen früherer Aufgaben ab. • dynamisch := Die Umgebung kann sich ändern, während der Agent eine Aktion auswählt. semidynamic := Die Umgebung ist statisch, aber das Erfolgsmaß des Agenten hängt von der Zeit ab. • diskret := Umgebung kann durch eine beschränke Anzahl an diskreten Variablen ausgedrückt werden. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 33 4. Semester 5. Semester 6. Semester WBS I Suchverfahren Logik und Inferenz Constraints 3 Credits P WBS II Intelligente Spiele Regelsysteme Data Mining 3 Credits P Retrievalsysteme Information Retrieval Suchmaschinen Text Mining 4 Credits P Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 35 2. Suchverfahren Einf ¨uhrung 2. Suchverfahren Einf ¨uhrung 2. Suchverfahren Färbeproblem (2) • Sehr viele Probleme der Wissensverarbeitung lassen sich auf ein Suchproblem zurückführen. • Die Eigenschaften und Lösungsverfahren von Suchproblemen sind daher von grundlegender Bedeutung für die Wissensverarbeitung. • Suchverfahren sind ein klassisches Kapitel innerhalb der Wissensverarbeitung • Ein naives generate-and-test Verfahren würde 45 mögliche Farbkonstellationen prüfen. • Allgemein sind mn Farbkonstellationen zu prüfen, mit m := Anzahl der Farben und n := Anzahl der Länder. ☞ Ineffizient! Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 36 2. Suchverfahren Einf ¨uhrung Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Färbeproblem • Es scheint sinnvoller zu sein, die Länder der Reihe nach zu färben. • So kann man Zwischenzustände bei der Problemlösung durch Teilfärbungen beschreiben, etwa (A ← rot, B ← blau, C ← gelb) C E • • • • A Beispiel 2.1. Die angegebene Landkarte mit den Ländern A, B, C, D und E ist so mit den Farben rot, blau, gelb und orange zu färben, daß keine zwei benachbarten Länder die gleiche Farbe haben. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Einf ¨uhrung Färbeproblem (3) B D 38 37 Nach der Zuordnung (A ← blau, B ← blau) kann man direkt abbrechen. Die Problemlösung startet mit der leeren Färbung (). Ziel ist es, eine komplette zulässige Färbung zu erreichen. Die Schritte im Laufe der Problemlösung lassen sich durch Zustandsübergangsoperatoren beschreiben. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 39 2. Suchverfahren Einf ¨uhrung 2. Suchverfahren Zustandsraum Zustandsraum Suchbaum [−,−,−,−,−,] A −> r [b,−,−,−,−] B −> r Ein Problem wird repräsentiert durch Wissen, das ein Agent nutzt, um zu entscheiden, welche Aktionen er ausführt. A −> o A −> b A −> g [r,−,−,−,−] [g,−,−,−,−] B −> g [b,r,−,−,−] [b,g,−,−,−] C −> r D −> o [b,g,o,−,−] D −> r [b,g,r,o,−] E −> g [b,g,r,o,g] [b,o,−,−,−] C −> o [b,g,r,−,−] [o,−,−,−,−] • Die Lösung des Färbeproblems läßt sich als Suchbaum darstellen. • Die Knoten des Suchbaums entsprechen den Zuständen (zulässige Teilfärbungen). • Die Kanten entsprechen den Operatoren. B −> o [b,g,o,r,−] E −> g [b,g,o,r,g] Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 40 2. Suchverfahren Einf ¨uhrung • Ein Zustand stellt das Wissen zu einem bestimmten Zeitpunkt der L ösungsfindung dar. • Der Zustandsraum ist die Menge aller Zustände. • Zustandsübergangsoperatoren beschreiben, wie ausgehend von einem Zustand andere Zustände des Zustandsraums erreicht werden können. • Der Startzustand ist der Zustand, der zu Beginn der Lösungsfindung vorliegt. Er läßt sich explizit angeben. • Die Menge der Zielzustände charakterisiert die Lösungen des Problems. Zielzustände lassen sich in der Regel nur implizit angeben, z.B. über ein Testpr ädikat. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 42 Zustandsraum • Um verschiedene Lösungen vergleichen zu können, können Folgen von Aktionen Kosten zugewiesen werden. Typischerweise definiert man Kosten abhängig von einem Zustand und einer Aktion. Die Gesamtkosten für eine Aktionenfolge ergeben sich aus den Einzelkosten. Routenproblem B Für Suchprobleme läßt sich das Wissen repräsentieren durch: E A Ziel F Start C D Beispiel 2.2. Gegeben ist eine Karte mit Städten und Straßen, die die Städte miteinander verbinden. Gesucht ist eine Route von einem Startort zu einem Zielort. Suchbaum: Tafel ✎. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 41 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 43 2. Suchverfahren Zustandsraum Beispiel 2.3. Zustandsraum Beispiel 2.4. Suchprobleme in der realen Welt: R L R L Staubsaugerwelt: S S R • Operationen: rechts, links, saugen • Ziel: alle Räume müssen sauber sein 2. Suchverfahren R L R L R L L S S S S R L R L S S 5 4 6 1 88 6 8 7 3 22 7 5 1 4 2 • Routenberechnung, Navigation • Travelling Salesman Problem, Vehicle Routing: Tourenplanung, Fahrzeugeinsatzplanung, Gebietsplanung • VLSI Layout: Cell Layout und Channel Routing • Robot Navigation: virtuell und physisch, wie findet der Roboter/Avatar sein Ziel? • Assembly Sequencing: Finde eine Reihenfolge zum Zusammenbau komplexer Werkstücke aus Einzelteilen 3 8-Puzzle: • Operationen: rechts, links, oben, unten • Ziel: Endkonfiguration Start State Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 84 6 25 Goal State 44 Zustandsraum Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 46 Zustandsraum Zustandsraum und Suchbaum 8-Damen-Problem: • • • • • • Zustand: Plazierung zwischen 0 und 8 Damen • Operationen: eine Dame plazieren • Ziel: alle Damen so plaziert, daß sie sich nicht bedrohen Die Knoten eines Suchbaums stellen die Zustände dar. Die Kanten entsprechen den Zustandsübergangsoperatoren. Die Wurzel entspricht dem Startzustand. Die Zielknoten sind die Zielzustände. Die Berechnung der Nachfolger eines Knotens s wird als Expansion des Knotens s bezeichnet. ☞ Übungsaufgabe: Lösungen für das N -Damen-Problem berechnen Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 45 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 47 2. Suchverfahren Zustandsraum 2. Suchverfahren Uninformierte Suchverfahren Zustandsraum und Suchbaum (2) Uninformierte Suchverfahren (2) • Der Zustandsraum beschreibt nur, wie man prinzipiell zu einer L ösung gelangen kann, • aber nicht, wie man effizient zu dieser kommt. • Ganz wesentlich für eine effiziente Problemsösung sind: ☞ das Verfahren, das festlegt, in welcher Reihenfolge die Zust ände untersucht bzw. expandiert werden sowie ☞ die Bewertung der einzelnen Zustände. • Ausgehend von der Wurzel des Suchbaums (Startzustand) werden die Knoten sukzessive expandiert. • Später wird man von den Nachfolgern des expandierten Knotens weiterarbeiten, solange bis man einen Zielknoten gefunden hat. • Die Liste der Knoten, die gerade in Bearbeitung sind, heißt Agenda (open list). • Knoten der Agenda sind generiert, aber noch nicht expandiert. • Expandierte Knoten werden auch als closed bezeichnet. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 48 Uninformierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Uninformierte Suchverfahren Uninformierte Suchverfahren Uninformierte Suchverfahren (3) • Suchverfahren, die über die Beschreibung des Zustandsraums hinaus keine Zusatzinformation benutzen, heißen uninformierte Suchverfahren. • Insbesondere findet keine Bewertung der einzelnen Zustände statt. • Dementsprechend unterscheiden sich die Verfahren im wesentlichen darin, in welcher Reihenfolge die Zustände expandiert werden. • Die wichtigsten Vertreter der uninformierten Suchverfahren sind die Breitensuche und die Tiefensuche. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 50 49 • • • • • Breitensuche und Tiefensuche laufen nach dem gleichen Schema ab. Zu Beginn der Suche besteht die Agenda aus dem Startzustand. In einer beliebigen Iteration wird der erste Knoten sakt aus der Agenda genommen. Wenn sakt ein Zielzustand ist, hat man eine Lösung gefunden. Ist sakt kein Zielzustand, so wird sakt expandiert, d.h. alle Nachfolger von sakt werden in die Agenda eingefügt. • Breiten- und Tiefensuche unterscheiden sich darin, wo die Nachfolger in die Agenda eingefügt werden. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 51 2. Suchverfahren Uninformierte Suchverfahren 2. Suchverfahren Uninformierte Suchverfahren Tiefensuche Breitensuche ☞ Bei der Tiefensuche werden die Nachfolger eines expandierten Knotens s akt an den Anfang der Agenda eingefügt. ☞ Bei der Breitensuche werden die Nachfolger eines expandierten Knotens s akt an das Ende der Agenda eingefügt. • Die Agenda entspricht einem Kellerspeicher (Stack). • Liefert ein Knoten, der kein Zielknoten ist, keine neuen Knoten, so wird die Suche fortgesetzt an dem nächstgelegenen Knoten, für den noch nicht alle Nachfolger expandiert wurden. • Dies entspricht einem Backtracking. • Die Agenda entspricht einer Warteschlange (Queue). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 52 2. Suchverfahren Uninformierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Uninformierte Suchverfahren A E F A C B G 54 D H I Schritt 1 2 3 4 5 6 7 Agenda (A) (B,C,D) (E,F,C,D) (K,F,C,D) (F,C,D) (C,D) (G,H,D) sakt A B E K F C G B E K Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 C F G D H I Schritt 1 2 3 4 5 6 7 Agenda (A) (B,C,D) (C,D,E,F) (D,E,F,G,H) (E,F,G,H,I) (F,G,H,I,K) (G,H,I,K) sakt A B C D E F G K 53 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 55 2. Suchverfahren Uninformierte Suchverfahren 2. Suchverfahren Uninformierte Suchverfahren i Algorithmen m d j e k Algorithmus 2.1. [Tiefensuche] b Beispiel 2.5. Suche einen Weg von a nach e mit Tiefensuche bzw. Breitensuche. Agenda := (Startknoten); while Agenda 6= () do sakt := f irst(Agenda); Entferne sakt aus der Agenda; if sakt ist Zielknoten then sakt ist Lösung; STOP; Agenda := N achf olger(sakt ) + Agenda; end Problem hat keine Lösung; STOP; Tafel ✎. f a g l n c Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 56 Uninformierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren h 58 Uninformierte Suchverfahren Beispiel 2.6. Ein Weinhändler hat drei Krüge, einen von 9 Liter, einen von 7 Liter und einen von 4 Liter Inhalt. Algorithmen (2) Auf den Krügen sind keine Litermarkierungen angebracht. Algorithmus 2.2. [Breitensuche] Der 9-Liter-Krug ist gefüllt, die anderen sind leer. Die Krüge sollen so umgefüllt werden, daß der 9-Liter-Krug sechs Liter und der 4Liter-Krug drei Liter enthält. Agenda := (Startknoten); while Agenda 6= () do sakt := f irst(Agenda); Entferne sakt aus der Agenda; if sakt ist Zielknoten then sakt ist Lösung; STOP; Agenda := Agenda + N achf olger(sakt ); end Problem hat keine Lösung; STOP; Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Tafel ✎. 57 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 59 2. Suchverfahren Uninformierte Suchverfahren 2. Suchverfahren Uninformierte Suchverfahren Eigenschaften von Suchverfahren Eigenschaften von Suchverfahren (3) Definition 2.1. Ein Suchverfahren heißt vollständig, wenn für jeden Suchbaum jeder Knoten expandiert werden könnte, solange noch kein Zielknoten gefunden wurde. • Ein vollständiges Suchverfahren ist fair in dem Sinne, daß jeder Knoten die Chance hat, expandiert zu werden. • Ein vollständiges Sucherfahren findet auch bei unendlichen Suchbäumen stets eine Lösung, falls eine existiert. ☞ Breitensuche ist vollständig. ☞ Tiefensuche ist nur bei endlichen Suchbäumen vollständig. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 60 Uninformierte Suchverfahren Eigenschaften von Suchverfahren (2) Komplexitäten: • Für Breiten- und Tiefensuche ist der ungünstigste Fall, daß die L ösung in der “äußersten rechten Ecke” des Suchbaums liegt. • =⇒ Zeitkomplexität O(bt ), mit b = Verzweigungsrate und t = Tiefe des Zielknotens. • Bei der Tiefensuche enthält die Agenda die Knoten des aktuellen Suchpfades sowie deren Nachfolger =⇒ Platzkomplexität O(bt). • Bei der Breitensuche kann die Agenda eine komplette Ebene des Suchbaums enthalten =⇒ Platzkomplexität O(bt ). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 62 Uninformierte Suchverfahren Varianten von uninformierten Suchverfahren Definition 2.2. Für ein uninformiertes Suchverfahren heißt eine L ösung optimal, wenn sie unter allen Lösungen die geringste Tiefe im Suchbaum aufweist. Tiefensuche mit Begrenzung der Suchtiefe: • Versucht die Nachteile der Tiefensuche auszuschalten. ☞ Breitensuche findet eine optimale Lösung (falls existent). • Eine maximale Suchtiefe wird vorgegeben. ☞ Tiefensuche findet i.a. keine optimale Lösung. • Zweige jenseits der maximalen Suchtiefe werden abgeschnitten. • Hierdurch wird garantiert, daß eine Lösung gefunden wird, wenn eine innerhalb der Suchtiefe existiert. • Nachteil: Wie groß soll man die maximale Suchtiefe wählen? Iterative Deepening: • Da man nicht weiß, wie groß man die maximale Suchtiefe wählen soll, probiert man dies einfach systematisch durch. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 61 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 63 2. Suchverfahren Uninformierte Suchverfahren • D.h. man führt immer wieder Tiefensuche mit Begrenzung der Suchtiefe durch und erhöht die maximale Suchtiefe jeweils um 1. • Bei einer maximalen Suchtiefe t und einem regulären Suchbaum mit Verzweigungsgrad b werden O(bt ) Knoten erzeugt. ☞ Wegen t X b bt+1 − 1 < bt = O(bt ) bd = b − 1 b − 1 d=0 2. Suchverfahren Uninformierte Suchverfahren Bidirektionale Suche: • Gleichzeitige Suche von Start zum Ziel und vom Ziel zum Start. • Lösungen ergeben sich dort, wo sich die Suchpfade treffen. verliert man nur einen konstanten Faktor. Start Goal d • Durch Halbierung der Länge der Suchpfade ergibt sich ein Aufwand von O(2b 2 ) = d O(b 2 ). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 64 Uninformierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 66 Uninformierte Suchverfahren ☞ drastische Reduzierung Limit = 0 • Probleme: – Zielzustände sind oft nicht explizit bekannt. – Zielzustände müssen nicht eindeutig sein. – Operatoren sind nicht unbedingt umkehrbar. Limit = 1 Limit = 2 Limit = 3 ..... ☞ Iterationen bei Iterative Deepening und einem binären Suchbaum Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 65 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 67 2. Suchverfahren Informierte Suchverfahren • Für größere Suchbäume sind Breiten- und Tiefesuche nicht effizient genug. • Vielversprechender sind Ansätze, bei denen Problemwissen zur Steuerung des Suchprozesses eingesetzt wird. • Dies kann dadurch geschehen, daß die Zustände (Knoten) danach bewertet werden, wie erfolgversprechend sie sind. • Man schätzt beispielsweise für jeden Knoten, wie nahe er an einem Zielknoten liegt. • Solch eine Bewertung nennt man heuristische Funktion. 2. Suchverfahren 68 Informierte Suchverfahren Heuristische Funktion Definition 2.3. Eine Funktion, die jedem Zustand (Knoten) s eines Zustandsraums (Suchbaums) eine nichtnegative Zahl h(s) zuordnet, heißt heuristische Funktion. Für einen Zielzustand s gilt dabei h(s) = 0. Ein Suchverfahren, das eine heuristische Funktion zur Auswahl der zu expandierenden Zustände einsetzt, heißt informiertes Suchverfahren oder auch heuristisches Suchverfahren. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Informierte Suchverfahren Beispiel 2.7. [Schiebepuzzle] Informierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 69 5 Startzustand 6 7 4 1 3 1 8 → 8 2 7 2 6 3 4 Endzustand 5 Mögliche heuristische Funktionen: • h1(s) := Anzahl der Plättchen, die nicht an der richtigen Stelle liegen. Hier: h1(s) = 7. • h2(s) := Summe der Entfernungen aller Plättchen von der Zielposition. Hier: h2(s) = 2 + 3 + 3 + 2 + 4 + 2 + 0 + 2 = 18. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 70 2. Suchverfahren Informierte Suchverfahren h1 = h1 = 3 h2 = 6 h2 = 8 3 → 8 2 1 4 2 1 7 6 5 7 6 3 5 h1 = 3 h1 = h2 = 4 h2 = 3 → 8 1 3 → 8 1 4 2 4 2 5 7 6 5 7 6 3 3 3 4 5 . 1 8 7 2 6 h1 = 0 h2 = 0 3 1 4 8 5 ← 7 2 6 h1 = h2 = 3 4 8 5 ← 7 1 1 1 2 6 h1 = h2 = 3 4 5 2 2 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 71 2. Suchverfahren Informierte Suchverfahren • Die heuristische Funktion h2 differenziert stärker als h1, d.h. • h2 kann Zustände unterscheiden, die von h1 gleich bewertet werden. • Eine heuristische Funktion ist um so brauchbarer, je mehr Zust ände sie unterschiedlich bewertet. • Eine heuristische Funktion, die alle Zustände gleich bewertet, ist unbrauchbar. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 72 2. Suchverfahren Informierte Suchverfahren 2. Suchverfahren Informierte Suchverfahren Bestensuche • Bei der Bestensuche erfolgt die Expansion eines Knotens auf Basis der heuristischen Funktion. • Hierzu werden in der Agenda die Knoten zusammen mit ihrer Bewertung abgelegt. • Es wird nun jeweils der Knoten der Agenda expandiert, der die geringste Bewertung aufweist. • Die Agenda hat also die Form einer Prioritätswarteschlange (priority queue). • Ansonsten ist die Bestensuche analog zur Tiefen- und Breitensuche. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Informierte Suchverfahren Beispiel 2.8. [Routenplanung] Zur Abschätzung der Straßenentfernung wird die Luftlinienentfernung benutzt. Oradea 71 Neamt Zerind 87 151 75 Iasi Arad 140 Sibiu 92 99 Fagaras 118 Vaslui 80 Rimnicu Vilcea Timisoara 111 Lugoj 142 211 Pitesti 97 70 98 Mehadia 75 Dobreta 146 85 101 Hirsova Urziceni 86 138 Bucharest 120 Craiova 90 Giurgiu Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Eforie Straight−line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 74 A:9 C:5 B:4 E:7 F:8 G:0 D:6 H:2 I:− Schritt 1 2 3 4 Agenda A:9 B:4, C:5, D:6 C:5, D:6, E:7, F:8 G:0, H:2, D:6, E:7, F:8 sakt A B C G K:− 73 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 75 2. Suchverfahren Informierte Suchverfahren 2. Suchverfahren Algorithmus zur Bestensuche Informierte Suchverfahren Eigenschaften der Bestensuche Algorithmus 2.3. [Bestensuche] Definition 2.4. Eine heuristische Funktion h heißt fair gdw. es zu jedem n ≥ 0 nur endlich viele Knoten s gibt mit h(s) ≤ n. Agenda := (Startknoten); while Agenda 6= () do sakt := f irst(Agenda); Entferne sakt aus der Agenda; if sakt ist Zielknoten then sakt ist Lösung; STOP; Agenda := einf uegen(Agenda, N achf olger(sakt )); end Problem hat keine Lösung; STOP; • Fairness entspricht der Vollständigkeit bei uninformierten Suchverfahren. • Ist eine heuristische Funktion fair, so wird ein Zielknoten gefunden, falls ein solcher existiert. Beispiel 2.9. Suchbaum für Beispiel 2.7 mit Bestensuche. Tafel ✎ Beispiel 2.10. Bestensuche für die Suche einer Route von Arad nach Bucharest. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 76 2. Suchverfahren Informierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 78 Informierte Suchverfahren Bestensuche und Optimalität Arad h=366 Arad Sibiu h=253 Timisoara h=329 Zerind h=374 Sibiu • Die Bestensuche vernachlässigt die “Kosten” bei der Anwendnung der Operatoren. • Wird die Güte einer Lösung charakterisiert durch diese Operatorkosten, so findet die Bestensuche allgemein keine optimale Lösung. Arad Timisoara h=329 Arad Fagaras Oradea h=366 h=178 h=380 Zerind h=374 Arad Rimnicu h=193 Sibiu Timisoara h=329 Arad Fagaras h=366 Sibiu h=253 Zerind h=374 Oradea Rimnicu h=380 h=193 Bucharest Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 h=0 77 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 79 2. Suchverfahren Informierte Suchverfahren Oradea Neamt Zerind 87 151 75 Iasi Arad 140 Sibiu 92 99 Fagaras 118 Vaslui 80 Rimnicu Vilcea Timisoara 111 Lugoj 142 211 Pitesti 97 70 98 Mehadia 75 Dobreta 146 85 101 Hirsova Urziceni 86 138 Bucharest 120 Craiova 90 Giurgiu Informierte Suchverfahren Für einen Zustand s sei: Beispiel 2.11. Suche einer Route von Arad nach Bucharest: 71 2. Suchverfahren Eforie Straight−line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 g ∗ (s) ∗ h (s) := inf{k(p)|p ist Weg vom Startzustand nach s} := inf{k(p)|p ist Weg von s zu einem Zielzustand} Problem: Finde (falls möglich) eine Zustandsfolge p∗ vom Startzustand s0 in einen Zielzustand z , die minimale Kosten aufweist, d.h. k(p∗) = h∗(s0) bzw. k(p∗) = inf{g ∗ (z)|z ist Zielzustand}. Bestensuche wählt Route über Sibiu und Fagaras, obwohl die Route über Rimnicu Vilcea und Pitesti kürzer ist. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 80 Informierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 82 Informierte Suchverfahren Bewertung von Lösungen Zulässiger Schätzer Definition 2.5. Es sei p = (s0, s1, . . . , sr ) eine Folge von Zuständen und si+1 sei durch Anwendung eines Zustandsübergangsoperators auf s i erreichbar. Definition 2.6. Eine heuristische Funktion h heißt zulässiger Schätzer bzw. zulässig gdw. h(s) ≤ h∗(s) für alle Zustände s des Zustandsraums. Beim Übergang von si nach si+1 fallen Kosten in Höhe von k(si, si+1) an. Beispiel 2.12. Zulässige Schätzer sind: Die Kosten k(p) der Zustandsfolge seien definiert durch: k(p) := r−1 X • die heuristischen Funktionen aus Beispiel 2.3 für das Schiebepuzzle und • die Luftlinienentfernung beim Routenproblem. • Bei kombinatorischen Optimierungsproblemen werden als zulässige Schätzer häufig effizient ösbare l Relaxationen des Problems verwendet. Beispiel: minimaler Spannbaum als Relaxation für die Berechnung eines minimalen Hamiltonschen Weges. k(si, si+1) i=0 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 81 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 83 2. Suchverfahren Informierte Suchverfahren Der A*-Algorithmus basiert auf: 1. einer Bewertung g(s) für die Zustände, wobei g(s) die bisher geringsten Kosten zur Erreichung des Zustands s angibt, 2. einer (üblicherweise zulässigen) heuristischen Funktion h(s) zur Schätzung der Restkosten und 3. einer Bewertungsfunktion Φ(s) = g(s) + h(s), die zur Auswahl des zu expandierenden Zustandes dient. Steuerung der Suche bei A*: ☞ Es wird der Knoten der Agenda expandiert, der die geringste Bewertung Φ(s) aufweist. 2. Suchverfahren 84 Informierte Suchverfahren Folgende Punkte sind beim A*-Algorithmus zu berücksichtigen: • Durch eine Verringerung von g(s) für einen Zustand s kann auch eine Verringerung von Φ(s) auftreten. • Dies kann im allgemeinen auch für schon expandierte Knoten der Fall sein! • Deshalb werden schon expandierte Knoten in einer speziellen Liste Closed verwaltet. • Bewertungen sind dementsprechend anzupassen. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Informierte Suchverfahren Algorithmus 2.4. [A*] Der A*-Algorithmus Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 85 Agenda := (Startknoten); g(Startknoten) := 0; p(Startknoten) = nil; while Agenda 6= () do sakt := f irst(Agenda); Entferne sakt aus der Agenda; Füge sakt in Closed ein; if sakt ist Zielknoten then sakt ist Lösung; STOP; forall s ∈ N achf olger(sakt ) do / Agenda ∧ s ∈ / Closed then if s ∈ g(s) := g(sakt ) + k(sakt , s); p(s) := sakt ; Füge s in die Agenda mit Bewertung Φ(s) ein; else if g(sakt ) + k(sakt , s) < g(s) then Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 86 Informierte Suchverfahren g(s) := g(sakt ) + k(sakt , s); p(s) := sakt ; if s ∈ Closed then Entferne s aus Closed; Füge s in die Agenda ein; endif endif endif end end Problem hat keine Lösung; STOP; Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 87 2. Suchverfahren Informierte Suchverfahren 2. Suchverfahren • Für einen Knoten s gibt p(s) den Vorgängerknoten auf dem bisher besten Weg an. • Den bisher besten Weg zu einem Knoten s erhält man also, in dem man von s sukzessive den Verweisen p(.) folgt. • Alternativ kann man an jedem Knoten den kompletten bisher optimalen Pfad speichern. • Der notwendige Speicherplatzverbrauch für die Pfade ist dann aber quadratisch in der Länge des Suchpfades. Informierte Suchverfahren O N Z I A S 380 F V 400 T R P L H M U B 420 D E C G ☞ Durch die Schätzfunktion findet die Suche “zielgerichtet” statt. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 88 2. Suchverfahren Informierte Suchverfahren Beispiel 2.13. Beim Routenproblem berechnet der A*-Algorithmus die kürzeste Route. Sibiu f=140+253 =393 1 7 Arad Timisoara f=118+329 =447 2. Suchverfahren Informierte Suchverfahren 4 8 6 2 3 5 in den Endzustand überführen. Tafel ✎. Zerind f=75+374 =449 90 Beispiel 2.14. Man benutze den A*-Algorithmus, um eine möglichst kurze Folge von Verschiebeoperationen zu finden, die den Zustand A*-Anwendungsbeispiele Arad f=0+366 =366 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Arad Sibiu Timisoara f=118+329 =447 Arad Fagaras Oradea Rimnicu f=220+193 f=280+366 f=239+178 f=146+380 =413 =646 =417 =526 Zerind f=75+374 =449 Arad Sibiu Timisoara Zerind f=118+329 f=75+374 =447 =449 Arad Fagaras Oradea Rimnicu f=280+366 f=239+178 f=146+380 =646 =417 =526 Craiova Pitesti Sibiu f=366+160 f=317+98 f=300+253 =526 =415 =553 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 89 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 91 2. Suchverfahren Informierte Suchverfahren 2. Suchverfahren Beispiel 2.15. [Rucksackproblem] Das Rucksackproblem lautet: Informierte Suchverfahren Eigenschaften von A* • Gegeben ist eine Menge G = {g1 , . . . gn} von Gegenständen. • Jeder Gegenstand g ∈ G hat ein Gewicht w(g) und liefert einen Profit p(g). • Weiterhin ist ein maximales Gesamtgewicht C gegeben. Satz 2.1. [Terminierung, Fairness] Es gelte: Es soll nun eine Teilmenge F ⊆ G der Gegenstände bestimmt werden, so daß: P • der Gesamtprofit g∈F p(g) von F maximal ist • unter der Nebenbedingung, daß das Gesamtgewicht der ausgew ählten GeP genstände ≤ C ist, d.h. g∈F w(g) ≤ C . • Jeder Zustand besitzt nur endlich viele Nachfolgerzust ände, • es existiere , so daß für die Kosten k(s, s0) bei einem Zustandsübergang stets k(s, s0) ≥ > 0 gilt und • es gibt einen erreichbaren Zielzustand. ⇒ Dann terminiert A* nach endlich vielen Schritten mit dem Erreichen eines Zielzustandes. Zentrale Fragen: Beweis. Tafel ✎. 2 • Wie kann man das Rucksackproblem als Suchproblem formulieren. • Was muß ein A*-Algorithmus für das Rucksackproblem berücksichtigen? • Wie erhält man eine Abschätzung des noch erzielbaren Nutzens? Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Bemerkung 2.2. Unter den gegebenen Voraussetzungen endet die Suche u.U. in einem nicht optimalen Zielzustand. 92 Informierte Suchverfahren Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Informierte Suchverfahren Eigenschaften von A* (2) A* und andere Suchverfahren Bemerkung 2.1. Der A*-Algorithmus enthält die folgenden Algorithmen als Spezialfälle: • • • • 94 Für k ≥ 0 und h ≡ 0 erhält man den Dijkstra-Algorithmus. Für k ≡ 0 erhält man die Bestensuche. Für k ≡ 1 und h ≡ 0 erhält man die Breitensuche. Für k ≡ −1 und h ≡ 0 erhält man die Tiefensuche, wenn man Wiederbelebungen verbietet (Übergang von Closed in die Agenda). Satz 2.2. [Optimalität] Es gelte: • • ⇒ ⇒ ⇒ Gegeben sind die Voraussetzungen von Satz 2.1 und h ist zulässig. Dann ist der Zielknoten z , mit dem A* terminiert, ein optimaler Zielknoten, die minimalen Kosten ergeben sich durch g(z) und ausgehend von p(z) kann eine optimale Zustandsfolge ermittelt werden. Beweis. Tafel ✎. 2 Korollar 2.3. Gegeben seien die Voraussetzungen von Satz 2.2. Der gefundene optimale Zielknoten sei z . Dann wurden während des Laufs von A* nur Zustände s mit Φ(s) ≤ g(z) expandiert. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 93 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 95 2. Suchverfahren Informierte Suchverfahren 2. Suchverfahren Informierte Suchverfahren Wahl guter Schätzer Monotone Schätzer • Die Eigenschaften der heuristischen Funktion haben einen wesentlichen Einfluß auf die Performanz der Suche mit A*. • Eine zulässige heuristische Funktion ist um so besser, je näher sie dem Optimalwert zur Erreichung eines Zielzustandes kommt. Definition 2.8. Gegeben sei eine nichtnegative Kostenfunktion k. Eine heuristische Funktion h heißt monotoner Schätzer gdw. gilt: Definition 2.7. Für zwei zulässige Schätzer h und h0 heißt: • h(z) = 0 für alle Zielzustände z . • Für alle Zustände s und alle Nachfolger s0 von s gilt: h(s) ≤ k(s, s0) + h(s0) • h0 besser informiert als h gdw. h(s) < h0(s) für alle Zustände s gilt. • h0 nicht schlechter informiert als h gdw. h(s) ≤ h0(s) für alle Zustände s gilt. Beispiel 2.16. Alle Schätzer aus Beispiel 2.12 sind auch monotone Schätzer. Satz 2.4. Es gelte: • Gegeben sind die Voraussetzungen von Satz 2.2, • A bzw. A0 seien A*-Algorithmen, die zulässige Schätzer h bzw. h0 verwenden und Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 96 2. Suchverfahren Informierte Suchverfahren • h0 sei besser informiert als h. ⇒ Dann wird jeder Zustand s, der von A0 expandiert wird, auch von A expandiert. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren Informierte Suchverfahren Satz 2.6. Es gelte: • • ⇒ ⇒ ⇒ Beweis. Tafel ✎. 2 Satz 2.5. Es gelte: • Gegeben sind die Voraussetzungen von Satz 2.1 und • h(s) ≤ (1 + )h∗(s) für alle Zustände s. ⇒ Dann gilt für den vom A*-Algorithms ermittelten Zielzustand z : Gegeben sind die Voraussetzungen von Satz 2.1 und h sei ein monotoner Schätzer. Dann ist h auch ein zulässiger Schätzer. Ist der Knoten s0 durch Expansion des Knotens s entstanden, so gilt Φ(s) ≤ Φ(s 0). Es gibt keine Wiederbelebung von Zuständen, d.h. ein Knoten, der expandiert wurde, wird nie mehr selektiert. Beweis. Tafel ✎. 2 ∗ Satz 2.7. h sei ein zulässiger Schätzer. Dann existiert ein monotoner Schätzer h0, der nicht schlechter informiert ist als h. g(z) ≤ (1 + )g(z ) mit z ∗ ist Zielzustand einer optimalen Lösung. Beweis. Betrachte Zustand s mit Vorgänger spre : Beweis. Tafel ✎. 2 h0(s) := Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 98 97 h(s) h(spre ) − k(spre , s) falls h(spre) ≤ k(spre , s) + h(s) sonst Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 99 2. Suchverfahren Informierte Suchverfahren Dann gilt: 3. Inferenz in der Logik Allgemeines zu Wissensverarbeitung und Inferenz 3. Inferenz in Aussagen- und Prädikatenlogik • h0 ist monoton. • h0 ist zulässig, weil h zulässig ist. • h(s) ≤ h0(s), also ist h0 besser informiert als h. Auswirkungen von 1 Euro = 0.96 Dollar auf Zinsen und Aktienkurse Wissen Ergebnis eines Lernvorgangs 2 Devisenkurs 1 Euro = 0.96 Dollar Information Kontext 0.96 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 2. Suchverfahren 100 Zusammenfassung Zusammenfassung des Kapitels • • • • • • Daten Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 102 Allgemeines zu Wissensverarbeitung und Inferenz Wissen: Versuche einer Definition • Knowledge is organized information applicable to problem solving. (Woolf) • Knowledge is information that has been organized and analyzed to make it understandable and applicable to problem solving or decision making. (Turban) Zustandsraum: Zustände, Zustandsübergänge, Startzustand, Zielzustände Systematische Suche im Zustandsraum: Breitensuche, Tiefensuche Heuristische Funktionen: Schätzung der Entfernung zum Ziel Bestensuche garantiert keine Optimalität A*: Operatorkosten plus heuristischer Funktion A* liefert optimale Lösungen bzgl. Operatorkosten Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 101 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 103 3. Inferenz in der Logik Allgemeines zu Wissensverarbeitung und Inferenz 3. Inferenz in der Logik Allgemeines zu Wissensverarbeitung und Inferenz Wissensebenen Wissen, Kennen, Können Umgangssprachlich bezeichnet man das Ergebnis eines Lernvorgangs als • kognitive Ebene (z.B. Erfahrung von Experten, Arbeitsanweisungen) • Repräsentationsebene (z.B. Aussagenlogik, Prädikatenlogik) • Implementierungsebene (z.B. Prolog-Statements) • wissen, wenn es sich um sprachlich-begriffliche Fähigkeiten handelt, • kennen, wenn es sich um sinnliche Wahrnehmung handelt, • können, wenn es sich um motorische Fähigkeiten handelt. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik ☞ Bei der Wissensverarbeitung und der Künstlichen Intelligenz stehen die Repr äsentationsebene und die Implementierungsebene im Vordergrund (Schließen der KILücke). ☞ Beim Wissensmanagement stehen die kognitive Ebene und die Repr äsentationsebene im Vordergrund. 104 Allgemeines zu Wissensverarbeitung und Inferenz Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik Arten von Wissen explizit 106 Allgemeines zu Wissensverarbeitung und Inferenz Daten- vs. Wissensverarbeitung implizit Algorithmische Problembeschreibung Anwendungsspezifisches Wissen Ableitung präzise unsicher Wissen Art Daten Software− Entwickler unvollständig vage Programm Wissen (Fakten und Regeln) Wissens− ingenieur Inferenz− maschine Repräsentation Kontollstrategie Regeln Fakten Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 105 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 107 3. Inferenz in der Logik Allgemeines zu Wissensverarbeitung und Inferenz 3. Inferenz in der Logik Inferenz Repräsentation von Wissen • In einem Sortierprogramm ist das Wissen um die Eigenschaften von Ordnungen und sortierten Listen implizit im Algorithmus dargestellt. ☞ prozedurales Wissen • Das Wissen, das in konventionellen Programmen in Form von Daten, Tabellen oder Datenbanken ausgedrückt ist, ist auf explizite Art repr äsentiert. ☞ deklaratives Wissen Bei wissensbasierten Systemen liegt der Schwerpunkt auf deklarativem Wissen. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 108 Allgemeines zu Wissensverarbeitung und Inferenz • Nehmen wir an, es gibt eine Menge von Regeln, wie sich ein Autofahrer im Straßenverkehr zu verhalten hat. • Die Regeln sind beispielsweise in “wenn...dann”-Form repräsentiert. • Weiterhin gebe es Fakten, die Tatsachen widerspiegeln (Geschwindigkeit, Geschwindigkeitsbegrenzung, Ampel, etc.). • Regeln und Fakten bilden die Wissensbasis. • In solch einer Wissensbasis gibt es keine Kontrollstrukturen wie in einem herkömmlichen Programm, die festlegen, in welcher Reihenfolge die Regeln anzuwenden sind. • Stattdessen muß ein Mechanismus vorhanden sein, der bestimmt, welche Regeln wie anzuwenden sind. • Dieser Mechanismus heißt Inferenzmechanismus. • Inferenz ist ein (Denk-)Prozeß, in dem aus vorhandenem Wissen (bzw. Annahmen oder Vermutungen) neues Wissen (Annahmen, Vermutungen) gewonnen werden. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 110 Inferenz • Neues Wissen heißt hier, daß nach Inferenz etwas verfügbar ist, was vorher nicht unmittelbar verfügbar war. • Wissensbasis: Wenn es regnet, dann ist die Straße naß. Es regnet. Inferenz (mit Modus Ponens): Die Straße ist naß. Kriterien für die Wissensrepräsentation: • • • • • • Inferenz Vollständigkeit Abstraktion Ökonomie Freiheit von Redundanz Widerspruchsfreihet Transparenz Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 109 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 111 3. Inferenz in der Logik Inferenz 3. Inferenz in der Logik Logik und Inferenz Zielrichtungen der Inferenz Gegenstand der Logik: • Repräsentation von Wissen durch Formeln einer adäquaten Logiksprache – Syntax der Logiksprache – Bedeutung (Interpretation) von Formeln der Logiksprache • Herleitung (Inferenz) von neuem Wissen auf Basis der Kalküls. – Definition des Folgerungsbegriffs – Übertragung der semantischen Folgerung auf äquivalente syntaktische Umformungen Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 112 Inferenz Anwendungsgebiete der Logik in der Wissensverarbeitung: • • • • Inferenz • Prognosen, logische Ableitungen erstellen Es sind Fakten F und Regeln R gegeben. Was kann daraus gefolgert werden? Beispiel: Wenn es regnet, dann ist die Straße naß. Was kann aus der Tatsache, daß es regnet, gefolgert werden? • Erklärungen finden Wie läßt sich ein Fakt F mit Hilfe der Regeln R erklären? Beispiel: Die Straße ist naß. Wie kann das sein? • Hypothesen prüfen Können aus den Fakten F und den Regeln R die Hypothesen H hergeleitet werden? Beipiel: Wenn es regnet, dann ist die Straße naß. Es regnet. Ist die Straße dann naß? Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 114 Inferenz Arten der Inferenz Inferenz in Expertensystemen Logikprogrammierung, deduktive Datenbanken • Deduktion Zum Starten eines Autos ist eine aufgeladene Batterie notwendig. Bei unserem Auto ist die Batterie leer. Wir schließen, daß wir unser Auto nicht starten k önnen. • Induktion Wir haben wiederholt beobachtet, daß ein Auto nicht startet und die Batterie leer ist. Wir haben noch nie beobachtet, daß ein Auto mit leerer Batterie gestartet werden konnte. Wir schließen daraus, daß ein Auto, das eine leere Batterie hat, nicht gestartet werden kann. • Abduktion Zum Starten eines Autos ist eine aufgeladene Batterie notwendig. Unser Auto l äßt sich nicht starten. Wir schließen, daß die Batterie leer ist. automatisches Beweisen Programmverifikation Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 113 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 115 3. Inferenz in der Logik Inferenz 3. Inferenz in der Logik Weitere Aspekte bei der Wissensverarbeitung mit Logik • • • • Aussagenlogik Aussagenlogische Signatur Definition 3.1. Eine aussagenlogische Signatur Σ ist eine Menge von (nullstelligen) Bezeichnern, den Aussagenvariablen. Qualifikationsproblem unpräzise Angaben probabilistische Aussagen und Regeln Beispiel 3.1. Die Menge räumlich-zeitliches Wissen ΣAL := {hatFieber, istKrank, istArbeitsunfähig} ist eine aussagenlogische Signatur, die drei Aussagenvariablen zur Verfügung stellt. Im folgenden benutzen wir üblicherweise Großbuchstaben als Aussagenvariablen. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 116 Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik Aussagenlogik Formeln Signatur Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. • Zunächst benötigt ein logisches System ein Vokabular, • d.h. eine Menge von Namen, die Dinge der realen Welt beschreiben k önnen. • Eine derartige Menge von Namen wird als Signatur bezeichnet und üblicherweise durch Σ gekennzeichnet. • Den Namen ist i.d.R. eine gewisse Stelligkeit zugeordnet. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 118 117 • • • • • • Formeln ermöglichen es, Dinge der repräsentierten Welt auszudrücken. Formeln entsprechen einer gewissen Syntax (sie sind wohlgeformt). Diese Syntax legt eine Wissensrepräsentationssprache fest. Formeln sind üblicherweise rekursiv aufgebaut. Die atomaren Formeln ergeben sich aus der Signatur. Mit logischen Verknüpfungsoperatoren (den Junktoren) werden aus atomaren Formeln schrittweise komplexere Formeln aufgebaut. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 119 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Aussagenlogik Aussagenlogische Formeln Σ-Interpretation Definition 3.2. Für eine aussagenlogische Signatur Σ ist die Menge Formel(Σ) der aussagenlogischen Formeln wie folgt definiert: • Die Syntax einer Logik legt ausschließlich deren äußere Form fest, sie sagt aber nichts über die Bedeutung der Formeln aus. • Benötigt wird eine Verbindung zwischen den syntaktischen Elementen der Logik und den Objekten der zu repräsentierenden Welt. • Diese Verbindung wird durch eine sogenannte Σ-Interpretation hergestellt. • Eine Σ-Interpretation einer Signatur ist die Zuordnung von den Elementen der Signatur Σ (Namen) zu den Elementen der zu repräsentierenden Welt. • Die Elemente der Menge Σ sind aussagenlogische Formeln, die sogenannten atomaren Formeln. • Falls F und G aussagenlogische Formeln sind, dann sind auch die folgenden Konstrukte aussagenlogische Formeln: Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 120 Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 122 3. Inferenz in der Logik Aussagenlogik Belegung (¬F ) (F ∧ G) (F ∨ G) (F → G) (F ↔ G) Negation Konjunktion Disjunktion Implikation Äquivalenz Definition 3.3. Es sei Σ eine aussagenlogische Signatur. Bemerkung 3.1. Zur Vereinfachung der Schreibweise verzichten wir i.d.R. auf die Klammerung und benutzen statt dessen die folgenden Bindungspriorit äten: ¬, ∧, ∨, →, ↔. • Eine Abbildung I : Σ −→ {wahr, falsch} heißt aussagenlogische Interpretation oder Belegung für Σ. • Int(Σ) bezeichnet die Menge der Belegungen für Σ. Beispiel 3.2. Für die Signatur aus Beispiel 3.1 ist I definiert durch Durch die Menge Formel(Σ) wird die Sprache zur Repräsentation von Wissen definiert. I(hatFieber) I(istKrank) I(istArbeitsunfähig) = = = wahr wahr falsch eine mögliche Belegung. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 121 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 123 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Aussagenlogik Modell Erfüllungsrelation Definition 3.5. Es seien I ∈ Int(Σ) und F ∈ Formel(Σ). Gilt I |= F , so sagen wir • Die Interpretation liefert uns nur einen Wahrheitswert für die atomaren Formeln. • Wir benötigen eine Ausdehnung der Semantik auf alle Formeln F ∈ Formel(Σ). • Dieses stellt uns eine Erfüllungsrelation |= bereit. • “I erfüllt F ” und • bezeichnen I als Σ-Modell für F . • Durch solch eine Erfüllungsrelation ist definiert, ob eine Formel F in einer ΣInterpretation I wahr ist oder nicht, d.h. ModΣ (F ) ⊆ Int(Σ) bezeichnet die Menge aller Σ-Modelle für F . • sie ordnet einer Interpretation und einer Formel einen Wahrheitswert zu. Für eine Menge F ⊂ Formel(Σ) von Formeln gelte I |= F gdw. I |= F für alle F ∈ F . I ist dann ein Modell für die Formelmenge F . • Eine Erfüllungsrelation definiert hierzu im wesentlichen die Semantik der Junktoren. Definition 3.4. Es seien F, G ∈ Formel(Σ) (nichtatomare) aussagenlogische Formeln. Durch die folgenden Wahrheitstafel wird eine Σ-Interpretation I von Σ auf die Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 124 3. Inferenz in der Logik Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 126 Aussagenlogik Beispiel 3.3. Die Interpretation I aus Beispiel 3.2 ist ein Modell für die Formel Menge Formel(Σ) ausgedehnt: I(F ) f w I(¬F ) w f I(F ) I(G) I(F ∨ G) I(F ∧ G) f f f f w f f w w f w f w w w w Für I ∈ Int(Σ) und F ∈ Formel(Σ) gelte: hatFieber → istKrank Dagegen ist I kein Modell für die Formel istKrank → istArbeitsunfähig I(F → G) w w f w Beweis mit Wahrheitstafeln ✎. I |= F gdw. I(F ) = wahr Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 125 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 127 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Erfüllbarkeit Semantische Folgerung Besonders interessant sind Formeln, die für alle Interpretationen wahr bzw. falsch sind. • In einem wissensbasierten System wollen wir Fakten aus anderen Fakten und Regeln herleiten. • Wir können eine Wissensbasis als eine Menge F ⊂ Formel(Σ) betrachten. “Kräht der Hahn auf dem Mist, ändert sich das Wetter oder es bleibt wie es ist.” • Eine solche Menge F = {F1 , . . . , Fn} entspricht der Konjunktion F1 ∧ . . . ∧ Fn. Definition 3.6. Eine Formel F heißt • • • • Aussagenlogik • Unser übliches Verständnis von Folgerung läßt sich so ausdrücken: Ist eine Formel G immer dann wahr, wenn alle Formeln aus F wahr sind, dann folgt G aus F . erfüllbar gdw. es ein Modell für die Formel gibt. • Damit können wir die Erfüllungsrelation |= auf eine Beziehung zwischen Formeln und Formelmengen ausdehnen. unerfüllbar (Kontradiktion) gdw. es kein Modell für die Formel gibt. allgemeingültig (Tautologie) gdw. jede Interpretation ein Modell für die Formel ist. Definition 3.7. Es seien F, G ∈ Formel(Σ) aussagenlogische Formeln. falsifizierbar gdw. es eine Interpretation gibt, die kein Modell für die Formel ist. Die Begriffe werden in analoger Weise für Formelmengen F ⊂ Formel(Σ) verwendet. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 128 Aussagenlogik • G heißt semantische Folgerung von F gdw. jedes Modell für F auch ein Modell für G ist. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 130 Aussagenlogik • In diesem Fall schreiben wir F |= G. • Wir sagen auch “G folgt logisch aus F ” bzw. “aus F folgt semantisch G”. • Für eine Formelmenge F gelte F |= G gdw. jedes Modell für F auch ein Modell für G ist. • Für Formelmengen F , G gelte F |= G gdw. F |= G für alle G ∈ G gilt. Beispiel 3.4. Wichtige Tautologien sind: • Modus Ponens (F ∧ (F → G)) → G • Modus Tollens ((F → G) ∧ ¬G) → ¬F Beispiel 3.5. Gegeben sei die Formelmenge F • Und-Elimination (F ∧ G) → F 8 < hatFieber F = istKrank : hatFieber • Oder-Introduktion F → (F ∨ G) • Resolutionsregel → → 9 istKrank, = istArbeitsunfähig, ; Kann aus F die Aussage istArbeitsunfähig gefolgert werden, d.h. gilt F |= istArbeitsunfähig? ((F → G) ∧ (¬F → H)) → (G ∨ H) Ja! Beweis mit Wahrheitstafeln ✎. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 129 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 131 3. Inferenz in der Logik Aussagenlogik Beispiel 3.6. Wir wollen uns ein Haustier anschaffen und machen folgende Überlegungen: 1. Es sollte nur ein Hund (H ), eine Katze (K ) oder ein Hamster (M ) sein. 2. Besitzer wertvoller Möbel (W ) sollten keine Katze anschaffen, da diese die Möbel zerkratzen würde. 3. Ein Hund erfordert ein freistehendes Haus (F ), damit sich kein Nachbar durch das Bellen gestört fühlt. Wir vermuten: Für einen Besitzer wertvoller Möbel ohne freistehendes Haus kommt nur ein Hamster in Frage. Die Aussagen lauten als Aussagenlogische Formeln: 1. H ∨ K ∨ M 3. Inferenz in der Logik N r. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. I(H) f f f f f f f f f f w w w Aussagenlogik I(K) f f w w w w w w w w f f f I(M ) w w f f f f w w w w f f f I(W ) w w f f w w f f w w f f w I(F ) f w f w f w f w f w f w f 1. ∧ 2. ∧ 3. w w w f f f w w f f f f f Hyp. w w w w f w w w f w w w f 2. W → ¬K 3. H → F Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 132 3. Inferenz in der Logik Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 134 3. Inferenz in der Logik Aussagenlogik Hyp. W ∧ ¬F → M ∧ ¬H ∧ ¬K N r. 1. 2. 3. 4. 5. 6. I(H) f f f f f f I(K) f f f f f f I(M ) f f f f w w I(W ) f f w w f f I(F ) f w f w f w Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. ∧ 2. ∧ 3. f f f f f f N r. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Hyp. w w f w w w 133 I(H) w w w w w w w w w w w w w I(K) f f f f f w w w w w w w w I(M ) f w w w w f f f f w w w w I(W ) w f f w w f f w w f f w w I(F ) w f w f w f w f w f w f w Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 1. ∧ 2. ∧ 3. w f f f w f w f f f f f f Hyp. w w w f w w w f w w w f w 135 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Fazit: Aussagenlogik Kalkül • Es gibt acht Modelle für die Formelmenge {1., 2., 3.}. Dies sind die Interpretationen mit den Nummern 7, 8, 9, 13, 14, 20, 24, 26. • Jedes dieser Modelle ist auch ein Modell für die Hypothese. • Somit folgt die Hypothese semantisch aus {1., 2., 3.}. • Schon das kleine Beispiel 3.6 verdeutlichte, daß Inferenz auf Basis der Definition der semantischen Folgerung ineffizient ist. • Allgemein müssen für eine Formelmenge F mit k verschiedenen Aussagevariablen 2k Belegungen getestet werden. • Daher benutzt man für die maschinelle Inferenz Techniken, die allein auf der Syntax der Formeln beruhen. • Statt alle möglichen Belegungen zu testen, sucht man nach einer Folge von syntaktischen Umformungen, die die Hypothese zu beweisen. • Ein Kalkül besteht aus einer Menge von logischen Axiomen und Inferenzregeln. • Die Axiome sind entweder eine Menge von elementaren Tautologien (positiver Kalkül) oder • eine Menge von elementaren Widersprüchen (negativer Kalkül). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 136 Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 138 Aussagenlogik • Die Inferenzregeln sind Vorschriften, nach denen aus Formeln andere Formeln abgeleitet werden können. • Sie werden in der folgenden Form notiert: Satz 3.1. Es seien F, G aussagenlogische Formeln. Dann gilt: • F ist Tautologie gdw. ¬F ist unerfüllbar. • F |= G gdw. F → G ist Tautologie. • F |= G gdw. F ∧ ¬G ist unerfüllbar. F1 , . . . , F n F Bemerkung 3.2. Die Äquivalenzen können auf Formelmengen F , G ausgedehnt werden. Dies besagt, daß aus den Formeln (der syntaktischen Form) F 1, . . . , Fn (Bedingungen) eine Formel der Form F (Schlussfolgerung) abgeleitet werden kann. • So können aus den Tautologien von Beispiel 3.4 Inferenzregeln gebildet werden. Aus dem Modus Ponens ergibt sich die Inferenzregel: F, F → G G • Ist eine Formel F aus den Formeln F1, . . . , Fn durch eine Folge von Anwendungen der Inferenzregeln ableitbar, so schreibt man F1 , . . . , F n ` F Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 137 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 139 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Beispiel 3.7. Gegeben sei die Formelmenge F aus Beispiel 3.5. Mit der Inferenzregel Modus Ponens leiten wir ab: hatFieber, hatFieber → istKrank istKrank Aussagenlogik Semantische Äquivalenz Beispiel 3.8. Syntaktisch unterschiedliche Formel können identische Wahrheitswerte haben. Man betrachte die Formeln ¬(F ∨ G) und ¬F ∧ ¬G: Nochmals angewandt ergibt sich: istKrank, istKrank → istArbeitsunfaehig istArbeitsunfaehig F f f w w Also gilt: F ` istArbeitsunfähig. G f w f w ¬(F ∨ G) w f f f ¬F ∧ ¬G w f f f Definition 3.8. Zwei aussagenlogische Formeln F, G ∈ Formel(Σ) heißen semantisch äquivalent gdw. I(G) = I(F ) für jede Belegung I ∈ Int(Σ) gilt. Wenn F und G semantisch äquivalent sind, schreiben wir hierfür F ≡ G. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 140 Aussagenlogik Eigenschaften von Kalkülen 142 3. Inferenz in der Logik Aussagenlogik Lemma 3.2. Wichtige semantische Äquivalenzen sind: • Ein Kalkül ist korrekt gdw. alle syntaktischen Ableitungen auch semantische Folgerungen sind, d.h. für Formeln F und G gilt: F ` G impliziert F |= G • Ein Kalkül ist vollständig gdw. alle semantischen Folgerungen auch syntaktisch abgeleitet werden können, d.h. für Formeln F und G gilt: F |= G impliziert F ` G • Ein Kalkül ist widerlegungsvollständig gdw. aus allen semantischen Folgerungen eine unerfüllbare Formel 2 abgeleitet werden kann, d.h. für Formeln F und G gilt: F |= G impliziert F ∧ ¬G ` 2 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 141 F →G ¬(F ∨ G) ¬(F ∧ G) ¬¬F F ∨F F ∧F F ∧ (F ∨ G) F ∨ (F ∧ G) F ∨G F ∧G F ∧ (G ∧ H) F ∨ (G ∨ H) F ∧ (G ∨ H) F ∨ (G ∧ H) ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ¬F ∨ G ¬F ∧ ¬G ¬F ∨ ¬G F F F F F G∨F G∧F (F ∧ G) ∧ H (F ∨ G) ∨ H (F ∧ G) ∨ (F ∧ H) (F ∨ G) ∧ (F ∨ H) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Implikation DeMorgan Dop. Negation Idempotenz Absorption Kommutativität Assoziativität Distributivität 143 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Normalformen Aussagenlogik Transformation in Normalform Für die maschinelle Inferenz ist die Darstellung einer Formel in einer standardisierten und möglichst einfachen Form wichtig. Umformungsregeln für KNF/DNF-Transformation: Definition 3.9. Schritt 1 • Eine Formel F ist ein Literal gdw. F eine atomare Formel oder die Negation einer atomaren Formel ist. • Eine Formel F ist in konjunktiver Normalform (KNF) gdw. F eine Konjunktion von Disjunktionen von Literalen ist, d.h. Schritt 2 Schritt 3 (KNF) Schritt 3 (DNF) F = ((L1,1 ∨ . . . ∨ L1,m1 ) ∧ . . . ∧ (Ln,1 ∨ . . . ∨ Ln,mn )) F →G ¬¬F ¬(F ∧ G) ¬(F ∨ G) F ∨ (G ∧ H) (F ∧ G) ∨ H F ∧ (G ∨ H) (F ∨ G) ∧ H 7→ 7→ 7 → 7→ 7 → 7→ 7 → 7→ ¬F ∨ G F ¬F ∨ ¬G ¬F ∧ ¬G (F ∨ G) ∧ (F ∨ H) (F ∨ H) ∧ (G ∨ H) (F ∧ G) ∨ (F ∧ H) (F ∧ H) ∨ (G ∧ H) • Eine Formel F ist in disjunktiver Normalform DNF gdw. F eine Disjunktion von Konjunktionen von Literalen ist, d.h. F = ((L1,1 ∧ . . . ∧ L1,m1 ) ∨ . . . ∨ (Ln,1 ∧ . . . ∧ Ln,mn )) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 144 Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik Beispiel 3.9. Die Formeln 146 Aussagenlogik Klauselform (F ∨ ¬G ∨ H) ∧ J und ¬F ∧ G sind in KNF. Für die maschinelle Inferenz benutzt man eine Mengendarstellung der KNF, die sogenannte Klauselform. Die Formeln (¬F ∧ G) ∨ (¬H ∧ ¬J) und F ∨ ¬G Definition 3.10. sind in DNF. • Eine Klausel ist eine Menge von Literalen {L1 , . . . , Ln }, die der Disjunktion L1 ∨ . . . ∨ Ln entspricht. • Die Klausel {} ist die leere Klausel. Sie wird in der Form 2 geschrieben und entspricht dem Wahrheitswert falsch (f, 0). • Die Klauselform einer Formel F in KNF mit F = ((L1,1 ∨ . . . ∨ L1,m1 ) ∧ . . . ∧ (Ln,1 ∨ . . . ∨ Ln,mn )) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 145 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 147 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Aussagenlogik Definition 3.11. Seien K1, K2 Klauseln und sei A eine atomare Formel mit A ∈ K1 und ¬A ∈ K2. Dann heißt die Klausel R mit ist die Menge F = {{L1,1 , . . . , L1,m1 }, . . . , {Ln,1, . . . , Ln,mn }} R = (K1 \ {A}) ∪ (K2 \ {¬A}) Resolvente von K1 und K2. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 148 Aussagenlogik Resolution Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 150 3. Inferenz in der Logik Aussagenlogik Ein Resolutionsschritt wird wie folgt dargestellt: K1 K2 Beispiel 3.10. Resolution basiert auf folgendem Schema: • Wenn es regnet (R), gehe ich ins Kino (K ), also R → K . • Wenn es nicht regnet (¬R), gehe ich ins Schwimmbad (S ), also ¬R → S . • Hieraus folgt, daß ich ins Kino oder ins Schwimmbad gehe, also R Beispiel 3.11. Modus Ponens und Modus Tollens können als Spezialfall der Resolution dargestellt werden: {R → K, ¬R → S} |= K ∨ S {A} Als Inferenzregel geschrieben lautet die Resolution wie folgt: F → G, ¬F → H G∨H {¬A, B} {¬B} {B} {B, ¬A} {¬A} Für die maschinelle Inferenz benutzt man Resolution in Verbindung mit Klauselform. Die Resolvente zweier widersprüchlicher Klauseln ist die leere Klausel: Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 149 151 3. Inferenz in der Logik Aussagenlogik {A} {¬A} 3. Inferenz in der Logik Aussagenlogik • Das letzte Beispiel zeigt den direkten Beweis einer Formel mit Hilfe der Resolutionsregeln. • Beim Resolutionskalkül führt man stattdessen einen Widerspruchsbeweis. • D.h., man beweist F |= G, in dem man zeigt, daß F ∧ ¬G unerfüllbar ist (vgl. Satz 3.1). • Dies bedeutet, man leitet aus den Klauseln von F vereinigt mit den Klauseln, die sich aus ¬G ergeben, die leere Klausel ab. 2 Satz 3.3. Es sei F eine Klauselmenge und es seien K1, K2 ∈ F . Für eine Resolvente R von K1 und K2 gilt F |= R. Insbesondere ist F genau dann erfüllbar, wenn F ∪ {R} erfüllbar ist. • Satz 3.3 sagt aus, daß durch die Hinzunahme von Resolventen die Erfüllbarkeitseigenschaft einer Klauselmenge nicht beeinträchtigt wird. • Dies nutzt man im Resolutionskalkül aus. Um zu zeigen, daß eine Klauselmenge F unerfüllbar ist, bildet man solange Resolventen und fügt sie der Klauselmenge hinzu, bis irgendwann eine Menge F 0 entsteht, die die leere Klausel enthält. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 152 3. Inferenz in der Logik Aussagenlogik {¬H, F } {F, K, M } 3. Inferenz in der Logik 154 Aussagenlogik • Diese Klauselmenge F 0 ist unerfüllbar, also muß auch die ursprüngliche Klauselmenge F unerfüllbar sein. Beispiel 3.12. Herleitung der Aussage aus Beispiel 3.6 mit der Resolutiosregel: {H, K, M } Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 {¬W, ¬K} {¬W, F, M } Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 153 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 155 3. Inferenz in der Logik Aussagenlogik 3. Inferenz in der Logik Beispiel 3.13. Herleitung der Aussage aus Beispiel 3.6 mit dem Resolutionskalkül: Aussagenlogik Eigenschaften der Resolution Klauselmenge V der Voraussetzungen: {{H, K, M }, {¬W, ¬K}, {¬H, F }} Satz 3.4. Eine Klauselmenge F ist unerfüllbar genau dann, wenn die leere Klausel 2 mit einer endlichen Anzahl von Resolutionsschritten aus F abgeleitet werden kann. Klauselmenge A der negierten zu beweisenden Aussage: Bemerkung 3.3. Aus Satz 3.4 folgt die Korrektheit und (Widerlegungs)-Vollst ändigkeit des Resolutionskalküls: {{W }, {¬F }, {¬M }} Es gilt, aus V ∪ A die leere Klausel abzuleiten. • Die leere Klausel kann nur dann abgeleitet werden, wenn die ursprüngliche Klauselmenge unerfüllbar ist =⇒ Korrektheit • Das Resolutionskalkül findet für jede unerfüllbare Klauselmenge eine Widerlegung, d.h. die leere Klausel wird abgeleitet =⇒ Vollständigkeit Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 156 3. Inferenz in der Logik Aussagenlogik {H, K, M } {¬M } {¬H, F } {H, K} 3. Inferenz in der Logik 158 Aussagenlogik • Im Fall der Aussagenlogik ist es entscheidbar, ob die leere Klausel abgeleitet werden kann. • Für n Aussagenvariablen gibt es höchstens 4n verschiedene Klauseln, die aus diesen Aussagenvariablen gebildet werden können. • Der Prozess der Resolventenbildung ist also endlich, d.h. irgendwann k önnen keine neuen Resolventen mehr gebildet werden. {¬F } {¬H} {K} Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 {¬W, ¬K} {¬W } {W } 2 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 157 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 159 3. Inferenz in der Logik Aussagenlogik ¨ Pradikatenlogik 3. Inferenz in der Logik 0 Prädikatenlogik Lemma 3.5. Es sei F eine Klauselmenge. F sei eine Klauselmenge, • die durch sukzessive Resolventenbildung aus F entstanden ist. • F 0 enthalte nicht die leere Klausel und • aus F 0 kann keine neue Resolvente erzeugt werden. In der Aussagenlogik ist es nicht möglich, Aussagen über ganze Klassen von Objekten zu machen, so daß Schlußfolgerungen für individuelle Objekte m öglich sind. Dann ist F 0 und somit auch F erfüllbar. Es sei gegeben: Beweis. Tafel ✎. 2 Martin ist ein Informatiker. Peter ist ein Informatiker. Jeder Informatiker kann programmieren. Wir wollen folgern: Martin kann programmieren. Peter kann programmieren. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 160 Aussagenlogik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 ¨ Pradikatenlogik 3. Inferenz in der Logik Fazit zur Aussagenlogik 162 Syntax der Prädikatenlogik • Eine Signatur legt die Variablen der Sprache fest. • Aus den Variablen entsteht durch Festlegung einer Syntax eine Wissensrepr äsentationssprache (Menge der Formeln). • Eine Interpretation gibt den Variablen eine Bedeutung. • Die Erfüllungsrelation dehnt diese Bedeutung auf alle Formeln aus • Über die Erfüllungsrelation wird der Begriff der semantischen Folgerung festgelegt. • Ein Kalkül stellt die Äquivalenz zwischen semantischer Folgerung und syntaktischen Operationen her. Mit der Prädikatenlogik (1. Stufe) wollen wir Sachverhalte beschreiben, die folgendes enthalten können. • • • • • Objekte, z.B. Personen oder Sachen Funktionen auf den Objekten, z.B. Größe, Gewicht, Hochzeitstag Eigenschaften von Objekten Beziehungen zwischen Objekten Aussagen über Objekte, auch quantifizierende Wie in der Aussagenlogik beschreiben wir zunächst die Syntax der Wissensrepräsentationssprache. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 161 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 163 3. Inferenz in der Logik ¨ Pradikatenlogik Wir haben in der Prädikatenlogik folgende syntaktischen Elemente: Prädikatenlogische Signatur • Eine Konstante repräsentiert ein spezifisches Element aus einer Menge von Objekten. Wir stellen Konstanten durch Bezeichner dar, die mit einem Kleinbuchstaben beginnen. Beispiel: peter, martin • Eine Variable repräsentiert ein unspezifisches Element aus einer Menge von Objekten. Wir stellen Variablen durch Bezeichner dar, die mit einem Großbuchstaben beginnen. Beispiel: X, P erson • Eine Funktion repräsentiert einen funktionalen Zusammenhang zwischen Objekten. Solche Funktionen haben eine feste Stelligkeit. Wir stellen Funktionen durch kleingeschriebene Bezeichner dar mit den Argumenten in Klammern. Beispiel: alter(martin), f (X, Y, peter) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik 164 ¨ Pradikatenlogik • Prädikate repräsentieren Eigenschaften oder Beziehungen zwischen Objekten. Solche Prädikate haben eine feste Stelligkeit. Wir stellen Prädikate durch großgeschriebene Bezeichner dar mit den Argumenten in Klammern. Beispiel: Inf ormatiker(martin), P rogrammieren(X), V ater(lars, peter) Bemerkung: Im Gegensatz zu Funktionen kann einem Prädikatenausdruck ein Wahrheitswert zugeordnet werden. • Die logischen Junktoren wie in der Aussagenlogik: ¬, ∧, ∨, →, ↔ • Quantoren, die mit einer Variable verbunden sind, dienen dazu, die Gültigkeit von Prädikaten zu quantifizieren. Hierzu stehen der Allquantor ∀ und der Existenzquantor ∃ zur Verfügung. Beispiel: ∃X P rogrammieren(X) Definition 3.12. Eine (PL1-)Signatur Σ = (Func, Pred) besteht aus • einer Menge Func von Funktionssymbolen und • einer Menge Pred von Prädikatensymbolen. Jedes Symbol s ∈ Func ∪ Pred hat eine feste Stelligkeit ≥ 0. Ein Funktionssymbol mit der Stelligkeit 0 heißt Konstante. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 166 ¨ Pradikatenlogik 3. Inferenz in der Logik PL1-Terme Definition 3.13. Es sei V eine Menge von Variablensymbolen und Σ = (Func, Pred) sei eine PL1-Signatur. Dann ist die Menge TermΣ(V ) der (PL1-)Terme wie folgt definiert: 1. Jede Konstante c ∈ Func ist ein PL1-Term. 2. Jedes Variablensymbol X ∈ V ist ein PL1-Term. 3. Ist f ∈ Func ein n-stelliges Funktionssymbol (n ≥ 1) und sind t 1 , . . . , tn PL1Terme, so ist auch f (t1 , . . . , tn) ein PL1-Term. Beispiel 3.14. f (g(X), Y ), jahreV erheiratet(klaus, marie) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 165 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 167 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Bemerkung 3.4. PL1-Formeln • In PL1 ist nur eine Quantifizierung über Objekt-Variablen (also 0-stellige Funktionen) zulässig. Somit wäre die Formel Definition 3.14. Es sei V eine Menge von Variablensymbolen und Σ = (Func, Pred) sei eine PL1-Signatur. Dann ist die Menge FormelΣ(V ) der PL1-Formeln wie folgt definiert: ∃X X(peter) keine PL1-Formel. • Wir verlangen zusätzlich, daß alle Variablen quantifiziert werden, d.h. eine Formel der Art p(X) ∨ q(Y ) wäre verboten. Formeln, die ausschließlich quantifizierte Variablen enthalten, bezeichnet man als geschlossene Formeln. 1. Ist p ∈ Pred ein n-stelliges Prädikatensymbol und sind t1 , . . . , tn Terme, so ist p(t1 , . . . , tn ) eine (atomare) PL1-Formel. 2. Sind F und G PL1-Formeln, dann sind auch ¬F, F ∧ G, F ∨ G, F → G, F ↔ G PL1-Formeln. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 168 ¨ Pradikatenlogik 3. Inferenz in der Logik 3. Ist F eine PL1-Formel und X ∈ V , dann sind auch Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 170 ¨ Pradikatenlogik 3. Inferenz in der Logik Prädikatenlogik und PROLOG ∃X F und ∀X F PL1-Formeln. In der Programmiersprache PROLOG können (gewisse) PL1-Formeln direkt repräsentiert werden. Beispiel 3.15. Den anfangs dargestellten Sachverhalt k önnten wir durch folgende Formeln ausdrücken. Informatiker(martin) Informatiker(peter) ∀X Informatiker(X) → Programmieren(X) Beispiel 3.16. Der bekannte Sachverhalt als PROLOG-Programm: programmieren(X) :- informatiker(X). Die Frage, ob Martin und Peter programmieren können, würde dann als PL1-Formel lauten: Programmieren(martin) ∧ Programmieren(peter) informatiker( martin ). informatiker( peter ). An solch ein PROLOG-Programm kann man eine Anfrage stellen: ?- programmieren( peter ),programmieren( martin ). Yes Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 169 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 171 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Prädikatenlogische Interpretation PL1-Semantik Bisher haben wir wieder nur Syntax. Wir müssen nun die Funktions- und Pr ädikatensymbole mit einer Bedeutung belegen. Definition 3.18. Es sei I = (UI , SI ) eine Σ-Interpretation, V eine Menge von Variablensymbolen und α : V −→ UI eine Variablenbelegung. Definition 3.15. Es sei Σ = (Func, Pred) eine PL1-Signatur. Eine Σ-Interpretation I = (UI , SI ) besteht aus: αX/a : V −→ UI bezeichne die Modifikation von α an der Stelle X zu a, d.h: αX/a(t) = • einer nichtleeren Menge UI , der Trägermenge (Grundbereich, Universum), • sowie einer Abbildung SI , die jedem n-stelligen Funktionssymbol f ∈ Func eine n-stellige Funktion SI (f ) : UIn → UI zuordnet und • jedem n-stelligen Prädikatensymbol p ∈ Pred eine n-stellige Relation SI (p) ⊆ UIn zuordnet. α(t) a für t = 6 X für t = X Dann ist der Wahrheitswert einer Formel F ∈ FormelΣ(V ) in I unter α (geschrieben [[F ]]I,α) wie folgt definiert: • Für eine atomare Formel p(t1 , . . . , tn) gilt: [[p(t1 , . . . , tn)]]I,α ist wahr :⇔ ([[t1 ]]I,α, . . . , [[tn]]I,α) ∈ SI (p) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 172 ¨ Pradikatenlogik 3. Inferenz in der Logik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 3. Inferenz in der Logik 174 ¨ Pradikatenlogik • Für F ∧ G, F ∨ G, F → G und ¬F gelten die selben Regeln wie in der Aussagenlogik. • Für eine Formel ∀X F gilt: Termauswertung Es sind noch nicht alle sprachlichen Symbole der PL mit einer Bedeutung belegt, es fehlen noch die Variablen. Definition 3.16. Es sei I = (UI , SI ) eine Σ-Interpretation und V eine Menge von Variablensymbolen. Dann ist eine Variablenbelegung α eine Funktion α : V → U I . [[∀X F ]]I,α ist wahr :⇔ für jedes a ∈ UI gilt:[[F ]]I,αX/a ist wahr • Für eine Formel ∃X F gilt: [[∃X F ]]I,α ist wahr :⇔ es gibt ein a ∈ UI mit:[[F ]]I,αX/a ist wahr Definition 3.17. Gegeben sein ein Term t ∈ TermΣ(V ), eine Σ-Interpretation I = (UI , SI ) und eine Variablenbelegung α : V → UI . Die Termauswertung von t in I unter α ist die wie folgt definierte Funktion [[ ]]I,α : TermΣ(V ) → UI : [[X]]I,α = α(X) für X ∈ V [[f (t1, . . . , tn)]]I,α = SI (f )([[t1 ]]I,α, . . . , [[tn]]I,α) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 173 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 175 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Bemerkung 3.5. Äquivalenzen für PL1-Formeln • Gemäß Bemerkung 3.4 betrachten wir nur geschlossene Formeln. Dies sind Formeln, in denen alle Variablen gebunden sind. • Der Wahrheitswert einer geschlossenen Formel ist aber unabh ängig von einer Variablenbelegung α. • Für geschlossene Formeln können wir deshalb auch einfach [[F ]]I schreiben. • Die Begriffe Modell und semantische Folgerung werden analog zur Aussagenlogik definiert. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 176 ¨ Pradikatenlogik 3. Inferenz in der Logik Beispiel 3.17. Durch die Mengen Definition 3.19. Zwei PL1-Formeln F und G heißen semantisch äquivalent gdw. für alle Σ-Interpretationen I gilt: [[F ]]I = [[G]]I Lemma 3.6. ¬∀XF ¬∃XF (∀XF ) ∧ (∀XG) (∃XF ) ∨ (∃XG) ∀X∀Y F ∃X∃Y F ∀XF ∃XF ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ∃X¬F ∀X¬F ∀X(F ∧ G) ∃X(F ∨ G) ∀Y ∀XF ∃Y ∃XF ∀Y F [X/Y ] ∃Y F [X/Y ] Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 178 ¨ Pradikatenlogik 3. Inferenz in der Logik Normalformen P rogrammieren = {peter, martin} und Inf ormatiker = {peter, martin} ist ein Modell für unser Beispiel gegeben. Es ist sogar das “kleinste Modell” für diese Formelmenge. Solche Modelle nennt man Herbrand-Modell. Die Interpretation P rogrammieren = {peter, martin} und Inf ormatiker = {peter, martin, klaus} Definition 3.20. Eine Formel F , in der alle Quantoren außen stehen, heißt Pr änexform. Eine Pränexform, die als Junktor nur noch Konjunktion, Disjunktion und Negation enthält, wobei die Negation nur unmittelbar vor Atomen auftritt, heißt vereinigungstechnische Normalform (VNF). Mit folgenden Schritten kann jede PL1-Formel in eine äquivalente Formel in VNF überführt werden: ist dagegen kein Modell für diese Formelmenge. 1. Umbennung von Variablen derart, daß keine Variable sowohl frei als auch gebunden auftritt und hinter allen vorkommenden Quantoren stehen verschiedene Variablen. 2. Beseitigung der Junktoren → und ↔. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 177 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 179 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Normalformen (2) 3. Die Negation wird ganz nach innen gezogen, so daß sie nur noch unmittelbar vor Atomen auftritt. 4. Die Quantoren werden ganz nach außen geschoben. 5. Alle Existenzquantoren werden durch Skolemisierung entfernt. 6. Jetzt können alle Allquantoren entfernt werden. 7. Mit Hilfe der de Morganschen Regeln können disjunktive Normalform DNF bzw. konjunktive Normalform KNF analog zur Aussagenlogik erzeugt werden. Ebenfalls analog zur Aussagenlogik kann eine PL1-Formel in KNF in Klauselform dargestellt werden. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 180 ¨ Pradikatenlogik 3. Inferenz in der Logik Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 182 ¨ Pradikatenlogik 3. Inferenz in der Logik Skolemisierung Substitution Skolemisierung dient der Elimination von Existenzquantoren. Wir betrachten eine Pränexform: ∀X1 . . . ∀Xk ∃Y F (. . . , Y, . . .) Zum Ersatz von ∃Y wählen wir ein neues Funktionszeichen f der Stelligkeit k und führen folgende Operation aus: Für die maschinelle Inferenz mit PL wird noch ein Mechanismus zur Instanziierung von Variablen benötigt. Definition 3.21. Es sei X ⊆ V eine endliche Teilmenge von Variablensymbolen von V . Dann ist eine Abbildung σ : X −→ TermΣ(V ) eine Substitution. Durch 1. Streiche ∃Y aus der Pränexform. 2. Ersetze in der verbleibenden Formel Y an allen Stellen durch f (X 1 , . . . , Xk ). σ(X) für X ∈ X X für X ∈ V \ X wird der Definitionsbereich von σ zunächst auf V ausgedehnt. σ(X) = Wir erhalten somit ∀X1 . . . ∀Xk F (. . . , f (X1 , . . . , Xk ), . . .) Die Funktion f heißt Skolemfunktion bzw. für k = 0 Skolemkonstante. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 181 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 183 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Durch σ(c) = c für Konstanten und die rekursive Anwendung von σ in der Form Allgemeinster Unifikator σ(f (t1 , . . . , tn)) = f (σ(t1 ), . . . , σ(tn )) erhält man eine Abbildung σ : TermΣ(V ) −→ TermΣ(V ). Definition 3.23. Eine Sustitution σ heißt allgemeinster Unifikator für die Terme s und t gdw. Eine Substitution σ geben wir in der Form {X1 /t1 , . . . , Xk /tk } an. • σ ist Unifikator von s und t und • Für jeden Unifikator λ von s und t existiert eine Substitution τ , so daß λ = τ ◦ σ gilt. Bemerkung 3.6. Es gibt einen Algorithmus, der für zwei Terme s und t entscheidet, ob sie unifizierbar sind und gegebenenfalls einen allgemeinsten Unifikator berechnet. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 184 ¨ Pradikatenlogik 3. Inferenz in der Logik 3. Inferenz in der Logik 186 ¨ Pradikatenlogik Gegeben seien zwei Terme s und t. Die Berechung des allgemeinsten Unifikators geschieht wie folgt: Man startet mit σ = {} als allgemeinsten Unifikator und wendet sukzessive die folgenden Regeln an: Unifikation Die Unifikation ist eine Substitution, bei der Terme gleichgemacht werden. (a) Sind s und t Konstanten, so sind sie unifizierbar gdw. s gleich t ist. Definition 3.22. Eine Substitution σ heißt Unifikator der Terme s und t gdw. σ(s) = σ(t) gilt. s und t sind dann unifizierbar. Beispiel 3.18. Sind X, Y, Z Variablensymbole und a, b, c, Konstanten, so sind die Terme f (X, b) und f (a, c) nicht unifizierbar. Die Terme f (X, b) und f (a, b) sind unifizierbar mit σ = {X/a}. Die Substitutionen σ = {X/b, Y /a, Z/g(a, a)} und µ = {X/b, Z/g(a, Y )} sind Unifikatoren für die Terme f (X, g(a, Y )) und f (b, Z). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 185 (b) Ist s eine Variable und t eine Konstante, so sind s und t unifizierbar. Man erweitere hierzu σ um {s/t}. (c) Ist s eine Variable und t ein Term der Form f (t1 , . . . , tn), so sind sie unifizierbar gdw. s nicht in t vorkommt. Man erweitere hierzu σ um {s/t}. (d) Sind s und t zusammengesetzte Terme, so sind sie unifizierbar gdw. s = f (s1 , . . . , sn), t = f (t1 , . . . , tn) und wenn jeweils si und ti unifizierbar sind. Man erweitere σ um die Substitutionen, die sich aus der Unifikation der si und ti ergeben. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 187 ¨ Pradikatenlogik 3. Inferenz in der Logik Beispiel 3.19. Es seien X, Y, Z Variablensymbole. Definition 3.24. Es seien K1, K2 PL1-Klauseln. Die Klausel R heißt PL1Resolvente von K1 und K2 gdw. folgendes gilt: Sind die Terme f (X, h(Y ), Y ) und f (g(Z), Z, a) unifizierbar? Regel (d) (c) (c) (b) Ungelöste Unifikationen f (X, h(Y ), Y )?f (g(Z), Z, a) X?g(Z), h(Y )?Z, Y ?a h(Y )?Z, Y ?a Y ?a (a) K1 und K2 haben keine gemeinsamen Variablen. σ {} {} {X/g(Z)} {X/g(h(Y )), Z/h(Y )} {X/g(h(a)), Z/h(a), Y /a} Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 (b) Es gibt positive Literale A1 , . . . , Ak ∈ K1, ein negatives Literal ¬A ∈ K2 und einen allgemeinsten Unifikator σ von A, A1, . . . Ak . (c) R hat die folgende Form: σ((K1 \ {A1 , . . . , Ak }) ∪ (K2 \ {¬A})) 188 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Resolution in PL1 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 190 ¨ Pradikatenlogik 3. Inferenz in der Logik Beispiel 3.20. Darstellung der Resolution für PL1: {P (X, b), P (a, Y ), Q(X, f (Y ))} Bemerkung 3.7. Die Begriffe Klausel, Klauselform und Literal werden in PL1 analog zur Aussagenlogik definiert. {¬P (Z, W ), ¬Q(W, Z )} σ = {X/a, Y /b, Z/a, W/b} Bemerkung 3.8. Wir dehnen die Unifikation auf atomare PL1-Formeln aus. {Q(a, f (b)), ¬Q(a, b)} Zwei atomare Formeln P (s1 , . . . , sn) und P (t1 , . . . , tn) sind unifizierbar gdw. si und ti für i = 1, . . . , n unifizierbar sind. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 189 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 191 ¨ Pradikatenlogik 3. Inferenz in der Logik ¨ Pradikatenlogik 3. Inferenz in der Logik Umbenennung der Variablen so, daß eine Variable in höchstens einer Klausel auftritt: Beispiel 3.21. Überführung einer PL1-Formel in Klauselform. {¬P (X, f (X)), Q(X, g(X))} und {¬P (Y, f (Y )), ¬R(Y, g(Y ))} ∀X((∀Y P (X, Y )) → ¬(∀Y Q(X, Y ) → R(X, Y ))) Für den zweiten an Y gebundenen Allquantor ersetzen wir Y durch Z : ∀X((∀Y P (X, Y )) → ¬(∀ZQ(X, Z) → R(X, Z))) Der Junktor → wird eleminiert: ∀X(¬(∀Y P (X, Y )) ∨ ¬(∀Z¬Q(X, Z) ∨ R(X, Z))) Die Negationen werden ganz nach innen gezogen: ∀X(∃Y ¬P (X, Y )) ∨ (∃ZQ(X, Z) ∧ ¬R(X, Z))) Quantoren nach aussen ziehen: ∀X∃Y ∃Z(¬P (X, Y ) ∨ (Q(X, Z) ∧ ¬R(X, Z))) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 192 ¨ Pradikatenlogik 3. Inferenz in der Logik Eleminierung von ∃Y durch Skolemfunktion f : Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 ¨ Pradikatenlogik 3. Inferenz in der Logik Beispiel 3.22. Resolution in PL1: ∀X∃Z(¬P (X, f (X)) ∨ (Q(X, Z) ∧ ¬R(X, Z))) 1. Es gibt einen Patienten, der alle Ärzte mag: Eleminierung von ∃Z durch Skolemfunktion g : ∃XP atient(X) ∧ ∀Y (Arzt(Y ) → M ag(X, Y )) ∀X(¬P (X, f (X)) ∨ (Q(X, g(X)) ∧ ¬R(X, g(X))) 2. Kein Patient mag einen Quacksalber: Jetzt kann man den Quantor weglassen: ∀XP atient(X) → ∀Y (Quaksalber(Y ) → ¬M ag(X, Y )) ¬P (X, f (X)) ∨ (Q(X, g(X)) ∧ ¬R(X, g(X)) Daraus wollen wir schließen, daß ein Arzt kein Quaksalber ist. De Morgan liefert: ∀Y (Arzt(Y ) → ¬Quaksalber(Y )) (¬P (X, f (X)) ∨ Q(X, g(X))) ∧ (¬P (X, f (X)) ∨ ¬R(X, g(X))) Wir formen 1. um: Darstellung als zwei Klauseln: ≡ ≡ {¬P (X, f (X)), Q(X, g(X))} und {¬P (X, f (X)), ¬R(X, g(X))} Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 194 193 ∃XP atient(X) ∧ ∀Y (Arzt(Y ) → M ag(X, Y )) ∃XP atient(X) ∧ ∀Y (¬Arzt(Y ) ∨ M ag(X, Y )) ∃X∀Y (P atient(X) ∧ (¬Arzt(Y ) ∨ M ag(X, Y ))) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 195 ¨ Pradikatenlogik 3. Inferenz in der Logik 4. Logikprogrammierung und Prolog 4. Logikprogrammierung und Prolog Skolemisierung liefert: ≡ Logikprogrammierung ∀Y (P atient(a) ∧ (¬Arzt(Y ) ∨ M ag(a, Y ))) P atient(a) ∧ ∀Y (¬Arzt(Y ) ∨ M ag(a, Y )) Das Idealbild der Logikprogrammierung: Daraus ergeben sich die Klauseln: Algorithmus K1 : {P atient(a)} und K2 : {¬Arzt(Y ), M ag(a, Y )} Wir formen 2. um: ≡ ≡ ∀XP atient(X) → ∀Y (Quaksalber(Y ) → ¬M ag(X, Y )) ∀X¬P atient(X) ∨ ∀Y (¬Quaksalber(Y ) ∨ ¬M ag(X, Y )) ∀X∀Y ¬P atient(X) ∨ ¬Quaksalber(Y ) ∨ ¬M ag(X, Y ) = Logik ↑ “Was?” ↑ reine Problemspezifikation Aufgabe des Programmierers + Kontrolle ↑ “Wie?” ↑ System Die vollständige Trennung von Logik und Kontrolle ist in den heutigen Sprachen zur Logikprogrammierung aus Effizienzgründen noch nicht realisiert. Daraus ergibt sich mit Umbenennung die Klausel: K3 : {¬P atient(X), ¬Quaksalber(Z), ¬M ag(X, Z)} Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 196 ¨ Pradikatenlogik 3. Inferenz in der Logik 4. Logikprogrammierung und Prolog 198 Logikprogrammierung Hornklauseln Negation der Hypothese: ≡ ≡ ≡ Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 ¬∀Y (Arzt(Y ) → ¬Quaksalber(Y )) ¬∀Y (¬Arzt(Y ) ∨ ¬Quaksalber(Y )) ∃Y ¬(¬Arzt(Y ) ∨ ¬Quaksalber(Y )) ∃Y (Arzt(Y ) ∧ Quaksalber(Y )) Für viele Anwendungen reichen drei Arten logischer Formeln aus: (a) Formeln der Form F1 ∧ . . . ∧ Fn → G bzw. als Klausel {¬F1 , . . . , ¬Fn, G}, die Regeln darstellen. Skolemisierung liefert die beiden Klauseln: (b) Ein Faktum wir durch eine einelementige Klausel {F } ausgedrückt. K4 : {Arzt(b)} und K5 : {Quaksalber(b)} (c) Eine Anfrage der Form “Folgt F1 ∧ . . . ∧ Fn aus den Fakten und Regeln?” wird als Klausel in negierter Form geschrieben: {¬F1 , . . . , ¬Fn}. Ableitung: Klauseln K2 , K 4 K6 , K 3 K5 , K 7 K1 , K 8 Resolvente {M ag(a, b)} {¬P atient(a), ¬Quaksalber(b)} {¬P atient(a)} 2 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Unifikator σ = {Y /b} σ = {X/a, Z/b} Nummer K6 K7 K8 q.e.d. 197 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 199 4. Logikprogrammierung und Prolog Logikprogrammierung 4. Logikprogrammierung und Prolog Prolog Definition 4.1. Eine Hornklausel ist eine Klausel mit höchstens einem positiven Literal. • Eine Klausel der Form (a) heißt Regel, • eine Klausel der Form (b) heißt Faktum und • eine Klausel der Form (c) heißt Zielklausel. Logikprogrammierung Beispiel 4.1. Ein Logikprogramm zur Berechnung von Pfaden in einem Graphen: pfad(X,Y) :- kante(X,Y). pfad(X,Z) :- kante(X,Y), pfad(Y,Z). kante(a,b). kante(a,c). kante(b,d). kante(c,d). Anfrage: :- pfad(a,d). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 200 Logikprogrammierung Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 202 Logikprogrammierung Beispiel 4.2. Prolog-Notation von Hornklauseln kreditwuerdig( X ) :- geringeSchulden( X ), sicheresEinkommen( X ). sicheresEinkommen( X ) :- hohesEinkommen( X ). sicheresEinkommen( X ) :- beamter( X ). In der Programmiersprache P ROLOG werden Hornklauseln wie folgt geschrieben: hohesEinkommen( mueller ). hohesEinkommen( schneider ). beamter( fischer ). geringeSchulden( schneider ). geringeSchulden( fischer ). (a) Regeln in der Form: G :- F1,F2,...,Fn. (b) Fakten in der Form: F. (c) Zielklauseln in der Form: :-F1,F2,...,Fn. Das positive Literal einer Regel heißt Kopf. Definition 4.2. Ein logisches Programm ist eine endliche Menge von Regeln und Fakten. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 201 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 203 4. Logikprogrammierung und Prolog Logikprogrammierung Beispiel 4.3. Gesucht sind alle dreistellgen Zahlen, die durch 5 und 6 teilbar sind und bei der Division durch 9 den Rest 3 liefern. 4. Logikprogrammierung und Prolog Logikprogrammierung Beispiel 4.4. SLD-Resolution in Prolog: :− pfad(a,d) pfad(X,Z) :− kante(X,Y), pfad(Y,Z) ziffer(Z) :- member(Z,[0,1,2,3,4,5,6,7,8,9]). gesuchteZahl(Zahl) :- ziffer(H), ziffer(Z), ziffer(E), Zahl is 100 * H + 10 * Z + E, 0 is Zahl mod 5, 0 is Zahl mod 6, 3 is Zahl mod 9. :− kante(a,Y), pfad( Y,d) kante(a,b) :− pfad(b, d) pfad(X,Y) :− kante(X,Y) kante(b,d) kante(b,d) OK Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 204 Logikprogrammierung Auswertung von Logikprogrammen 4. Logikprogrammierung und Prolog 206 Logikprogrammierung Die SLD-Resolution hat die folgenden Eigenschaften: • Für Logikprogramme in Prolog wird eine spezielle und effizientere Form der Resolution verwendet, die sogenannte SLD-Resolution (Linear Resolution with Selection Function for Definite Clauses). • Hierzu wird jeweils das erste Literal der Zielklausel mit einem Regelkopf oder einem Faktum resolviert. • Hieraus ergibt sich eine neue Zielklausel, für die das gleiche Prinzip angewendet wird. • Scheitert irgendwann die Resolvierung, findet ein Backtracking statt. • Bei der Resolvierung wird eine Unifikation der logischen Variablen durchgeführt. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 205 • Eine SLD-Resolution hat stets lineare Form. • Die Klauseln, die den Ast zur Wurzel bilden, sind alle Zielklauseln. Dies sind die sogenannten Zentralklauseln. • Die Seitenklauseln, also die Klauseln die mit Zielklauseln resolviert werden, sind alle Fakten oder Regeln. • Bei jedem Resolutionsschritt wird jeweils das erste Literal der jeweiligen Zielklausel mit dem Kopf einer Regel oder einem Fakt resolviert. • Bei der SLD-Resolution werden also die Klauseln als Liste und nicht als Menge betrachtet. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 207 4. Logikprogrammierung und Prolog Logikprogrammierung Bemerkungen: • Das Prinzip der SLD-Resolution schreibt bei jedem Resolutionsschritt das zu verwendende Literal der Zielklausel vor. • Die einzige Wahlmöglichkeit besteht in der Auswahl der Regel bzw. des Fakts (Eingabeklausel). • Bei Prolog wird die SLD-Resolution in Form der Tiefensuche durchgeführt. • Es wird jeweils die erste Klausel ausgewählt, die unifizierbar ist. • Führt ein Zweig nicht zum Erfolg wird Backtracking ausgeführt. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 208 4. Logikprogrammierung und Prolog Logikprogrammierung :− Pfad(a,d) :− Kante(a,d) {X/a, Z/d} :− Kante(a,Y), Pfad(Y,d) {Y/b} fail Logikprogrammierung • Konstanten und Prädikate beginnen in Prolog mit einem Kleinbuchstaben. • Variablen beginnen mit einem Großbuchstaben. • In Anfragen sind Variablen existenzquantifiziert. ?- vater(X, nils). bedeutet: Existiert ein X, so daß X Vater von Nils ist? • In Fakten sind Variablen allquantifiziert. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 210 Logikprogrammierung • Anfrage in Prolog bedeutet: Exsistiert eine Variablenbelegung, so daß ... gilt? • Bei der Lösungssuche werden Variablenbelegungen generiert. • Hierbei wird die Unifikation durchgeführt. Fakt: vater(peter,nils). Anfrage: ?- vater(X,nils). Unifikation: X = peter Mit dieser Unifikation kann die Anfrage bewiesen werden. • Unifikationen werden übernommen: ?- vater(X, nils), vater(X, lars). Beispiel 4.5. Auswertungsbaum in Prolog. {X/a, Y/d} 4. Logikprogrammierung und Prolog :− Pfad(b,d) {X/b, Y/d} :− Kante(b,d) OK Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 209 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 211 4. Logikprogrammierung und Prolog Logikprogrammierung Beispiel 4.6. Lösung des Färbeproblems aus Kapitel 2: 4. Logikprogrammierung und Prolog Grundlagen von Prolog Es gibt in Prolog eine Reihe von vordefinierten Operationen für die gängigen arithmetischen Operationen sowie Vergleichsoperationen. faerbung(A,B,C,D,E) :- farbe(A), farbe(B), farbe(C), farbe(D), farbe(E), A \== B, A \== C, A \== D, A \== E, B \== C, B\== D, C \== D, C \== E, D \== E. • Arithmetische Operatoren: +,-,*,/ • Für Ganzzahl-Ausdrücke steht zusätzlich mod zur Verfügung. • Vergleichsoperatoren: <, >, =<, >=, =\= Die Vergleichsoperatoren werten ihre arithmetischen Argumente vor dem Vergleich aus. • Mathematische Funktionen: abs, min, max, ... farbe(rot). farbe(blau). farbe(gelb). farbe(orange). Anfrage: ?- faerbung(A,B,C,D,E). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 212 Grundlagen von Prolog Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog Arithmetik Grundlagen von Prolog Datentypen in Prolog • Der Operator = steht für die Unifikation. X = Y bedeutet: Können X und Y unifiziert werden. • Der Operator == steht für die Identität. • is/2 wertet einen arithmetischen Ausdruch aus und unifiziert das Ergebnis mit einer Variablen. • Integer und Float ( -1, 1, -8.23) • Zeichenketten "hello world" Zeichenketten werden intern repräsentiert als eine Liste der ASCII-Werte. ?- X = "abc". X = [97, 98, 99] ?- X is 4 + 1. X = 5 ?- X is 4 + 1, Y is 1 + 4, X == Y. yes Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 214 • • • • 213 Atome: Bezeichner beginnend mit einem Kleinbuchstaben (rot, lars). Konstanten sind Zahlen, Zeichenketten oder Atome. Atomare (einfache) Terme: Konstanten oder Variablen Terme: einfache Terme oder Strukturen (quadrat( 0, 0, 1, 1 )) Solche Terme entsprechen syntaktisch den Konventionen von PL1. Einzige Einschränkung: Der Termname muß kleingeschrieben sein. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 215 4. Logikprogrammierung und Prolog Grundlagen von Prolog 4. Logikprogrammierung und Prolog Relistoperator Strukturen können beliebig aufgebaut werden. In Verbindung mit Unifikation können auch Variablen verwendet werden. • Listen: [1,2,red,quadrat( 0, 0, 1, 1 )] Listen sind nicht getypt. Wie Terme so können auch Listen in Verbindung mit Unifikation Variablen enthalten. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 216 Grundlagen von Prolog Mit dem Relistoperator kann eine Liste aufgeteilt werden: • Der Relistoperator trennt führende Elemente von einer sogenannten Restliste, die alle übrigen Elemente enthält. • Links vom Relistoperator stehen immer ein Element oder mehrere Elemente, rechts steht eine Liste. • Dies kann man bei der Unifikation ausnutzen. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 218 Grundlagen von Prolog ?- [a,b,c] = [X|Y]. X = a Y = [b, c] Listen in Prolog • Neben den Strukturen sind Listen der weitere nicht einfache Typ in Prolog. • Eine Liste ist eine dynamische Datenstruktur. Die Länge einer Liste kann zur Laufzeit verändert werden. • Hierzu kann man Elemente hinzufügen oder austauschen. • Listen werden in Prolog wie folgt dargestellt: [1,2,3,4,5] Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Grundlagen von Prolog 217 ?- [a,b,c,d,e] = [a,b|X]. X = [c, d, e] ?- X = a, Y = [b,c], Z = [X|Y]. X = a Y = [b, c] Z = [a, b, c] Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 219 4. Logikprogrammierung und Prolog Grundlagen von Prolog 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Reihenfolge von Klauseln Es gibt eine Fülle von vordefinierten Prädikaten für Listen, z.B. append/3: append([], L, L). append([H|T], L, [H|M]) :- append(T,L,M). Weitere vordefinierte Prädikate für Listen: • member(E,L) prüft ob ein Element E in einer Liste L auftritt und liefert gegebenenfalls E durch Unifikation zurück. • memberchk(E,L) prüft ob ein Element E in L auftritt. Dieses Prädikat sollte nur dann aufgerufen werden, wenn sowohl E als auch L gebunden sind, d.h. mit einem Element oder einer Liste unifiziert wurden. • delete(L1,E,L2): Löchen aus einer Liste L1 alle Einträge, die mit einem Element E unifiziert werden können und Rückgabe des Ergebnisses in Liste L2. • length(L,N): Bestimmung der Länge der Liste L und gegebenenfalls Unifizierung mit N. • nth0(I,L,E): Bestimmung der Position von Element E in Liste L. Z ählung ist ab 0. • nth1(I,L,E): Bestimmung der Position von Element E in Liste L. Z ählung ist ab 1. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 220 Grundlagen von Prolog • reverse(L1,L2): Legt in L2 die Elemente von L1 in umgekehrter Reihenfolge ab. • Bei der Programmierung in Prolog steht grundsätzlich die Repräsentation logischer Zusammenhänge im Vordergrund. • Nichtsdestotrotz ist es unvermeidbar, die Mechanismen der Abarbeitung in Prolog zu kennen und gegebenenfalls steuernd einzugreifen. Beispiel 4.7. Man betrachte die folgende Regel: listsum( [], 0 ). listsum( [H|T], Summe ) :- listsum( T, Sum1 ), Summe is Sum1 + H. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 222 Steuerung der Abarbeitung in Prolog Aus logischer Sicht ist die Reihenfolge der Klauseln listsum( T, Sum1 ) und Summe is Sum1 + H unerheblich. Für die Abarbeitung spielt die Reihenfolge dagegen eine Rolle. Betrachtet man listsum( [H|T], Summe ) :- Summe is Sum1 + H, listsum( T, Sum1 ). so würde dies zu einem Fehler führen. ?- listsum( [2,3,4], X ). ERROR: Arguments are not sufficiently instantiated Grund: Sum1 ist zum Zeitpunkt der Auswertung nicht mit einem Wert unifiziert (belegt). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 221 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 223 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Beispiel 4.8. Beispiel 4.9. Man betrachte die folgenden Varianten des Pr ädikats vorfahr/2. fak(N, Fak ) :- N1 is N - 1, fak(N1, Fak1), Fak is Fak1 * N. fak(0,1). 1. vorfahr( X, Y ) :- elternteil( X, Y ). vorfahr( X, Y ) :- elternteil( X, Z ), vorfahr( Z, Y ). 2. vorfahr( X, Y ) :- elternteil( X, Y ). vorfahr( X, Y ) :- vorfahr( X, Z ), elternteil( Z, Y ). • Eine kürzere Schreibweise ist nicht möglich, da in Verbindung mit der Unifikation keine Auswertung eines arithmetischen Ausdrucks stattfinden kann. • Die Anfrage fak(7,X) führt zu einem Fehler. • Prolog läuft in einen unendlichen Rekursionszyklus, weil die erste Regel immer wieder anwendbar ist. • Grund: unvollständige Spezifikation Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 224 Steuerung der Abarbeitung in Prolog • Abhilfe: Erweiterung der Regel ?- vorfahr2( lars, lars ). ERROR: Out of local stack Ursache: In der zweiten Variante wird permanent vorfahr( lars, Z ) aufgerufen. Hierdurch kommt es zu einem Überlauf des Stacks. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 226 Steuerung der Abarbeitung in Prolog Probleme bei der Verwendung von Rekursion: fak(N, Fak ) :- integer(N), N > 0, N1 is N - 1, fak(N1, Fak1), Fak is Fak1 * N. fak(0,1). • Nicht-Termination Durch eine ungünstige Reihenfolge der Klauseln ensteht eine unendlicher Zyklus. • Speicherprobleme Zur Vermeidung dieser Probleme sollte man nach Möglichkeit die folgenden Grundprinzipien beachten: • Mit dem Prädikat integer/1 wird geprüft, ob das Argument eine Integerzahl ist. • So spielt auch die Reihenfolge der Regeln keine Rolle mehr. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 Stellt man eine Anfrage mit der zweiten Variante, so erhält man eine Fehlermeldung, falls die Vorfahrbeziehung nicht erfüllt ist: • Einfache Dinge zuerst! Hierdurch findet eine Filterung für die aufwendigen Berechnungen statt. • Einsatz von Endrekursion Die rekursiven Aufrufe sollte als letzte Klausel des Regelrumpfs erfolgen. 225 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 227 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Diese Dinge machen deutlich, daß auch in Prolog prozedurale Aspekte mit berücksichtigt werden müssen. Sonst führt dies zu Prolog-Programmen, die: 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Es passiert folgendes: • X wird mit 950 unifiziert, B mit gering. Der Regelrumpf X < 1000 ist erfüllt, das Anfrageliteral B = hoch nicht. • Mittels Backtracking wird die zweite und dritte Regel ausprobiert. • Es werden jeweils die Unifikationen durchgeführt und der Regelrumpf getestet. Der Regelrumpf ist nicht erfüllt. • Ausgabe: No. • logisch (deklarativ) korrekt aber • prozedural inkorrekt sind. Das Backtracking ist hier vollkommen unnötig, da für ein Einkommen nur genau eine Regel in Frage kommt. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 228 Steuerung der Abarbeitung in Prolog Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 230 Steuerung der Abarbeitung in Prolog Mit dem Cut (geschrieben !) wird Backtracking verhindert. Cut zur Kontrolle des Backtracking Beispiel 4.11. Prolog sucht mittels Backtracking bei der Abarbeitung nach Alternativen. Beispiel 4.10. Gegeben seien die folgenden Prolog-Regeln zur Klassifikation von Einkommen: einkommen( X, gering ) :- X < 1000, !. einkommen( X, mittel ) :- X >= 1000, X =< 2000, !. einkommen( X, hoch ) :- X > 2000. Wird der Cut ! überschritten, findet kein Backtracking mehr statt. einkommen( X, gering ) :- X < 1000. einkommen( X, mittel ) :- X >= 1000, X =< 2000. einkommen( X, hoch ) :- X > 2000. Der Cut drückt hier folgendes aus: Diese Regel ist genau die richtige, es kommt keine andere in Frage. Es wird die Anfrage gestellt: Dementsprechend würde die Anfrage des letzen Beispiels effizienter abgearbeitet. ?- einkommen( 950, B ), B = hoch. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 229 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 231 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Negation Sei eine Klausel der folgenden Struktur gegeben: H :- B1,..., Bn, !, A1,..., Am. Sind B1,..., Bn erfüllt, so werden alle Alternativen, d.h. alle eventuell noch anwendbaren Regeln zum Beweis für B1,..., Bn und H abgeschnitten. Beispiel 4.12. Das Prolog-Prädikat für den Test, ob ein Element in einer Liste enthalten ist: • Bisher haben wir mit Prädikaten immer “positive” Sachverhalte ausgedrückt: Ist Elternteil von, ist Vorfahr von, etc. • Es kann aber auch notwendig sein, einen “negativen” Sachverhalt auszudrücken, d.h. etwas gilt nicht: Hat keine Kinder, etc. memberchk( X, [X|_] ) :- !. memberchk( X, [_|Y] ) :- memberchk( X, Y ). Beispiel 4.13. Man möchte für das Verwandte-Beispiel ein Prädikat für die Kinderlosigkeit definieren: kinderlos( X ) :- elternteil( X, _ ), !, fail. kinderlos( X ). Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 232 Steuerung der Abarbeitung in Prolog p :- a,!,b. p :- c. Entspricht der Implikation a∧b∨c→p 4. Logikprogrammierung und Prolog 234 Steuerung der Abarbeitung in Prolog Beispiel 4.14. Berechnung der Primzahlen bis 100: Der Cut kann die Bedeutung eines logischen Programms verändern. p :- a,b. p :- c. Entspricht der Implikation Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 ziffer(Z) :- member(Z, [0,1,2,3,4,5,6,7,8,9]). zahl(Zahl) :- ziffer(Z), ziffer(E), Zahl is 10 * Z + E. keineprimzahl(Z) :- zahl(T), echterTeiler(T, Z). echterTeiler(T,Z) :- T > 1, T < Z, 0 is Z mod T. a ∧ b ∨ ¬a ∧ c → p • Ein Cut, der die Bedeutung eines Programms verändert, heißt roter Cut. • Ein Cut, der die Bedeutung eines Programms nicht verändert, heißt grüner Cut. primzahl(Z) :- keineprimzahl(Z),!,fail. primzahl(Z) :- Z > 1. Anfrage: ?- zahl( X ), primzahl( X ). X = 2 ; X = 3 ; ... Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 233 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 235 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog • fail/0 ist ein vordefiniertes Prädikat, das nie erfüllt ist. Hierdurch wird Backtracking erzwungen. • Ist elternteil( X, _ ) erfüllt, so unterdrückt der Cut aber das Backtracking und bewirkt das Abschneiden der zweiten Regel. Man bezeichnet dieses Prinzip der Negation als Negation as failure. Dieses Prinzip wird in Prolog allgemein für die Negation benutzt. Die Negation eines Prädikats Ziel entpricht prinzipiell folgenden Regeln: • Man beachte, daß not/1 keine Variablenbelegung liefert. • Es entspricht somit nicht der logischen Negation im Sinne der Negation eines Prädikats. • not/1 sollte nur verwendet werden, wenn in dem negierten Pr ädikat keine ungebundenen Variablen mehr auftauchen. • Die Kurzschreibweise für not ist \+. not( Ziel ) :- Ziel , !, fail. not( Ziel ). • Solch ein Prädikat not/1 ist in Prolog enthalten. • Das Argument von not/1 ist eine Formel und kein Term! Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 236 Steuerung der Abarbeitung in Prolog Beispiel 4.15. ☞ Eine negierte Anfrage in Prolog ist wahr, wenn die Anfrage nicht bewiesen werden kann. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 238 Steuerung der Abarbeitung in Prolog Beispiel 4.16. Das Beispiel für die Berechnung der Primzahlen mit direkter Verwendung von not/1 bzw. \+. ?- not( vater( theo, peter ) ). Yes ?- not( vater( peter, lars ) ). No ?- not( vater( peter, X ) ). No keineprimzahl(Z) :- zahl(T), echterTeiler(T, Z). echterTeiler(T,Z) :- T > 1, T < Z, 0 is Z mod T. • Die letzte Anfrage hat die Bedeutung: Ist Peter kein Vater? primzahl(Z) :- Z > 1, \+ keineprimzahl(Z). ziffer(Z) :- member(Z, [0,1,2,3,4,5,6,7,8,9]). zahl(Zahl) :- ziffer(Z), ziffer(E), Zahl is 10 * Z + E. ¬∃ X V ater(peter, X) • Sie hat nicht die Bedeutung: Für welche X gilt, daß Peter nicht der Vater von X ist. ∃ X ¬V ater(peter, X) Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 237 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 239 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Programmiertechniken in Prolog 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog R ückgabe eines Resultatswertes (1): Die vorangegangenen Prädikate lieferten kein Resultat. Wir betrachten zunächst die Verarbeitung von Listen. In Prolog kann ein Resultat nur über eine freie Variable, die an ein Pr ädikat übergeben wird, geliefert werden. Test auf Exsistenz: Wir wollen prüfen, ob eine Kollektion von Objekten mindestens ein Objekt enthält, das eine gewisse Eigenschaft hat. Wir wollen eine Resultat liefern, sobald ein Listenelement eine gewisse Eigenschaft hat. existence_test( Info, [H|T] ) :- has_property( Info, H ). existence_test( Info, [H|T] ) :- existence_test( Info, T ). return_if_property( Info, [H|T], Result ) :has_property( Info, H ), result( Info, H, T, Result ). Info steht hierbei für eine beliebige Anzahl an Argumenten, die ben ötigt werden, um die gewünschte Eigenschaft zu prüfen. Beispiel 4.17. Wir möchten prüfen, ob eine Liste mindestens eine weitere Liste als Element enthält. ✎ Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 240 Steuerung der Abarbeitung in Prolog return_if_property( Info, [H|T], Result ) :return_if_property( Info, T, Result ). Beispiel 4.19. Ein Prädikat soll zu einer Liste die Subliste ab einem Element mit dem Wert X liefern. ✎ Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 242 Steuerung der Abarbeitung in Prolog Test f ür alle Listenelemente: Wir wollen prüfen, ob alle Elemente einer Liste eine Eigenschaft haben (erfüllen). R ückgabe eines Resultatswertes (2): Wir wollen ein Resultat nach der Verarbeitung aller Listenelemete liefern. forall_test( Info, [] ). forall_test( Info, [H|T] ) :- has_property( Info, H ), forall_test( Info, T ). process_all( Info, [H1|T1], Result ) :process_one( Info, H1, H2 ), process_all( Info, T1, T2 ), Result = [H2|T2]. Beispiel 4.18. Wir möchten prüfen, ob alle Elemente einer Liste Ziffern sind. ✎ Beispiel 4.20. Wir wollen zu einer Liste von Zahlen eine Liste der Quadrate diese Zahlen bestimmen. ✎ Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 241 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 243 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Dies ist aber kein Problem, wenn man nur eine Lösung haben möchte. Man unterdrückt das Backtrackig dann mit dem Cut: Allgemeine Programmierschemata in Prolog Generate and Test: • Backtracking wird genutzt, um mögliche Lösungen zu erzeugen • Anschließend wird die mögliche Lösung getestet. • Erfüllt die mögliche Lösung nicht die Bedingungen für eine Lösung wird durch Backtracking eine neue Lösung generiert. generate_and_test( Info, X ) :... generate( Info, X ), test( Info, X ),!, ... Beispiel 4.21. Berechnung des KGV verschiedener Zahlen. ✎ generate_and_test( Info, X ) :... generate( Info, X ), test( Info, X ), ... Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 244 Steuerung der Abarbeitung in Prolog Ein Generator zur Implementierung des Prädikats generate kann endlich oder unendlich sein. Ein endlicher Generator wurde in dem Primzahlbeispiel verwendet: Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 246 Steuerung der Abarbeitung in Prolog Failure-Driven Loop: • Manchmal möchte man Prädikate definieren, die gewisse Dinge tun, wobei das Prädikat aber immer erfüllt sein soll. • Beispiel: Gebe alle elternteil-Beziehungen aus. • Im Vordergund stehen hier die Seiteneffekte (z.B. die Ausgabe). • Vorsicht: Dies ist eine sehr prozedural orientierte Programmiertechnik! ziffer(Z) :- member(Z, [0,1,2,3,4,5,6,7,8,9]). zahl(Zahl) :- ziffer(Z), ziffer(E), Zahl is 10 * Z + E. Er liefert durch Backtracking nur endlich viele Werte. Ein unendlicher Generator für natürliche Zahlen könnte so aussehen: failure_driven_loop( Info ) :- generate( Info, Term ), side_effect( Term ), fail. failure_driven_loop( Info ). int( 1 ). int( N ) :- int( N1 ), N is N1 + 1. Problem: Durch das Backtracking bricht der Prozeß der Generierung niemals ab. Beispiel 4.22. Ausgabe aller elternteil-Beziehungen. ✎ Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 245 Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 247 4. Logikprogrammierung und Prolog Steuerung der Abarbeitung in Prolog Wichtige Prolog-Prädikate • true/0 ist immer wahr. • repeat/0 zur Programmierung von Iterationen Dieses Prädikat entspricht der Definition: repeat. repeat:- repeat. • call/1 ruft den Interpreter des Prolog-Systems auf. Das Argument von call ist kein Term sondern eine Prolog-Zielklausel. • nl/0 schreibt ein Newline auf die Standardausgabe. • write/1 schreibt das Argument auf die Standardausgabe. • read/1 liest ein Argument von der Standardeingabe und führt dabei eine Unifikation durch. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 4. Logikprogrammierung und Prolog 248 Steuerung der Abarbeitung in Prolog • assert/1 fügt eine Klausel dem Prolog-Programm hinzu. Die Varianten asserta/1 bzw. assertz/1 fügen die Klausel am Anfang bzw. Ende des Prolog-Programms ein. • retract/1 entfernt eine Klausel aus dem Prolog-Programm. Peter Becker, Wissensbasierte Systeme I — FH Bonn-Rhein-Sieg, SS 04 249