next up previous
Next: Further Reading Up: Goal Stack Planning Previous: Goal Stack Planning

Sussman Anomaly (1975)

Above method may fail to give a good solution. Consider:

Fig. 25 Sussman's Anomaly

The start state is given by:

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

The goal by:

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

This immediately leads to two approaches as given below

  1.     ON(A,B)
    

    ON(B,C)

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

  2.     ON(B,C)
    

    ON(A,B)

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

Choosing path 1 and trying to get block A on block B leads to the goal stack:

    ON(C,A)

CLEAR(C)

ARMEMPTY

ON(C,A) tex2html_wrap_inline7782 CLEAR(C) tex2html_wrap_inline7782 ARMEMPTY

UNSTACK(C,A)

ARMEMPTY

CLEAR(A) tex2html_wrap_inline7782 ARMEMPTY

PICKUP(A)

CLEAR(B) tex2html_wrap_inline7782 HOLDING(A)

STACK(A,B)

ON(B,C)

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

This achieves block A on block Bwhich was produced by putting block C on the table.

The sequence of operators is

  1. UNSTACK(C,A)
  2. PUTDOWN(C)
  3. PICKUP(A)
  4. STACK (A,B)

Working on the next goal of ON(B,C) requires block B to be cleared so that it can be stacked on block C. Unfortunately we need to unstack block A which we just did. Thus the list of operators becomes

  1. UNSTACK(C,A)
  2. PUTDOWN(C)
  3. PICKUP(A)
  4. STACK (A,B)
  5. UNSTACK(A,B)
  6. PUTDOWN(A)
  7. PICKUP(B)
  8. STACK (B,C)

To get to the state that block A is not on block B two extra operations are needed:



    8
  1. PICKUP(A)
  2. STACK(A,B)

Analysing this sequence we observe that

To produce in all such cases this efficient scheme where this interaction between the goals requires more sophisticated techniques which will be considered in the next lecture.


next up previous
Next: Further Reading Up: Goal Stack Planning Previous: Goal Stack Planning

dave@cs.cf.ac.uk