Download presentation
Presentation is loading. Please wait.
Published byWinfred Wilkinson Modified over 9 years ago
1
Graphplan: Fast Planning through Planning Graph Analysis Avrim Blum Merrick Furst Carnegie Mellon University
2
The setting: STRIPS planning Initial Conditions: –Block A on Block B, Light is on, Door is closed, … Legal Actions: –Pick up object, Move from X to Y, Toggle light,… Goals: –Block B on Block A, Door is open,…
3
Representation Standard representation: State Graph –Each state of world is a node. Actions move you from node to node. –Goal: find a path from the start to a goal node. –Graph size may be exponential in problem description S3 S2 S5 S4 S1
4
Representation Graphplan idea: Encode problem in much more compact (poly size) graph –Node represents single literal in a time step –State is a set of nodes –Goal: find a “flow” of truth values.
5
“Truth” flowing through time At x At y A on B A has cleartop C has cleartop A on C B has cleartop Move X->Y Unstack A from B & put on C Allow multiple “independent” actions in the same time step
6
Graphplan high level Build graph in fast forward pass Annotate graph with important info as you go Actually, don’t use flow algorithms. Instead: Perform backward-chaining search, guided by graph and stored constraints
7
Example: Rocket/Airplane Problem 2 Vehicles at Montreal, have fuel people at start. Half want to go to SF, half to Paris. Load/Unload operators: (load ) Move operator deletes fuel: (move )
8
Example, contd. Example is hard for planners like prodigy because: –Can’t just solve goals one at a time –Also issue of resource allocation
9
Graph Creation A at M V1 at M V1 has fuel Load A into V1 A at M A in V1 V1 at M V1 at SF V1 has fuel Move V1 to SF
10
Mutual exclusions A at M V1 at M V1 has fuel Load A into V1 A at M A in V1 V1 at M V1 at SF V1 has fuel Move V1 to SF
11
Next level A at M A in V1 V1 at M V1 at SF V1 has fuel A at M A in V1 V1 at M V1 at SF V1 has fuel Unload A from V1 in SF Move V1 from M to SF
12
Propagating mutexs V1 at X V1 at Y V1 at Z V1 at W Move X->Y Move Z->W... V1 at X V1 at Y V1 at Z V1 at W
13
Growing the graph Grow forward until all goals appear, not marked as exclusive. Rules for marking as exclusive: –Facts P,Q exclusive if all ways of making P true are exclusive of all ways of making Q true. –Actions A,B marked exclusive if either: [Interference] One deletes a precond or add-effect of the other, or [Competing Needs] some precond P of A is exclusive of some precond Q of B
14
Basic loop Grow until all goals appear, not exclusive. Perform backward search. If fail, grow one more level and repeat. Termination step
15
Backward Search Level by level. Given goal set at time t, –For each goal, choose some action not exclusive of previous choices, and doesn’t cut off anyone. –This creates goal set at time t-1. Recurse on it. –If fail, backtrack
16
Example A at SF B at SF C at Paris D at Paris Unload A V1 at SF Unload B V2 at SF Unload B V1 at SF Unload C V1 Paris Unload C V2 Paris
17
Run Graphplan on Rocket, Flat-tire, etc.
18
Graph creation is poly time IF operators have a constant number of parameters. –(move from to ), (open ) IF operators don’t create new objects. THEN polynomial number of ways to instantiate each operator. So, time is poly in #operators, #objects, and length of plan. Can speed up using goals to throw out irrelevants
19
Termination:what if not solvable?
20
When Graphplan does well
21
When Graphplan performs badly
22
Open Questions
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.