3 Partial-order planning A linear planner builds a plan as a totally ordered sequence of plan steps A non-linear planner (aka partial-order planner) builds up a plan as a set of steps with some temporal constraints constraints of the form S1<S2 if step S1 must comes before S2. One refines a partially ordered plan (POP) by either: adding a new plan step, or adding a new constraint to the steps already in the plan. A POP can be linearized (converted to a totally ordered plan) by topological sorting
4 Least commitment Non-linear planners embody the principle of least commitment only choose actions, orderings, and variable bindings that are absolutely necessary, leaving other decisions till later avoids early commitment to decisions that dont really matter A linear planner always chooses to add a plan step in a particular place in the sequence A non-linear planner chooses to add a step and possibly some temporal constraints
5 The initial plan Every plan starts the same way S1:Start S2:Finish Initial State Goal State
7 Solution Start Left Sock Right Sock Right Shoe Left Shoe Finish
8 Partial-order planning algorithm Create a START node with the initial state as its effects Create a GOAL node with the goal as its preconditions Create an ordering link from START to GOAL While there are unsatisfied preconditions: Choose a precondition to satisfy Choose an existing action or insert a new action whose effect satisfies the precondition (If no such action, backtrack!) Insert a causal link from the chosen actions effect to the precondition Resolve any new threats (If not possible, backtrack!)
9 Solving the Sussman anomaly Using the principle of least commitment: The planner avoids making decisions until there is a good reason to make a choice. BA C A B C
10 Two types of links Causal links (bold arrows) achieve necessary preconditions and must be protected. Ordering constraints (light arrows) indicate partial order between actions. Every new action is after *start* and before *end*.
11 The null plan for the Sussman anomaly contains two actions: *start* specifies the initial state and *end* specifies the goal.
12 The plan after adding a causal link to support (on a b) Agenda contains [(clear b) (clear c) (on b table) (on a b)]
13 The plan after adding a causal link to support (clear b) The agenda is set to [(clear c) (on b table) (on a b)]
14 Because the move-a action could precede the move- b action, it threatens the link labled (clear b), shown by the dashed line.
15 After promoting the threatening action, the plans actions are totally ordered.
31 POP is sound and complete The partial-order planning algorithm is sound and complete, provided that the nondeterministic algorithm is implemented with a breadth-first or iterative deepening search strategy.
32 Advantages of partial-order planning It takes only a few steps to construct a plan that would take thousands of steps using a standard problem solving approach. The least commitment nature of the planner means it needs to search only in places where subplans interact with each other. The causal links allow the planner to recognize when to abandon a doomed plan without wasting a lot of time.
33 A richer representation: Planning with generic operators Operators can include variables (make-op :action '(put ?block on table) :preconds '((?block on ?something) (cleartop ?block)) :add-list '((?block on table) (cleartop ?something)) :del-list '((?block on ?something))) (make-op :action '(put ?a on ?b) :preconds '((cleartop ?a) (cleartop ?b) (?a on ?something)) :add-list '((?a on ?b) (cleartop ?something)) :del-list '((cleartop ?b) (?a on ?something)))
34 STRIPS-style planning with vars An appropriate operator has an add-list element that unifies with the goal. Operator preconditions are being unified with current state. Operators have to be instantiated based on the above bindings. Planning with partially instantiated operators.
35 Example : State : '((C on A) (A on Table) (B on Table) (cleartop C) (cleartop B)) Goal : '(A on B) Match 1: (A on B) with (?a on ?b) op :action '(put A on B) :preconds '((cleartop A) (cleartop B) (A on ?something)) :add-list '((A on B) (cleartop ?something)) :del-list '((cleartop B) (A on ?something))) Match 2: (A on ?something) with (A on Table)) op :action '(put A on B) :preconds '((cleartop A) (cleartop B) (A on Table)) :add-list '((A on B) (cleartop Table)) :del-list '((cleartop B) (A on Table)))
36 POP with generic operators Add-list can be matched with goal as in STRIPS-style planning. No explicit state representation must handle partially instantiated operators. Should an operator that causes At(x) be considered a threat to the condition At(Home)? How to deal with potential threats
37 Dealing with possible threats Resolve with equality constraints: All possible threats are resolved immediately by giving the variable an acceptable value. Resolve with inequality constraints: Allows the constraint (x Home), needs a more general unification algorithm. Resolve later: Ignore possible threats until they become threats, and resolve then. Harder to determine if a plan is valid.
GraphPlan: Basic idea Construct a graph that encodes constraints on possible plans Use this planning graph to constrain search for a valid plan Planning graph can be built for each problem in a relatively short time
Planning graph Directed, leveled graph with alternating layers of nodes Odd layers (state levels) represent candidate propositions that could possibly hold at step i Even layers (action levels) represent candidate actions that could possibly be executed at step i, including maintenance actions [do nothing] Arcs represent preconditions, adds and deletes We can only execute one real action at any step, but the data structure keeps track of all actions and states that are possible
GraphPlan properties STRIPS operators: conjunctive preconditions, no conditional or universal effects, no negations Planning problem must be convertible to propositional representation Cant handle continuous variables, temporal constraints, … Problem size grows exponentially Finds shortest plans (by some definition) Sound, complete, and will terminate with failure if there is no plan
What actions and what literals? Add an action in level A i if all of its preconditions are present in level S i Add a literal in level S i if it is the effect of some action in level A i-1 (including no-ops) Level S 0 has all of the literals from the initial state
Simple domain Literals: at X YX is at location Y fuel Rrocket R has fuel in X RX is in rocket R Actions: load X Lload X (onto R) at location L (X and R must be at L) unload X Lunload X (from R) at location L (R must be at L) move X Ymove rocket R from X to Y (R must be at X and have fuel) Graph representation: Solid black lines: preconditions/effects Dotted red lines: negated preconditions/effects
Example planning graph States S 0 Actions A 0 States S 1 Actions A 1 States S 2 Actions A 2 States S 3 (Goals!) at A L at B L at R L fuel R load A L load B L move L P in A R in B R fuel R at A L at B L at R L at R P load A L load B L move L P move P L at A L at B L at R L fuel R in A R in B R at R P unload A P unload B P at A P at B P
Valid plans A valid plan is a planning graph in which: Actions at the same level dont interfere (delete each others preconditions or add effects) Each actions preconditions are true at that point in the plan Goals are satisfied at the end of the plan
Exclusion relations (mutexes) Two actions (or literals) are mutually exclusive (mutex) at step i if no valid plan could contain both actions at that step Can quickly find and mark some mutexes: Inconsistent effects: Two actions whose effects are mutex with each other Interference: Two actions that interfere (the effect of one negates the precondition of another) are mutex Competing needs: Two actions are mutex if any of their preconditions are mutex with each other Inconsistent support: Two literals are mutex if all ways of creating them both are mutex
move P L move L P Example: Mutex constraints at A L at B L at R L fuel R load A L load B L move L P in A R in B R fuel R at A L at B L at R L at R P load A L load B L at A L at B L at R L fuel R in A R in B R at R P unload A P unload B P at A P at B P nop Inconsistent effects States S 0 Actions A 0 States S 1 Actions A 1 States S 2 Actions A 2 States S 3 (Goals!)
move P L move L P Example: Mutex constraints at A L at B L at R L fuel R load A L load B L move L P in A R in B R fuel R at A L at B L at R L at R P load A L load B L at A L at B L at R L fuel R in A R in B R at R P unload A P unload B P at A P at B P nop Interference States S 0 Actions A 0 States S 1 Actions A 1 States S 2 Actions A 2 States S 3 (Goals!)
move P L move L P Example: Mutex constraints at A L at B L at R L fuel R load A L load B L move L P in A R in B R fuel R at A L at B L at R L at R P load A L load B L at A L at B L at R L fuel R in A R in B R at R P unload A P unload B P at A P at B P nop Inconsistent support States S 0 Actions A 0 States S 1 Actions A 1 States S 2 Actions A 2 States S 3 (Goals!)
move P L move L P Example: Mutex constraints at A L at B L at R L fuel R load A L load B L move L P in A R in B R fuel R at A L at B L at R L at R P load A L load B L at A L at B L at R L fuel R in A R in B R at R P unload A P unload B P at A P at B P nop Competing needs States S 0 Actions A 0 States S 1 Actions A 1 States S 2 Actions A 2 States S 3 (Goals!)
Extending the planning graph Action level A i : Include all instantiations of all actions (including maintains (no- ops)) that have all of their preconditions satisfied at level S i, with no two being mutex Mark as mutex all action-maintain (nop) pairs that are incompatible Mark as mutex all action-action pairs that have competing needs State level S i+1 : Generate all propositions that are the effect of some action at level A i Mark as mutex all pairs of propositions that can only be generated by mutex action pairs
Basic GraphPlan algorithm Grow the planning graph (PG) until all goals are reachable and none are pairwise mutex. (If PG levels off [reaches a steady state] first, fail) Search the PG for a valid plan If none found, add a level to the PG and try again
Creating the planning graph is usually fast Theorem: The size of the t-level planning graph and the time to create it are polynomial in: t (number of levels), n (number of objects), m (number of operators), and p (number of propositions in the initial state)
Searching for a plan Backward chain on the planning graph Complete all goals at one level before going back At level i, pick a non-mutex subset of actions that achieve the goals at level i+1. The preconditions of these actions become the goals at level i Various heuristics can be used for choosing which actions to select Build the action subset by iterating over goals, choosing an action that has the goal as an effect. Use an action that was already selected if possible. Do forward checking on remaining goals.
SATPlan Formulate the planning problem as a CSP Assume that the plan has k actions Create a binary variable for each possible action a: Action(a,i) (TRUE if action a is used at step i) Create variables for each proposition that can hold at different points in time: Proposition(p,i) (TRUE if proposition p holds at step i)
Constraints Only one action can be executed at each time step (XOR constraints) Constraints describing effects of actions Persistence: if an action does not change a proposition p, then ps value remains unchanged A proposition is true at step i only if some action (possibly a maintain action) made it true Constraints for initial state and goal state
Still more variations… FF (Fast-Forward): Forward-chaining state space planning using relaxation-based heuristic and many other heuristics and tweaks Blackbox: STRIPS-based plan representation Planning graph CNF representation CSP/SAT solver CSP solution Plan
Hierarchical Task Network Planning (HTN) For many problems (or, at least, parts of problems, we may already have an idea how to solve them. Humans often use plan templates and adapt them to fit the details of the particular problem. Question: How to enable planning to take leverage this template knowledge? 58
HTN Structure 59 Task represent recipes for achieving states. Primitive tasks are grounded in literals. Non-primitive tasks are further decomposed into subtasks subject to constraints. Planning is searching through network for a consistent set of tasks to the goal from the initial state.
Real-World Use HTNs are widely used in real-world applications. Good at capturing domain information and limiting search to favored directed paths in the domain. There are a number of domain- independent HTN planners, e.g., SIPE- 2, SHOP-2, O-Plan, etc. 61
62 Case-Based Planning: Adapting old plans Storing plans in a library and using them in similar situations. How to index and retrieve existing plans? How to adapt an old plan to solve a new problem? Key question: will refitting existing plans save us work?
Contingent Planning Develop plans that have built-in alternatives based on state-query during plan execution. Usually have alternative branches only at points where it is expected to be significant. Doesnt guarantee that plan will execute successfully. 63
64 Uncertainty and contingencies Flat-tire example: testing for hole will be part of the plan. Information-gathering step has two outcomes! Previously, we assumed deterministic effects. Why planning with information gathering (sensing) is hard? Also need to deal with broken plans (assumptions, adversaries, unmodeled effects).
65 Conditional planning Check(Tire1) If Intact(Tire1) then Inflate(Tire1) else CallAAA Separate sub-plans for each contingency. Universal or Conformant plans: An extreme form of conditional planning that covers all possible execution-time contingencies. Usually mean forcing environment into a state, e.g. two get two chairs the same color, paint both brown. But, planning for many unlikely cases is expensive. Run-time re-planning is an alternative.
Re-Planning Generate initial plan Begin execution of the plan and monitor each step. Check for inconsistencies between execution results and planning assumptions. Replan when inconsistencies are detected. 66 What are dangers of replanning?
Multi-Agent Planning Instead of centralized plan, now we have a coordinated plan based on individual agents committing to actions. Agents have to negotiate with other agents to determine their actions. Different negotiation environments, e.g., self-interested vs. cooperating. 67