WBSMaterial - Institut für Informatik

Werbung
Materialien zur
Vorlesung Wissensbasierte Systeme
Prof. Dr. G. Brewka
WS01/02
Gliederung der Vorlesung
1. Einführung: Was ist KI
2. Wissensbasierte Systeme, Problemlösen und Suche
3. Heuristische Suche, A*, Hill-Climbing, Genetische Algorithmen
4. Whlg. Aussagenlogik
5. Whlg. Prädikatenlogik
6. Answer Set Programming I: definite Programme, normale Programme
7. Answer Set Programming II: erweiterte Programme, Anwendungen
8. Default Logik
9. Anwendungen der DL: Modellbasierte Diagnose und Situationskalkül
10. STRIPS, Nichtlineares Planen
11. Graphplan
12. Probeklausur
13. Maschinelles Lernen I: Entscheidungsbäume, Versionsraumlernen
14. Maschinelles Lernern II: Induktives Logisches Programmieren
15. Data Mining
Vorbemerkung:
Das hier zusammengestellte Material betrifft ausschließlich den Stoff der Vorlesung, für den
keine Folien verfügbar sind. Die Folien sind über den Lernserver des Instituts für Informatik
zu erhalten.
1
3. Heuristische Suchverfahren
versuchen, optimale oder wenigstens annähernd optimale Lösung in exponentiell großem
Lösungsraum durch problemspezifische Information zu finden.
I.
II.
Ansätze, die Lösung schrittweise konstruieren (A*, Greedy-Verfahren)
Verbesserungsverfahren: starten mit zufällig gewählter vollständiger Lösung und
versuchen diese zu verbessern.
Zu I: Greedy Algorithmen
Lösen von Optimierungsproblemen:
gegeben: Gütefunktion w für Lösungen und Teillösungen
optimale Lösung konstruiert durch schrittweises Erweitern einer unvollständigen Teillösung.
Ausgangspunkt ist leere Lösung. Von allen Erweiterungsmöglichkeiten wird jeweils diejenige
gewählt, die zu größtem (bzw. kleinstem) w-Wert führt
(greedy = gefräßig, der größte Bissen wird jeweils geschluckt)
Beispiele:
Auftragsplanung:
Gegeben: Menge A von n "Aufträgen", jeweils in einer Zeiteinheit zu bewältigen, zu jedem
Auftrag i gibt es Gewinn pi und Termin di, an dem er abgeschlossen sein muss (sonst kein
Gewinn). Gesucht: Menge M von Aufträgen, so dass
a) M sich so sortieren lässt, dass jeder Auftrag vor seinem Abschlusstermin erledigt wird und
b) der Gesamtgewinn maximal ist.
Beispiel:
Job
1
2
3
4
Gewinn
20
25
10
5
Lösung
3,2,4
4,2
1,2,4
Deadline
2
2
1
3
Gewinn
40
30
50
beste Lösung
Greedy Algorithmus:
Ordne Aufträge nach absteigenden Gewinnen: p1 ≥ p2 ≥ ...≥ pn;
A := {};
for i:= 1 to n do
if A  {i} ist zulässige Lösung then A := A  {i};
Gib A aus
Bemerkung:
2
1. es ist wesentlich, dass eine Menge von Aufträgen erzeugt wird, die dann noch in
Reihenfolge gebracht werden muss, nicht direkt eine Folge.
2. Aus diesem Algorithmus erhält man den kanonischen Greedy-Algorithmus, wenn man statt
der Gewinne eine entsprechende Wertefunktion w verwendet.
Für Korrektheitsbeweis allgemeinere Betrachtung:
Sei E endliche Menge, U Menge von Teilmengen von E. (E,U) heißt Teilmengensystem, falls
gilt:
1. {}  U;
2. A  B, B  U => A  U
Ein Teilmengensystem heißt Matroid, wenn folgende Austauscheigenschaft gilt:
X, Y  U, |X| < |Y| => x Y - X: X  {x}  U
Es gilt folgender Satz:
Sei (E,U) ein Teilmengensystem. Der kanonische Greedy-Algorithmus liefert für das
zugehörige Optimierungsproblem (bzgl. beliebiger Wertefunktion w: E -> R) die optimale
Lösung gdw. (E,U) ein Matroid ist.
Beweis: Übung
Mit diesem Satz ergibt sich Korrektheit des Auftragsplanungsalgorithmus direkt aus
entsprechender Matroideigenschaft:
E: Menge A von Aufträgen
U: Menge L(A) von Lösungen, d.h. Aufträgen, so dass Sortierung entsprechend deadline
möglich ist
Es gilt offensichtlich (A, L(A)) ist Teilmengensystem. Nachweis der Austauscheigenschaft:
Sei b ein Element in Y-X mit größter (= spätester) deadline. Dieses Element kann zu X
hinzugefügt werden, ohne Lösungseigenschaft zu verletzen.
Typ II-Verfahren: Hill Climbing
Starte mit beliebiger vollständiger Lösung, modifiziere sie nach bestimmten Regeln und/oder
zufällig. Wenn neu erzeugte Lösung besser ist als alte, übernimm sie und mache so weiter.
Erzeuge Anfangslösung l;
repeat
modifiziere l zu l';
if l' besser als l then l := l
until längere Zeit keine Verbesserung;
Gib l als akzeptable Lösung aus
Problem: lokale Optima, möglicherweise keine benachbarte (= durch Modifikation
herstellbare) Lösung besser als aktuelle Lösung.
Kann dadurch vermindert werden, dass man Verfahren wiederholt mit neuer Zufallslösung
startet, bisher beste alte Lösung wird vermerkt.
3
Beispiel: Travelling Salesman Problem (TSP)
Annahme: Entfernungsmatrix symmetrisch
Initialisierung: zufällig erzeugte Permutation
lokale Verbesserung: wähle 2 Städte vi, vj zufällig (o.B.d.A. i < j), falls
M[vi,vi+1] + M[vj,vj+1] > M[vi,vj] + M[vi+1,vj+1]
so ersetze bisherige Rundreise durch v1, v2 , ... , vi , vj, vj-1,..., vi+2, vi+1, vj+1, ..., vn
D.h.: vi mit vj verbunden, vi+1 mit vj+1, Teil der Rundreise zwischen vj und vi+1
andersherum.
___________
|
|
vi+1
vj
|
|
vi
vj+1
| _________ |
___________
|
|
vi+1_______ vj
_____|______
vi
vj+1
| _________ |
Beispiel 2: Erfüllbarkeit aussagenlogischer Formeln in 3-KNF
F in 3-KNF gdw F ist Konjunktion von Disjunktionen von Literalen (aussagenlogische
Variablen und deren Negation). Pro Disjunktion 3 Literale
(p v ¬q v r) & (¬p v q v s) & ...
Gesucht: Wahrheitsbelegung I: V -> {w,f} der Variablen, so dass Formel wahr wird
(F wahr gdw. alle Disjunktionen in F wahr, Disjunktion wahr gdw. mindestens ein Literal
wahr, Literal L wahr gdw. L = ¬v und I(v) = f oder L = v und I(v) = w.
Algorithmus:
Wähle zufällig Anfangsbelegung I
while es gibt I', so daß
1) I' unterscheidet sich von I im Wahrheitswert genau einer Variable und
2) I' macht mehr Disjunktionen wahr als I
I := I';
if I erfüllt alle Disjunktionen then write('erfüllbar') else write('nicht erfüllbar')
Überraschend gute Ergebnisse: Wahrscheinlichtkeit, daß man für Formel mit n=200
Variablen erfüllende Interpretation nicht findet, obwohl es sie gibt etwa 2,15 · 10-16.
4
Genetische Algorithmen
Versuchen, natürliche Evolutionsprozesse nachzubilden.
Nicht einzelene Lösung wird verbessert, sondern Population vom Lösungen.
Sowohl zufällige Änderungen (Mutationen) als auch Kreuzungen (Cross-over) von Lösungen.
Lösungen mit besten Bewertungen (Fitness) überleben jeweils.
Algorithmus:
erzeuge zufällig Anfangspopulation von Lösungen P = {a1,...,am};
repeat
erzeuge bestimmte Anzahl zufälliger Mutationen der Lösungen in P;
erzeuge bestimmte Anzahl zufälliger Kreuzungen von Lösungspaaren aus P;
bewerte Fitness aller erhaltenen Lösungen;
wähle die m fittesten Lösungen aus und weise diese P zu
until keine weitere Verbesserung der Fitness
gib die in der erhaltenen Population fitteste Lösung aus
Kreuzung:
einfach, wenn Lösungen als Bitstrings codiert sind: werden an geeigneter Stelle
aufgeschnitten und neu zusammengesetzt.
Manchmal weniger offensichtlich:
Beispiel TSP:
v = (v1,..., vn)
w = (w1,..., wn)
Nicht einfach Vorderteil von v mit Reststück von w kombinierbar. Idee: wähle beliebigen
Ausschnitt v' von v und nimm aus w der Reihe nach die Nachfolger des letzten Elements von
v', die noch nicht enthalten sind.
Beispiel:
v = (1 5 9 7 4 6 2 3 8)
w = (7 6 2 9 5 1 3 4 8)
zufällig gewählte Teilfolge: 5 9 7 4
neue Rundreise: (5 9 7 4 8 6 2 1 3)
5
4. Aussagenlogik
Einführung
Was ist Logik?
math. Logik?
das Wissenschaftsgebiet, das Folgerungsbeziehungen untersucht
mit math. Mitteln, Hauptziel: Präzisierung des Folgerungsbegriffs
Folgern: einige Beispiele
I.
Wenn es regnet, ist es naß.
Es regnet
_
Es ist naß.
II.
Es ist Sonntag oder es ist Montag.
Es ist nicht Sonntag.
_
Es ist Montag.
III.
Wenn warm ist, ist es nicht kalt.
IV.
Wenn es Sommer ist, ist es warm.
Es ist warm.
?
Es ist Sommer.
?
Wenn es kalt ist, ist es nicht warm
Die Fälle I und II sind klar, III und IV weniger (wir werden sehen, dass III gültig ist, IV
nicht).
Grundfrage: Wann kann man Sätze folgern, wann nicht?
Beobachtung: Folgerungen hängen nicht von Inhalt der Sätze ab, nur von deren Form:
Wenn die Sonne scheint, ist es warm.
die Sonne scheint
_
Es ist warm.
Wir können also vom Inhalt abstrahieren (und einfach A, B, C ... schreiben -> Variablen)
relevant ist nur, dass Aussagen wahr oder falsch (dargestellt als w/f, t/f oder1/0) sein können.
was interessiert uns an der Form? abhängig von der Logik
Aussagenlogik: nur einfache log. Verknüpfungen
Prädikatenlogik: auch Quantoren (für alle, es gibt), Prädikate, Funktionen.
Syntax und Semantik der Aussagenlogik
Relevante Verknüpfungen (Junktoren):
und, oder, wenn ... dann, nicht, genau dann ... wenn
math. Symbole: &,v,->,¬,<->
Aussagen werden durch Formeln repräsentiert.
Def.: logische Formeln (induktiv)
gegeben: Menge V von aussagenlogischen Variablen
1. jedes Element von V ist eine (atomare) Formel,
2. wenn P,Q Formeln sind, so auch ¬P, (P&Q), (PvQ), (P->Q), (P <->Q)
Klammern kann man weglassen, wenn Formeln aufgrund von Bindungsregeln eindeutig sind:
Bindungsstärke (abnehmend): ¬, &, v, ->, <->
6
Wann sind Formeln wahr oder falsch? Kann man nur beantworten, wenn man
a) Bedeutung der Junktoren und
b) die Wahrheitswerte der Variablen kennt
a) Bedeutung der Junktoren entspricht intuitiver Bedeutung in Umgangssprache. Beschrieben
durch Wahrheitstafeln:
P
1
1
0
0
Q
1
0
1
0
¬P
0
0
1
1
P&Q
1
0
0
0
PvQ
1
1
1
0
P -> Q
1
0
1
1
P <-> Q
1
0
0
1
b) man braucht Abbildung I: V -> {w,f} (Interpretation), um Formel auszuwerten.
Beispiel: F = (A v B) -> (C & D)
I(A) = I(C) = 1, I(B) = I(D) = 0,
I wertet F zu 0 aus.
Interpretationen, die eine Formel F (bzw. eine Menge von Formeln M) zu w auswerten,
heißen Modelle von F (bzw. M).
Folgerbarkeit: Q folgt aus F (bzw. M) heißt: immer wenn F (bzw. M) wahr ist, muß auch Q
wahr sein, also: jedes Modell von F (bzw. M) ist Modell von Q.
Wir schreiben F |= Q bzw. M |= Q
Folgerbarkeit lässt sich (in einfachen Fällen) anhand von Wahrheitstabellen überprüfen
Beispiel (siehe oben III):
P
1
1
0
0
Q
1
0
1
0
¬P
0
0
1
1
¬Q
0
1
0
1
P -> ¬Q
0
1
1
1
Q -> ¬P
0
1
1
1
Zeilen entsprechen Interpretationen. Interpretationen in Zeile 2,3,4 sind Modelle von P -> ¬Q,
diese sind auch Modelle von Q -> ¬P, also P -> ¬Q |= Q -> ¬P
Beispiel 2 (siehe oben IV):
P
1
1
0
0
Q
1
0
1
0
P -> Q
1
0
1
1
7
Modelle von P -> Q und Q entsprechen Zeilen 1 und 3, Zeile 3 macht aber P falsch, also folgt
P nicht aus P -> Q und Q.
Formeln heißen äquivalent (Symbol: , wenn jede Interpretation sie gleich auswertet.
Formeln, die in allen Interpretationen wahr sind, heißen allgemeingültig (Tautologien): A v
¬A
Formeln, die in allen Interpretationen falsch sind, widersprüchlich (Kontradiktionen): A & ¬A
Formeln, die mindestens 1 Modell besitzen, heißen erfüllbar.
Satz: Folgende Aussagen sind äquivalent:
1) P |= Q.
2) P -> Q ist Tautologie.
3) P & ¬Q ist Kontradiktion.
Widerspruchsbeweise zeigen Folgerungsbeziehungen über Variante 3).
Häufig verwendetes Beweisverfahren: Resolution
Beobachtung:
{A v B, ¬A v C} |= B v C
allgemeiner:
{A1 v...v Aj v...v Ak, B1 v...v Bi v...v Bm} |=
A1 v...v [Aj v]...v Ak v B1 v...v [Bi v]...v Bm, falls Aj = ¬Bi (geklammerte Teile entfallen)
Terminologie:
Ein Literal ist eine atomare Formel oder eine negierte atomare Formel.
Eine Formel ist in konjunktiver Normalform (KNF), wenn sie eine Konjunktion von
Disjunktionen von Literalen ist.
Disjunktionen von Literalen heißen auch Klauseln. Statt Konjunktionen von Klauseln
verwendet man äquivalent Klauselmengen. Die aus keinem Disjunktionsglied bestehende
leere Klausel [] ist äquivalent zu 0.
Satz: Jede Formel kann in eine äquivalente Formel in KNF überführt werden.
Resolutionsverfahren:
1. negiere zu überprüfende Formel F und füge sie zu Prämissen P hinzu,
2. überführe P {¬F} in KNF,
3. wende die Resolutionsregel an und versuche, die leere Klausel [] abzuleiten.
Satz: F ist folgerbar aus M gdw. auf diese Weise die leere Klausel hergeleitet werden kann.
Zur Überführung in KNF:
1. löse -> und <-> auf
verwendete Äquivalenzen:
P -> Q  ¬P v Q
P <-> Q  (P&Q) v (¬P&¬Q)
de Morgansche Regeln:
¬(P v Q)  (¬P & ¬Q)
¬(P & Q)  (¬P v ¬Q)
z.B. (a & b) v c ==> (a v c) & (b v c)
2. bringe Negationszeichen vor Variablen
3. multipliziere aus
8
Bsp:
AvB
A -> C ¬C -> ¬B
ableitbar C?
AvB
AvB
A -> C ¬A v C
(2)
¬C -> ¬B
C v ¬B (3)
¬C
¬C
¬B
¬A
A
[]
(1)
(4)
(5)
(6)
(7)
(8)
Resolvente aus 3,4
Resolvente aus 2,4
Resolvente aus 1,5
Resolvente aus 6,7
9
C also ableitbar.
5. Prädikatenlogik
Syntax und Semantik
Bestimmte Schlüsse werden von der Aussagenlogik nicht erfasst:
Alle Informatiker sind schlau.
Peters Vater ist Informatiker.
Peters Vater ist schlau.
Aus Sicht der Aussagenlogik sind die Prämissen dieses Schlusses einfach 2 unterschiedliche
Sätze. Erst wenn die Struktur dieser Sätze mitberücksichtigt wird, lässt sich der
Zusammenhang zwischen Prämissen und Konklusion in diesem Beispiel erfassen.
Die Prädikatenlogik berücksichtigt deshalb neben den aussagenlogischen Junktoren auch
folgende strukturelle Aspekte:
1) Sätze können aus Prädikaten (schlau), Funktionen (Vater) und Objektbezeichnern (Peter)
aufgebaut sein.
2) Sätze können Quantoren enthalten ("für alle ... gilt ..., es gibt ein ... für das gilt" )
Für die Definition der Formeln muß zunächst festgelegt werden, welche Variablen, welche
Prädikatensymbole und welche Funktionssymbole verwendet werden sollen. Bei letzteren ist
zusätzlich jeweils die Stelligkeit (Anzahl der Argumente) anzugeben. Konstanten können als
nullstellige Funktionssymbole aufgefaßt werden.
Die Definition erfolgt nun in 2 Schritten. Zunächst werden Terme definiert (Terme
bezeichnen immer ein bestimmtes Objekt)
Def.: Terme (induktiv)
1) eine Variable ist ein Term,
2) wenn f ein n-stelliges Funktionssymbol ist, t1,...,tn Terme, so ist f(t1,...,tn) ein Term.
Beispiele: x, y, Peter, Vater(Peter),...
Def.: Formeln (induktiv)
1) wenn P ein n-stelliges Prädikatensymbol ist, t1,...,tn Terme, so ist P(t1,...,tn) eine Formel,
2) wenn P und Q Formeln sind, so auch ¬P, (P&Q), (PvQ), (P->Q), (P <->Q),
3) falls x Variable ist und F Formel, so sind auch x F und x F Formeln.
Die nach 1) erzeugten Formeln heißen atomar. Literale sind atomare oder negierte atomare
Formeln. Ein Vorkommen einer Variable x heißt gebunden in F, falls dieses Vorkommen in
einer Teilformel von F der Form x G und x G liegt. Andernfalls heißt das Vorkommen frei.
Eine Formel heißt bereinigt, wenn freie und gebundene Variablen sowie durch verschiedene
Quantoren gebundene Variablen verschieden sind. Durch Umbenennen von Variablen kann
man Formeln immer bereinigen.
Beispiel: P(x, y) v x Q(x). Das erste Vorkommen von x ist frei, das zweite gebunden.
Wie werden Formeln ausgewertet?
10
in Aussagenlogik: atomare Sätze mit wahr oder falsch belegen.
jetzt: Menge festlegen, über die etwas ausgesagt wird, Funktions- und Prädikatensymbole zu
Funktionen und Prädikaten auf dieser Menge interpretieren.
Def.: (Struktur)
Eine Struktur ist ein Paar A = (UA, IA). Dabei ist UA eine beliebige nichtleere Menge
(Universum, Domain, Individuenbereich). IA ist eine Abbildung, für die gilt:
1. jedem k-stelligen Prädikatensymbol P im Definitionsbereich von IA wird ein k-stelliges
Prädikat über UA zugeordnet.
2. jedem k-stelligen Funktionssymbol f im Definitionsbereich von IA wird eine k-stellige
Funktion über UA zugeordnet.
3. jeder Variablen x im Definitionsbereich von IA wird ein Element von UA zugeordnet.
Wir schreiben PA statt IA(P), fA statt IA(f) und xA statt IA(x).
Sei F eine Formel, A eine Struktur. A heißt zu F passend, wenn alle in F vorkommenden
Funktions- und Prädikatensymbole sowie alle freien Variablen im Definitionsbereich von IA
liegen.
Def.: (Semantik der Prädikatenlogik)
Sei F eine Formel, A eine zu F passende Struktur. Der Wert eines Terms t in A, A(t), ist
induktiv wie folgt definiert:
1. Falls t = x für Variable x, so ist A(t) = xA
2. Falls t = f(t1,...,tk), so ist A(t) = fA(A(t1),...,A(tk))
Der Wahrheitswert einer Formel F unter A, A(F), ist induktiv wie folgt definiert:
1. Falls F = P(t1,...,tk), so ist A(F) = 1 wenn (A(t1),...,A(tk)) in PA, 0 sonst.
2. Falls F = ¬G, so ist A(F) = 1 wenn A(G) = 0, 0 sonst
3. Falls F = (G H), so ist A(F) = 1 wenn A(G) = 1 und A(H) = 1, 0 sonst.
4. Falls F = (G vH), so ist A(F) = 1 wenn A(G) = 1 oder A(H) = 1, 0 sonst.
5. Falls F = x G, so ist A(F) = 1 wenn für alle d in UA gilt A[x/d] (G) = 1, 0 sonst.
6. Falls F = x G, so ist A(F) = 1 wenn für ein d in UA gilt A[x/d] (G) = 1, 0 sonst.
Hierbei ist A[x/d] die Struktur, die mit A identisch ist bis auf den Wert von x.
Es gilt xA[x/d] = d.
Falls A(F) = 1, heißt A Modell von F.
F heißt (allgemein)gültig, falls jede passende Struktur F zu 1 auswertet.
Begriffe sind entsprechend auch für Mengen von Formeln definiert.
Wieder gilt: F gültig gdw ¬F unerfüllbar.
Die Begriffe Folgerung, Äquivalenz, Erfüllbarkeit sind definiert wie in der Aussagenlogik.
Beispiel: F = x y P(x,y)
11
Struktur A1:
Universum: {Peter, Claudia, Klaus}
P(x,y) soll bedeuten: x liebt y. F also: Jeder liebt jemanden.
Peter liebt Claudia, Claudia liebt Klaus, Klaus liebt Peter
Also:
PA1 = {(Peter,Claudia), (Claudia, Klaus), (Klaus, Peter)}
A1(F) = 1 gdw
1. A1[x/Peter](y P(x,y)) = 1 und
2. A1[x/Claudia](y P(x,y)) = 1 und
3. A1[x/Klaus](y P(x,y)) = 1
1. gibt es d, so daß A1[x/Peter,y/d]P(x,y)) = 1 ? Ja: d = Claudia, denn (Peter, Claudia) in PA1.
2., 3. ebenso für d = Klaus bzw. d = Peter.
Damit A1(F) = 1. F also erfüllbar.
Struktur A2:
Universum: natürliche Zahlen
P(x,y) soll bedeuten: x größer als y. F also: Jede natürliche Zahl ist größer als eine andere.
PA2 = {(n,m) | n > m}
A2(F) = 0 gdw es gibt d, so daß A1[x/d](y P(x,y)) = 0
für d = 0 gilt:
es gibt kein d' mit (d,d') in PA2. Also A1[x/d](y P(x,y)) = 0 und damit A2(F) = 0.
F ist also nicht allgemeingültig.
Bemerkung: Aussagenlogik ist ein Spezialfall der Prädikatenlogik: alle Prädikatensymbole
null-stellig. Variablen und Terme erübrigen sich dann.
Häufig verwendete Erweiterung: Prädikatenlogik mit Identität:
= als 2-stelliges Prädikatensymbol zugelassen. Standardinterpretation in allen Strukturen A:
=(t1,t2) bzw. (t1 = t2) ist wahr gdw t1A = t2A.
Beispiel: Gesucht eine erfüllbare Formel F der Prädikatenlogik mit Identität, so dass für jedes
Modell von F gilt: die Kardinalität des Individuenbereichs ist nicht größer als 2.
x y z ((x = y) v (x = z) v (y = z))
gesucht: Formel, die besagt
1) daß P antisymmetrische Relation ist.
x y (P(x,y) -> ¬P(y,x)) oder x y ¬(P(x,y)  P(y,x))
12
2) daß f injektive Funktion ist.
x y (f(x) = f(y) -> x = y)
3) daß f surjektive Funktion ist.
x y (f(y) = x)
Satz: Die Prädikatenlogik ist nicht entscheidbar
Es gibt also keinen Algorithmus, der bei Eingabe einer Prämissenmenge P und einer Formel F
"ja" liefert, falls P |= F, und "nein" sonst.
Es gibt aber vollständige Beweisverfahren (siehe 3.2), diese terminieren aber möglicherweise
nicht.
Resolution
Auch für die Prädikatenlogik lassen sich Widerspruchsbeweise mit Resolution führen
(Resolution ist widerlegungsvollständig für die Prädikatenlogik). Allerdings gibt es
verschiedene Komplikationen:
1) die Umformung in KNF wird komplizierter, da Quantoren berücksichtigt werden müssen
2) Literale mit Variablen müssen manchmal instantiiert werden, damit sie gleich werden
(Unifikation)
Für die Umformung in KNF werden folgende Äquivalenzen ausgenutzt:
Satz: Seien F und G Formeln. Es gilt:
1.
¬x F x ¬F
¬x F x ¬F
2.
(x F  x G) x (F  G)
(x F v x G) x (F v G)
3.
Falls x in G nicht frei vorkommt:
(x F  G) x (F  G)
(x F v G) x (F v G)
(x F  G) x (F  G)
(x F v G) x (F v G)
Mit diesen Äquivalenzen lassen sich alle Quantoren vor die Formel bringen (evtl. sind
Variablenumbenennungen nötig). Formeln dieser Art sind in Pränexform (PNF).
Satz: Für jede Formel F gibt es eine äquivalente Formel in Pränexform.
Bew.: Induktion über Formelaufbau.
Induktionsanfang: F atomar => F in PNF
Induktionsschritt:
1. F = ¬F1. G1= Q1y1Q2y2...QnynG' PNF von F1 (existiert nach Induktionsvoraussetzung).
Dann gilt F = -Q1y1-Q2y2...-Qnyn¬G', wobei - den All- in Existenzquantor verwandelt und
umgekehrt.
2. F = (F1 op F2) mit op in {v, ). Seien G1 = Q11y11Q12y12...Q1ny1nG1' und G2 =
Q21y21Q22y22...Q2my2mG2' zu F1 bzw. F2 äquivalente Formeln in PNF. Weiter gelte, daß
13
die gebundenen Variablen in G1 und G2 disjunkt sind (kann durch Umbenennen erreicht
werden). Dann ist F äquivalent zu
Q11y11Q12y12...Q1ny1n Q21y21Q22y22...Q2my2m(G1' op G2').
3. F = QxF1, Q in {, }. Q1y1Q2y2...QnynF1' sei PNF von F1. Durch Umbenennen kann x
verschieden gemacht werden von allen yi. Dann ist F äquivalent zu
QxQ1y1Q2y2...QnynF1'
Bemerkung: in Beweis steckt Algorithmus zur Umformung.



Beispiel:
¬xR(x) v (P(a) xQ(a,x))
x¬R(x) v x(P(a) Q(a,x))
x¬R(x) v y(P(a) Q(a,y))
xy(¬R(x) v (P(a) Q(a,y)))
Was nun noch stört, sind die Quantoren, mit denen Formeln beginnen. Diese können durch
Skolemisierung eliminiert werden. Skolemisieren entspricht der Einführung von neuen
Namen für Objekte.
Def.: Skolemform
Sei F= Q1y1Q2y2...QnynF1 eine bereinigte Formel in PNF. Die Skolemform von F entsteht
aus F durch
1) Ersetzen jeder existenzquantifizierten Variable x in F1 durch einen Funktionsterm
f(y1,...yk). Dabei ist f ein neues, nicht in F vorkommendes Funktionssymbol. Die
Stelligkeit von f ist die Anzahl der in F links vom Existenzquantor von x vorkommenden
Allquantoren. Die Argumente sind die Variablen dieser Allquantoren, von links nach
rechts.
2) Streichen aller Existenzquantoren.


Beispiel:
xyz(S(y,x) P(z,x))
x(S(suc(x),x) P(pre(x),x))
neue 1-stellige Funktionssymbole suc, pre
Skolemform
Satz: Sei F in bereinigter PNF. F ist erfüllbar gdw die Skolemform von F erfüllbar ist.
Achtung: Skolemisierung ist keine Äquivalenzumformung!! Kann aber wegen
Erfüllbareitsgleichheit für Widerspruchsbeweise verwendet werden.
Zusammenfassung der Umformungsschritte:
Gegeben: Formel F
1. Gegebenenfalls Bereinigen von F
2. Binden freier Variablen durch Voranstellen von Existenzquantoren (erfüllbarkeitsgleich)
3. Herstellen der bereinigten PNF (dabei evtl. Variablenumbenennungen)
4. Herstellen der Skolemform
5. Umformen der Matrix in KNF, Weglassen der Allquantoren
14
Unifikation
Gegeben seien die Klauseln
(1) ¬Informatiker(x) v Schlau(x)
(2) Informatiker(Peter)
Die Literale ¬Informatiker(x) und Informatiker(Peter) sind nicht resolvierbar, aber aus Formel
(1) läßt sich eine Instanz erzeugen, so daß Resolution möglich ist. Wenn wir die aus (1)
folgerbare Formel
(1') ¬Informatiker(Peter) v Schlau(Peter)
verwenden, dann könnnen wir resolvieren und erhalten Schlau(Peter). Wir mußten also die zu
resolvierenden Literale "gleich machen" (unifizieren), um Resolution anwenden zu können.
Def.: (Substitution, Unifikator)
Eine Substitution sub = [x1/t1, ..., xk/tk] ist eine Abbildung von Variablen xi auf Terme ti.
Sei A ein Ausdruck (Term oder Formel). A sub bezeichnet den Ausdruck, der entsteht, indem
jedes Vorkommen von xi in A durch ti ersetzt wird.
sub heißt Unifikator einer Menge von Literalen L = {L1,..., Ln}, falls L1 sub = ... = Ln sub.
sub heißt allgemeinster Unifikator (most general unifier, mgu) von L falls für jeden Unifikator
sub' von L gilt: sub' = sub sub'' für eine geeignete Substitution sub''.
Unifikationssatz: (Robinson)
Jede unifizierbare Menge von Literalen besitzt einen allgemeinsten Unifikator.
Unifikationsalgorithmus (behandelt Unifikation auch von mehr als 2 Literalen):
Eingabe: nicht-leere Literalmenge L
sub := []
while |L sub| > 1 do
begin
durchsuche Literale in L sub von links nach rechts bis zur ersten Position, an der sich
zwei Literale unterscheiden;
if keines der sich unterscheidenden Zeichen ist Variable then stoppe mit "fail"
else begin
Sei x die Variable und t der Term, der im anderen Literal beginnt;
if x kommt in t vor then stoppe mit "fail" (occur check)
else sub := sub [x/t] (Hintereinanderausführung der Substitutionen)
end;
end;
gib mgu sub aus;
Beispiel:
P(a, f(x,b)),
P(y, f(g(y),z))
sub = [y/a]
P(a, f(x,b)),
P(a, f(g(a), z))
sub = [y/a] [x/g(a)]
15
P(a, f(g(a),b)),
P(a, f(g(a),z))
sub = [y/a] [x/g(a)] [z/b]
P(a, f(g(a),b)),
P(a, f(g(a),b))
in diesem Fall: [y/a] [x/g(a)] [z/b] = [y/a, x/g(a), z/b] (parallele Substitution)
im allgemeinen Fall müssen spätere Substitutionen beim "Parallelisieren" auf vorherige
angewendet werden:
[y/f(x,b)] [x/g(a)] = [y/f(g(a),b), x/g(a)] ≠ [y/f(x,b), x/g(a)]
Das Resolutionsverfahren für die Prädikatenlogik erzeugt, wie das für Aussagenlogik,
Widerspruchsbeweise, d.h. die zu überprüfende Formel wird negiert und zusammen mit den
Prämissen in Klausenform überführt. Beim Resolvieren ergeben sich 2 Unterschiede:
1. Resolution kann angewendet werden, wenn die entsprechenden komplementären Literale
abgesehen vom Negationszeichen unifizierbar sind. Es wird jeweils der mgu verwendet.
2. Falls die Anzahl der Literale in der entstehenden Resolvente durch Substitution verringert
werden kann, so kann diese Substitution durchgeführt werden (Faktorisierung)
Bsp. zu 2:
aus der Resolvente P(x,a) v P(b,y) kann man P(x,a) v P(b,y) [x/b, y/a] = P(b,a) erzeugen.
Satz: Das Resolutionsverfahren für die Prädikatenlogik ist widerlegungsvollständig,
d.h.: [] kann aus der Klauselform von P{¬F} mit Resolution abgeleitet werden gdw P |= F.
Resolutionsbeispiel
Normale Vögel fliegen.
Pinguine fliegen nicht.
Strausse fliegen nicht.
Pinguine und Strausse sind Vögel
Tweety ist ein Pinguin oder ein Strauss.
Tweety ist nicht normal.
x Vogel(x) & Normal(x) -> Fliegt(x)
¬Vogel(x) v ¬Normal(x) v Fliegt(x)
(1)
x Strauss(x) -> ¬Fliegt(x)
x Pinguin(x) -> ¬Fliegt(x)
x Pinguin(x) -> Vogel(x)
x Strauss(x) -> Vogel(x)
Strauss(Tweety) v Pinguin(Tweety)
neg. Ziel: Normal(Tweety)
¬Strauss(x) v ¬Fliegt(x)
¬Pinguin(x) v ¬Fliegt(x)
¬Pinguin(x) v Vogel(x)
¬Strauss(x) v Vogel(x)
Strauss(Tweety) v Pinguin(Tweety)
Normal(Tweety)
(2)
(3)
(4)
(5)
(6)
(7)
6,4
8,5
6,2
Strauss(Tweety) v Vogel(Tweety)
Vogel(Tweety)
Pinguin(Tweety) v ¬Fliegt(Tweety)
(8)
(9)
(10)
16
10,3
9,1
11,12
13,7
¬Fliegt(Tweety)
¬Normal(Tweety) v Fliegt(Tweety)
¬Normal(Tweety)
[]
Wir haben also bewiesen, dass Tweety nicht normal ist.
17
(11)
(12)
(13)
6. Answer Set Programming (Antwortmengenprogrammierung)
Neues Programmierparadigma: Wurzeln in Logikprogrammierung und Wissensrepräsentation
1. Ein definites Logikprogramm ist eine endliche Menge von Regeln der Form
A  B1,...,Bn
wobei A und Bi Atome (hier zunächst aussagenlogisch, freie Variablen später)
A heißt Kopf (head), B1,...,Bn Körper (body) der Regel.
Falls n = 0 lässt man  weg und nennt die Regel auch Fakt.
logisch gesehen: Regeln sind definite Klauseln (Hornklauseln mit genau 1 positiven Literal)
Anfragen: ?-A "ist A ableitbar?"
negierte Anfragen logisch gesehen negative Klauseln
Prozedurale Interpretation durch SLD-Resolution:
grundsätzlich 1 rein negative Klausel (Zielklausel) mit einer nicht-negativen (= definiten)
Klausel resolviert. Es entstehen dabei nur negative Klauseln.
A ableitbar, wenn aus P zusammen mit ¬A die leere Klausel abgeleitet werden kann.
entspricht klassischer Folgerbarkeit, Regeln aufgefasst als Implikationen.
Beispiel:
A  B, C
BC
C
A v ¬B v ¬C
B v ¬C
C
?- A
?- B,C
?- C
[]
¬A
¬B v ¬C
¬C
[]
Modelltheoretische Semantik:
Modelle repräsentiert durch Menge der wahren Atome (die Komplementmenge sind die
Atome, die zu F ausgewertet werden).
Ein Modell einer Menge von Regeln ist eine Menge von Atomen, die unter den Regeln
abgeschlossen ist: wenn Körper einer Regel R in M, dann auch Kopf von R in M.
(entspricht genau klassischen Modellen der den Regeln entsprechenden Implikationen)
man betrachtet nur das Modell, in dem am wenigsten Atome wahr sind.
M1 ≤ M2 gdw M1 M2.
Kleinstes Modell Mmin existiert. A folgerbar aus P gdw. A wahr in Mmin.
kleinstes Modell = kleinste Menge M von Atomen, die unter den Regeln abgeschlossen ist
Kann schrittweise berechnet werden:
18
New := {};
Repeat
M := New;
New:= {A | A  B1,...,Bn in P, B1,...,Bn in M}
Until M = New;
output M
Prozedurale Interpretation durch SLD-Resolution und Semantik stimmen überein!
2. Ein normales Logikprogramm ist eine endliche Menge von Regeln der Form
A  B1,...,Bn, not C1, ..., not Cm
wobei A, Bi, Cj Atome sind.
Zu beachten:
not ist nicht! klassische Negation: not C heißt: C ist nicht beweisbar oder ¬C ist konsistent!!
Prozedurale Interpretation: Überprüfen eines negativen Zielliterals not Ci (not statt ¬ zeigt an,
dass Negation nichtklassisch ist) durch Starten eines SLD-Beweises für Ci. Schlägt der
Beweis in endlicher Zeit fehl, dann ist not Ci ableitbar, sonst nicht (negation as finite failure).
SLDNF (SLD+Negation as Failure)-Verfahren terminiert nicht immer
Beispiel:
a  not b
b  not a
Endlosschleife: Überprüfen von b liefert Teilziel not a, Beweis für a wird gestartet, liefert
Teilziel not b, Beweis für b wird gestartet, ...
Bedeutung des Programms?
Modelltheoretische Semantik: Problem: kein kleinstes Modell:
(Modell wieder: unter Regeln abgeschlossene Menge M von Atomen, wobei eine Regel jetzt
anwendbar ist, wenn ihre nichtnegierten Vorbedingungen in M, die negierten nicht in M)
a  not b, c
b  not a, c
c  not d
3 minimale Modelle: M1 = {a,c}, M2 = {b,c}, M3 = {d}
Nicht jedes minimale Modell intendiert: M3 unerwünscht, da d nicht hergeleitet werden kann
(jedes wahre Atom sollte aus einer Regel ableitbar sein, deren Vorbedingung auch wahr ist).
Also: nur bestimmte minimale Modelle M erwünscht. Welche?
Solche, in denen jedes wahre Atom A eine bzgl. M gültige Herleitung hat:
A  M impliziert A aus Regeln herleitbar, deren not-Literale nicht wahr sind in M.
19
Stabile Modelle: intuitive Idee: wir raten M und prüfen, ob aus den Regeln, deren not-Literale
„zu M passen“ die Atome in M hergeleitet werden können.
Def.: Sei M eine Menge von Atomen, P ein Programm. Das bzgl. M reduzierte Programm PM
ergibt sich aus P durch
1. Streichen aller Regeln mit (not Ci) im Körper und Ci  M.
2. Streichen aller not-Literale aus allen anderen Regeln.
Das reduzierte Programm ist definit, hat also ein kleinstes Modell. M heißt stabil gdw. M
kleinstes Modell von PM ist.
obiges Beispiel:
PM1:
ac
c
kleinstes Modell: {a,c} = M1
PM2:
bc
c
kleinstes Modell: {b,c} = M2
PM3:
ac
bc
kleinstes Modell: {} ≠ M3
Also 2 stabile Modelle, M1 und M2.
Ein Atom ist folgerbar, wenn es in allen stabilen Modellen enthalten ist.
3. Ein erweitertes Logikprogramm ist eine endliche Menge von Regeln der Form
A  B1,...,Bn, not C1, ..., not Cm
wobei A, Bi und Cj Literale sind.
¬:
starke, klassische Negation: ¬A wahr, wenn ¬A ableitbar
not: schwache, default Negation, not A wahr, wenn A nicht ableitbar ist
Einfache Erweiterung der stabilen Modelle zu answer sets (Antwortmengen):
Def.: Sei S eine Menge von Literalen, P ein Programm. Das um S reduzierte Programm PS
ergibt sich aus P durch
1. Streichen aller Regeln mit (not Ci) im Körper und Ci  S.
2. Streichen aller not-Literale aus allen anderen Regeln.
Sei R eine Menge von Regeln ohne not. Cn(R) ist die kleinste Menge von Literalen, die
1) abgeschlossen unter den Regeln und
2) logisch abgeschlossen ist (falls A und ¬A vorkommen => Menge aller Literale).
S ist Antwortmenge (answer set) gdw. S = Cn(PS)
20
P{¬a}:
P:
a  not ¬a
¬a  not a
p  not p, a
P{a}:
a
¬a 
pa
P{a,p}:
a
pa
PROGRAMMTYP
SEMANTIK
ERLÄUTERUNG
definit
kleinstes Modell
normal
stabile Modelle
erweitert
answer sets
kleinste Menge M von Atomen
abgeschlossen unter P
Menge M von Atomen
M = kleinstes Modell von PM
Menge S von Literalen
S = Cn(PS)
Programme mit Variablen: interpretiert als kompakte Darstellung der Menge aller
Grundinstanzen (entstehen durch Ersetzen aller Variablen durch variablenfreie Terme)
¬dumm(X)  informatiker(X)
statt
¬dumm(hans)  informatiker(hans)
¬dumm(peter)  informatiker(peter)
¬dumm(moni)  informatiker(moni)
...
Es existieren höchst effiziente Implementierungen, z.B smodels (TU Helsinki)
4. Anwendungen:
Grundidee der ASP:
answer sets (bzw. stabile Modelle) beschreiben Lösungen (nicht Beweise einzelner goals)
häufig verwendete Methode:
generate & test: generiere mögliche Lösungen, eliminiere unerwünschte
Beobachtung: fügt man
Q  not Q
zu Programm, in dem Q sonst nicht vorkommt, so gibt es keinen answer set!
Verwendet man
Q  not Q, B1,...,Bn, not C1, ..., not Cm
so werden alle answer sets eliminiert, die B1,...,Bn,enthalten und alle Ci nicht enthalten.
Dafür schreiben wir auch
 B1,...,Bn, not C1, ..., not Cm
Beispiel 1: Färbeproblem
gegeben: Graph G = (V,E), V = {v1, ..., vn}, E {{x,y} | x, y  V, x  y}
3 Farben r,g,b
gesucht: Färbung der Knoten, so dass Knoten an einer Kante nie dieselbe Farbe haben
21
Beschreibung Graph:
knoten(v1), ..., knoten(vn),
kante(vi,vj), ...
generate:
farbe(X, r)  knoten(X), not farbe(X,b), not farbe(X,g)
farbe(X, b)  knoten(X), not farbe(X,r), not farbe(X,g)
farbe(X, g)  knoten(X), not farbe(X,r), not farbe(X,b)
test:
 kante(X,Y), farbe(X,Z), farbe(Y, Z)
Jedes stabile Modell beinhaltet Lösung des Färbeproblems.
Beobachtung: Verwendung von not statt ¬ ist essentiell!
Beispiel 2: Erfüllbarkeit aussagenlogischer Formeln in Klauselform
generate: für jedes Atom A:
A  not ¬A
¬A  not A
test: für jede Klausel A1 v … v An v ¬B1 v ... v ¬Bm
 not A1, …, not An, B1,..., Bm
Answer sets von P entsprechen genau den Modellen der Klauselmenge.
Bsp.:
test-Klauseln in P:
generate-Klauseln in P:
p v ¬q
¬p v ¬q
pvq
 not p, q
 p, q
 not p, not q
p
¬p
q
¬q
 not ¬p
 not p
 not ¬q
 not q
einziger answer set: S={p, ¬q},
PS =
 p, q
p 
¬q 
Beispiel 3. Planen in der Blockswelt
gegeben Tisch, Blöcke (repräsentiert als Integers), Zeitpunkte (Integers)
Roboter kann Blöcke bewegen: move(B,L,I) bewegt Block B zum Zeitpunkt I auf Lokation L
time(0)
time(1)
22
...
time(k)
% k ist maximale Planlänge
location(B)  block(B)
location(table)
Effekt von move:
 move(B,L,T)
on(B,L,T+1)
Inertia:
 on(B,L,T), not ¬on(B,L,T+1), T < k
on(B,L,T+1)
Eindeutige Lokation:
 on(B,L,T), location(L1), L  L1
¬on(B,L1,T)
generate:
move(B,L,T)
¬move(B1,L1,T)
 not ¬move(B,L,T), block(B), location(L), time(T), T < k
 move(B,L,T), block(B1), B B1, location(L1)
test:
nur 1 Block kann auf einem anderen stehen:
 on(B1,B,T), on(B2,B,T), B1  B2, block(B)
nur freie Blöcke können bewegt werden:
 move(B,L,T), on(B1,B,T)
Anfangszustand:
Zielzustand:
1
2
3
2
1
3
4
block(1)
block(2)
block(3)
block(4)
block(5)
block(6)
5
6
on(1,2,0)
on(2,table,0)
on(3,4,0)
on(4,table,0)
on(5,6,0)
on(6,table,0)
23
6
5
4
 not on(3,2,k)
 not on(2,1,k)
 not on(1,table,k)
 not on(6,5,k)
 not on(5,4,k)
 not on(4,table,k)
Teil eines answer set für k=5
move(1,table,0), move(2,1,1), move(3,2,2), move(5,4,3), move(6,5,4)
Anmerkung:
klassische Logik ist monoton: T |= F impliziert T  T’ |= F
normale Logikprogramme sind nichtmonoton. Aus
q  not p
ist q ableitbar, aus
q  not p
p
ist q nicht mehr ableitbar.
24
9. Anwendungen nichtmonotoner Logiken
9.1. Modellbasierte Diagnose
Diagnose: Identifikation eines vorliegenden Fehlers (Krankheit) auf der Basis von
Beobachtungen (Symptomen) und Hintergrundwissen über das System
2 Arten von Diagnosesystemen abduktiv vs. konsistenzbasiert
Typ I: abduktive Diagnose
Gegeben: Information über
1) Wirkung von Fehlern H (Implikationen)
2) beobachtete Symptome S (Atome)
3) nicht aufgetretene Symptome N (negierte Literale)
Gesucht: Erklärung für S, d.h.
minimale Menge von Fehlern F, so dass F  H  N konsistent und F  H |= S.
Deduktion: Ableiten von implizitem Wissen
Alle A sind B
c ist ein A
c ist ein B
Abduktion: Finden von Erklärungen für Beobachtungen
Alle A sind B
c ist ein B
c ist ein A
Induktion: Ableiten allgemeiner Regel aus bisherigen Beobachtungen
c ist ein A (c1 ist ein A, ..., cn ist ein A)
c ist ein B (c1 ist ein B, ..., cn ist ein B)
Alle A sind B
Beispiel:
H:
Masern -> Fieber & Ausschlag
Migräne -> Kopfschmerzen & Übelkeit
Grippe -> Kopfschmerzen & Gliederschmerzen & Fieber
N:
O:
leer
Fieber
Fieber, Ausschlag
Kopfschmerzen
Kopfschmerzen, Fieber
N:
O:
Übelkeit
Kopfschmerzen
=> 1 Erklärung: Grippe
Kopfschmerzen, Ausschlag => 1 Erklärung: Grippe & Masern
=> 2 Erklärungen: Masern, Grippe
=> 1 Erklärung: Masern
=> 2 Erklärungen: Migräne, Grippe
=> 1 Erklärung: Grippe
25
Typ II: konsistenzbasierte Diagnose:
Gegeben: Menge K von Komponenten sowie Information über
1) Wirrkung der Komponenten im fehlerfreien Fall (Modell M)
2) Beobachtungen O
Gesucht: minimale Menge K’ von Komponenten, so dass die Annahme der Korrektheit aller
Komponenten in K\K’ konsistent mit M  O ist
kann durch Default Theorie beschrieben werden:
K’ ist Diagnose gdw. es eine Extension E der Default Theorie (D, W) mit
W = M  O und D = {true: OK(x) / OK(x) | x in K} gibt, die OK(k) für alle k in K’ enthält.
Beispiel: Halbaddierer
x
y
C1
C2
C3
C4
Ü
z
Typen der Komponenten:
AND(C1), OR(C2), NOT(C3), AND(C4)
Topologie:
x = input1(C1) = input1(C2)
y = input2(C1) = input2(C2)
Ü = output(C1) = input(C3)
output(C3) = input1(C4)
output(C2) = input2(C4)
z = output(C4)
Normalverhalten:
AND(x)  OK(x)
OR(x)  OK(x)
NOT(x)  OK(x)
-> [output(x) = 1 <-> (input1(x) = 1  input2(x) = 1)]
-> [output(x) = 1 <-> (input1(x) = 1  input2(x) = 1)]
-> [output(x) = 1 <-> input(x) = 1]
Korrektheitsdefaults:
true: OK(x)/OK(x) für x aus C1, ..., C4
Beobachtungen:
x = 1, y = 1, z = 1
26
Wir kriegen 4 Extensionen (jeweils eine Komponente kaputt)
OK(C1), OK(C2), OK(C3)
OK(C1), OK(C2), OK(C4)
OK(C1), OK(C3), OK(C4)
OK(C2), OK(C3), OK(C4)
=> OK(C4)
=> OK(C3)
=> OK(C2)
=> OK(C1)
Bemerkung: theoretisch ist es möglich, dass alle 4 Komponenten kaputt sind, aber
unwahrscheinlich: hier werden nur minimale Diagnosen erzeugt (bzgl. Teilmengenrel.)
weitere Beobachtung:
output(C3) = 1
entweder C1 oder C3 kaputt
OK(C1), OK(C2), OK(C4) => OK(C3)
OK(C2), OK(C3), OK(C4) => OK(C1)
alternative Beobachtung:
output(C3) = 0
C4 kaputt
OK(C1), OK(C2), OK(C3) => OK(C4)
Bemerkung: neue Beobachtungen verringern immer die Zahl der möglichen Diagnosen (neue
Diagnosen Obermengen der alten)
Oft Zusatzwissen über Zuverlässigkeit bestimmter Bauteile.
Lässt sich durch iterative Bildung von Extensionen abbilden:
(D1, ..., Dn-1, W)
D1 enthält OK-Defaults für zuverlässigste Komponenten, D2 für nächst zuverlässige usw.
rekursive Definition der Extensionen: E Extension von (D1, ..., Dn, W) gdw
n = 1 und E Extension von (D1,W) oder
n > 1 und es gibt Extension E’ von (D1, ..., Dn-1, W) so dass E Extension von (Dn, E’)
Annahme: NOT-Komponenten weniger fehleranfällig als andere
Default-Theorie (D1, D2, W) mit
D1 = {:OK(C3)/OK(C3)}
D2 = {:OK(C1)/OK(C1), :OK(C2)/OK(C2), :OK(C4)/OK(C4)}
W=MO
Es entstehen nur noch Extensionen mit OK(C3).
Notwendigkeit der Modellierung von Fehlerverhalten: Folie
27
9.2. Modellierung von Handlungen
Situationskalkül.
McCarthy, Hayes, 1963, 1969
Situationen:
Fluents:
Aktionen:
Schnappschüsse von Weltzuständen, entsprechen Folgen von Aktionen
zeitabhängige Eigenschaften
führen von Situation zu Nachfolgesituation
Holds(f,s)
Result(a,s)
Atomare Formel: Fluent f ist wahr in Situation s
Term: Situation nach Ausführen von Aktion a in s
Blockwelt:
1) Holds(On(C,Table),S0)
2) Holds(On(B,C),S0)
3) Holds(On(A,B),S0)
4) Holds(On(D,Table),S0)
5) Holds(Clear(A),S0)
6) Holds(Clear(D),S0)
7) Holds(Clear(Table),S0)
Move(x,y): bewege x auf y
8) Holds(Clear(x),s) & Holds(Clear(y),s) & x≠y & x≠Table ->
Holds(On(x,y),Result(Move(x,y),s))
9) Holds(Clear(x),s) & Holds(Clear(y),s) & Holds(On(x,z),s) & x≠y & y≠z ->
Holds(Clear(z),Result(Move(x,y),s))
|= Holds(On(A,D),Result(Move(A,D),S0))
|= Holds(Clear(B),Result(Move(A,D),S0))
unique names assumption!!
aber nicht:
|= Holds(On(B,C),Result(Move(A,D),S0))
Persistenz von Eigenschaften
Hinzufügen von Frame-Axiomen:
Holds(On(v,w),s) & x≠v -> Holds(On(v,w),Result(Move(x,y),s))
Holds(Clear(x),s) & x≠z -> Holds(Clear(x), Result(Move(y,z),s))
2 neue Axiome. Na und?
Colour(x,c)
Paint(x,c)
x hat Farbe c
male x mit Farbe c an
28
Holds(Colour(x,c), Result(Paint(x,c),s)
keine Vorbedingungen
Annahme: alle Blöcke und Tisch zunächst rot: Holds(Coulour(x,Red),S0)
Neue Frame Axiome nötig: Move hat keinen Effekt auf Farbe, Paint färbt nur 1 Objekt
Holds(Colour(x,c),s) -> Holds(Colour(x,c),Result(Move(y,z),s))
Holds(Colour(x,c1),s) & x≠y -> Holds(Colour(x,c1),Result(Paint(y,c2),s))
Neue Frame Axiome auch für andere Fluents:
Holds(On(v,w),s) -> Holds(On(v,w),Result(Paint(z,c),s))
Holds(Clear(x),s) -> Holds(Clear(x), Result(Paint(y,c),s))
n Fluents und m Aktionen: O(n·m) Frame Axiome
Frame Problem: wie kann man Effekte von Aktionen repräsentieren, ohne sämtliche Frame
Axiome explizit hinschreiben zu müssen?
Lösungsidee: verwende statt der Frame Axiome eine Default-Regel, die besagt, dass
Eigenschaften sich normalerweise nicht ändern:
Holds(f,s) : Holds(f, Result(a,s))
Holds(f, Result(a,s))
Klappt in vielen Beispielen, z.B. haben wir jetzt:
Holds(On(B,C),Result(Move(A,D),S0)) in der Extension von (D,W) mit
D enthält obige Default-Regel
W = {1), ..., 9)}
aber es gibt auch Beispiele, in denen es nicht klappt:
Yale Shooting Problem:
1)
2)
3)
S1 = Result(LOAD,S0)
S2 = Result(WAIT,S1)
S3 = Result(SHOOT,S2)
4)
Holds(ALIVE,S0)
5)
6)

s Holds(LOADED, Result(LOAD,s))
s Holds(LOADED,s) => ¬Holds(ALIVE, Result(SHOOT, s))
s ¬Holds(LOADED, Result(SHOOT, s))
8)
[¬]Holds(f, s): [¬]Holds(f, Result(e, s)) / [¬]Holds(f, Result(e, s))
Intendierte Extension:
29
S0
S1
S2
S3
ALIVE
ALIVE
LOADED
ALIVE
LOADED
¬ALIVE
¬LOADED
Persistenzdefault entsprechend dem Zeitverlauf anwenden
Nicht intendierte Extension:
S0
S1
S2
S3
ALIVE
ALIVE
LOADED
ALIVE
¬LOADED
ALIVE
¬LOADED
Persistenzdefault für ALIVE bis S3 anwenden, dann aus ALIVE mit 8) und 6) UNLOADED
in S2 ableiten
Gewehr entlädt sich auf mysteriöse Weise!!
So einfach geht es also nicht. Komplexere Modellierungen nötig, insbesondere mit expliziter
Behandlung von Kausalität. Immer noch aktives Gebiet der KI.
Falls noch Zeit: Reiter: successor state axioms:
Idee: für jedes Fluent f angeben, wann genau es in einem Zustand Result(a,s) gilt:
2 Bestandteile:
a) wenn f in s gilt und a keine Aktion ist, die f beendet
b) wenn a Aktion ist, die f wahr macht
Holds(LOADED,Result(a,s)) <-> a = LOAD v Holds(LOADED,s) & a ≠ SHOOT
Holds(ALIVE,Result(a,s)) <-> Holds(ALIVE,s) & [a ≠ SHOOT v ¬Holds(LOADED,s)]
beide Formeln ersetzen 5-8
Bemerkung: da Reiter nicht über Fluents quantifizieren muss (wie im Persistenzdefault),
braucht er das Holds-Prädikat nicht: z.B. LOADED(s) statt Holds(LOADED,s).
Gilt ALIVE(S3)?
ALIVE(Result(SHOOT,S2)) <->
ALIVE(S2) & [SHOOT ≠ SHOOT v ¬LOADED(S2)] <->
~
& ¬LOADED(Result(WAIT,S1)) <->
~
& [¬LOADED(S1) v WAIT = SHOOT] & WAIT ≠ LOAD <->
~
& ¬LOADED(Result(LOAD,S0)) <->
~
& [¬LOADED(S0) v LOAD = SHOOT] & LOAD ≠ LOAD <->
~
& ¬LOADED(S0) & false <->
false
Durch Äquivalenzumformung Anfrage schrittweise zurückgeführt auf Anfrage, die sich nur
noch auf S0 bezieht (Regression).
30
11. Graphplan
Fast Planning Through Planning Graph Synthesis, AIJ 90, 1997
Avrim Blum, Merrick Furst
verwendet für nichtlineares Planen Plangraphen ->
erzeugt in polynomialer Zeit, erhebliche Einschränkung des Suchraums
Plan weist jeder Aktion Zeitpunkt zu, mehrere Aktionen können denselben Zeitpunkt haben
(parallele Pläne): Ausführung kann in beliebiger Reihenfolge geschehen.
verwendet STRIPS-Repräsentation für Aktionen und Zustände.
Beispiel Raketendomäne, S. 3.
Ein STRIPS-Operator besteht aus:
1. einem Operatornamen,
2. einer Liste typisierter Parameter,
3. den Vorbedingungen, d.h. einer Konjunktion von Atomen
4. den positiven und negativen Effekten, d.h. einer Liste von Atomen, die wahr werden, sowie
einer Liste von Atomen, die falsch werden.
Aktionen sind Grundinstanzen von Operatoren
spezielle Aktionen pro Atom a: no-op(a) (sorgt dafür, daß Atom a weitergilt).
Ein Zustand ist eine Menge von Grundatomen.
Ein Planungsproblem besteht aus
1. einer Menge von STRIPS-Operatoren
2. eine Menge von typisierten Objekten
3. ein Anfangszustand
4. eine Menge von Zielbedingungen (Atomen)
gesucht: gültiger Plan P,
d.h. Menge von Aktionen mit Ausführungszeit (1,2,3 etc.), so daß
1) P führt A zur Zeit 1 nur aus, falls alle Vorbedingungen von A Anfangsbedingungen sind;
2) P führt A zur Zeit i+1 nur aus, falls alle Vorbedingungen von A in der Add-Liste von
Aktionen sind, die zum Zeitpunkt i ausgeführt wurden,
3) keine Interferenz zwischen Aktionen (mehr dazu später)
4) P macht alle Zielbedingungen wahr.
Plangraph enthält alle Aktionen und Atome, die möglicherweise ausgeführt bzw. wahr werden
können. Berücksichtigt nicht Interaktionen.
Ein Plangraph ist ein gerichteter Level-Graph (Kanten aus einem Level führen jeweils nur
zum nächsten Level) mit
2 Arten von Knoten (Aktionen und Propositionen)
3 Arten von Kanten (add, delete, precondition)
so dass gilt:
31
1) Es folgt jeweils Aktions-Level Akti auf Propositions-Level Propi und Propositions-Level
Propi+1 auf Aktions-Level Akti.
2) Eine Aktion in Akti besitzt eine (eingehende) Kante von ihren Vorbedingungen in Propi,
sowie eine Kante zu den Elementen ihrer add und delete-Listen in Propi+1.
3) A kommt in Akti vor, wenn all ihre Vorbedingungen in Propi vorkommen und sich dort
nicht ausschließen, und dann kommen auch alle Nachbedingungen von A in Propi+1 vor.
Prop1, Akt1, Prop2, Akt2, ...
Beispiel S.5
Bemerkungen:
 Wegen no-ops bleiben einmal hergestellte Atome erhalten in allen folgenden Levels.
 Die Berechnung des Plangraphen ist polynomial.
 Wenn gültiger Plan P mit t Schritten existiert, so ist P Untergraph des bis Propt+1
expandierten Plangraphen. Also: expandiere Plangraphen, versuche gültigen Plan zu
finden. Falls gefunden -> fertig, falls nicht gefunden, expandiere weiter etc.
Ausschlußbedingungen zwischen Knoten im Plangraphen.
Intuitiv:
Aktionen schließen sich aus, wenn es keinen gültigen Plan gibt, der sie enthält.
Propositionen schließen sich aus, wenn es keinen gültigen Plan gibt, der sie erzeugt.
einfache Regeln, um Ausschlußbedingungen zu propagieren.
Aktionen:
Interferenz: A1 und A2 schließen sich aus, wenn A1 (bzw. A2) eine
Vorbedingung oder einen Add-Effekt von A2 (bzw. A1) löscht.
Inkompatible Vorbedingungen: A1 und A2 schließen sich aus in Akti, wenn A1
eine Vorbedingung a benötigt, A2 eine Vorbedingung b, und a und b schließen
sich aus in Propi.
Propos.:
p und q schließen sich aus in Propi, wenn jede Aktion in Akti-1 mit add-Kante
zu p jede Aktion in Akti-1 mit add-Kante q ausschließt.
Graphplan-Algorithmus (korrekt und vollständig):
i := 1;
Prop1 := Anfangszustand;
while kein Plan gefunden [und letzter Level nicht identisch mit vorletztem] do
begin
erweitere Plangraph um Akti und Propi+1 ;
prüfte, ob es gültigen Plan der Länge i gibt;
i := i + 1
end;
if Plan gefunden then gib Plan aus else ‚kein Plan existiert’
1. Erweiterung um Action-Level Akti:
a)
b)
Füge Aktion A in Akti ein, wenn alle Vorbedingungen von A in Propi enthalten und
nicht als sich ausschließend markiert sind.
Füge alle no-op Aktionen und precondition links ein.
32
c)
generiere für jede Aktion A in Akti Liste aller Aktionen, die A ausschließt.
2. Erweiterung um Propositions-Level Propi+1:
a)
b)
Füge alle Atome aus Nachbedingungen der Aktionen in Akti ein, zusammen mit
entsprechenden Add- und Delete-Links.
Markiere p, q in Propi+1 als sich ausschließend, wenn alle Aktionen, die p generieren,
und alle, die q generieren, sich ausschließen.
3. Plansuche
Gegeben Menge G von Zielen in t, suche sich nicht ausschließende Menge von Aktionen in t1, die alle Ziele in G wahrmachen. Deren Vorbedingungen sind Ziele in t-1, usw.
Graphplan merkt sich nicht erfüllbare Zielmengen in Hashtabelle.
erhebliche Performanzsteigerung gegenüber den besten partial order Plannern.
Faktoren: wechselseitiger Ausschluß, Betrachtung "paralleler" Pläne, Merken unerreichbarer
Zielmengen, keine Instanziierung während Suche.
Weiterer Vorteil: Terminierung bei unlösbaren Problemen:
es muß einen Propositions-Level geben, so daß alle weiteren identisch sind, d.h. dieselben
Propositionen und Ausschluß-Beziehungen haben wie der vorherige Prop-Level.
Wenn Plan nicht bis dahin gefunden, so gibt es keinen.
Beispiel:
shoot(x: animal):
pre: loaded
add: dead(x), unloaded
del: alive(x), loaded
load:
pre: unloaded
add: loaded
del: unloaded
init: alive(r), alive(t), unloaded
goal: dead(r), dead(t)
33
a(r)
•
a(r)
•
a(r)
•
a(r)
•
a(r)
d(r)
•
d(r)
•
d(r)
sh(r)
ld
load
•
sh(r)
ld
load
•
sh(r)
ld
load
•
ld
load
unl
•
unl
•
unl
•
unl
•
unl
a(t)
•
a(t)
•
a(t)
•
a(t)
•
a(t)
d(t)
•
d(t)
•
d(t)
sh(t)
Pr1
Ak1
Pr2
Ak2
sh(t)
Pr3
Ak3
sh(t)
Pr4
Ak4
Pr5
Goals zum ersten Mal erfüllt in Pr3.
Aber: d(r) und d(t) auf Level 3 schließen sich aus, denn sh(r) und sh(t) interferieren: eine
löscht Vorbedingung der anderen. Keine Möglichkeit, goals zu erreichen: weiter expandiert.
Goals erfüllt in Pr4.
Aber: d(r) und d(t) auf Level 4 schließen sich aus, denn alle folgenden Paare interferieren:
sh(r), sh(t)
(interferieren immer)
no-op(d(r)), sh(t)
(Vorbedingungen schließen sich aus auf Pr3)
no-op(d(t)), sh(r)
(Vorbedingungen schließen sich aus auf Pr3)
no-op(d(t)), no-op(d(r))
(Vorbedingungen schließen sich aus auf Pr3)
Keine Möglichkeit, goals zu erreichen: weiter expandiert.
Goals erfüllt in Pr5.
Jetzt sind goals zu erreichen, etwa durch folgende Aktionsfolge:
t1
load
t2
sh(t)
t3
load
no-op(d(t))
t4
sh(r)
no-op(d(t))
34
Herunterladen