CSC2542 Planning-Graph Techniques Sheila McIlraith Department of Computer Science University of Toronto Fall 2010 1 Administrative Announcements Tutorial Time: If you’re taking the course for credit, please (re)vist � the doodle poll and see whether you can work towards finding a time when we can all meet. We’re at an impass! I will be posting a schedule with project milestone dates and the due � date for the assignment. The lecture in 2 weeks will be given by our TA, Christian Muise. � Suggested readings for next week: � � Part III introduction of GNT � Chapter 9 of GNT � A review paper that I will post on our web page. Other Issues? � 2
END of Administrative Announcements 3 Acknowledgements A number of the slides used in this course are modifications of Dana Nau’s lecture slides for the textbook Automated Planning, licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ Other slides are modifications of slides developed by Malte Helmert, Bernhard Nebel, and Jussi Rintanen. I have also used some material prepared by Dan Weld, P@trick Haslum and Rao Kambhampati. I would like to gratefully acknowledge the contributions of these researchers, and thank them for generously permitting me to use aspects of their presentation material. 4
History GraphPlan (Blum & Furst, 1995) was the first planner to use planning- � graph techniques Before GraphPlan came out, most planning researchers were working � on partial order planners (plan space planners *) � POP, SNLP, UCPOP, etc. GraphPlan caused a sensation because it was so much faster � Many subsequent planning systems have used ideas from it either � directly as close decendants of GraphPlan or by using the Planning Graph representation in some guise to improve the encoding of the planning problem most notably for SAT-based planning. * Sometimes referred to as “PSP” planners, but “PSP” used for “partial satisfaction planners”, nowadays 5 History But most importantly… GraphPlan’s place in history is secured by its critical role in the � development of reachability heuristics* for heuristic search planners by approximating the search tree rooted at a given state Heuristic search planners have dominated the “satisficing planner” � track of IPC planning competitions for the last 8 years. * Reachability heuristics aim to estimate the cost of a plan between the current search state and a goal state. We will talk about these more in the weeks to come. 6
Outline � Motivation � The Graphplan algorithm � Planning graphs � example � Mutual exclusion � example (continued) � Solution extraction � example (continued) � Discussion 7 Motivation � A big source of inefficiency in search algorithms is the branching factor � the number of children of each node E.g., a backward search may try lots of actions g 1 a 1 a 4 that can’t be reached from the initial state g 4 g 2 g 0 s 0 a 2 a 5 g 5 a 3 s 1 a 1 g 3 s 4 a 4 Similarly, a forward search s 0 s g s 2 a 2 may generate lots of s 5 a 5 … actions that do not reach a 3 s 3 to the goal 8
One way to reduce branching factor � First create a relaxed problem � Remove some restrictions of the original problem � Want the relaxed problem to be easy to solve (polynomial time) � IMPORTANT � The solutions to the relaxed problem will include all solutions to the original problem � Then do a modified version of the original search � Restrict its search space to include only those actions that occur in solutions to the relaxed problem 9 Graphplan procedure Graphplan: � for k = 0, 1, 2, … � Graph Expansion: � create a “planning graph” that contains k “levels” relaxed problem � Check whether the planning graph satisfies a necessary (but insufficient) condition for plan existence possible possible � If it does, then literals actions � do Solution Extraction: in state s i in state s i � backward search, modified to consider only the actions in the planning graph � if we find a solution, then return it 10
The Planning Graph Search space for a relaxed version of the planning problem: Alternating layers of ground literals and actions � � Nodes at action-level i : actions that might be possible to execute at time i* � Nodes at state-level i: literals that might possibly be true at time i � Edges: preconditions and effects state-level i -1 action-level i state-level i state-level 0 (the literals true in s 0 ) preconditions effects A maintenance action for a literal l. It represents what happens if we don’t change l . * This is terminology from GNT and refers to the graph. The numbering is at odds with conventional numbering for action representations. Here, an action is possible to execute in i if it’s preconditions are true in state level i-1 (as opposed to i)s. Its 11 effects are reflected in the propositions of state level i (as opposed to i+1) Example Due to Dan Weld, Univ. Washington [Weld, AIM-09] � Suppose you want to prepare dinner as a surprise for your sweetheart � (who is asleep) s 0 = {garbage, cleanHands, quiet} g = {dinner, present, ¬ garbage} Action Preconditions Effects cook() cleanHands dinner wrap() quiet present ¬ garbage, ¬ cleanHands carry() none ¬ garbage, ¬ quiet dolly() none Also have the maintenance actions: one for each literal 12
Example (continued) state-level 0: � {all atoms in s 0 } U state-level 0 action-level 1 state-level 1 {negations of all atoms not in s 0 } action-level 1: � {all actions whose preconditions are satisfied and non-mutex in s 0 } state-level 1: � {all effects of all of the actions in action-level 1 (including maintenance actions)} Action Preconditions Effects cook() cleanHands dinner wrap() quiet present ¬ garbage, ¬ cleanHands carry() none ¬ garbage, ¬ quiet dolly() none ¬ dinner ¬ dinner Also have the maintenance actions ¬ present ¬ present 13 Mutual Exclusion Two actions at the same action-level are mutex if � � Inconsistent effects: an effect of one negates an effect of the other � Interference: one deletes a precondition of the other � Competing needs: they have mutually exclusive preconditions Otherwise they don’t interfere with each other � � Both may appear in a solution plan Recursive Two literals at the same state-level are mutex if � propagation of mutexes � Inconsistent support: one is the negation of the other, or all ways of achieving them are pairwise mutex 14
Example (continued) state-level 0 action-level 1 state-level 1 Augment the graph to indicate mutexes � carry is mutex with the maintenance � action for garbage (inconsistent effects) dolly is mutex with wrap � � interference ¬ quiet is mutex with present � � inconsistent support each of cook and wrap is mutex with � a maintenance operation Action Preconditions Effects cook() cleanHands dinner wrap() quiet present ¬ garbage, ¬ cleanHands ¬ dinner carry() none ¬ dinner ¬ garbage, ¬ quiet dolly() none ¬ present ¬ present Also have the maintenance actions 15 Example (continued) state-level 0 action-level 1 state-level 1 Check to see whether there’s a � possible solution Recall that the goal is � { ¬ garbage, dinner, present } Note that in state-level 1, � � All of them are there � None are mutex with each other Thus, there’s a chance that a plan � exists Try to find it � � Solution extraction ¬ dinner ¬ dinner ¬ present ¬ present 16
Recall what the algorithm does procedure Graphplan: for k = 0, 1, 2, … � � Graph Expansion: � create a “planning graph” that contains k “levels” � Check whether the planning graph satisfies a necessary (but insufficient) condition for plan existence � If it does, then � do Solution Extraction: � backward search, modified to consider only the actions in the planning graph � if we find a solution, then return it 17 Solution Extraction The set of goals we The level of the state s i are trying to achieve procedure Solution-extraction( g,i ) A real action or a maintenance action if i =0 then return the solution for each literal l in g nondeterministically choose an action to use in state s i– 1 to achieve l state- action- state- level level level if any pair of chosen actions are mutex i -1 i i then backtrack g’ := {the preconditions of the chosen actions} Solution-extraction( g’, i –1) end Solution-extraction 18
Example (continued) state-level 0 action-level 1 state-level 1 Recall that the goal is � { ¬ garbage, dinner, present } Two sets of actions for the goals at � state-level 1 Neither of them works � � Both sets contain actions that are mutex ¬ dinner ¬ dinner ¬ present ¬ present 19 Recall what the algorithm does procedure Graphplan: for k = 0, 1, 2, … � � Graph Expansion: � create a “planning graph” that contains k “levels” � Check whether the planning graph satisfies a necessary (but insufficient) condition for plan existence � If it does, then � do Solution Extraction: � backward search, modified to consider only the actions in the planning graph � if we find a solution, then return it 20
Recommend
More recommend