Fast Planning through Planning Graph Analysis By Jan Weber Jörg Mennicke Outline • Characteristics • Graphstructure • GRAPHPLAN Algorithm • Expand - Graph • Extract Solution • Importance of Graphplan • Pro’s • Con’s • Example • References Characteristics • Graphplan: – A non-linear, partial-order planer using forward construction and backward path extraction in STRIPS-like domains • Planer vs. Search Algorithm • Forward vs. backward • Partial-Order vs. Total-Order • Linear vs. non-linear • Strips-like Graphstructure • Objects – (not directly represented in Graph) • Propositions – Initial Conditions • Operators Propositions / Initial Conditions Propositions Operator – No-Ops • Goals Goal No-Op Graphstructure Proposition level • Layers: Precond. Action Level Proposition level Add/Del – Proposition level (represents multiple states) – Action level – Time Step • Connections: – Precondition edges – Add- & Delete-Effects ---------- Time Step ----------- Graphstructure • Mutual Exclusions of Actions: – Inconsistent Effects vs. Interference vs. Competing needs – Inconsistent Effects: Graphstructure • Mutual Exclusions of Actions, cont.: – Interference: – Competing needs: • Mutual Exclusions of Propositions: – Recursive Exclusions / Inconsistent Support GRAPHPLAN Algorithm • If all goals are present in the current level with no exclusion links (A solution might exist) or the graph has levelled off (Two consecutive levels are identical - No solution exists). – EXTRACT-SOLUTION • Else – EXPAND-GRAPH Expand graph • Algorithm: • For each Proposition level check every Op whether it’s preconditions are true • Construct next Action level including those Ops • Construct next Proposition level considering all add & delete effects • Check for Mutex links in Action and Proposition level (actions-that-I-am-exclusive-of-list) Extract Solution • Backward search – Level-by-level approach makes best use of mutexes – For each goal at time t, find an operator that has this goal as an add-effect and that is not exclusive with an operator already selected – The preconditions of these actions are a set of subgoals at time t-1 – Find operators adding the subgoals of time t-1 – If no set of operators can achieve the subgoals at time t-n -> Backtrack – Memoisation Importance of Graphplan • Aips 98: – 3 of 5 planners in the competition used graphplan completely (IPP, SGP, and STAN) – 1 exploited the graphplan technology (Blackbox) • Aips 2002: 75% of the planners used graphplan • ICAPS 2004: More than half of the planners competing use heuristic based search (such as Fast Diagonally Downward, Macro-FF, Yahsp, HSP*a…) • Graphplan made researchers think about more efficient algorithms -> started new planning era BUT:Graphplan plays less important role at the moment Pro’s • Non-linear Planner -> partial goals are independent • and can be achieved by interleaving -> different from STRIPS • Planning Graphs can be constructed relatively efficient • Effective for solving hard planning problems • Keeps Graph as small as possible (MUTEX) • Memoization • Low level costs: construction of graph before backwards search • Termination is guaranteed for finite problem domains even if problem unsolvable Con’s • Problems with a large numbers of objects have a huge number of possible actions • Planning only possible in strips-like domains • Guarantees to find shortest plan -> overcomplicates problem • Loss of performance if no reduction by mutex links possible Example • Full Example (Coming up with an example): – Objects: team; idea; concept – Propositions: creative(team); found(idea); checked(idea); prepared(?concept); revised(?concept) – Operators: • Brainstorm(?team,?idea): – Preconditions = {creative(?team)} – ADD = {found(?idea)} – DELETE = {creative(?team)} • Check(?idea): – Preconditions = {found(?idea)} – ADD = {checked(?idea), creative(?team)} – DELETE = {found(?idea)} • Prepare(?team, ?idea, ?concept): – Preconditions = {creative(?team), checked(?idea)} – ADD = {prepared(?concept)} – DELETE = {checked(?idea)} • Revise(?idea, ?concept): – Preconditions = {checked(?idea), prepared(?concept)} – ADD = {revised(?concept)} – DELETE = {} Example • Full Example (Coming up with an example); Con’t: References • Blum Avrim & Furst Merrick, Fast Planning Through Planning Graph Analysis, 1997 • Russel Stuart & Norvig Peter, Artificial Intelligence – A Modern Approach, Prentice Hall, New Jersey (http://aima.cs.berkeley.edu/) • http://www-2.cs.cmu.edu/~avrim/graphplan.html • http://www.cs.bham.ac.uk/~mmk/Teaching/Planning/ • www.cdf.toronto.edu/~csc384h/fall/Lectures/Lecture12.pdf • www.dgp.toronto.edu/~ppacheco/course/384/Lectures/Lecture13.pdf • J. Koehler, B. Nebel, J. Hoffmann, Y. Dimopoulos, „Extending Planning Graphs to an ADL Subset“, ECP-97, pages 273-285 (http://www.informatik.uni-freiburg.de/~koehler/papiere/ecp-97.ps.gz) • www.cs.washington.edu/homes/kautz/papers/plan.ps • http://www.fh-wedel.de/~mo/lectures/planning.html • Gerevini, A., Serina, I., "Fast Planning through Greedy Action Graphs", TR710, Computer Science Dept., U. Rochester, February 1999