Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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