Goal Stacks
| I) | II) |
| On(a,b) | On(b,c) |
| On(b,c) | On(a,b) |
| On(a,b) and On(b,c) | On(a,b) and On(b,c) |
consider: multiple conjunctions ... permutations
*each time!
Look at this table from bottom up (remember stack)
| On(C,A) | Operator Sequence | |
| Clear(C) | (Plan) | |
| ArmEmpty | ||
| Clear(C) and ArmEmpty and On(C,A) | Unstack(C,A) | |
| -Unstack (C,A) | PutDown(C) | |
| ArmEmpty | PickUp(A) | |
| Clear(A) and ArmEmpty and OnTable(A) | Stack(A,B) | |
| -PickUp (A) | . | |
| Clear(B) and Holding (A) | . | |
| -Stack (A,B) | . | |
| On (B,C) | ||
| On (A,B) and On(B,C) | picture now | |
| -> | world view |
On(B,C)
On(A,B) and On(B,C)
.
.
.
->
On(A,B) and On(B,C)
->
On(A,B)
On(A,B) and On(B,C)
Need: method capable of finding efficient way!
linear - no concept of 'ease' ... which first?
additional processing (repair): where perform operation then immediately undo
Complete operation stack
undo (eliminate)
reduction difficult
Solution:
do not plan sequentially to achieve compound goals (i.e., consider effects)
nonlinear planning