Intelligente Systeme A, WS06/07

Werbung
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
Herunterladen