Planning
in the blocks world
This is a standard AI problem. Several blocks are placed on a
table in stacks - each block is located either on the table or on another
block, no block is placed on two other blocks or on a block and the table
in the same time, no two blocks are placed directly on the same block .
These blocks need to be rearranged to a given goal configuration. This
goal configuration satisfies the same constraints as the initial one. A
legal move consists of picking the top block from some stack and placing
it on top of another stack or on the table.
NOTES:
-
The initial configuration must be completely specified. The goal configuration
may possibly be given only a partial specification.
-
Two versions of the problem are of interest depending on whether concurrent
actions are allowed.
INPUT:
-
An initial configuration. Blocks are represented as integers 0, 1, 2, ...
. The configuration is given in terms of ground atoms of the form "on0(a,b)".
The meaning of atom "on0(a,b)" is: at time 0 block a is directly on top
of block b).
-
A goal configuration (possibly an incomplete description). The configuration
is given in terms of a list of ground atoms of the form "onF(a,b)". The
meaning of atom "onF(a,b)" is: the goal is to have a directly on top of
block b.
OUTPUT: A set of actions that transform initial configuration into
the goal configuration.
DATA SETS:
-
dl.c 15 blocks 1, 2, ..., 15
(derived from a data set posted at SATLIB)
-
dl.d 17 blocks 1, 2, ..., 17
(derived from a data set posted at SATLIB)