Upload
brooke-ford
View
213
Download
1
Embed Size (px)
Citation preview
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