240 likes | 481 Views
The start state is given by: ON(C, A) ONTABLE(A) ONTABLE(B) ARMEMPTY The goal by: ON(A,B) ON(B,C) This immediately leads to two approaches as given below 1. ON(A,B) ON(B,C) ON(A,B) ON(B,C) 2. ON(B,C)
E N D
The start state is given by: ON(C, A) ONTABLE(A) ONTABLE(B) ARMEMPTY The goal by: ON(A,B) ON(B,C) This immediately leads to two approaches as given below 1. ON(A,B) ON(B,C) ON(A,B) ON(B,C) 2. ON(B,C) ON(A,B) ON(A,B) ON(B,C) Sussman anomaly - analysis
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) CLEAR(C) ARMEMPTY UNSTACK(C,A) ARMEMPTY CLEAR(A) ARMEMPTY PICKUP(A) CLEAR(B) HOLDING(A) STACK(A,B) ON(B,C) ON(A,B) ON(B,C) Sussman anomaly - analysis
This achieves block A on block Bwhichwas 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 justdid. Sussman anomaly - analysis
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) Sussman anomaly - analysis
Analysing this sequence we observe that Steps 4 and 5 are opposites and thereforecancel each other out, Steps 3 and 6 are opposites and thereforecancel each other out as well. So a more efficient scheme is: 1.UNSTACK(C,A) 2.PUTDOWN(C) 3.PICKUP(B) 4.STACK (B,C) 5.PICKUP(A) 6.STACK(A,B) To produce in all such cases this efficient scheme where this interaction between the goals requires more sophisticated techniques Sussman anomaly - analysis
Nonlinear Planning Using Constraint Posting Let us reconsider the SUSSMAN ANOMALY Problems like thisrequire subproblems to be worked on simultaneously. Thus a nonlinear plan using heuristics such as: 1.Try to achieve ON(A,B) clearing block A putting block C on the table. 2.Achieve ON(B,C) by stacking block B on block C. 3.Complete ON(A,B) by stacking block A on block B. Sussman anomaly - analysis
Constraint posting has emerged as a central technique in recent planning systems (E.g. MOLGEN and TWEAK) Constraint posting builds up a plan by: suggesting operators, trying to order them, and produce bindings between variables in the operators and actual blocks. The initial plan consists of no steps and by studying the goal state ideas for the possible steps are generated. There is no order or detail at this stage. Sussman anomaly - analysis
Gradually more detail is introduced and constraints about the order of subsets of the steps are introduced until a completely ordered sequence is created. • In this problem means-end analysis suggests two steps with end conditions ON(A,B) and ON(B,C) which indicates the operator STACK giving the layout shown • below where the operator is preceded by its preconditions and followed by its post conditions: • CLEAR(B) CLEAR(C) • *HOLDING(A) *HOLDING(B)
STACK(A,B) STACK(B,C) • ARMEMPTY ARMEMPTY • ON(A,B) ON(B,C) • CLEAR(B) CLEAR(C) • HOLDING(A) HOLDING(B) • There is no order at this stage. • Unachieved preconditions are starred (*). Both of the HOLDING preconditions are unachieved since the arm holds nothing in the initial state. • Delete postconditions are marked by ().
Total Order Plan: Partial Order Plan: Start Start Start Start Start Start Start Right Sock Right Sock Left Sock Left Sock Left Sock Right Sock Left Sock Right Sock Left Shoe Right Sock Right Shoe Left Sock Right Sock Left Sock Left Shoe Right Shoe Right Shoe Left Shoe Right Sock Left Sock Left Shoe Right Shoe Left Shoe Right Shoe Left Shoe Right Shoe Left Shoe Right Shoe Finish Finish Finish Finish Finish Finish Finish Partial vs. Total Order Plans
Example plan to buy groceries and drill • Stage one, choose preconditions of goal state and select operators that satisfy them • Note, actions added to plan in quite different order than they are executed • Also, note possible satisfactions for new preconditions in start state
Create protected links from states where they are already true (here, the start)
Add go actions to satisfy at() preconditions of buy operators