Database Reference
In-Depth Information
on(3,5,1)
enthalten, um die erste
DEFINE
-Regel aus Abbildung 11.17 zu erfullen.
Die dritte
DEFINE
-Regel in Abbildung 11.17 nutzt die Eindeutigkeit des Ortes
eines Gegenstandes zu jedem Zeitpunkt. Sie spezifiziert negative
on
-Literale, die im
Hinblick auf die positiven
on
-Literale in einer Antwortmenge ebenfalls enthalten
sein sollen.
Auf die Form und Wirkungsweise dieser
DEFINE
-Regeln werden wir im nachsten
Abschnitt 11.8.3 noch genauer eingehen.
Die Regeln unter
TEST
in den Abbildungen 11.18 und 11.19 sind Constraints,
die die durch die
GENERATE
-Regel spezifizierten moglichen Losungen einschranken.
Die erste
TEST
-Regel in Abbildung 11.18 verhindert Antwortmengen, in denen zwei
Blocke auf demselben Block stehen wurden. So kann eine Literalmenge S,die
on(1,2,1)
und
on(3,2,1)
enthalt, die erste Regel nicht erfullen. Die zweite Regel
fordert, dass ein Block nur bewegt werden kann, wenn kein anderer auf ihm steht.
Enthalt S
on(1,2,0)
und
move(2,3,0)
, so ist diese Regel nicht erfullt. Die dritte
Regel spezifiziert die Einschrankung, dass ein Block nicht auf einen Block gesetzt
werden kann, der ebenfalls bewegt wird; enthalt S
move(1,3,0)
, und
move(3,5,0)
,
so wird diese dritte Regel nicht erfullt.
Die bereits vorgestellten funf
TEST
-Regeln aus Abbildung 11.19 eliminieren
alle Antwortmengen, die nicht zu dem gewunschten Zielzustand zum Zeitpunkt
lasttime
fuhren.
Insgesamt bewirken diese Constraints, dass genau die Antwortmengen ubrig
bleiben, die einer Menge von
move
-Aktionen entsprechen, die den Anfangszustand
in den gewunschten Zielzustand uberfuhren.
const grippers = 2.
const lasttime = 3.
block(1..6).
% DEFINE
on(1,2,0).
% Initialzustand:
on(2,table,0).
%
on(3,4,0).
%
on(4,table,0).
%
1
3
5
on(5,6,0).
%
2
4
6
on(6,table,0).
%
--------------
% TEST
:- not on(3,2,lasttime).
% Ziel:
:- not on(2,1,lasttime).
%
:- not on(1,table,lasttime).
%
3
6
:- not on(6,5,lasttime).
%
2
5
:- not on(5,4,lasttime).
%
1
4
:- not on(4,table,lasttime).
%
--------------
Abbildung 11.19
Planen mit
SMODELS
, Teil 3 (nach [140])