Proposition level

advertisement
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
Download