tweak solving the sussman anomaly on(a,b) on(b,c) on(c,a) ontable(a) ontable(b) clear(c) clear(b)...
TRANSCRIPT
TWEAK solving the Sussman anomaly
ON(A,B)ON(B,C)
ON(C,A)ONTABLE(A)ONTABLE(B)
CLEAR(C)CLEAR(B)
ARMEMPTY
STACK(A,B)
STACK(B,C)
Two step additions to satisfy the two goalsAlso, simple establishment achieves highlighted propositions.
ON(A,B)CLEAR(A)
~CLEAR(B)ARMEMPTY
ON(B,C)CLEAR(B)~CLEAR(C)
ARMEMPTY
ONTABLE(A)CLEAR(A)CLEAR(B)
HOLDING(A)
ONTABLE(B)CLEAR(B)CLEAR(C)
HOLDING(B)
Start state
Goal state
ON(A,B)ON(B,C)
STACK(A,B)
STACK(B,C)
Two more step additions to satisfy the two HOLDING preconditions
ON(A,B)CLEAR(A)
~CLEAR(B)ARMEMPTY
ON(B,C)CLEAR(B)
~CLEAR(C)ARMEMPTY
~ONTABLE(A)HOLDING(A)
CLEAR(B)PICKUP(A)
PICKUP(B)
ONTABLE(A)CLEAR(A)
ARMEMPTY
ONTABLE(B)CLEAR(B)
ARMEMPTY
ON(C,A)ONTABLE(A)ONTABLE(B)
CLEAR(C)CLEAR(B)
ARMEMPTY
Start state
Goal state
~ONTABLE(B)HOLDING(B)
CLEAR(C)
Normally, when steps are added to the plan, two states should be created: a precondition and a result (effect). This is because other steps might be inserted inbetween. In these diagrams, I have omitted some of these states so that the diagrams can fit on the slides.
Promotion (or is it Declobbering??) establishes CLEAR(B) IN STATE A
State A
ON(A,B)ON(B,C)
STACK(A,B)
STACK(B,C)
ON(A,B)CLEAR(A)
~CLEAR(B)ARMEMPTY
ON(B,C)CLEAR(B)~CLEAR(C)
ARMEMPTY
~ONTABLE(A)HOLDING(A)
CLEAR(B)~ARMEMPTY
PICKUP(A)
PICKUP(B)
ONTABLE(A)CLEAR(A)
ARMEMPTY
ONTABLE(B)CLEAR(B)
ARMEMPTY
ON(C,A)ONTABLE(A)ONTABLE(B)
CLEAR(C)CLEAR(B)
ARMEMPTY
Start state
Goal state
~ONTABLE(B)HOLDING(B)
CLEAR(C)~ARMEMPTY
Step Addition achieves CLEAR(A) in State B
State B
ON(A,B)ON(B,C)
STACK(A,B)
STACK(B,C)
ON(A,B)CLEAR(A)
~CLEAR(B)ARMEMPTY
ON(B,C)CLEAR(B)
~CLEAR(C)ARMEMPTY
~ONTABLE(A)HOLDING(A)
CLEAR(B)~ARMEMPTY
PICKUP(A)
PICKUP(B)
ONTABLE(A)CLEAR(A)
ARMEMPTY
ONTABLE(B)CLEAR(B)
ARMEMPTY
ON(C,A)ONTABLE(A)ONTABLE(B)
CLEAR(C)CLEAR(B)
ARMEMPTY
Start state
Goal state~ONTABLE(B)HOLDING(B)
CLEAR(C)~ARMEMPTY
UNSTACK(C,A)
CLEAR(C)ON(C,A)
ARMEMPTY
HOLDING(C)~ON(C,A)
~ARMEMPTY
ON(A,B)ON(B,C)
STACK(A,B)
STACK(B,C)
Step Addition achieves ARMEMPTY in State C
ON(A,B)CLEAR(A)
~CLEAR(B)ARMEMPTY
ON(B,C)CLEAR(B)
~CLEAR(C)ARMEMPTY
CLEAR(B)HOLDING(A)~ARMEMPTY
PICKUP(A)
PICKUP(B)
~ONTABLE(A)HOLDING(A)~ARMEMPTY
CLEAR(C)HOLDING(B)~ARMEMPTY
~ONTABLE(B)HOLDING(B)~ARMEMPTY
ONTABLE(A)CLEAR(A)
ARMEMPTY
ONTABLE(B)CLEAR(B)
ARMEMPTY
ON(C,A)ONTABLE(A)ONTABLE(B)
CLEAR(C)CLEAR(B)
ARMEMPTY
UNSTACK(C,A)
HOLDING(C)CLEAR(A)
~ARMEMPTY
ARMEMPTYON(C,A)CLEAR(C)
Start state
Goal state
State C
PUTDOWN(C)
ON(A,B)ON(B,C)
STACK(A,B)
STACK(B,C)
ON(A,B)CLEAR(A)
~CLEAR(B)ARMEMPTY
ON(B,C)CLEAR(B)
~CLEAR(C)CLEAR(A)
ARMEMPTY
CLEAR(B)HOLDING(A)~ARMEMPTY
PICKUP(A)
PICKUP(B)
~ONTABLE(A)HOLDING(A)~ARMEMPTY
CLEAR(C)HOLDING(B)~ARMEMPTY
~ONTABLE(B)HOLDING(B)~ARMEMPTY
ONTABLE(A)CLEAR(A)
ARMEMPTY
ONTABLE(B)CLEAR(B)
ARMEMPTY
ON(C,A)ONTABLE(A)ONTABLE(B)
CLEAR(C)CLEAR(B)
ARMEMPTY
UNSTACK(C,A)
HOLDING(C)CLEAR(A)
~ARMEMPTY
ARMEMPTYON(C,A)CLEAR(C)
Start state
Goal state
State D
PUTDOWN(C)
Promotion (or is it Declobbering??) establishes ARMEMPTY IN STATE D