We will assume the initial state is:
Let's also assume that the goal is to . We will use the
operator table above.
Now lets's work through a complete example:
Let the state (world description) be:
Let the goal state be:
i.e. all the boxes must be in the same place (the here indicates
a variable location).
First, STRIPS looks at each goal in turn (we assume no clever ordering
for now). The goal is first matched against the current world
state. The match works with
. So the goal is satisfied. Now for the others.
The next goal is but this does not have a match in the
current world state - so a subgoal is set up to achieve
. To satisfy this goal, we look through the Add List for
the operator table above. We find two operators that apply (both go
and push) but we choose the second (push). The goal
will match the entry
in the Add List. So
and
.
So we select
at the operator to apply.
Now we try to satisfy its preconditions - . Now the second precondition
matches the current
state against
. Hence we have
. But the other
precondition fails (
). We now set up a subgoal of
. We look at the
operator since it mentions
in the Add List. This matches against
with
. The preconditon is satisfied and all goes through OK.
We end up with the plan:
The final goal - - can be solved in a similar way.
But there are soome assumptions buried in this description that we now
address.