Database Reference
In-Depth Information
Die beiden Regeln unter
DISPLAY
(Abbildung 11.18) bewirken, dass
SMODELS
nur die
move
-Atome einer Antwortmenge anzeigt. Bei dem Programm, das in den
Abbildungen 11.17 - 11.19 angegeben ist, erzeugt
SMODELS
das stabile Modell
{
move
(
3
,
table
,
0
),
move
(
1
,
table
,
0
),
move
(
5
,
4
,
1
),
move
(
2
,
1
,
1
),
move
(
6
,
5
,
2
),
move
(
3
,
2
,
2
)
}
das einem Plan zur Losung des Problems entspricht.
Selbsttestaufgabe 11.7 (
SMODELS
)
Begrunden Sie, warum eine Antwortmenge
zu dem gegebenen
SMODELS
-Programm jeweils keine der folgenden Mengen als
Teilmenge enthalten kann:
1.
{
}
move(5,table,0), move(6,3,0), move(5,3,1)
2.
{
}
move(5,table,0), -move(6,3,0), move(5,3,1)
3.
{
move(5,3,0), move(3,table,1)
}
4.
{
move(5,3,0), move(1,6,0), not on(2,1,0)
}
5.
{
move(3,2,2), move(5,6,2)
}
6.
{
on(5,6,1), -on(6,table,0)
}
11.8.3
Behandlung des Rahmenproblems
Die Blockwelt des obigen
SMODELS
-Programms ist komplexer als die Version der
Blockwelt, die wir in den vorhergehenden Abschnitten zur Illustration des Situati-
onskalkuls und
STRIPS
verwendet haben, da es mehrere Greifarme gibt und mehrere
Blocke gleichzeitig bewegt werden konnen. Im Situationskalkul und auch in
STRIPS
wird die Vorbedingung, dass ein Block nur auf einen anderen Block gestellt werden
kann, wenn der Zielblock frei ist, explizit angegeben. Konnen mehrere Blocke gleich-
zeitig bewegt werden, ist diese Vorbedingung in dieser Form nicht mehr zutreffend.
So ist z.B. in dem in Abbildung 11.19 angegebenen Ausgangszustand die Aktion
move(3,6,0)
moglich, wenn gleichzeitig Block 5 bewegt wird.
In dem
SMODELS
-Programm wird dieses Problem dadurch gelost, dass nicht
alle Vorbedingungen explizit angegeben werden mussen, sondern auch implizit spe-
zifiziert werden konnen. So verhindert das allgemeine Constraint, dass zwei ver-
schiedene Blocke nicht auf demselben Block sein konnen (erste Regel in Abbildung
11.18), Aktionen, bei denen ein Block auf einen Block gestellt wurde, der nicht frei
ist.
Auch die Effekte einer Aktion werden im Paradigma der Antwortmengen
nicht alle explizit, sondern auch implizit spezifiziert. Dazu betrachten wir die
Aktion
move(1,table,0)
. Diese Aktion hat Einfluss auf die relationalen Fluents
on(1,table)
,der
true
wird, und
on(1,2)
,der
false
wird. Der erste dieser beiden
Effekte wird explizit durch die erste
DFINE
-Regel in Abbildung 11.17 beschrieben.
Der zweite Effekt dagegen wird indirekt beschrieben. Mit der dritten
DFINE
-Regel
in Abbildung 11.17 (“Eindeutigkeit des Ortes”) ist es namlich moglich abzuleiten,
dass sich Block 1 zum Zeitpunkt
T=1
nicht mehr auf Block 2 befindet, da er jetzt
auf dem Tisch steht. Dies ist ein Beispiel dafur, dass indirekte Effekte von Aktionen
(vgl. Abschnitt 11.4.3) beim Planen mit Antwortmengen auch indirekt spezifiziert
werden konnen.