Intelligente Systeme A, WS06/07 Prof. Dr. Wolfram Conen [email protected] Raum: P -1.08 Version 0.9, 14. Dezember 2006 c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen KI – Worum geht es? KI – Worum geht es? Russell/Norvig (s. Literatur) identifizieren vier wesentliche Forschungsziele: • • • • Systeme, die denken wie Menschen Systeme, die handeln wir Menschen Systeme, die rational denken Systeme, die rational handeln Arbeitsdefinition für rational“: Ein System ist rational, wenn es das Rich” ” tige tut“ (unter Berücksichtigung dessen, was es weiß) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 2 KI – Worum geht es? Handeln wie Menschen • • • • • Natürliche Sprache Wissensrepräsentierung Automatische Wissensverarbeitung (Reasoning) Maschinelles Lernen (Bildverarbeitung, Robotics) Wichtiger als die Neuerschaffung“ eines künstlichen Menschen war und ist den ” (meisten) KI-Forschern die Suche nach den zugrundeliegenden Prinzipien! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 3 KI – Worum geht es? Denken wie Menschen Cognitive science (Kongnitionswissenschaft = die Lehre vom Erkennen: wie denken Menschen?) Cognitive Modeling = Vom Modell des menschlichen Denkens zum Programm für den Rechner c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 4 KI – Worum geht es? Rational Denken Formalisierte Schlußfolgerungen (Logic): Sokrates ist ein Mensch, alle Menschen sind sterblich, also ist Sokrates sterblich (klassischer Syllogismus Aristoteles’) Suche nach einem Programm, das alle lösbaren Probleme, die mit logischer Notation beschrieben werden können, auch lösen kann (eine prinzipielle Lösung fanden Newell/Simon 1965) Zwei Haupthindernisse: • Die Schwierigkeit, nicht formales, ggfs. unsicheres Wissen“ zu formalisieren ” • Grosser Unterschied zwischen dem prinzipiellen“ Lösbarkeit und der praktischen“ Lösbarkeit ” ” eines Problems c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 5 Warum Rational Handeln Rationale Agenten: • • • • • • können handeln (lat. agere) kontrollieren sich autonom nehmen ihre Umgebung wahr (perception) sind von Dauer (persistence) passen sich Veränderungen an (adaptation) berücksichtigen die Ziele anderer Agenten Wir werden uns auf die generellen Prinzipien konzentrieren, die rationale Agenten betreffen und auf Komponenten, die zu ihrer Konstruktion benötigt werden. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 6 Warum Warum beschäftigen wir uns damit? KI ist überall . . . und sie ist spannend, inhaltsreich, herausfordernd! Und: die KI wartet auf innovative Anwendungen, neue Einsichten, neue Ideen – also auf Sie! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 7 Inhalte Ziel Der Entwurf intelligenter Systeme setzt die Fähigkeit zum Erwerb von präzisem Problemverständnis und zur modellbasierten Findung von Problemlösungen voraus. Anhand der Vermittlung von grundlegenden Prinzipien und eigenen Erfahrungen mit dem Entwurf von Lösungen und mit deren Umsetzung sollen diese Fähigkeiten nachhaltig vertieft werden. Erforderlich hierzu sind fundierte und aktuelle Kenntnisse der grundlegenden Problemfelder und Lösungsstrategien der künstlichen Intelligenz. Diese werden in der Veranstaltung erarbeitet. [aus der offiziellen“ Modulbeschreibung] ” c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 8 Inhalte Inhalte • • • • • • Einführung Suche (uninformiert, informiert, in Spielen) Constraint Processing Logik Planung Weitere Themen im Kurzüberblick [Die folgenden Einführungsfolien haben wir so nicht gemacht - verbindlich für die Klausurvorbereitung sind die verwendeten Folien bzw. die Übungsaufgaben, die Folien vor dem Logik-Teil, die jetzt folgen, dienen nur ihrer Information bzw. zur Auffrischung] Zu den Themenbereichen gibt es teilweise eigene und externe Powerpoint-Präsentationen, die durch diese Folien hier ergänzt werden. Es gibt zu dem Übungsblätter, eine Abgabe der Lösungen ist erforderlich für die Zulassung zur Prüfung (sie dürfen 2 Blätter versäumen bzw. verspätet abgeben). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 9 Inhalte Literatur [RUNO] Stuart Russell, Peter Norvig: Artificial Intelligence – A Modern Approach, Prentice Hall, Second Edition (sehr wichtig – nicht die erste Auflage kaufen!!! Am billigsten ist die International Edition“), 2003 ” Stuart Russell ist Professor an der UC Berkeley, Peter Norvig ist der Director of Search Quality bei Google. [SCHÖ] Uwe Schöning: Logik für Informatik, Spektrum Verlag, 5. Auflage [DECH] Rina Dechter: Constraint Processing, Morgan Kaufmann, 2003 Hinzu kommen einzelne Artikel und weitere Quellen, die ergänzend angegeben werden. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 10 Fundamente der KI Vorgeschichte: Philosophie (-428 bis heute) Können formale Regeln zu gültigen Schlußfolgerungen führen? Wie entsteht der mentale Geist aus dem physischen Gehirn? [Dualismus/Materialismus] Woher kommt Wissen? Auf welche Weise führt Wissen zur Aktion? c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 11 Fundamente der KI Vorgeschichte: Mathematik Wie sehen die formalen Regeln aus, die man braucht, um gültige Schlußfolgerungen zu ziehen? [Aristoteles, Boole, Frege, Tarski] Was kann überhaupt berechnet werden? [Algorithmus, Incompleteness, Gödel, Turing, Church, Intractability, NP-completeness, probability] Wie gehen wir mit unsicheren Informationen um? [Bayes] c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 12 Fundamente der KI Economics/Volkswirtschaftslehre Wie findet man Entscheidungen, die eine Auszahlung/Belohnung maximieren? Wie berücksichtigt/beeinflusst man hierbei das Verhalten Anderer? Welchen Einfluss haben Auszahlungen, die erst weit in der Zukunft erfolgen? [Utility/Nutzen: Leon Walras, von Neumann/Morgenstern, Decision theory (probability + utility theory), Spieltheorie, Operations research (Sequenzen von Entscheidungen/Handlungen)] c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 13 Fundamente der KI Neurowissenschaft, 1861-heute . . . studiert das Nervensystem, insbesondere das Gehirn Computational Unit Storage units Cycle time Bandwidth Memory updates/sec Computer (ca. 2003) 1 CPU, 108 gates 1010 bits RAM 1011 bits disk 10−9 seconds 1010 bits/sec 109 Human brain 1011 neurons 1011 neurons 1014 synapses 10−3 seconds 1014 bits/sec 1014 . . . we are still a long way from understanding how any of these cognitive processes actually ” work“ [RUNO] . . . a collection of simple cells can lead to thought, action, and consciousness or, in other words, ” that brains cause mind“ [RUNO] Die Zahl der Gates wird nach Moores Gesetz ca. 2020 der Zahl der Neuronen entsprechen. Aber: im Grunde ist jedes Neuron eine sehr simple CPU (hohe Parallelität) - deshalb ist das Gehirn insgesamt etwa 100.000 mal schneller, als ein aktueller“ Computer ” (alles sehr mit Vorsicht zu geniessen). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 14 Fundamente der KI Psychologie, 1879 bis heute Wie genau denken und handeln Menschen und Tiere? • Beginn mit Helmholtz (1821-1894) und Wundt (1832-1920): Handbuch der physiologischen ” Optik“ ( the single most important treatise on the physics and physiology of human vision“ ” [Nalwa, 1993]), Introspektion • Behaviorismus (stimulus/response), John Watson (1878-1958) • kognitive Psychologie: das Gehirn als informationsverarbeitende Unit“, Perzeption, Reprä” sentation/Modell, Aktion, beliefs/goals, wichtige Arbeit: The nature of explanation, 1943, Kenneth Craik: If the organism carries a “small-scale model” of external reality and of its own possible ” actions within its head, it is able to try out various alternatives, conclude which is the best of them, react to future situations before they arise, utilize the knowledge of past events in dealing with the present and future, and in every way to react in a much fuller, safer, and more competent manner to the emergencies which face it.“ • Kognitionswissenschaft setzt das fort: a cognitive theory should be like a computer pro” gramm“ [Anderson, 1980]; Startpunkt ein Workshop mit Arbeiten von Miller, Chomsky (Three models of Language), Newell/Simon (The Logic Theory Machine) 1956 am MIT c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 15 Fundamente der KI Computer engineering, 1940 bis heute Wie können wir einen effizienten Computer bauen? Für künstliche Intelligenz brauchen wir etwas Künstliches“: z.B. einen Computer! ” • Erste funktionsfähige Rechner: Heath Robinson (1940, Team von Alan Turing), single purpose: Entschlüsselung von deutschen Nachrichten in Blechtley Park • Colossus (general purpose machine), Röhrenbasiert, 1943, wieder Turings Team, später: ACE in Manchester • der erste programmierbare Rechner: Z-3, 1941, Konrad Zuse (erste höhere Programmiersprache: Plankalkül) • der erste elektronische Computer: ABC, 1940-42, Atanasoff/Berry, Iowa State University, besser bekannt: ENIAC (Mauchly, Eckert, von Neumann) Die KI-Forschung hat natürlich auch von der Entwicklung von Software profitiert - aber auch schon einiges zurückgezahlt“: Rus” sell/Norvig nennen time sharing, interactive interpreters, personal computer mit Maus/Windows, rapid development environments, der Datentyp verkettete Liste, automatisches Speichermanagement, und viele Schlüsselkonzepte des symbolischen (logischen), funktionalen und objekt-orientierten Programmierung. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 16 Fundamente der KI Control theory und Kybernetik, 1948-heute Wie können Artefakte unter Selbstkontrolle funktionieren? Stabile Rückkopplungssysteme im 19. Jahrhundert. Moderne Wurzeln: Norbert Wiener (18941964): absichtsvolles Verhalten als Regulator, um den Fehler (die Abweichung zwischen Zustand und Ziel) zu minimieren. Buch: Cybernetics (1948) Stochastic optimal control: Entwurf von Systemen, die eine Zielfunktion (objective function) über die Zeit maximieren. (Zur Erinnerung: KI will Systeme entwerfen, die sich optimal verhalten) Wesentlicher Unterschied früher: die verwendeten mathematischen Instrumente der Control theory paßten am besten auf Systeme mit kontinuierlichen Variablen (idealerweise lineare Systeme), KI hatte universelleren (bzw. diskreteren“) Anspruch. ” c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 17 Fundamente der KI Linguistik, 1957-heute In welcher Beziehung stehen Sprache und Denken? 1957 veröffentlichte ein berühmter Behaviorist (B.F. Skinner) das Buch Verbal Behavior. Und Noam Chomsky veröffentlichte einen Review (und ein Buch: Syntactic Structure), er zeigte, dass Behaviorismus Kreativität nicht erklären kann (und beendete damit den Verkaufserfolg Skinners) Heute: Computational linguistics/natural language processing: ziemlich kompliziert! (eine gelinde Untertreibung . . . ) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 18 Geschichte der KI Die Vorwehen (1943-1955) 1943 – Erste Arbeit: Warren McCulloch/Walter Pitts: A logical calculus of the ideas immanent in nervous activity. Vorschlag: künstliche Neuronen, die an und aus sein können in Abhängigkeit von einer Stimulierung durch Nachbar-Neuronen. Sie zeigten z.B., dass dieses Model turing-mächtig ist und vermuteten die Lernfähigkeit solcher Netze. 1949 schlug Donald Hebb eine einfach Regel zum Update der Verbindungsstärke zwischen Neuronen vor. 1951 bauten zwei Mathematik-Studenten aus Princeton den ersten “neural network computer” (aus 3000 Vakuumröhren und einem Automatischen Piloten aus einer B-24). Es waren Marvin Minsky und Dean Edmonds. Der Promotionsausschuss war sich nicht sicher, ob Minskys Arbeit wirklich mathematisch ist, John von Neumann sagte daraufhin: “If it is’nt now, it will be someday”. 1950 veröffentlichte Alan Turing seinen Artikel“Computing Machinery and Intelligence”, indem er den Turing-Test, maschienelles Lernen, genetische Algorithmen und reinforcement learning einführte. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 19 Geschichte der KI Die Geburt der künstlichen Intelligenz (1956) 1956 organisierte John McCarthy (gemeinsam mit Minsky, Claude Shannon, Nathaniel Rochester) einen 2-monatigen Workshop am Dartmouth College mit 10 Teilnehmern (z.B. aus Princeton, von IBM und vom MIT). Wichtigster Beitrag dort wohl von Allen Newell und Herbert Simon zum Logic Theorist, ein Programm, das bereits Schlüsse ziehen konnte und später eine ganz Reihe von Theoremen aus dem zweiten Kapitel der Principia Mathematica von Russell und Whitehead bewies (einmal sogar mit einem kürzeren Beweis, als im Original). Ein markiger Spruch der Beiden damals:“We have invented a computer program capable of thinking non-numerically, and thereby solved the venerable mind-body problem” Für die nächsten 20 Jahre dominierten diese Leute und ihre Studenten und Kollegen die KI (die vielleicht besser computational rationality“ hiess) – Orte der Handlung vor allem: MIT, CMU, ” Stanford, IBM. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 20 Geschichte der KI Enthusiasmus und grosse Erwartungen (1952-1969) Newell/Simon: General problem solver (Modell der Kognition, Imitation menschlichen Problemlösens, Generierung/Bewertung von Teilziele/möglichen Aktionen). Führte zur physical symbol system Hypothese:“a physical symbol system has the necessary and sufficient means for general intelligent action” (1976) Arthur Samuel schrieb eine Reihe von Programmen zum Dame-Spielen – sein Programm lernte schnell besser zu spielen, als sein Programmierer (Demonstration im Fernsehen 1956) 1958 verliess McCarthy Dartmouth und ging ans MIT, dort lieferte er in diesem einen Jahr drei wesentliche Beiträge zur KI: er definierte LISP (die zweitälteste höhere Programmiersprache, die heute noch verwendet wird – Fortran ist ein Jahr älter), er und andere am MIT erfanden time sharing, er publizierte Programs with Common Sense (Advice Taker). 1958 ging auch Marvin Minsky ans MIT. McCarthy setzte auf formale Logik, Minsky entwickelte nach und nach eine anti-logische Sichtweise (nicht eine unlogische ;-). 63 begann McCarthy mit dem Aufbau des AI Lab in Stanford. Robinson entdeckte dort die Resolution-Methode für Prädikatenlogik und das Shakey Robotics Project am SRI begann (Shakey: erste komplette Integration logischen Schlussfolgerns und physischer Aktivitäten) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 21 Geschichte der KI Minsky leitete ein Reihe von Studenten zu Arbeiten an sogenannten Micro worlds an: Slagles SAINT (kann Integrationsprobleme lösen), Evans ANALOGY (kann bildliche Analogieprobleme aus IQ-Tests lösen), Bobrows STUDENT (kann mathematische Textaufgaben lösen). Die wichtigste Miniwelt ist die Block-Welt (mit Arbeiten von Huffman zum Sehen, Waltz zu Sehen und Constraint-Propagation, Winston zum Lernen, Widrow mit adalines Netzwerken und Rosenblatt mit Perceptrons zum Sprachverstehen) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 22 Geschichte der KI Realität hält Einzug (1966-1973) Simon 1957: “It is not my aim to surprise or shock you—but the simplest way I can summarize is to say that there are now in the world machines that think, that learn and that create. Moreover, their ability to do these things is going to increase rapidly until—in a visible future—the range of problems they can handle will be coextensive with the range to which the human mind has been applied. Simon sagte voraus, dass in 10 Jahren ein Computer Schachgrossmeister werden würde und bedeutsame Theorem der Mathematik durch den Computer bewiesen werden würden. Es dauerte 40 Jahre bis dies näherungsweise wahr wurde. Ein Beispiel für Probleme: Übersetzung Russisch ↔ Englisch. Da ist nicht nur die Anwendung syntaktischer Regeln und Wortersetzung erforderlich, sondern ein generlles Verständnis für das Themengebiet! (Automatische Übersetzung anno 1995: Wirtschaftsinformatik an der Universität Essen → restaurant computer science at the University of Eating) Ein zweites Problem: Intractability! Hierzu [RUNO]:“The fact that a program can find a solution in principle does not mean that the programs contains any of the mechanisms needed to find it in practice”. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 23 Geschichte der KI Ein drittes Problem: Kritik an einzelnen Ansätzen (So schrieben Minsky/Papert etwas zu Perceptrons, die zwar alles, was sie repräsentieren konnten, auch lernen konnten, aber leider mit einer oder wenigen Schichten nur sehr wenig überhaupt repräsentieren konnten [XOR Problem]. Übrigens führte solche Kritik manchmal zu lang anhaltender Ignoranz – Back propagation wurde 1969 entdeckt, aber erst in den späten 80ern angewendet) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 24 Geschichte der KI Wissensbasierte System (1969-1979) Zunächst Konzentration auf sog. schwache Methoden: generell anwendbare Suchmechanismen, die elementare Schlüsse/Schritte kombinieren, um komplette Lösungen zu finden. Alternative: Anwendung von Domänen-spezifischem Wissen in Spezialgebieten. Frühes Beispiel: DENDRAL (Buchanan, Feigenbaum, Lederberg) zum Erschliessen der molekularen Struktur zu Molekülformeln aus Massen-Spektrometerdaten. Naive Version: alle Varianten berechenen und mit den Daten vergleichen. Zu ineffizient! Dann wurden Regeln vorgegeben, die bei Chemikern erhoben wurden, z.B. die folgende zum Auffinden einer Keto-Gruppe (C = O ): if there are two peaks at x1 and x2 such that (a) x1 + x2 = M + 28 (M is the mass of the whole molecule) (b) x1 − 28 is a high peak (c) x2 − 28 is a high peak and (d) at least one of x1 and x2 is high then there is a ketone subgroup DENDRAL war das erste erfolgreiche wissensintensive System, der Urvater der Expertensystem. Es folgt MYCIN, das zur Diagnose von Blutinfektionen dienen sollte und ohne ein c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 25 Geschichte der KI zugrundeliegendes theoretisches Modell rein auf Expertenregeln basierte. Es musste zudem mit der generellen Unsicherheit in medizinischem Wissen umgehen können (es verwendete sog. certainty factors). Weitere Beispiele für die Bedeutung von Domänen-Wissen: Winograds SHRDLU zur Sprachverarbeitung (in der Blockwelt). Basierte auch auf syntaktischer Analyse, konnte aber Zweiduetigkeiten verstehen und Refernzen auflösen, weil es sich auf die Blockwelt beschränkte. Charniak (MIT) sagte, dass robustes Sprachverstehen generelles Wissen über die Welt und generelle Methoden zur Anwendung dieses Wissens erfordert. Schank (Yale) ergänzte: “There is no such thing as syntax”. Seine eigenen Programme (und die seiner Studenten) konzentrierten sich auf Charniaks Beobachtung (Repräsentation und Verwendung generellen Wissens): Repräsentierung wiederkehrender Situationen, Organisation der menschlichen Erinnerung, Verstehen von Plänen und Zielen. Es war die Hochzeit von Sprachen zur Repräsentierung und zum Umgang mit Wissen, z.B. logik-basiert: Prolog (in Europa/Japan), PLANNER (US) oder frame-basiert (Minskys Idee 1975): Fakten über bestimmte Objekte und Ereignistypen zu Typen arrangieren und in einer grossen Taxonomy ähnlich einer biologischen Taxonomie organisieren. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 26 Geschichte der KI KI wird zu einer Industrie (1980 bis heute) R1, ein Expertensystem zur Konfiguration von Computern, wurde in den frühen 80ern u.a. von Drew McDermott entwickelt und bei DEC eingesetzt (1986 sparte es DEC bereits 40 Millionen Dollar im Jahr). 1988 benutzte z.B. DuPont bereits 100 Expertensysteme und hatte 500 in der Entwicklung. Japan begann 1981 das“Fifth Generation Project”, das zu“intelligenten”, Prolog-basierten Rechnern führen sollte. Die USA antworteten mit MCC, keines der Projekte erreichte allerdings seine ambitionierten Ziele. 1988 war eine Industrie entstanden, die Milliarden Dollars umsetzte/verbrannte. Als klar wurde, das einige (oder viele?) der vollmundigen Versprechen nicht erfüllt werden konnten, begann aber bald der “Winter der KI”. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 27 Geschichte der KI Die Rückkehr der neuronalen Netze (1986 bis heute) Mitte der 80er wurde Back Propagation erneut “erfunden”. (zwischendurch gab es auch Arbeiten, z.b. Hopfield), aber erst der Sammlung “Parallel Distributed Processing” von Rumelhart/McClelland (1986) folgte ein neuer Boom: das konnektionistische Modell intelligenter Systeme wurde hoffähig (auch als alternative, teils auch als ergänzende Position zur Symbolverarbeitung bzw. zur Logiksicht). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 28 Geschichte der KI KI wird zur Wissenschaft (1987-heute) [RUNO]: Recent years have seen a revolution in both the content and the methodology of work in artificial intelligence. Some have characterized this change as victory of the neats—those who think that AI theories should be grounded in mathematical rigor—over the scruffies—those who would rather try out lots of ideas, write some programs, and then assess what seems to be working. Both approaches are important. A shift towards neatness implies that the field has reached a level of stability and maturity. Whether that stability will be disrupted by a new scruffy idea is another question. Heutzutage baut man in der Regel auf bestehenden Theorien auf, Behauptung werden durch bewiesene Theoreme untermauert oder durch harte experimentelle Ergebnisse abgesichert (und nicht so sehr durch Intuition) und es werden Real-Welt-Anwendungen und nicht Spiel-Beispiele als Massstab zur Evaluation herangezogen. Beispiele: Hidden markov models, data mining (statistics/pattern recognition/machine learning(neural networks), bayesian networks (uncertainty) and normative expert systems: act rationally according to the laws of decision theory. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 29 Geschichte der KI Intelligente Agenten (1995-heute) SOAR (Newell, Laird, Rosenbloom): complete agent architecture – das “situated movement” möchte verstehen, wie Agenten funktionieren, die in reale Umgebungen eingebettet sind und “kontinuierlich” mit Sensor-Input versorgt werden. Ein hervorragender Tummelplatz für Agenten ist das Internet! (Denken Sie an all die -botSuffixe) KI-Technologien spielen im Internet eine wichtige Rolle: Suchmaschinen, Empfehlungssysteme, Systeme zur Konstruktion von Web Sites) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 30 Geschichte der KI State of the Art Autonomous Planning and Scheduling: NASAs “Remote Agent” Programm. Spielen: Deep Blue schlug Kasparow im Schach Autonomous Control: Das ALVINN computer vision system fuhr einen computrgesteuerten Van von Küste zu Küste und war 98% der Zeit am Steuer. Diagnose: Schlägt Experten in einigen Gebieten der Medizin, manche können ihre Entscheidungen überzeugend erklären. Logistik-Planung: DART (Golf-Krieg) zur Planung von Fahrzeug/Material-Bewegungen (mit bis zu 50000 Fahrzeugen/Frachten/Menschen pro Planungslauf), DARPA: diese Anwendung zahlte 30 Jahre an Investitionen in die KI-Forschung mehr als zurück. Robotics: Operationsunterstützung, z.B. HipNav, das mittels eines 3-dimensionalen, über Bildverarbeitung erzeugten Modells des Inneren von Patienten das Einfügen einer Hüftprothese überwacht/steuert. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 31 Geschichte der KI Sprachverstehen/Problemlösung: PROVERB zum Kreuzworträtsel-Lösen schlägt die meisten Menschen, VERBMOBIL c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 32 Geschichte der KI Nochmal: Intelligente Agenten • Intelligenz hat viel mit rationalem Handeln zu tun! • Idealerweise wird ein intelligenter Agent die best-mögliche Aktion in einer gegebenen Situation auswählen und ausführen! • Mit dem Problem, solche Agenten zu konstruieren/bauen beschäftigen wir uns! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 33 Uninformierte Suche Problemlösen durch Suchen, Teil 1 [Achtung: Die folgenden Folien zur Suche sind nicht vollständig. Sie liefern ergänzende Infos zur den in der Vorlesung präsentierten Folien zur Suche. Es ist sicher kein Fehler, sich diese Folien anzuschauen, um ein wenig besser zu Kosten- und Optimalitätsüberlegungen informiert zu sein. Weitere Details können sie in Russell/Norvig finden – lesen Sie Kapitel 3 und 4 von [RUNO]!] Ein Reisender besucht Arad - er möchte seine “performance measure” maximieren – und die wird von vielen Faktoren beeinflusst! Er hat aber auch ein Rückflugticket mit Abflug Bukarest für den nächsten Tag, das er nicht umbuchen kann – dies gibt ihm ein unmittelbares Ziel! Folgen von Aktivitäten, die ihn nicht nach Bukarest bringen, kann er unmittelbar verwerfen. Ein Ziel können wir in eine Menge von Welt-Zuständen abbilden–und zwar genau in die Zustände, in denen das Ziel erreicht wurde. Diese nennen wir die Zielzustände (der Welt). Die Aufgabe (task) des Agenten ist es nun, eine Folge von Aktionen zu finden (und auch zur Ausführung zu bringen), die ihn von seinem Ausgangszustand zu einem der Zielzustände bringt. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 34 Uninformierte Suche Wir müssen das richtige Detaillevel auswählen! Wir betrachten das Level “Fahren von einer Stadt zur nächsten”. Deshalb betrachten wir die Zustände “in einer Stadt sein”. Beachten Sie, dass die Zustände, die wir in der Problemformulierung verwenden, eine (starke) Vereinfachung der Weltzustände sind (idealerweise sollten Sie sich auf eine Zerlegung der Weltzustände abbilden lassen). Es führen 3 Strassen aus Arad: nach Sibiu, nach Timisoara und nach Zerind. Aber er hat eine Karte! Also kann er eine“hypotethische”Reise durchführen und nach und nach die zugehörigen Zustände durchlaufen. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 35 Uninformierte Suche Uninformierte Suche, Abstrakte Sicht function SIMPLE-PROBLEM-SOLVING-AGENT(percept) returns an action inputs: percept, a percept static seq, an action sequence, initially empty state, some description of the current world state goal, a goal, initially null problem, a problem formulation state ← UPDATE-STATE(state, percept) if seq is empty then do goal ← FORMULATE-GOAL(state) problem ← FORMULATE-PROBLEM(state, goal) seq ← SEARCH(problem) action ← FIRST(seq) seq ← REST(seq) return action Ein “formulate, search, execute” Agent! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 36 Uninformierte Suche Der Agent nimmt an, dass die Umwelt statisch, beobachtbar, diskret und deterministisch. Es findet keine Rückkopplung statt (open-loop system). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 37 Uninformierte Suche Das Formulieren von Problemen Ein Problem kann formal durch 4 Komponenten definiert werden: 1. Initialzustand, z.B. In(Arad) 2. Mögliche Aktionen, bspw. durch Nachfolgerfunktion (oder durch Operatoren). Zu einem gegebenen Zustand x liefert SUCCESSOR-FN(x) eine Menge von geordneten Paaren der Form (Aktion,Nachfolgezustand), z.B. {(Go(Sibiu), In(Sibiu)), (Go(Timisoara), In(Timisoara)), (Go(Zerind), In(Zerind))}. Dies definiert implizit den Zustandsraum, den man als Graph ansehen kann (Knoten sind Zustände, Kanten sind Aktionen). Ein Pfad in diesem Graph besteht aus einer Sequenz von Zuständen, die durch eine Sequenz von Aktionen verbunden ist. 3. Ein Zieltest, der prüft, ob ein Zustand ein Zielzustand ist. Im Beispiel: Ist der geprüfte Zustand In(Bukarest)? 4. Ein Pfadkostenfunktion, die jedem Pfad numerische Kosten zuweist. Jeder Agent wählt eine Kostenfunktion, die einen Bezug zu seiner performance measure hat. Im Beispiel (und auf den folgenden Folien) nehmen wir an, dass die Kosten eines Pfades sich aus der Summe der Kosten der einzelnen Aktionen ergeben (den Schrittkosten. c(x, a, y) gibt die Kosten c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 38 Uninformierte Suche an, um mit der Aktion a von Zustand x zum Zustand y zu gelangen (wir beschränken uns zunächst auf nicht-negative Kosten!). Eine Lösung ist ein Pfad vom Initialzustand zu einem Zielzustand. Die Qualtiät einer Lösung wird durch die Pfadkosten gemessen. Eine optimale Lösung hat (in unserem Beispiel) die niedrigsten Pfadkosten aller möglichen Lösungen (das muss nicht eindeutig sein!). Der Prozess, der Details aus einer Repräsentation entfernt, wird Abstraktion genannt. Eine Abstraktion ist gültig (valid), wenn wir jede abstrakte Lösung in eine Lösung in der detaillierteren Welt expandieren können. Eine Abstraktion ist nützlich (useful), wenn jede Aktion in der Lösung leichter zu bewältigen ist, als das Originalproblem. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 39 Uninformierte Suche Das Acht-Damen-Problem (1) Zustände: Irgend ein Arrangement von 0 bis 8 Damen auf einem Schachbrett Initialzustand: Keine Damen sind auf dem Schachbrett Nachfolgefunktion: Stelle eine Dame auf ein leeres Feld Zieltest: Sind 8 Damen auf dem Brett und wird keine attackiert? In dieser Formulierung gibt es 64 ∗ 63 ∗ 62 ∗ · · · ∗ 57 Möglichkeiten (ca. 3 × 1014). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 40 Uninformierte Suche Das Acht-Damen-Problem (2) Zustände: Arrangements von n Damen (0 ≤ n ≤ 8), eine pro Spalte in den linken n Spalten, keine Dame wird angegriffen. Nachfolgefunktion: Stelle eine Dame in die erste freie Spalte von links, so dass keine Dame angegriffen wird. Es gibt nur noch 2.057 Zustände und es wird leicht, Lösungen zu finden. Aber mit hundert Damen hat auch diese Lösung noch ca. 1052 Zustände! (die erste sogar 10400). Die in diesem Abschnitt beschriebenen Verfahren können dann nicht mehr sinnvoll verwendet werden (wir werden aber später noch ein Lösungsverfahren kennenlernen, das sogar mit Millionen von Damen umgehen kann). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 41 Uninformierte Suche Realweltprobleme Typische Realweltprobleme sind Routenfindungsprobleme (Computer-Netzwerke, Planen militärischer Operationen, Airline Travel Planungssysteme etc.) – es ist typischerweise komplex, solche Probleme überhaupt zu spezifizieren! Eine weitere Klasse sind Tourenprobleme (nicht nur“von A nach B”, sondern“von A nach B und einmal durch alle von anderen Städte”). Anderer Zustandsraum: Wo bist du und wo warst du schon? Klassisches Beispiel: TSP (Traveling Salesperson Problem) – jede Stadt einmal mit der kürzesten Tour! Das nicht-euklidische TSP ist NP-hard. VLSI Layout: cell layout (and placement!), channel routing. Ziele: Minimierung des verwendeten Platzes, Minimierung der Verzögerungen, Minimierung der Streukapazitäten, Maximierung des Produktionserfolges (“Gutteile”) Robot navigation: wie oben, aber kontinuierlicher, ggfs. multi-dimensionaler Zustandsraum! Automatische Reihenfolgeplanung in der Montage durch einen Roboter; Protein Design (Finden einer Sequenz von Aminosäuren, die sich zu einem 3-dimensionalen Protein falten, dass die richtigen Eigenschaften, etwa zur Heilung einer Krankheit, hat. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 42 Uninformierte Suche Suche im Internet (Details später) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 43 Uninformierte Suche Die Suche nach Lösungen Wir betrachten zunächst die Suche in einem expliziten Suchbaum. Idealisiert starten wir in einem Ausgangsknoten (der den Ausgangszustand repräsentiert) und expandieren diesen Knoten (d.h., wir wenden die Nachfolgefunktion an und generieren die Nachfolgezustände bzw. Knoten). Dann finden wir entweder dort einen Zielknoten oder wir bewegen uns zu einem dieser neuen Knoten und expandieren, usw.usf. Die Auswahl, welcher Knoten expandiert wird, trifft die Suchstrategie. Wir nehmen an, dass die Knoten die folgende Datenstruktur mit 5 Komponenten ausweisen: • • • • STATE: der Zustand, den der Knoten repräsentiert PARENT-NODE: der Knoten, dessen Expansion zu diesem Knoten führte ACTION: die Aktion, die bei der Expansion des PARENT-NODE durchgeführt wurde PATH-COST: die Kosten des Pfades vom Initialzustand (bzw. dem entsprechenden Knoten, den wir auch Startknoten nennen werden) zu diesem Knoten (dies wird traditionell mit g(n) angegeben, hierbei ist n der momentan betrachtete Knoten (= node)) • DEPTH: die Anzahl der Schritte vom Startknoten zu diesem Knoten c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 44 Uninformierte Suche Jeder Knoten, der noch nicht expandiert wurde, wird Blattknoten (oder einfach Blatt) genannt. Die Menge der Blattknoten wird Rand (fringe) genannt. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 45 Uninformierte Suche Baum-Suche function TREE-SEARCH(problem, strategy) returns a solution, or failure initialize the search tree using the initial state of problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add the resulting nodes to the search tree c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 46 Uninformierte Suche Messen der Güte des Problemlösens Die Ausgabe eines Problemlöse-Algorithmus ist entweder eine Lösung oder die Bekanntgabe des Scheiters (=failure). Die Güte eines Algorithmus werden wir in vier Dimensionen messen: • Vollständigkeit (completeness): ist garantiert, dass der Algorithmus eine Lösung findet, wenn eine existiert? • Optimalität (optimality): Findet die Suchstrategie die (bzw. eine) optimale Lösung? • Zeitkomplexität (time complexity): Wieviel Zeit benötigt der Algorithmus, um eine Lösung zu finden (oder eine optimale Lösung zu finden) • Speicherplatzkomplexität (space complexity): Wieviel Speicher benötigt der Algorithmus, um eine Lösung zu finden (oder eine optimale Lösung zu finden) Die Komplexität wird jeweils in Relation zu einem bestimmten Mass für die Problemgrösse angegeben. In der theoretischen Informatik ist das regelmässig die Grösse des Zustandsgraphen (z.b. der Karte beim betrachteten Reiseproblem), die als explizite Eingabe für den Algorithmus c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 47 Uninformierte Suche betrachtet wird. In der KI ist der Graph in der Regel nur implizit gegeben (über Initialzustand und Nachfolgerfunktion), hier werden drei Grössen verwendet: b, der Verzweigungsfaktor (=maximale Anzahl von (direkten) Nachfolgern); d, die Tiefe des“flachsten”Zielknoten; und m, die Länge des längsten Pfades in Zustandsraum. Zeit wird in der Regel durch die Anzahl der durch die Expansion generierten Knoten gemessen. Speicherbedarf durch die Anzahl der maximal vorzuhaltenden Knoten. Man kann nur die Suchkosten (search cost) betrachten (typischerweise Zeit, ggfs. eine Bewertung von Zeit und Speicherverbrauch) oder aber die totalen Kosten (total cost), also eine Zusammenrechnung der Kosten für die gefundene Lösung und der Suchkosten, betrachten. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 48 Uninformierte Suche Uninformierte Suche “Blinde” Suchstrategien können Knoten expandieren und Zielzustände erkennen – mehr im Grunde nicht. Suchstrategien, die vielversprechende Knoten erkennen können (oder wollen), werden informierte oder heuristische Suchstrategien genannt. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 49 Uninformierte Suche Breitensuche Breitensuche: Zunächst wird der Wurzelknoten expandiert, dann alle Nachfolger des Wurzelknotens, dann alle Nachfolger dieser Knoten und so weiter (schichtweise Expansion). Implementierung: Aufruf von TREE-SEARCH mit einem leeren Fringe, der als FIFO-Queue implementiert ist (FIFO = first-in-first-out). (s. Zeichnung auf dem Overhead) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 50 Uninformierte Suche Evaluation Breitensuche Vollständigkeit/Optimalität: endliche Tiefe und endlicher Verzweigungsfaktor vorausgesetzt, wird der “flachste” Zielknoten in jedem Fall gefunden (das muss nicht der optimale Zielknoten sein, er ist es sicher nur dann, wenn die Pfadkosten eine nicht abnehmende Funktion der Tiefe des Knotens ist). Komplexität: 1. Annahme 1: Jeder Zustand hat b Nachfolger. Erstes Level: b Knoten; zweites Level: b2 Knoten; drittes Level: b3 Knoten; etc. 2. Annahme 2: Der Zielknoten ist in Tiefe d. Im schlimmsten Fall (worst case) werden wir alle bis auf den letzten Knoten in Level d expandieren, d.h. bd+1 − b Knoten. Insgesamt also? c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 51 Uninformierte Suche Evaluation Breitensuche Zeitkomplexität: b + b2 + b3 + · · · + bd + (bd+1 − b) = O(bd+1) Jeder generierte Knoten muss im Speicher bleiben, weil der entweder noch expandiert werden muss oder aber ein Vorgänger des Lösungsknotens sein kann, also ist die Speicherkomplexität = Zeitkomplexität (+1 für den Zielknoten). Beide Werte sind exponentiell! Nehmen wir nun folgendes an: b = 10, 1000 Knoten pro Sekunde werden generiert, ein Knoten beansprucht 1000 Bytes. Tiefe 2 4 6 8 10 12 14 Knoten 1.100 111.100 107 109 1011 1013 1015 Zeit 0,11 Sek. 11 Sek. 19 Min. 31 Stn. 129 Tage 35 Jahre 3.523 Jahre Speicher 1 megabyte 106 megabytes 10 gigabytes 1 terabyte 101 terabytes 10 petabytes 1 exabyte Beobachtung 1: Der Speicherverbrauch ist ein grösseres Problem, als der Zeitverbrauch. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 52 Uninformierte Suche Beobachtung 2: Suchprobleme mit exponentieller Komplexität können durch uninformierte Methoden nur für kleinste Instanzen gelöst werden. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 53 Uninformierte Suche Erweiterung: Uniform-cost Search Zur Erinnerung: Wann findet Breitensuche den optimalen Lösungsknoten? Uniform-cost Search expandiert immer den Knoten mit den niedrigsten Pfadkosten zuerst. Problem: Wenn es eine Aktion mit Null-Kosten gibt, dann führt das in eine Endlosschleife! Vollständigkeit können wir aber garantieren, wenn jede Aktion mindestens ein kleine, positive Konstante kostet. Daraus folgt auch die Optimalität (Pfadkosten steigen mit seiner Länge). Kosten: Pfadkosten sind ausschlaggebend. Seien C ∗ die Kosten für die optimale Lösung und die erwähnte Konstante, dann sind die worst case Komplexitäten für Zeit und Speicher ∗ O(bdC /e). (Wenn alle Kosten für einzelne Schritte bzw. Aktionen gleich sind, dann entspricht ∗ bC / genau bd.) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 54 Uninformierte Suche Tiefensuche Es wird jeweils der “tiefste” Knoten des Randes (fringe) expandiert. Knoten ohne Nachfolger, die nicht expandiert werden können und keinen Zielzustand enthalten, werden aus der Fringe entfernt. Implementierung: Fringe als LIFO-Queue realisieren (last-in-first-out). Alternativ geht das natürlich auch mit einer rekursiven Funktion, die sich für die Kindknoten jeweils selbst aufruft. Speicherkomplexität: Sehr moderat, es wird nur jeweils ein einzelner Pfad und die noch nicht expandierten Geschwisterknoten gespeichert. Ein Knoten kann aus dem Speicher entfernt werden, sobald alle seine Nachfolger exploriert wurden. Für einen Zustandsraum mit Verzweigungsfaktor b und maximaler Tiefe m müssen also nur bm + 1 Knoten gespeichert werden (in der Tabelle wäre der Bedarf für d = 12 z.B. nur 112 KByte (ein Faktor von 10 Milliaren mal weniger Speicherbedarf, als Breitensuche)). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 55 Uninformierte Suche Tiefensuch-Variante: Backtracking Suche Hier wird jeweils nur ein Nachfolger generiert, jeder erst teilweise expandierte Knoten merkt sich, welche Nachfolger noch zu generieren sind. Der Speicherbedarf sinkt von O(bm) auf O(m). Es kommt ein weitere Trick zur Anwendung: Nachfolger werden nicht durch Kopie von Zustandsbeschreibungen, sondern durch Modifikation generiert (das setzt voraus, dass man bei einem Backtracking Änderungen zurücknehmen kann). Problem: Verfahren der Tiefensuche können sich in einem langen (oder gar in einem unendlichen) Pfad“verlaufen”, der nicht oder sehr spät zum Ziel führt (Tiefensuche ist also möglicherweise nicht vollständig für unendliche Pfade). Zudem ist die Optimalität nicht garantiert. Worst-case Zeitkomplexität: Alle Knoten eines Baumes werden generiert, O(bm) (Beachte: m, die maximale Tiefe eines Knotens, kann wesentlich grösser sein, als d, die Tiefe der“flachsten” Lösung). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 56 Uninformierte Suche Tiefen-begrenzte Suche Idee: Führe die Tiefensuche nur bis zu einem Tiefenlimit l aus! function DEPTH-LIMITED-SEARCH(problem, limit returns a solution, or failure/cutoff return RECURSIVE-DLS(MAKE-NODE(INITIAL-STATE[problem]),problem, limit) function RECURSIVE-DLS(node, problem, limit) returns a solution, or failure/cutoff cutoff occured? ← false if GOAL-TEST[problem](STATE[node]) then return SOLUTION(node) else if DEPTH[node] = limit then return cutoff else for each successor in EXPAND(node, problem) do result ← RECURSIVE-DLS(successor, problem, limit) if result = cutoff then cutoff occured? ← true else if result 6= failure then return result if cutoff occured? then return cutoff else return failure c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 57 Uninformierte Suche Tiefen-begrenzte Suche Problem: neue Quelle für Nicht-Vollständigkeit! (wenn l zu klein gewählt wird). Optimalität ist ebenso nicht garantiert. Die Zeitkomplexität ist O(bl ), die Speicherkomplexität O(bl). (Tiefensuche ist ein Spezialfall ohne Limit). Manchmal kann man die Begrenzung für l sinnvoll abschätzen (im Städtebeispiel: wenn es nur x Städte gibt, ist man nach spätestens x − 1 Schritten ohne Wiederholungen im Ziel). Anmerkung: Wenn man weiss, dass jeder Zustand von jedem anderen Zustand in höchstens n Schritten erreichbar ist (und diese Schrittzahl für ein Paar auch tatsächlich gilt), dann nennt man n den Durchmesser des Zustandsraums. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 58 Uninformierte Suche Iterative Deepening Tiefen-begrenzte Suche wird iteriert mit jeweils erhöhtem Limit! function ITERATIVE-DEEPENING-SEARCH(problem) returns a solution, or failure inputs: problem, a problem for depth ← 0 to ∞ do result ← DEPTH-LIMITED-SEARCH(problem, depth) if result 6= cutoff then return result Speicherbedarf: O(bd). Vollständig für endlichen Verzweigungsfaktor. Optimal für nichtsinkende Pfadkosten. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 59 Uninformierte Suche Iterative Deepening Problem: Mehrfaches generieren von Knoten – N (IDS) = (d)b+(d−2)b2 +· · ·+(1)bd, also Zeitkomplexität O(bd). Vergleich zur Breitensuche (BFS) für b = 10, d = 5: N (IDS) = 50 + 400 + 3.000 + 20.000 + 100.000 = 123.450 N (BF S) = 10 + 100 + 1.000 + 10.000 + 100.000 + 999.990 = 1.111.100. Generell ist iterative deepening die bevorzugte uninformierte Suchmethode, wenn es einen grossen Zustandsraum gibt und die Tiefe der Lösung unbekannt ist. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 60 Uninformierte Suche Bidirektionale Suche Idee: Suchen in zwei Richtungen: vom Initialzustand aus und vom Zielzustand aus, treffen in der Mitte (bd/2 + bd/2 << bd). Kontrolliert wird jeweils, ob die Fringe des anderen Suchbaums erreicht wurde (dieser Check kann in konstanter Ziet mittels eines Hash implementiert werden), also Speicher- und Zeitkomplexität O(bd/2). Die Idee klingt nicht schlecht, aber wie sucht man rückwärts? Generell müssen die Vorgänger eines Knotens einfach zu berechnen sein (das geht oft nicht sinnvoll)! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 61 Grundlegendes zur Logik Vergleich uninformierter Methoden Kriterium Vollständig? Zeit Speicher Optimal? Breitensuche Jaa O(bd+1) O(bd+1) Ja Uniform-Cost Jaa,b ∗ O(bdC /e) ∗ O(bdC /e) Ja Tiefensuche Nein O(bm) O(bm) Nein Tiefe besch. Nein O(bl ) O(bl ) Nein Iterative D. Jaa O(bd) O(bd) Jac Bi-dir. Jaa,d O(bd/2) O(bd/2) Jac,d a) Endlicher Verzweigungsgrad b) Schrittkosten ≥ c) Schrittkosten konstant d) Beide Richtungen verwenden Breitensuche (Bi-direktional geht nicht immer) b = Verzweigungsgrad, d = Tiefe der (ersten/flachsten) Lösung, m = maximale Tiefe des Suchbaumes, l = Tiefenlimit (bei Depth-Limited Search, Tiefe besch.), C ∗ = Kosten der optimalen Lösung, = minimale Schrittkosten (Weitere Details in [RUNO], Kap. 3.) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 62 Grundlegendes zur Logik Logik: Die Wissenschaft vom Schließen Man hat u.a. erkenntnistheoretische, transzendental-philosophische, spekulativ-metaphysische, ästethische und psychologische Untersuchungen der Logik zugeordnet. Wir interessieren uns für die formale Logik, diese umfaßt (in der traditionellen Philosophie) eine Lehre vom Begriff, eine Lehre vom Urteil und eine Lehre vom Schluß. Schlüsse setzen Urteile voraus: ein Schluß ist ein Schluß von gewissen Urteilen auf ein Urteil. Urteile werden mit Begriffen gebildet, also setzt die Beschäftigung mit Schlüssen die Beschäftigung mit Urteilen und Begriffen voraus. Die Logik, als formale Logik, ist eine Theorie des Schließens. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 63 Grundlegendes zur Logik Was ist ein logischer Schluß? (P1) (P2) (K ) Alle Logiker sind musikalisch Heinrich ist ein Logiker Heinrich ist musikalisch Diese Schlußfigur ist wie folgt zu lesen: Wenn alle Logiker musikalisch sind und wenn Heinrich ein Logiker ist, dann ist Heinrich musikalisch Hier wird aus den beiden Sätzen P1 und P2 auf den Satz K geschlossen. Die Sätze eines Schlußes, aus denen wir schließen – hier also P1 und P2 – nennen wir Prämissen des Schlußes; den Satz, auf den wir schließen – hier also K – nennen wir Konklusion des Schlußes. Jeder Schluß enthält eine oder mehrere Prämissen und (genau) eine Konklusion Ein Schluß ist gültig, wenn unter der Voraussetzung, dass alle Prämissen wahr sind, auch die Konklusion wahr ist. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 64 Grundlegendes zur Logik Beachte: Wenn wir behautpen, dass ein Schluß wahr ist, so behaupten wir weder, dass die Prämissen wahr sind, noch, dass die Konklusion wahr ist. Wir behaupten, dass die Konklusion wahr ist, wenn alle Prämissen wahr sind. Die Konklusion eines gültigen Schlußes kann also auch falsch sein – dann ist aber mindestens eine der Prämissen falsch (also sind entweder nicht alle Logiker musikalisch oder Heinrich ist kein Logiker). Die Logik heißt formal, weil sie sich nicht für beliebige Figuren der Art (P1) ... (Pn) (K ) ... ... ... ... interessiert, für die die Wahrheit von K aus der Wahrheit aller Prämissen P1, . . . , Pn folgt, sondern für solche Schlüße, die auch dann gültig bleiben, wenn man die in ihnen vorkommenden nicht-grammatikalischen Wörter in bestimmter Weise durch andere Wörter ersetzt. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 65 Grundlegendes zur Logik Schlüsse (Forts.) Wir erhalten z.B. aus unserem Schluß wieder einen gültigen Schluß, wenn wir Logiker“ durch ” Menschen“ bzw. Mensch“, musikalisch“ durch sterblich“ und Heinrich“ durch Sokrates“ er” ” ” ” ” ” setzen: (P1) (P2) (K ) Alle Menschen sind sterblich Sokrates ist ein Mensch Sokrates ist sterblich Ersetzen wir die Wörter durch die Platzhalter S , P und a, die beliebige Substative, Adjektive und Namen vertreten, erhalten wir die folgende Schlußfigur: (P1) (P2) (K ) Alle S sind P a ist ein S a ist P c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 66 Grundlegendes zur Logik Schlüsse (Forts.) Aus dieser Figur entsteht ein gültiger Schluß, unabhängig davon, welche Substantive, Adjektive und Namen man für S , P und a einsetzt! Die Gültigkeit dieser Schlüsse beruht also nicht auf besonderen Bedingungen, die für Logiker und deren Musikalität gelten, sondern auf einem abstrakten Verhältnis zwischen Begriffen: Wenn alle Objekte einer Art S eine Eigenschaft P haben, muß auch jedes einzelne Objekt a der Art S diese Eigenschaft P haben. Solche Schlüsse nennt man auch formal gültig. Wir können die formale Logik nun präzisierer charakterisieren: Die formale Logik ist die Theorie der formalen gültigen Schlüsse. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 67 Grundlegendes zur Logik Bedeutung der Logik Ganz allgemein charakterisiert, ist die Logik die Schule des korrekten, klaren und folgerichtigen Denkens. Sie hilft z.B. beim Lösen des folgenden Problems (die Antwort gibt es am Ende der Veranstaltungen im Ausblick zur Prädikatenlogik) : Versuchen Sie, die Verneinung des Satzes Es ist nicht alles Gold, was glänzt zu bilden. Welches ist die Verneinung? • • • • Einiges Gold glänzt nicht. Einiges, was glänzt, ist nicht Gold. Alles, was glänzt, ist Gold. Alles Gold glänz nicht. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 68 Grundlegendes zur Logik Bedeutung der Logik (Forts.) Beweise spielen in der Wissenschaft eine ausgezeichnete Rolle. Beweise sind nichts anderes als Folgen von Schlüßen, deren erste Prämissen bereits bewiesene Sätze (oder gesetzte Axiome) sind, und deren letzte Konklusion die zu beweisende Behauptung ist. Die Logik untersucht, welche Schlüsse korrekte Schlüsse sind, sie ist also mithin eine Theorie des Beweisens. Wichtige historische Vertreter: Aristoteles (noch Immanuel Kant hat behauptet, dass der Logik nach Aristoteles nichts Wesentliches hinzugefügt werden konnte), George Boole (1815-1864), Gottlob Frege (1848-1925). Die moderne, mathematische oder symbolische Logik ist die heutige Gestalt der von Aristoteles begründeten formalen Logik. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 69 Grundlegendes zur Logik Aussagenlogik Die Aussagenlogik untersucht sprachliche Ausdrücke, mit denen sich aus gegebenen Sätzen neue, komplexere Sätze erzeugen lassen. In der Logik werden nur Sätze betrachtet, die entweder wahr oder falsch sind. Wir betrachten nur Aussagensätze, die zudem keine Indikatoren (wie ich, du, heute, hier usw. enthalten: Die Zugspitze ist der höchste Berg Deutschlands, aber nicht Ich habe dir heute und hier einen Brief gezeigt! (beim zweiten Satz hängt die Wahrheit von den jeweiligen Umständen seines Gebrauchs ab!). Das führt zum sogenannten Postulat der Wahrheitsdefiniertheit: Jeder Aussagesatz, der keine Indikatoren enthält, ist entweder wahr oder falsch. Wir werden nun die Betrachtung formalisieren. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 70 Grundlegendes zur Logik Syntax der Aussagenlogik Definition 1. [Syntax der Aussagenlogik] Eine atomare Formel hat die Form Ai (mit i = 1, 2, 3, . . . ). Formeln werden durch folgenden induktiven Prozess definiert: 1. Alle atomaren Formeln sind Formeln. 2. Für alle Formeln F und G sind (F ∧ G) und (F ∨ G) Formeln. 3. Für jede Formel F ist ¬F eine Formel. Sprechweisen: Eine Formel der Bauart ¬F heißt Negation von F , (F ∧ G) heißt Konjunktion von F und G, (F ∨ G) heißt Disjunktion von F und G. Eine Formel F , die als Teil einer Formel G auftritt, heißt Teilformel von G. Beispiel: F = ¬((A5 ∧ A6) ∨ ¬A3) ist eine Formel und sämtliche Teilformeln von F sind F , ((A5 ∧ A6) ∨ ¬A3), (A5 ∧ A6), A5, A6, ¬A3, A3 Wir vereinbaren die folgenden abkürzenden Schreibweisen (F1, F2 . . . sind beliebige Formeln): c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 71 Grundlegendes zur Logik A, B, C, . . . (F1 → F2) (F1 ↔ F2) statt statt statt bzw. A1 , A 2 , A 3 , . . . (¬F1 ∨ F2) ((F1 ∧ F2) ∨ (¬F1 ∧ ¬F2)) ((F1 → F2) ∧ (F2 → F1)) Beispiel: So ist z.B. (A ↔ E) eine Abkürzung für ((A1 ∧ A5) ∨ (¬A1 ∧ ¬A5)). Beachten Sie, dass hier tatsächlich der fünfte Buchstabe des Alphabets, also E , für die atomare Formel mit der Nummer 5, also A5, verwendet wird. Bei hohen Nummern wird eine solche Entsprechung allerdings unklar, für kleine n ist das aber eine sinnvolle Konvention. Bisher haben wir nur definiert, dass Formeln bestimmten Zeichenketten entsprechen. Diese Zeichenketten haben noch keine Bedeutung, die sie durch eine Belegung erhalten werden. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 72 Grundlegendes zur Logik Semantik der Aussagenlogik Definition 2. [Semantik der Aussagenlogik] Die Elemente der Menge {0, 1} heißen Wahrheitswerte. Eine Belegung ist eine Funktion A : D → {0, 1}. Hier ist D eine Teilmenge der atomaren Formeln. Wir erweitern A zu einer Funktion Ā : E → {0, 1}. Es gilt D ⊆ E . E ist die Menge aller Formeln, die nur aus atomaren Formeln in D aufgebaut ist. 1. Für jede atomare Formel A ∈ D ist Ā(A) = A(A). ( 2. Ā((F ∧ G)) = 1, 0, sonst ( 3. Ā((F ∨ G)) = ( 4. Ā(¬F ) = 1, falls Ā(F ) = 1 und Ā(G) = 1 1, falls Ā(F ) = 1 oder Ā(G) = 1 0, sonst falls Ā(F ) = 0 0, sonst Ā ist eine Fortsetzung von A. Nachdem wir nun die formale Definition korrekt ausführen konnten, vereinfachen wir uns die Schreibarbeit und schreiben A für Ā. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 73 Grundlegendes zur Logik Beispiel: Es sei A(A) = 1, A(B) = 1, und A(C) = 0. Dann ergibt sich ( A(¬((A ∧ B) ∨ C)) = = = = ( 0, sonst 0, falls A(((A ∧ B) ∨ C)) = 1 ( 1, sonst 0, falls A((A ∧ B)) = 1 oder A(C) = 1 ( 1, sonst 0, falls A((A ∧ B)) = 1 (da A(C) = 0) ( 1, sonst 0, falls A(A) = 1 und A(B) = 1 = = 1, falls A(((A ∧ B) ∨ C)) = 0 1, sonst 0 c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 74 Grundlegendes zur Logik Wahrheitstafeln Die Operationen (bzw. Verknüpfungen) lassen sich auch durch Wahrheitstafeln darstellen: A(F ) 0 0 1 1 A(G) 0 1 0 1 A((F ∧ G)) 0 0 0 1 A((F ∨ G)) 0 1 1 1 c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen A((F → G)) 1 1 0 1 A((F ↔ G)) 1 0 0 1 A(¬F ) 1 1 0 0 Version 0.9, 14. Dezember 2006, Seite 75 Grundlegendes zur Logik Induktion: eine Anmerkung Die Definition von Formeln ist eine induktive Definition: Es werden zunächst die einfachsten Formeln definiert (die atomaren Formeln) und dann wird der Aufbau zusammengesetzter Formeln aus diesen einfachen Formeln mit Hilfe von Verknüpfungen erklärt. Ebenso induktiv ist die Belegung A definiert. Dieses Induktionsprinzip kann man auch in Beweisen verwenden: Um zu beweisen, dass eine Behauptung B(F ) für jede Formel F gilt, führt man folgende Schritte durch: 1. Man zeigt, dass B(Ai) für jede atomare Formel Ai gilt 2. Man zeigt, dass unter der Induktionsannahme, dass B(H) und B(G) gelten, folgt, dass B(¬H), B((H ∧ G)), und B((H ∨ G)) gelten. Ein Beispiel für die Anwendung dieser Form der Induktion findet sich beim Ersetzbarkeitstheorem (Satz ??). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 76 Grundlegendes zur Logik Einige wichtige Begriffe (1) Definition 3. [Passend, Modell] Sei F eine Formel und A eine Belegung. Falls A für alle in F vorkommenden atomaren Formeln definiert ist, so heißt A zu F passend. Falls A zu F passend ist und A(F ) = 1 gilt, so sagen wir: F gilt unter der Belegung A, oder: A erfüllt F , oder auch (wichtiger!): A ist ein Modell für F , symbolisch: A |= F . Falls A(F ) = 0, so sagen wir: Unter A gilt F nicht oder: A ist kein Modell für F , symbolisch: A 6|= F . Sei F eine Menge von Formeln (die auch unendlich groß sein kann!). Dann ist A ein Modell für F, falls für alle F ∈ F gilt, dass A |= F . c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 77 Grundlegendes zur Logik Einige wichtige Begriffe (2) Definition 4. [Erfüllbar, unerfüllbar, gültig (Tautologie)] Eine Formel F (oder eine Formelmenge F) heißt erfüllbar, falls sich für F (bzw. F) mindestens ein Modell finden läßt, anderenfalls heißt F (bzw. F) unerfüllbar. [Anmerkung: Eine Formel F ist also dann erfüllbar, wenn man eine Belegung A finden kann, die zu F passt und ein Modell für F ist – mit anderen Worten: die Belegung muß die Formel F wahr werden lassen.] Eine Formel F heißt gültig, falls jede zu F passende Belegung ein Modell für F ist. Dann sagt man auch, dass F eine Tautologie ist, symbolisch |= F . Falls F keine Tautologie ist, schreiben wir 6|= F (Vorsicht, das steht für keine Tautologie“ und nicht für unerfüllbar“!) ” ” c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 78 Grundlegendes zur Logik Negationen von Tautologien sind unerfüllbar! Satz 5. Eine Formel F ist eine Tautologie gdw. ¬F unerfüllbar ist. Beweis: Es gilt: F ist eine Tautologie gdw. jede zu F passende Belegung ist ein Modell für F gdw. jede zu F (und damit zu ¬F ) passende Belegung ist kein Modell für ¬F gdw. ¬F besitzt kein Modell gdw. ¬F ist unerfüllbar. Merke: Die Negierung einer gültigen Formel führt zu einer unerfüllbaren Formel (und umgekehrt). Die Negierung einer erfüllbaren, aber nicht gültigen Formel führt wieder zu einer erfüllbaren, aber nicht gültigen Formel. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 79 Grundlegendes zur Logik Wahrheitstafeln Um zu prüfen, ob eine Formel erfüllbar, gültig oder unerfüllbar ist, genügt es, die endlich vielen verschiedenen Belegungen, die man zu den in F vorkommenden atomaren Formeln finden kann, auf ihre Konsequenz für den Wahrheitswert von F hin zu testen. Falls F n verschiedene atomare Formeln enthält, so sind dies genau 2n zu testende Belegungen. A1: A2: . . A2n : A1 0 0 A2 0 0 1 1 ... ... ... . . ... An−1 0 0 An 0 1 1 1 F A1(F ) A2(F ) . . A2n (F ) F ist erfüllbar, falls der Wahrheitswerteverlauf von F (also die Spalte unter F ) mindestens eine 1 enthält [Anmerkung: Wenn man schreibt, dass etwas eine 1 enthält, dann meint man immer mindestens eine, und nicht genau eine – man könnte also das mindestens im vorigen Satz auch weglassen]. F ist eine Tautologie, wenn dort nur Einsen stehen, F ist unerfüllbar, wenn dort nur Nullen stehen. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 80 Grundlegendes zur Logik Beispiel zur Verwendung von Wahrheitstafeln Beispiel: Es sei F = (¬A → (A → B)). A 0 0 1 1 B 0 1 0 1 ¬A 1 1 0 0 (A → B) 1 1 0 1 F 1 1 1 1 F ist also eine Tautologie! Anmerkung: Wir lassen die Notation A() in der ersten Zeile der Wahrheitstafeln zur Vereinfachung ab jetzt weg, es sollte jetzt klar sein, dass es letztlich um Belegungen geht. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 81 Grundlegendes zur Logik Exkurs: Von der Schwere des Erfüllbarkeitsproblems Die Wahrheitstafelmethode ist ein algorithmisches Verfahren, um die Erfüllbarkeit einer Formel zu prüfen. Es ist aber sehr schnell sehr aufwendig – für 100 atomare Formel wäre auch der schnellste heutige Rechner tausende Jahre beschäftigt! Unglücklicherweise ist dieses Exponentialverhalten der Rechenzeit vermutlich nicht generell einzudämmen (ausser für Einzelfälle), denn das Erfüllbarkeitsproblem für die Aussagenlogik ist ein sogenanntes NP-vollständiges Problem (das heißt in etwa, dass bis heute kein Algorithmus bekannt ist, der das Problem zum einen löst und dessen Laufzeit sich zum anderen für eine gegebene Eingabe der Größe n durch ein Polynom abschätzen läßt, also z.B. durch n3 + 7000. Man kann aber andererseits sehr leicht prüfen, ob eine einzelne Belegung eine Formel erfüllt (mit linearem Aufwand), deshalb gehört das Problem zu einer Klasse von schweren“ ” Problemen, für die noch nicht abschließend geklärt ist, ob es nicht doch effiziente Algorithmen geben kann, die das Problem mit polynomialem Aufwand lösen können. Mehr hierzu finden Sie z.B. in Uwe Schönings Ideen der Informatik. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 82 Grundlegendes zur Logik Äquivalenzen und Normalformen Definition 6. [Semantische Äquivalenz] Zwei Formeln F und G heißen (semantisch) äquivalent, falls für alle Belegungen A, die sowohl für F als auch für G passend sind, gilt A(F ) = A(G). Symbolisch: F ≡ G. Achtung! Auch Formeln, die auf ungleichen Mengen von atomaren Formeln basieren, können äquivalent sein (Tautologien). Satz 7. [Ersetzbarkeitstheorem (ET)] Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens) einem Vorkommen 0 0 der Teilformel F . Dann ist H äquivalent zu H , wobei H aus H hervorgeht, indem (irgend) ein Vorkommen von F in H durch G ersetzt wird. Beweis durch Induktion über den Formelaufbau: Induktionsanfang: Falls H eine atomare Formel ist, dann kann nur H = F sein. Und damit 0 0 ist klar, dass H äquivalent zu H ist, denn H = G. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 83 Grundlegendes zur Logik Induktionsschritt: Falls F gerade H selbst ist, so trifft dieselbe Argumentation wie beim Induktionsanfang zu. Sei also angenommen, dass F 6= H (aber F ist natürlich weiterhin eine Teilformel von H ). Dann muß man drei Fälle unterscheiden: 0 Fall 1: H hat die Bauart H = ¬H1. Nach Induktionsannahme ist H1 äquivalent zu H1, 0 0 0 wobei H1 aus H1 durch Ersetzung von F durch G hervorgeht. Nun ist aber H = ¬H1. 0 Aus der (semantischen) Definition von ¬ folgt dann, dass H und H äquivalent sind. Fall 2: H hat die Bauart H = (H1 ∨ H2). Dann kommt F entweder in H1 oder in H2 vor. Nehmen wir den ersten Fall an (der zweite ist völlig analog, deshalb können wir dies ohne Beschränkung der Allgemeinheit tun). Dann ist nach Induktionsannahme H1 wieder äquivalent 0 0 zu H1, wobei H1 aus H1 durch Ersetzung von F durch G hervorgeht. Mit der Definition von 0 0 ∨ ist dann klar, dass H ≡ (H1 ∨ H2) = H . Fall 3: H hat die Bauart H = (H1 ∧ H2). Beweis analog zu Fall 2. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 84 Grundlegendes zur Logik Nützliche Äquivalenzen (F ∧ F ) (F ∨ F ) (F ∧ G) (F ∨ G) ((F ∧ G) ∧ H) ((F ∨ G) ∨ H) (F ∧ (F ∨ G)) (F ∨ (F ∧ G)) (F ∧ (G ∨ H)) (F ∨ (G ∧ H)) ¬¬F ¬(F ∧ G) ¬(F ∨ G) (F ∧ G) (F ∨ G) (F ∧ G) (F ∨ G) ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ F F (G ∧ F ) (G ∨ F ) (F ∧ (G ∧ H)) (F ∨ (G ∨ H)) F F ((F ∧ G) ∨ (F ∧ H)) ((F ∨ G) ∧ (F ∨ H)) F (¬F ∨ ¬G) (¬F ∧ ¬G) G, falls F Tautologie F , falls F Tautologie F , falls F unerfüllbar G, falls F unerfüllbar c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen (Idempotenz) (Kommutativität) (Assoziativität) (Absorption) (Distributivität) (Doppelnegation) deMorgansche Regeln (Tautologieregeln) (Unerfüllbarkeitsregeln) Version 0.9, 14. Dezember 2006, Seite 85 Grundlegendes zur Logik Beweisen der Äquivalenzen Beweise: Alle Äquivalenzen können leicht mittels Wahrheitstafeln nachgeprüft werden. Bsp. erste Absorptionsregel F 0 0 1 1 G 0 1 0 1 (F ∨ G) 0 1 1 1 (F ∧ (F ∨ G)) 0 0 1 1 Die erste (für F ) und die vierte Spalte (für (F ∧ (F ∨ G))) stimmen überein, also (F ∧ (F ∨ G)) ≡ F . c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 86 Grundlegendes zur Logik Vereinfachung von Formeln Beispiel: Mit den Äquivalenzen und dem Ersetzbarkeitstheorem können wir nun viele Formeln vereinfachen. So können wir z.B. nachweisen, dass ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ ((B ∧ ¬A) ∨ C) Beweis: Es ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ gilt ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) (((A ∨ B) ∨ C) ∧ (C ∨ ¬A)) ((C ∨ (A ∨ B)) ∧ (C ∨ ¬A)) (C ∨ ((A ∨ B) ∧ ¬A)) (C ∨ (¬A ∧ (A ∨ B))) (C ∨ ((¬A ∧ A) ∨ (¬A ∧ B))) (C ∨ (¬A ∧ B)) (C ∨ (B ∧ ¬A)) ((B ∧ ¬A) ∨ C) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen (Assoziativität und ET) (Kommutativität und ET) (Distributivität) (Kommutativität und ET) (Distributivität und ET) (Unerfüllbarkeitsregel und ET) (Kommutativität und ET) (Kommutativität) Version 0.9, 14. Dezember 2006, Seite 87 Grundlegendes zur Logik Nieder mit den Klammern . . . Das Assoziativgesetz ermöglicht uns, die Klammerung zu vereinfachen: die Schreibweise F =A∧B∧C∧D soll etwa für eine beliebige Formel der folgenden Aufzählung stehen: F = (((A ∧ B) ∧ C) ∧ D) F = ((A ∧ B) ∧ (C ∧ D)) F = ((A ∧ (B ∧ C)) ∧ D) F = (A ∧ ((B ∧ C) ∧ D)) F = (A ∧ (B ∧ (C ∧ D))) Analoges gelte für Disjunktionen (und natürliche auch für längere oder kürzere Konjunktionen bzw. Disjunktionen). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 88 Grundlegendes zur Logik . . . aber nicht mit allen!! Wenn F eine Teilformel ist, dann müssen die äußeren Klammer erhalten bleiben! (z.B., wenn sie das F von oben als Teil von z.B. G betrachten, wie in G = F ∨ H , also G = (A ∧ B ∧ C ∧ D) ∨ H , und nicht G = A ∧ B ∧ C ∧ D ∨ H , denn dann wäre nicht mehr klar, ob Sie . . . C ∧ (D ∨ H) oder (. . . C ∧ D) ∨ H meinen – und das macht einen Unterschied! Wir verzichten also nicht ganz auf Klammern. Insbesondere haben wir keine sogenannte Präze” denz“ der Operatoren vereinbart (eben deshalb ist im Beispiel eben nicht klar, welche Variante gemeint ist). Klammern haben gegenüber einer Präzedenzregel den Vorteil, dass immer unmittelbar klar ist, was zusammengehört (das vermeidet Fehler und Missverständnisse! Trotzdem werden wir später noch eine solche Präzedenzregel einführen (es vereinfacht die Schreibweise für Hornformeln doch deutlich) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 89 Grundlegendes zur Logik Nützliche Verallgemeinerungen Zunächst führen wir die abkürzende Schreibweisen ( Wn ( i=1 Gi) für G1 ∨ · · · ∨ Gn ein. Dann gilt: Vn Gi) für G1 ∧ · · · ∧ Gn und i=1 Satz 8. [Verallgemeinerte deMorgan’sche Regeln, verallg. Distributitivtät] ¬( ¬( (( (( Wm i=1 Fi) ∧ ( i=1 Fi) ∨ ( Vm Wn i=1 Fi ≡ ( i=1 Fi) ≡ ( Vn Wn Vn Gj )) ≡ ( j=1 Gj )) ≡ ( c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen ¬Fi) i=1 ¬Fi) Wn j=1 Vn i=1 Wm Wn i=1 ( j=1 (Fi ∧ Gj ))) i=1 ( j=1 (Fi ∨ Gj ))) Vm Vn Version 0.9, 14. Dezember 2006, Seite 90 Grundlegendes zur Logik Normalformen Jede Formel, auch wenn sie noch so kompliziert aussieht, kann in einfacher“ strukturierte Normalformen ge” bracht werden. Das ist eine wichtige Voraussetzung, um dann möglichst einfach algorithmisch die Erfüllbarkeit oder andere Eigenschaften der Formel prüfen zu können. Definition 9. [Literal, Normalformen] Ein Literal ist eine atomare Formel oder die Negation einer atomaren Formel (auch positives Literal bzw. negatives Literal genannt). Eine Formel F ist in konjunktiver Normalform (KNF), falls sie eine Konjunktion von Disjunktionen von Literalen ist, F hat also die Form Vn Wmi F = ( i=1( j=1 Li,j )) mit Li,j ∈ {A1, A2, . . . } ∪ {¬A1, ¬A2, . . . } . Eine Formel F ist in disjunktiver Normalform (DNF), falls sie eine Disjunktion von Konjunktionen von Literalen ist, F hat also die Form Wn Vmi F = ( i=1( j=1 Li,j )), mit Li,j wie eben. Beispiel DNF: (A ∧ B) ∨ (A ∧ C) ∨ (B ∧ ¬D) Beispiel KNF: (A ∨ B) ∧ (¬A ∨ ¬C) ∧ (B ∨ D) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 91 Grundlegendes zur Logik Äquivalente Normalformen Satz 10. [Existenz äquivalenter Normalformen] Für jede Formel F gibt es eine äquivalente Formel in KNF und eine äquivalente Formel in DNF. Der Beweis funktioniert wieder mittels Induktion über den Formelaufbau und ist konstruktiv (für endliche Formeln), d.h. er liefert ein rekursives Verfahren, um Formeln in DNF bzw. KNF zu überführen. Wir schauen uns aber eine etwas direktere Umformungsmethode an (für sehr Neugierige: der Beweis findet sich z.B. auf den Seiten 27 und 28 der fünften Auflage von Uwe Schönings Buch Logik für Informatiker, 2000, Spektrum Verlag). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 92 Grundlegendes zur Logik Eine Umformungsmethode zur Herstellung der KNF Gegeben: Eine Formel F. Erster Schritt: Ersetze in F jedes Vorkommen einer Teilformel der Bauart ¬¬G ¬(G ∧ H) ¬(G ∨ H) durch durch durch G (¬G ∨ ¬H) (¬G ∧ ¬H) bis keine derartige Teilformel mehr vorkommt. Zweiter Schritt: Ersetze jedes Vorkommen einer Teilformel der Bauart (F ∨ (G ∧ H)) ((F ∧ G) ∨ H) durch durch ((F ∨ G) ∧ (F ∨ H)) ((F ∨ H) ∧ (G ∨ H)) bis keine derartige Teilformel mehr vorkommt. Die resultierende Formel ist in KNF (es kommen eventuell noch überflüssige, aber zulässige Disjunktionen vor, die Tautologien sind). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 93 Grundlegendes zur Logik Beispiel für eine Umformung in KNF Gegeben: F = ¬(A ∨ B) ∨ (¬C ∧ D). Umformung in KNF, 1. Schritt: ¬(A ∨ B) ersetzen: (¬A ∧ ¬B) ∨ (¬C ∧ D) = F 1. 2. Schritt: F 1 hat die Form G ∨ (¬C ∧ D) mit G = (¬A ∧ ¬B). Also läßt sich die erste Umformungsregel anwenden (die zweite Regel wäre auch anwendbar): F 2 = (G ∨ ¬C) ∧ (G ∨ D) = ((¬A ∧ ¬B) ∨ ¬C) ∧ ((¬A ∧ ¬B) ∨ D)). Die Anwendung der zweiten Regel auf beide Teile der top-level Konjunktion und Vereinfachung der Klammerung bringt das gewünschte Ergebnis: F 3 = (¬A ∨ ¬C) ∧ (¬B ∨ ¬C) ∧ (¬A ∨ D) ∧ (¬B ∨ D). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 94 Grundlegendes zur Logik Ableiten von DNF/KNF aus einer Wahrheitstafel Ableiten einer DNF: Jede Zeile der Wahrheitstafel mit Wahrheitswert 1 wird zu einer Konjunktion. Jede atomare Aussage Ai, die in der Zeile mit einer 1 belegt ist, wird als Ai in die Konjunktion übernommen, die mit 0 belegten Ai werden zum Literal ¬Ai. Ableiten einer KNF: Analog zu oben: Jede Zeile mit dem Wahrheitswert 0 wird zu einer Disjunktion. Jede atomare Aussage Ai, die mit einer 1 belegt ist, wird als ¬Ai in die Disjunktion übernommen, die mit 0 belegten Ai werden zum Literal Ai. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 95 Grundlegendes zur Logik Beispiel für KNF/DNF-Ableitung per Wahrheitstafel Beispiel: Eine (unbekannte) Formel F habe die Wahrheitstafel A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 0 0 1 1 0 0 Äquivalente Formel F D in DNF: (¬A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ C) Äquivalente Formel F K in KNF: (A ∨ B ∨ ¬C) ∧ (A ∨ ¬B ∨ C) ∧ (A ∨ ¬B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 96 Grundlegendes zur Logik Kontrolle der DNF Frage: Sind Sie überzeugt, dass das stimmt? Wenn Ihnen das Vertrauen fehlt, kontrollieren Sie mittels Wahrheitstafel! Hier für F D : A 0 0 0 0 1 1 1 1 ¬A 1 1 1 1 0 0 0 0 B 0 0 1 1 0 0 1 1 ¬B 1 1 0 0 1 1 0 0 C 0 1 0 1 0 1 0 1 ¬C 1 0 1 0 1 0 1 0 F 1 0 0 0 1 1 0 0 ¬A ∧ ¬B ∧ ¬C A ∧ ¬B ∧ ¬C A ∧ ¬B ∧ C 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 Das ist unmittelbar einleuchtend: jede wahre“ Zeile für F führt in der DNF-Formel zu einem ” erfüllten Disjunktionsglied, alle anderen Zeilen werden ignoriert. Spannender“ ist die bei der ” KNF-Formel (s. nächste Folie). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 97 FD 1 0 0 0 1 1 0 0 Grundlegendes zur Logik Kontrolle der KNF A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 0 0 1 1 0 0 A ∨ B ∨ ¬C 1 0 1 1 1 1 1 1 A ∨ ¬B ∨ C 1 1 0 1 1 1 1 1 A ∨ ¬B ∨ ¬C 1 1 1 0 1 1 1 1 ¬A ∨ ¬B ∨ C 1 1 1 1 1 1 0 1 ¬A ∨ ¬B ∨ ¬C 1 1 1 1 1 1 1 0 Diese KNF führt zu einer 1, wenn alle Zeilen der Ausgangstabelle, die zu einer 0 führen, gleichzeitig nicht zu dieser 0 führen. So führt z.B. die Belegung A(A) = A(B) = 0, A(C) = 1 zu einer 0, also genau dann, wenn die Formel ¬A ∧ ¬B ∧ C erfüllt ist. Wir dürfen in der KNF also keine 1 produzieren, wenn dieser Fall (oder einer der vier anderen) eintritt, d.h. die Negation dieser Formel muss erfüllt sein (und die der anderen vier 0-Fälle). Die Negation ist eben ¬(¬A ∧ ¬B ∧ C) = ¬¬A ∨ ¬¬B ∨ ¬C = A ∨ B ∨ ¬C , unser erstes Konjunktionsglied! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 98 FK 1 0 0 0 1 1 0 0 Grundlegendes zur Logik Hornformeln Definition 11. [Hornformeln] Eine Formel F ist eine Hornformel, falls F in KNF ist und jede Disjunktion in F höchstens ein positives Literal aufweist. Beispiel: Eine Hornformel ist F = (A ∨ ¬B) ∧ (¬C ∨ ¬A ∨ D) ∧ (¬A ∨ ¬B) ∧ D ∧ ¬E Das kann man anschaulicher als Konjunktion (oder Menge) von Implikationen darstellen (diese Form wollen wir die Implikationsform nennen, erlaubt sind nur Implikationen mit einer 0 oder einem/dem positiven Literal auf der rechten Seite der Implikation): F = (B → A) ∧ (C ∧ A → D) ∧ (A ∧ B → 0) ∧ (1 → D) ∧ (E → 0) Hier steht die 0 für eine beliebige unerfüllbare Formel, z.B. (A ∧ ¬A) und 1 für eine beliebige Tautologie, z.B. (A ∨ ¬A). Zudem lassen wir die Klammern um die inneren Konjunktionen weg (d.h., ∧ bindet stärker, als →). [Diese Schreibweisen werden wir uns ab jetzt generell gestatten!] c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 99 Grundlegendes zur Logik Tests des Wahrheitsgehaltes von Formeln Wir suchen nach algorithmischen Tests auf Gültigkeit, Erfüllbarkeit, Unerfüllbarkeit einer gegebenen Formel (beachte: einen Test auf Gültigkeit von F kann man durch einen Unerfüllbarkeitstest von ¬F ersetzen und umgekehrt!). Die Erfüllbarkeit oder Unerfüllbarkeit von aussagenlogischen Formeln läßt sich immer überprüfen, aber i.A. nur mit großem Aufwand (s. Wahrheitstafeln). Für Hornformeln gibt es aber einen sehr effizienten Erfüllbarkeitstest! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 100 Grundlegendes zur Logik Ein Erfüllbarkeitstest für Hornformeln Eingabe: eine Hornformel F in Implikationsform. Schritt 1: Markiere jedes Vorkommen einer atomaren Formel A in F , falls es in F eine Teilformel der Form (1 → A) gibt. Schritt 2: Tue das Folgende Falls es in F eine Teilformel G der Form (A1 ∧ · · · ∧ An → B), n ≥ 1, gibt und alle Ai, 1 ≤ i ≤ n bereits markiert sind und B noch nicht markiert ist, dann markiere B . Falls es in F eine Teilformel G der Form (A1 ∧ · · · ∧ An → 0), n ≥ 1, gibt und alle Ai, 1 ≤ i ≤ n bereits markiert sind, dann gib unerfüllbar aus und stoppe. bis es keine Formel der beiden Bauarten mehr gibt. Schritt 3: Gib erfüllbar aus und stoppe. Die Markierung gibt die erfüllende Belegung an: A(Ai) = 1 gdw. Ai hat eine Markierung (und 0 sonst). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 101 Grundlegendes zur Logik Ist der Algorithmus korrekt? Satz 12. Der obige Markierungsalgorithmus ist für die vorgesehene Eingabe korrekt und stoppt immer nach spätenstens n Markierungsschritten (n = Anzahl der atomaren Formeln in der Eingabeformel). Beweisskizze: Zuerst zeigt man, dass der Algorithmus terminiert: es können höchstens n atomare Formeln markiert werden. Dann geht es um die Frage, ob der Algorithmus die richtige Antwort liefert: Wenn es überhaupt Modelle für F gibt, dann müssen sie die vom Algorithmus markierten atomaren Formeln mit 1 belegen (offensichtlich für 1 → Ai und, in der Konsequenz, dann auch für A1 ∧ · · · ∧ An → B , wenn A1 bis An bereits markiert sind). Hieraus folgt auch, dass der Algorithmus bei A1 ∧ · · · ∧ An → 0 und markierten Ai korrekterweise unerfüllbar ausgibt. Der gegebenenfalls folgende Schritt 3 antwortet dann korrekt mit einem Modell (alle Konjunktionsglieder von F müssen 1 sein): Sei G ein beliebige Disjunktion in F . Ist G eine atomare Formel, dann ist G markiert, als A(G) = 1. Hat G die Form A1 ∧ · · · ∧ An → B , so sind entweder alle atomaren Formeln markiert (inkl. B), und damit A(G) = 1, oder für mindestens ein j , 1 ≤ j ≤ n gilt A(Aj ) = 0. Auch dann folgt A(G) = 1. Weil in Schritt 2 nicht c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 102 Grundlegendes zur Logik unerfüllbar ausgegeben wurde, gilt die Argumentation so auch für A1 ∧ · · · ∧ An → 0 (also A(G) = 1 und damit A(F ) = 1, denn alle denkbaren Varianten für Konjunktionsglieder führen zu einer 1). Anmerkung: Der Markierungsalgorithmus konstruiert das kleinste Modell A für F (falls 0 0 existent), d.h. für alle Modelle A und alle atomaren Formeln B gilt A(B) ≤ A (B). [Beachte: 0 und 1 sind natürliche Zahlen und ≤ ist hier die ganz gewöhnliche Kleiner-GleichRelation über natürlichen Zahlen]. Beispiel (s. Übung): F = (¬A ∨ ¬B ∨ ¬D) ∧ ¬E ∧ (¬C ∨ A) ∧ C ∧ B ∧ (¬G ∨ D) ∧ G c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 103 Grundlegendes zur Logik Erfüllbarkeitstest durch syntaktische Umformung: Resolution Die Resolution ist ein sogenannter Kalkül: eine Menge von rein mechanisch anwendbaren syntaktischen Umformungsregeln. Die Resolution generiert (wenn die nötigen Voraussetzungen erfüllt sind) in einem Schritt aus zwei Formeln eine dritte Formel. Sie soll die Frage nach der Unerfüllbarkeit einer gegebenen Formelmenge beantworten. Wichtige Fragen: Ist der Kalkül korrekt und vollständig? Korrektheit bedeutet, dass keine erfüllbare Formelmenge durch den Kalkül als unerfüllbar bezeichnet wird. Vollständigkeit bedeutet, dass jede unerfüllbare Formelmenge auch als solche erkannt wird. Zur Einnerung: Mittels eines Unerfüllbarkeitstest kann man z.B. testen, ob eine Formel F eine Tautologie ist, indem man ¬F auf Unerfüllbarkeit prüft. Oder man kann die Frage beantworten, ob eine Formel G aus einer Formelmenge {F1, F2, . . . , Fk } folgt – aus Aufgabe 35 wissen wir, dass dies der Frage nach der Unerfüllbarkeit von F1 ∧ F2 ∧ · · · ∧ Fk ∧ ¬G entspricht. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 104 Grundlegendes zur Logik Details zur Resolution (I) Aufgabe: Prüfen, ob eine beliebige Formel F unerfüllbar ist. 0 Vorgehen: Zunächst muß aus F eine äquivalente Formel F in KNF erzeugt werden, also z.B. 0 F = (L1,1 ∨ · · · ∨ L1,n1 ) ∧ · · · ∧ (Lk,1 ∨ · · · ∨ Lk,nk ). Diese Formel wird nun in eine sogenannte Klauselform gebracht – sie wird als Menge von Klauseln wie folgt dargestellt F k = {{L1,1, . . . , L1,n1 }, . . . , {Lk,1, . . . , Lk,nk }}. Jedes Element von F k heißt Klausel und repräsentiert eine Disjunktion der enthaltenen Literale. Durch die Mengendarstellung verschwinden mehrfach auftretende Elemente und syntaktische Unterschiede, die sich aus Kommutativität, Assoziativität und Idempotenz ergeben würden (s. das folgende Beispiel). c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 105 Grundlegendes zur Logik Details zur Resolution (II) Beispiel: Die folgenden äquivalenten KNF-Formeln führen alle zur selben Darstellung in Klauselform, {{A3}, {A1, ¬A2}}: ((A1 ∨ ¬A2) ∧ (A3 ∨ A3)) (A3 ∧ (¬A2 ∨ A1)) (A3 ∧ ((¬A2 ∨ ¬A2) ∨ A1)) usw. 0 Unsere Begriffe wie Erfüllbarkeit etc. lassen sich unmittelbar von der Formel F auf die Klauselform übertragen. Beispielsweise ist A genau dann ein Modell für F k , wenn es ein Modell 0 0 für F (und damit für F ) ist. Weiter folgt z.B. für jede Formel F in KNF und jedes Modell 0 A von F , dass A auch ein Modell für jedes Konjunktionsglied von F ist – und damit auch ein Modell für jede Klausel in F k . Zur Vereinfachung bezeichnen wir die Klauselform einer Formel F ebenfalls mit F . c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 106 Grundlegendes zur Logik Resolventen Definition 13. [Resolvent] Seien K1, K2 und R Klauseln. Dann heißt R Resolvent von K1 und K2, falls es ein Literal L gibt mit L ∈ K1 und L̄ ∈ K2 und R die folgende Form hat: R = (K1 − {L}) ∪ (K2 − {L̄}). ( Hierbei ist L̄ definiert als L̄ = ¬Ai, falls L = Ai Ai , falls L = ¬Ai. Sprechweise: R wird aus K1, K2 nach L resolviert. Die leere Menge, die als Resolvent zweier Klauseln K1 = {L}, K2 = {L̄} auftreten kann, wird mit bezeichnet. Tritt diese leere Menge als Element einer Klauselmenge auf, dann ist diese Menge (bzw. die durch sie repräsentierte Formel) unerfüllbar (wie wir gleich sehen werden). Wir werden auch als die leere Klausel bezeichnen. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 107 Grundlegendes zur Logik Das Resolutionslemma der Aussagenlogik Satz 14. [Resolutionslemma] Sei F eine Formel in KNF, dargestellt als Klauselmenge. Ferner sei R ein Resolvent zweier Klauseln K1 und K2 in F . Dann sind F und F ∪ {R} äquivalent. Beweis: Zu zeigen ist nun, dass jedes Modell für F auch Modell für F ∪ {R} ist und umgekehrt. Sei A eine zu F (und damit auch zu F ∪ {R} passende Belegung. Die Richtung A |= F ∪ {R} ⇒ A |= F ergibt sich unmittelbar, denn wenn A jede Klausel in F ∪ {R} erfüllt, dann erfüllt sie natürlich auch jede Klausel in F . Noch zu zeigen bleibt die Richtung A |= F ⇒ A |= F ∪ {R}. Wir nehmen also an, dass A |= F und damit auch A |= Ki für alle Klauseln Ki in F . Der Resolvent R habe die Form aus der Definition, d.h. R = (K1 −{L})∪(K2 −{L̄}) mit K1, K2 ∈ L und L ∈ K1, L̄ ∈ K2. Nun müssen wir zwei Fälle unterscheiden – entweder ist unter A das Literal L oder seine Negation L̄ erfüllt (beides zugleich geht natürlich nicht!) c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 108 Grundlegendes zur Logik Fall 1: A |= L. Dann folgt wg. A |= K2 und A 6|= L̄, dass A |= K2 − {L̄} und damit A |= R. Fall 2: A 6|= L. Dann folgt wg. A |= K1, dass A |= K1 − {L̄} und damit A |= R. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 109 Grundlegendes zur Logik Mengen von Resolventen Definition 15. Sei F eine Klauselmenge. Dann ist Res(F ) die Vereinigung von F mit den Resolventen, die man zu den Klauseln in F finden kann. Res(F ) ist definiert als Res(F ) = F ∪ {R|R ist Resolvent zweier Klauseln in F }. Außerdem setzen wir: Res0(F ) Resn+1(F ) = = F Res(Resn(F )) für n ≥ 0 und schließlich Res∗(F ) = S n≥0 Resn(F ). Die Mengen Res(F ), Res0(F ), . . . sind natürlich ebenfalls Klauselmengen. Übrigens: Für jede endliche Klauselmenge F kommt irgendwann der Punkt, an dem man keine neuen Resolventen mehr findet, d.h. es existiert ein (kleinstes) k ∈ N, so dass Res∗ = Resk (F ) = Resk+1(F ) = . . . . c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 110 Grundlegendes zur Logik Resolution in der Aussagenlogik Satz 16. [Resolutionssatz der Aussagenlogik] Eine Klauselmenge F ist unerfüllbar genau dann, wenn ∈ Res∗(F ).1 Aus dem Resolutionssatz leitet sich der folgende Algorithmus ab, der für eine Formel F in KNF entscheidet, ob sie unerfüllbar ist: Eingabe: eine Formel F in KNF. Algorithmus: Bringe F in Klauselform. Wiederhole G := F F := Res(F ) bis ( ∈ F ) oder (F = G) Falls ( ∈ F ) dann gib F ist unerfüllbar“ aus ” sonst gib F ist erfüllbar“ aus ” 1 Der Beweis des Satzes ist konstruktiv und führt zu einem korrekten und vollständigen Verfahren, um die Unerfüllbarkeit von Klauselmengen zu untersuchen. Die Korrektheit zeigt man direkt, die Vollständigkeit mittels Induktion über die Anzahl der in F vorkommenden atomaren Formeln. Der Beweis ist nicht kompliziert, aber langwierig. Interessierte finden ihn auf Seite 41f in Schönings Logik für Informatiker, 5. Aufl., Spektrum. c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 111 Grundlegendes zur Logik Merke: Der Algorithmus kann in manchen Fällen sehr schnell zu einer Entscheidung führen, in anderen müssen erst exponentiell viele Klauseln erzeugt werden! Beachte: Falls F unerfüllbar ist, so wird irgendwann die leere Klausel erzeugt. An der sogenannten Herleitung dieser leerer Klausel waren möglicherweise wesentlich weniger Klauseln beteiligt, als von obigem Algorithmus erzeugt werden. Für einen Beweis der Unerfüllbarkeit einer Formel kann man sich auf diese Klauseln beschränken: Definition 17. [Deduktion/Herleitung/Beweis] Eine Deduktion (oder Herleitung oder Beweis) der leeren Klausel aus einer Klauselmenge F ist eine Folge K1, K2, . . . , Km von Klauseln mit folgenden Eigenschaften: Km ist die leere Klausel und für jedes i = 1, . . . , m gilt, dass Ki entweder Element von F ist oder aus gewissen Klauseln Ka, Kb mit a, b < i resolviert werden kann. Satz 18. Eine Klauselmenge F ist genau dann unerfüllbar, wenn eine Deduktion der leeren Klausel aus F existiert. Merke: Um zu beweisen, dass eine Klauselmenge F unerfüllbar ist, genügt es, eine Herleitung c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 112 Grundlegendes zur Logik der leeren Klausel anzugeben. Bei der Angabe einer solchen Herleitung sollte nicht nur die nackte Folge angegeben werden, sondern auch deutlich werden, welche Klauseln resolviert werden: Beispiel: F = {{A, B, ¬C}, {¬A}, {A, B, C}, {A, ¬B}}. F ist unerfüllbar, denn die leere Klausel kann man z.B. wie folgt herleiten: K1 K2 K3 K4 K5 K6 K7 = = = = = = = {A, B, ¬C} {A, B, C} {A, B} {A, ¬B} {A} {¬A} (Klausel aus F ) (Klausel aus F ) (Resolvent von K1, K2) (Klausel aus F ) (Resolvent von K3, K4) (Klausel aus F ) (Resolvent von K5, K6) Übrigens: es müssen nicht immer die beiden direkten Vorgänger in der Folge sein, die zu einem Resolventen führen, K9 könnte z.B. Resolvent von K4 und K8 sein. Es ist natürlich auch möglich, die graphische Darstellung aus der Vorlesung zu verwenden! c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 113 Grundlegendes zur Logik Weitere Inhalte [Werden hier oder an anderer Stelle ergänzt] c 2003-6, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 0.9, 14. Dezember 2006, Seite 114