240 likes | 351 Views
Planning in FOL Systems. sequences of actions to achieve goals. 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. D. A. B. C. T.
E N D
Planning in FOL Systems sequences of actions to achieve goals
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 D A B C T D Goforth - COSC 4117, fall 2006
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 2006
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 D Goforth - COSC 4117, fall 2006
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) D A B C T * 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 D A B C T
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 2006
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 D Goforth - COSC 4117, fall 2006
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) D A B C T Move(A,T,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) A D B C T
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 2006
Backward search • actions with goal state as ‘effect’ are ‘regressed’ • focus on ‘relevant’ actions • avoid actions that undo goal state predicates add preconditions previous state predicates goal state predicates undo action effects D Goforth - COSC 4117, fall 2006
Blocks world – preconditions match Goal: On(A,B)^On(B,C) D A C B T Move(A,x,B) {T/x} Preconditions for Move(A,T,B) 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) D A B C T
Blocks world – preconditions not match B Goal: On(A,B)^On(B,C) Move(B,x,C) {T/x} A C D T On(B,T)^ Block(B)^Block(C)^ Clear(C) ^Clear(B) A B C D T MoveToTable(y,C) {D/y} 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) D A B C T
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 D Goforth - COSC 4117, fall 2006
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 goalOn(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 D A B C T
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 2006
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 Goal: On(A,B)^On(C,D) A B C D T D Goforth - COSC 4117, fall 2006
Partial Order Planning • planning takes place in ‘plan space’ of partial plans • a partial plan contains: • actions, A, B, C, ...,Start, Finish • ordering constraint between some actions: A must be done before B: A B • causal links: A produces a precondition for B: • set of unachieved preconditions (empty in final plan) D Goforth - COSC 4117, fall 2006
The empty plan (root of plan search space tree) On(A,B)On(B,T)On(D,C)On(C,T) Action: StartPRE: noneEFFECT: start state of space A D B C T Start Finish Action: FinishPRE: goal predicatesEFFECT: none A B On(A,B)On(B,C)On(C,D) C D open{On(B,C),On(C,D)} D Goforth - COSC 4117, fall 2006 NOTE: some predicates not shown – Clear in KB
A partial plan Action: StartPRE: noneEFFECT: On(A,B),On(B,T),On(D,C),On(C,T) A D B C T Start M Action: M(B,T,C)PRE: Clear(B),Clear(C)EFFECT: On(B,C) causal On(B,C) Action: FinishPRE: On(A,B),On(B,C),On(C,D) EFFECT: none A B C open{On(C,D)} D
A partial plan Action: StartPRE: noneEFFECT: On(A,B),On(B,T),On(D,C),On(C,T) A D B C T Action: MT(A,B)PRE: Clear(A)EFFECT: On(A,T),Clear(B) Action: M(B,T,C)PRE: Clear(B),Clear(C)EFFECT: On(B,C) Action: FinishPRE: On(A,B),On(B,C),On(C,D) EFFECT: none A B C open{On(A,B),On(C,D)} D
The complete partially ordered plan On(A,B)On(B,T)On(D,C)On(C,T) A D Action: Start B C Action: MT(A,B) Action: MT(D,C) Action: M(C,T,D) Action: M(B,T,C) Action: M(A,T,B) A Action: FinishPRE: goal B On(A,B)On(B,C)On(C,D) open{} C D
The total order plans Action: Start Action: Start Action: MT(A,B) Action: MT(D,C) Action: MT(D,C) Action: MT(A,B) Action: M(C,T,D) Action: M(C,T,D) Action: M(B,T,C) Action: M(B,T,C) Action: M(A,T,B) Action: M(A,T,B) Action: FinishPRE: goal Action: FinishPRE: goal
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) D Goforth - COSC 4117, fall 2006