next up previous
Next: Sussman Anomaly (1975) Up: Planning I Previous: Detecting Progress

Goal Stack Planning

Basic Idea to handle interactive compound goals uses goal stacks, Here the stack contains :

Consider the following where wish to proceed from the start to goal state.

Fig. 24 Goal Stack Planning Example

We can describe the start state:

ON(B, A) tex2html_wrap_inline7782 ONTABLE(A) tex2html_wrap_inline7782 ONTABLE(C) tex2html_wrap_inline7782 ONTABLE(D) tex2html_wrap_inline7782 ARMEMPTY

and goal state:

ON(C, A) tex2html_wrap_inline7782 ON(B,D) tex2html_wrap_inline7782 ONTABLE(A) tex2html_wrap_inline7782 ONTABLE(D)

The method is to

Consider alternative 1 above further:

In this first route we can see three references to some block, x and these must refer to the same block, although in the search it is conceivable several blocks will become temporarily attached. Hence the binding of variables to blocks must be recorded. Investigating further we need to satisfy the first goal and this requires stacking C on some block which is clear.

    CLEAR(x)

HOLDING(C)

CLEAR(x) tex2html_wrap_inline7782 HOLDING(C)

STACK (C, x)

CLEAR(C)

ARMEMPTY

tex2html_wrap_inline7166

We now notice that one of the goals created is HOLDING(C) which was the goal we were trying to achieve by applying UNSTACK(C, some block) in this case and PICKUP(C) in the other approach. So it would appear that we have added new goals and not made progress and in terms of the A* algorithm it seems best to try the other approach.

So looking at the second approach

The new goal stack becomes;

    CLEAR(D)

HOLDING(B)

CLEAR(D) tex2html_wrap_inline7782 HOLDING(B)

STACK (B, D)

ONTABLE(C) tex2html_wrap_inline7782 CLEAR(C) tex2html_wrap_inline7782 ARMEMPTY

PICKUP(C)

tex2html_wrap_inline7166

This method produces a plan using good Artificial Intelligence techniques such as heuristics to find matching goals and the A* algorithm to detect unpromising paths which can be discarded.




next up previous
Next: Sussman Anomaly (1975) Up: Planning I Previous: Detecting Progress

dave@cs.cf.ac.uk