Database Reference
In-Depth Information
gibt es ein spezielles binares Funktionssymbol
do
, das aus einer Aktion
a
und einer
Situation
s
eine neue Situation
do(a,s)
bildet.
Fur die initiale Situation
S0
und den in Abbildung 11.1(a) beschriebenen Aus-
gangszustand gelten:
ONTABLE(A,S0)
,
ON(B,C,S0)
,
ONTABLE(C,S0)
,
CLEAR(A,S0)
,
CLEAR(B,S0)
Fur die Aktion
STACK(A,B)
bezeichnet der Term
do(STACK(A,B),S0)
die Nachfolgesituation, die aus der Situation
S0
entsteht, wenn man
A
vom Tisch
auf
B
setzt. Auf eine Nachfolgesituation kann man wieder eine Aktion anwenden.
Daher bezeichnet der Term
do(STACK(B,A),do(STACK(A,C),do(UNSTACK(B,C),S0)))
die Situation, die der Aktionensequenz [
UNSTACK(B,C)
,
STACK(A,C)
,
STACK(B,A)
]
entspricht. (Beachten Sie, dass sich in einem Situationsterm die Reihenfolge der
Aktionen von rechts nach links ergibt!) Eine Situation wird daher auch als
Historie
bezeichnet.
11.3.3
Veranderungen zwischen Situationen
Der Wahrheitswert einer Formel
ONTABLE(A,s)
hangt nun entsprechend von dem
Situationsargument
s
ab;
ONTABLE(A,s')
kann in einer anderen Situation
s'
durch-
aus einen anderen Wahrheitswert haben. Eine solche Relation, deren Wert von einer
Situation abhangig ist, wird
relationaler Fluent
(
relational fluent
) genannt. Bei-
spielsweise besagt die Formel
ON(B,C,s)
dass sich in der Situation
s
Block
B
auf
C
befindet. Die Formel
CLEAR(C,do(UNSTACK(B,C),s))
besagt, dass sich in der Situation, die sich aus
s
durch Herunternehmen des Blocks
B
von
C
ergibt, kein Block auf
C
befindet.
11.3.4
Ausfuhrungsbedingungen und Effektaxiome
Eine Aktion
a
kann in einer Situation
s
nur ausgefuhrt werden, wenn bestimmte
Vorbedingungen erfullt sind; z.B. darf sich kein anderer Block auf dem zu bewe-
genden Block befinden. Im Situationskalkul werden diese Vorbedingungen fur jede
Aktion
a
durch eine Formel
Poss(a,s)
uber den in
a
auftretenden Variablen und
einer Situationsvariablen
s
definiert.
Poss(a,s)
besagt, dass es in der Situation
s
moglich ist, die Aktion
a
auszufuhren. Die Ausfuhrungsbedingungen fur die Aktio-
nen
STACK(x,y)
und
UNSTACK(x,y)
sind z.B.