vierseitig - www2.inf.h

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