Planning in FOL Systems sequences of actions to achieve goals
D Goforth - COSC 4117, fall Planning Example: Blocks world objects: blocks on a table actions: move blocks ‘on’ one object to ‘on’ another object goals: configurations of blocks plan: sequence of actions to achieve goals T ABC D
D Goforth - COSC 4117, fall Classical Planning - STRIPS STanford Research Institute Problem Solver Closed world assumption facts not in KB are assumed false Predicates in KB must refer to specific objects (no variables, no functions) Goal – conjunction of positive literals No ‘situation calculus’ – current state only
D Goforth - COSC 4117, fall Classical Planning - STRIPS actions: preconditions – predicates that must be in KB effect – some predicates added to KB and some predicates removed (‘negated’) plan – sequence of actions to get goal predicates into KB
Blocks world objects: A, B, C, D, T KB: On(A,T)^On(B,T)^On(C,T)^On(D,C) ^Block(A)^Block(B)^Block(C)^Block(D) ^Clear(A) ^Clear(B )^Clear(D) ^Clear(T)* Goal: On(A,B)^On(B,C) T ABC D * Clear(x) means “there is space on x for a block”
Blocks world actions: Move(b,x,y) // move b from x to y PRE:On(b,x)^Clear(b)^Clear(y)^Block(b)^Block(y) EFFECT:On(b,x)^Clear(y)^Clear(x)^On(b,y) MoveToTable(b,x) // move b from x to table PRE:On(b,x)^Clear(b) ^Block(b) ^Block(x) EFFECT:On(b,x)^Clear(x)^On(b,T) // remove from KB; add to KB T ABC D
D Goforth - COSC 4117, fall STRIPS requirements need ‘Clear’ because Clear cannot be inferred from the ‘On’ predicates need two Move actions to manage the ‘clear table’ problem unsolved problem: can’t avoid ‘repeated literal’ problem Move(B,C,C)
D Goforth - COSC 4117, fall Planning – state space search current KB is current state applying an action is an edge revised KB is next state from current KB, search for path of actions to state containing goal
Blocks world KB: On(A,T)^On(B,T)^On(C,T)^On(D,C) ^Block(A)^Block(B)^Block(C)^Block(D) ^Clear(A)^Clear(B) ^Clear(D) ^Clear(T) T ABC D KB: On(A,D)^On(B,T)^On(C,T)^On(D,C) ^Block(A)^Block(B)^Block(C)^Block(D) ^Clear(A) ^Clear(B) ^Clear(T) T A BC D Move(A,T,D)
D Goforth - COSC 4117, fall Forward search irrelevant action problem: actions that are possible lead to large branching needs good heuristic to be efficient (breaks FOL domain independence)
D Goforth - COSC 4117, fall Backward search actions with goal state as ‘effect’ are ‘regressed’ focus on ‘relevant’ actions avoid actions that undo goal state predicates goal state predicates previous state predicates undo action effects add preconditions
Blocks world – preconditions match Goal: On(A,B)^On(B,C) T A B C D On(A,T)^On(B,T)^On(C,T)^On(D,C) ^Block(A)^Block(B)^Block(C)^Block(D) ^Clear(A) ^Clear(B) ^Clear(T) T A BC D Move(A,x,B) {T/x} Preconditions for Move(A,T,B)
Blocks world – preconditions not match Goal: On(A,B)^On(B,C) T A B D On(A,T)^On(B,T)^On(C,T)^On(D,C) ^Block(A)^Block(B)^Block(C)^Block(D) ^Clear(A) ^Clear(B)^Clear(D)^Clear(T) T AB C D Move(B,x,C) {T/x} C On(B,T)^ Block(B)^Block(C)^ Clear(C) ^Clear(B) AB DC T MoveToTable(y,C) {D/y}
D Goforth - COSC 4117, fall State space search algorithms heuristics: admissible (don’t overestimate path cost) generic heuristics not domain dependent relaxed problem – reduce preconditions, remove negative effects independent subgoals – achieve goal predicates one at a time: assume one goal does not help or prevent another
Blocks world - heuristics Move(b,x,y) PRE:On(b,x)^Clear(b)^Clear(y)^Block(b)^Block(y) EFFECT:On(b,x)^Clear(y)^Clear(x)^On(b,y) MoveToTable(b,x) PRE:On(b,x)^Clear(b)^Block(b) EFFECT:On(b,x)^Clear(x)^On(b,T) For example goal On(A,B) On(B,C): Heuristic “independent subgoals” On(A,B) and On(B,C) simplifies because On(A,B) interferes with On(B,C) Heuristic “relaxed problem” remove preconditions, negatives T ABC D
D Goforth - COSC 4117, fall Partial Order Planning since GPS (General Problem Solver), understood getting the major steps in place first improves planning e.g. car trip including a ferry crossing plans built in mixed order, not just forward or backward
D Goforth - COSC 4117, fall Partial Order Planning in many plans, order of some steps does not matter if parts of goal are independent, does not matter which goal is achieved first T ABCD Goal: On(A,B)^On(C,D)
D Goforth - COSC 4117, fall Partial Order Planning planning takes place in ‘plan space’ of partial plans a partial plan contains: 1.actions, A, B, C,...,Start, Finish 2.ordering constraint between some actions: A must be done before B: A B 3.causal links: A produces a precondition for B: 4.set of unachieved preconditions (empty in final plan)
D Goforth - COSC 4117, fall The empty plan (root of plan search space tree) Action: Start PRE: none EFFECT: start state of space Action: Finish PRE: goal predicates EFFECT: none T A BC D A B D On(A,B) On(B,T) On(D,C) On(C,T) On(A,B) On(B,C) On(C,D) C open{On(B,C),On(C,D)} Start Finish NOTE: some predicates not shown – Clear in KB
A partial plan Action: Start PRE: none EFFECT: On(A,B),On(B,T),On(D,C),On(C,T) Action: Finish PRE: On(A,B),On(B,C),On(C,D) EFFECT: none T A BC D A B D C open{On(C,D)} Action: M(B,T,C) PRE: Clear(B),Clear(C) EFFECT: On(B,C) Start M causal On(B,C)
A partial plan Action: Start PRE: none EFFECT: On(A,B),On(B,T),On(D,C),On(C,T) Action: Finish PRE: On(A,B),On(B,C),On(C,D) EFFECT: none T A BC D A B D C open{On(A,B),On(C,D)} Action: M(B,T,C) PRE: Clear(B),Clear(C) EFFECT: On(B,C) Action: MT(A,B) PRE: Clear(A) EFFECT: On(A,T),Clear(B)
The complete partially ordered plan Action: Start Action: Finish PRE: goal A BC D A B D On(A,B) On(B,T) On(D,C) On(C,T) On(A,B) On(B,C) On(C,D) C Action: MT(A,B)Action: MT(D,C) Action: M(C,T,D) Action: M(B,T,C) Action: M(A,T,B) open{}
The total order plans Action: Start Action: Finish PRE: goal Action: MT(A,B) Action: MT(D,C) Action: M(C,T,D) Action: M(B,T,C) Action: M(A,T,B) Action: Start Action: Finish PRE: goal Action: MT(D,C) Action: MT(A,B) Action: M(C,T,D) Action: M(B,T,C) Action: M(A,T,B)
D Goforth - COSC 4117, fall Heuristics for partial order plans size of open precondition set number of unachieved goal predicates overestimates remaining actions if some actions achieve multiple goals underestimates remaining actions if some actions will undo preconditions (e.g. taking A off B)