Prädikatenlogik 2. Stufe, Circumscription und Situationskalkül

Werbung
Prädikatenlogik 2. Stufe, Circumscription und Situationskalkül
1. Prädikatenlogik 2. Stufe
Erweiterung der PL 1. Stufe um Quantifikation über Prädikate (dazu Prädikatsvariablen mit
Stelligkeit) und Funktionen (dazu Funktionsvariablen mit Stelligkeit)
Semantik:
Def. Struktur: wie gehabt, aber zusätzlich werden Prädikats- (Funktions-) variablen der
Stelligkeit n auf n-stellige Prädikate (Funktionen) über dem Individuenbereich abgebildet.
Sei p n-stellige Prädikatsvariable.
p(a1, ..., an) wahr in Struktur A genau dann wenn Tupel aus Elementen des
Individuenbereichs, zu denen a1, ..., an in A interpretiert werden, in dem Prädikat enthalten
sind, zu dem p interpretiert wird.
p F wahr in A gdw. Wenn F wahr ist in jeder Struktur, die p zu einer beliebigen Relation
interpretiert, ansonsten mit A übereinstimmt.
Begriffe Modell, Folgerung, Inkonsistenz etc. wie gehabt.
Ermöglicht es, Standarddefinitionen der Mathematik auszudrücken
Beispiel 1. Transitive Hülle RP einer 2stelligen Relation P:
kleinste Relation, für die gilt:
1. (x,y)  P impliziert (x,y)  RP,
2. (x,z)  RP und (z,y)  P impliziert (x,y)  RP.
x, y [R(x,y) <-> (P(x,y) v z [R(x,z) & P(z,y)])
]
(1)
erfasst nicht Minimalität:
Beispiel, Konstanten a, b, c, d, Def. P wie folgt:
a
c ---- > d
b
x, y [P(x,y) <-> x = c & y = d]
Es gibt Modelle von (1), (2), in denen R zu groß ist, z.B.
R = {(a,a), (a,b), (a,c), (a,d), (b,a), (b,b), (b,c), (b,d), (c,a), (c,b), (c,c), (c,d)}
Man kann zeigen: es gibt keine Formel 1. Stufe, die für beliebige Relationen P deren
transitive Hülle RP definiert. So geht's:
(2)
x, y
[R(x,y)
<->
r,v,w,z
(P(v,w) -> r(v,w)) &
(r(v,z) & P(z,w) -> r(v,w))
->
r(x,y)]
Def. Nat
Nat kleinste Menge, so dass:
1. 0  Nat
2. t  Nat impliziert s(t)  Nat
Second order definition:
x. [Nat(x)
<->
p. { p(0) & [y. p(y) -> p(s(y))]
->
p(x)}]
Anmerkung: daraus ergibt sich Induktionsaxiom wie folgt
Allquantor nach vorne, statt <-> nur eine Richtung:
p x.
[Nat(x)
->
{p(0) & [y. p(y) -> p(s(y))] -> p(x)}]
Aussagenlogische Äquivalenz: A -> (B -> C) äquivalent zu B -> (A -> C)
-A v –B v C
P x.
[p(0) & [y. p(y) -> p(s(y))]
->
{Nat(x) -> p(x)}]
P
[p(0) & [y. p(y) -> p(s(y))]
->
{x. Nat(x) -> p(x)}]
2. Circumscription
Grundidee:
es gibt Prädikate, die normalerweise von nur wenigen Objekten erfüllt werden (Bsp.
rothaarig).
Man möchte ableiten können ¬rothaarig(Peter), außer rothaarig(Peter) ist ableitbar.
also: gegeben bestimmtes Prädikat P, minimiere Extension von P, d.h. Objekte o, so dass P(o)
gilt.
aber wie?
semantisch: betrachte nur bestimmte Modelle, die mit minimaler Extension von P:
Sei T eine (endl. Menge von) Formel(n), P ein zu minimierendes Prädikatensymbol. Wir
definieren eine Relation ≤P auf Modellen von T wie folgt.
M1 ≤P M2 gdw
1) M1 und M2 stimmen in der Interpretation aller Symbole außer P überein,
2) die Interpretation von P in M1 ist Teilmenge der Interpretation von P in M2.
M heißt minimal bezüglich ≤P gdw. M' ≤P M impliziert M ≤P M'.
als folgerbar werden alle Formeln betrachtet, die in allen minimalen Modellen von T gelten.
syntaktisch: Füge Formel 2. Ordnung hinzu, die Minimalität erzwingt:
Notation:
P = Q:  x [P(x) <-> Q(x)]
P ≤ Q:  x [P(x) -> Q(x)]
P < Q: P ≤ Q & ¬ (Q ≤ P
Def.: Sei T Formel, P Prädikatensymbol. Die Circumscription von P in T, Circ[T;P], ist die
Formel 2. Ordnung:
T & ¬ q [T(q) & q < P]
äquivalent: T & q [(T(q) & q ≤ P) -> P ≤ q]
hier ist T(q) die Formel, die entsteht, indem man in T jedes Vorkommen von P durch die
Prädikatsvariable q ersetzt.
Herleitung:
q [¬T(q) v ¬ q < P]
q [¬T(q) v ¬ (q ≤ P & ¬ (P ≤ q)]
q [¬T(q) v ¬ (q ≤ P) v (P ≤ q)]
Bsp.: T = rot(Peter) & rot(Klaus), P = rot
Substituiere in
q [q(Peter) & q(Klaus) & q ≤ P -> P ≤ q]
für q das Prädikat Q(x) := [x = Peter v x = Klaus]
(Peter = Peter v Peter = Klaus) &
(Klaus = Peter v Klaus = Klaus) &
 x [x = Peter v x = Klaus -> rot(x)]
->
 x [rot(x) -> x = Peter v x = Klaus]
Vorbedingungen wahr, Konsequenz herleitbar. Damit etwa (mit unique names assumption)
herleitbar ¬rot(Hans).
Anmerkung: n-stellige Prädikate entsprechen Formeln mit n freien Variablen. Um
festzulegen, welches Argument welcher freien Variablen entspricht, verwendet man sog.
Lambda-Notation: Sei P Formel, x1,...,xn.P(a1,...,an) ist wahr (in einer Struktur A) gdw
P[x1/a1, …, xn/an] wahr (in A).
Circumscription Beispiele:
a) A = P(a)
[(a) & (x. (x) -> P(x))] -> (x. P(x) -> (x))
x.x = a
[a = a & (x. (x = a) -> P(x))] -> (x. P(x) -> (x = a))
Circ(A;P) |= x. P(x) <-> (x = a)
b) A = ¬P(a)
[¬(a) & (x. (x) -> P(x))] -> (x. P(x) -> (x))
x.false
[¬false & (x. false -> P(x))] -> (x. P(x) -> false)
Circ(A;P) |= x. P(x) <-> false
äquivalent: x. ¬P(x)
c) A = P(a) & P(b)
[(a) & (b) &(x. (x) -> P(x))] -> (x. P(x) -> (x))
x.x = a v x = b
[(a = a v a = b) & (b = a v b = b) & (x. (x = a v x = b) -> P(x))]
-> (x. P(x) -> (x = a v x = b))
Circ(A;P) |= x. P(x) <-> (x = a v x = b)
d) A = P(a) v P(b)
2 Substitutionen:
x.P(a) & x = a
[(a) v (b) &(x. (x) -> P(x))] -> (x. P(x) -> (x))
[((P(a) & a = a) v (P(a) & b = a)) & (x. (P(a) & x = a) -> P(x))]
-> (x. P(x) -> (x = a & P(a)))
P(a) -> (x. P(x) -> (x = a & P(a)))
P(a) -> (x. P(x) -> (x = a)) & P(a)
P(a) -> (x. P(x) -> (x = a))
x.P(b) & x = b
analog:
[((P(b) & b = a) v (P(b) & b = b)) & (x. (P(b) & x = b) -> P(x))]
-> (x. P(x) -> (x = b & P(b‚)))
P(b) -> (x. P(x) -> (x = b))
daraus wegen A -> B, C -> D |- A v C -> C v D:
Circ(A;P) |= x. P(x) <-> (x = a) v x. P(x) <-> (x = b)

e) A = x. Q(x) -> P(x)
[(x. Q(x) -> (x)) &(x. (x) -> P(x))] -> (x. P(x) -> (x))
x.Q(x)
[(x. Q(x) -> Q(x)) & (x.Q(x) -> P(x))] -> (x. P(x) -> Q(x))
Circ(A;P) |= x. P(x) <-> Q(x)
Wie benutzt man diese Technik?
Einführung Prädikat ab, das minimiert wird.
Bird(x) & ¬ab(x) -> Flies(x)
pro Default-Regel ein eigenes ab.
Anwendung FP etwa: minimiere Affects(a,f,s)
Allerdings: Version von Circ wie oben noch nicht ausreichend, Prädikate müssen beim
Vergleich von Modellen variieren dürfen.
Sei T eine (endl. Menge von) Formel(n), P ein zu minimierendes Prädikatensymbol, s* ein
Tupel von Prädikats- und Funktionssymbolen. Wir definieren eine Relation ≤P,s* auf
Modellen von T wie folgt.
M1 ≤P,s* M2 gdw
1) M1 und M2 stimmen in der Interpretation aller Symbole außer P und denen in s* überein,
2) die Interpretation von P in M1 ist Teilmenge der Interpretation von P in M2.
Def.: Sei T Formel, P Prädikatensymbol, s* Tupel von Prädikaten-/Funktionssymbolen. Die
Circumscription von P in T mit variierenden Symbolen s*, Circ[T;P;s*], ist die Formel 2.
Ordnung:
T & ¬ q,r* [T(q,r*) & q < P]
äquivalent: T & q,r* [(T(q,r*) & q ≤ P) -> P ≤ q]
hier ist T(q,r*) die Formel, die entsteht, indem man in T jedes Vorkommen von P durch die
Prädikatsvariable q und jedes Vorkommen eines Symbols in s* durch eine entsprechende
Variable ersetzt.
T = Bird(Tw) & [Bird(x) & ¬ab(x) -> Flies(x)]
Circ(T; ab; Flies) |= Flies(Tw)
Bird(Tw) &
[Bird(x) & ¬ab(x) -> Flies(x)] &
q,f [Bird(Tw) & (Bird(x) & ¬q(x) -> f(x)) & q ≤ ab) -> ab ≤ q]
Substituiere: q(x) := false; f(x) := Bird(x)
[Bird(Tw) & (Bird(x) & ¬false -> Bird(x)) & false ≤ ab) -> ab ≤ false]
daraus ableitbar: x [ab(x) -> false] , also x [¬ab(x)]
damit ¬ab(Tw) und Flies(Tw).
Weitere Verallgemeinerungen der Circumscription: parallele Circ. mehrere Prädikate, Circ.
mehrerer Präd. mit unterschiedlicher Präferenz.
3. Anwendung der Circumscription auf Frame Problem
Situationskalkül.
McCarthy, Hayes, 1963, 1969
Situationen: Schnappschüsse von Weltzuständen, entsprechen Folgen von Aktionen
Fluents: zeitabhängige Eigenschaften, können verschiedene Werte annehmen (etwa w,f)
Aktionen: führen von Situation zu Nachfolgesituation
holds(f,s)
result(a,s)
S0
f ist wahr in s
Situation nach Ausführen von a in s
Anfangszustand
Universelles Frame Axiom:
[Holds(f, Result(a,s)) <-> Holds(f,s)] <- ¬ Affects(a,f,s)
Idee: statt zu spezifizieren, welche Aktion welches Fluent beeinflusst, minimiere Affects
(oder ersetze Affects durch Ab und minimiere Ab) und lasse dabei Holds variieren.
gegeben:
betrachte:
Konjunktion von Effekt-Axiomen, Constraints und Beobachtungen S
Circ(S & UFA; Ab; Holds)
Beispiel (das funktioniert):
2 Geräte, an in S0, können durch Toggle1 und Toggle2 aus- und angeschaltet werden.
1) Holds(On1, S0)
2) Holds(On2, S0)
3) Holds(On1,Result(Toggle1,s)) <-> ¬Holds(On1,s)
4) Holds(On2,Result(Toggle2,s)) <-> ¬Holds(On2,s)
Unique names assumption:
UFA
UNA[f1,...,fk] ist Abkürzung für
fi(x1,...,xm) ≠ fj(y1,...,yn)
für alle i < j ≤ k
und
fi(x1,...,xm) = fi(y1,...,ym) -> [x1 = y1 & ... & xm = ym] i ≤ k
wir brauchen
5) UNA[S0,Result]
6) UNA[On1,On2]
7) UNA[Toggle1, Toggle2]
Es gilt:
Circ(S & UFA; Ab; Holds) |= Ab(a,f,s) <-> [a = Toggle1 & f = On1] v
[a = Toggle2 & f = On2]
Beweis: etwas länglich
Beispiel (das nicht funktioniert): Yale Shooting Problem
1) Holds(Loaded(Result(Load,s))
2) ¬Holds(Alive, Result(Shoot,s)) <- Holds(Loaded,s)
3) Holds(Alive,S0)
4) ¬Holds(Loaded,S0)
5) UNA[Load,Wait,Shoot] & UNA[Alive, Loaded] & UNA[S0,Result]
Betrachte Situation nach Load, Wait, Shoot
Es gilt:
Circ(S & UFA; Ab; Holds) |≠
¬Holds(Alive,Result(Shoot,Result(Wait,Result(Load,S0))))
Beweis: Betrachte ein Modell M, so dass
M |= Holds(Loaded, Result(Load,S0))
M |= ¬Holds(Loaded, Result(Wait, Result(Load,S0)))
M |= Holds(Alive,Result(Shoot,Result(Wait,Result(Load,S0))))
Solche Modelle existieren. In ihnen gilt:
Ab(Load, Loaded, S0) und
Ab(Wait, Loaded,Result(Load,S0))
keine weiteren Abnormalities. Nicht weiter zu minimieren, also minimales Modell.
Gewehr entlädt sich auf mysteriöse Weise. Anomales Modell.
S0
Result(Load,S0)
Result(Wait,...)
Result(Shoot,...)
Alive
¬Loaded
Alive
Loaded
Alive
Loaded
¬Alive
Loaded
ab(Load,Loaded,S0)
Alive
¬Loaded
Alive
Loaded
ab(Shoot,Alive, ...)
Alive
¬Loaded
Alive
¬Loaded
ab(Load,Loaded,S0) ab(Wait, Loaded, ...)
Bedeutung für Forschung:
1. Nicht beschränkt auf Circumscription
2. Tritt nicht nur auf bei Aktionen mit Vorbedingungen
3. Allgemein als Herausforderung für logikorientierten Ansatz betrachtet.
Lösungsversuche:
1. Chronologische Minimierung
Beobachtung: Im Yale-Shooting Szenario entsteht das nicht-intendierte Modell durch unnötig
frühe Veränderung. Idee: Veränderungen (Abnormalitäten) so weit wie möglich rauszögern.
(Kautz, Shoham, Lifschitz)
Formalisierung:
Def.: Ein Situationsterm s1 ist Vorläufer eines Situationsterms Result(a,s2) gdw.
1) s1 = s2 oder
2) s1 ist Vorläufer eines Situationsterms s3 und s3 ist Vorläufer von s2.
Def.: M1 ist chronologisch (mindestens) so klein wie M2, M1 ≤c M2, falls gilt:
1) M1 und M2 stimmen in der Interpretation aller Symbole außer Holds und Ab überein
2) für alle Situationsterme s gilt
• {(a,f) | (a, f, M1[[s]]) in M1[[ab]]} Teilmenge von {(a,f) | (a, f, M2[s]]) in M2[[ab]]}
oder
• es gibt einen Vorläufer s' von s so dass {(a,f) | (a, f, M1[[s']]) in M1[[ab]]} echte
Teilmenge von {(a,f) | (a, f, M2[s']]) in M2[[ab]]}
Sei S die Konjunktion einer Menge von Effekt Axiomen, Domain Constraints und
Beobachtungen zusammen mit den Baumaxiomen und dem universellen Frame Axiom.
F ist Konsequenz der chronologischen Minimierung von S gdw. F in allen chronologisch
minimalen Modellen von S gilt.
Entsprechendes Circumscriptionsaxiom wurde von Kautz angegeben.
Yale Shooting Problem gelöst: unintendiertes Modell ist nicht chronologisch minimal, da im
intendierten Modell Abnormalität später auftritt.
Scheint für Prediction zu funktionieren.
Aber:
Erklärung (Postdiction).
Stolen car scenario (Kautz). Auto morgens in Parkhaus abgestellt, abends nicht vorgefunden,
Schluß: Auto wurde unmittelbar vorher gestohlen.
S |=c ¬Ab(Wait, Stolen, S0) & Ab(Wait, Stolen, Result(Wait,S0))
2. Kausale Minimierung
bisher: Veränderung der zugrundeliegenden Logik, jetzt: Veränderung der Modellierung
Unintendiertes Modell in YSP weist Veränderungen auf, die nicht durch Aktionen erklärt
werden können.
2 neue Prädikate:
Causes(a,f,v):
Precond(f,v,a):
Aktion a bewirkt, dass Fluent f Wahrheitswert v bekommt.
Fluent f muß Wahrheitswert v haben, damit Aktion a Effekt haben kann
neue Sorte truth value, Konstanten True, False, Axiom
(CM1) True ≠ False
Precond und Causes werden minimiert. Dient auch zur Lösung des Qualifikation Problems:
In order to fully represent the conditions for the successful performance of an action,
an impractical and implausible number of qualifications would have to be included in
the sentences expressing them (J. McCarthy, 1980)
(CM2) [Success(a,s) & Causes(a,f,v)] -> [Holds(f, Result(a,s) <-> v = True]
(CM3) ¬Affects(a,f,s) -> [Holds(f, Result(a,s)) <-> Holds(f,s)]
CM3 besagt, dass alle Änderungen durch Aktionen verursacht sein müssen.
Success und Affects sind hier Abkürzungen:
Success(a,s) = Forall f [Precond(f,v,a) -> [Holds(f,s) <-> v = True]]
Affects(a,f,s) = Success(a,s) & Exists v Causes(a,f,v)
YSP:
1) Holds(Alive,S0)
2) ¬Holds(Loaded,S0)
3) UNA[Load,Wait,Shoot] & UNA[Alive, Loaded] & UNA[S0,Result]
4) Causes(Load,Loaded,True)
5) Causes(Shoot, Alive, False)
6) Precond(Loaded,True,Shoot)
Sei S die Konjunktion aus 1,...,6,CM1,CM2,CM3
Es gilt:
Circ[S; Causes, Precond; Holds] |=
¬Holds(Alive,Result(Shoot,Result(Wait,Result(Load,S0))))
Beweis: Es sei S1 = Result(Load,S0), S2 = Result(Wait,S1), S3 = Result(Shoot,S2)
Die Minimierung von Causes und Precond bewirkt, dass 4,5,6 die einzigen gültigen Instanzen
von Causes und Precond sind. D.h. wir haben:
Causes(a,f,v) <-> [a = Load & f = Loaded & v = True] v [a = Shoot & f = Alive & v = False]
Precond(f,v,a) <-> [f = Loaded & v = True & a = Shoot]
Damit bekommen wir Success(Load,S0) und mit Causes(Load,Loaded,True) aus (CM2)
Holds(Loaded,S1).
Da es kein Causes(Wait,Loaded,v) gibt, gilt ¬Affects(Wait,Loaded,S1) und mit CM3
Holds(Loaded, S2).
Wir haben Success(Shoot,S2). Daraus ergibt sich mit 5 aus CM2 ¬Holds(Alive, S3).
Allerdings auch hier wieder Probleme:
a) Modellierung kontextabhängiger Effekte (Trick: pro Kontext neue Aktion)
b) domain constraints und indirekte Effekte.
c) Postdiction
zu c) Stolen car scenario
SC1) ¬Holds(Stolen, S0)
SC2) S2 = Result(Wait, Result(Wait,S0))
SC3) Holds(Stolen,S2)
Aus diesen Axiomen und CM3 folgt:
Affects(Wait,Stolen,S0) v Affects(Wait, Stolen,Result(Wait,S0))
Daraus kriegt man mit der Definition von Affects:
Exists v Causes(Wait,Stolen,v) & [Success(Wait,S0] v Success(Wait,Result(Wait,S0))]
Hieraus kriegt man mit CM2
Causes(Wait,Stolen,True)
Offensichtlich nicht intendiert
also: noch keine zufriedenstellende Lösung
Beobachtung: Formulierung als Logikprogramm führt nicht zu Problemen bei YSP:
Holds(Loaded,Result(Load,s))
Affects(Shoot,Alive,s) <- Holds(Loaded,s)
Holds(Alive, S0)
Holds(f,Result(a,s)) <- Holds(f,s) & not Affects(a,f,s)
Univ. Frame Axiom
Prop.: Aus obigem Programm lässt sich ableiten:
not Holds(Alive,Result(Shoot,Result(Wait,Result(Load,S0)))
wieso? Direktionalität der Regeln. a <- not b ≠ b <- not a
Abkürzungen:
S1 = Result(Load,S0)
S2 = Result(Wait,S1)
S3 = Result(Shoot,S2)
not Holds(Alive,S3)
Holds(Alive,S3)
Holds(Alive,S2) & not Affects(Shoot, Alive, S2)
Affects(Shoot, Alive, S2)
Holds(Loaded,S2)
Holds(Loaded,S1) & not Affects(Wait,Loaded, S1)
Affects(Wait,Loaded, S1)
[]
FAIL
[] FAIL
Herunterladen