Graphplan Fast Planning through Planning Graph Analysis Avrim

  • Slides: 22
Download presentation
Graphplan: Fast Planning through Planning Graph Analysis Avrim Blum Merrick Furst Carnegie Mellon University

Graphplan: Fast Planning through Planning Graph Analysis Avrim Blum Merrick Furst Carnegie Mellon University

The setting: STRIPS planning • Initial Conditions: – Block A on Block B, Light

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, …

Representation Standard representation: State Graph – Each state of world is a node. Actions

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 S 2 S 1 S 3 S 4 S 5

Representation Graphplan idea: Encode problem in much more compact (poly size) graph – Node

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.

“Truth” flowing through time At x Move X->Y At y A on B A

“Truth” flowing through time At x Move X->Y At y A on B A has cleartop C has cleartop A on C B has cleartop Unstack A from B & put on C • Allow multiple “independent” actions in the same time step

Graphplan high level • Build graph in fast forward pass • Annotate graph with

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

Example: Rocket/Airplane Problem • 2 Vehicles • at Montreal, have fuel people at start.

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 <person> <vehicle> <location>) • Move operator deletes fuel: (move <from> <to>)

Example, contd. • Example is hard for planners like prodigy because: – Can’t just

Example, contd. • Example is hard for planners like prodigy because: – Can’t just solve goals one at a time – Also issue of resource allocation

Graph Creation A at M Load A into V 1 at M Move V

Graph Creation A at M Load A into V 1 at M Move V 1 to SF V 1 has fuel A in V 1 at SF V 1 has fuel

Mutual exclusions A at M Load A into V 1 at M Move V

Mutual exclusions A at M Load A into V 1 at M Move V 1 to SF V 1 has fuel A in V 1 at SF V 1 has fuel

Next level A at M Unload A from V 1 in SF A in

Next level A at M Unload A from V 1 in SF A in V 1 V 1 at M Move V 1 from M to SF V 1 at SF V 1 has fuel

Propagating mutexs V 1 at X V 1 at Y V 1 at Z

Propagating mutexs V 1 at X V 1 at Y V 1 at Z V 1 at W Move X->Y Move Z->W. . . V 1 at X V 1 at Y V 1 at Z V 1 at W

Growing the graph • Grow forward until all goals appear, not marked as exclusive.

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

Basic loop • Grow until all goals appear, not exclusive. • Perform backward search.

Basic loop • Grow until all goals appear, not exclusive. • Perform backward search. If fail, grow one more level and repeat. • Termination step

Backward Search • Level by level. • Given goal set at time t, –

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

Example Unload A V 1 at SF A at SF Unload B V 2

Example Unload A V 1 at SF A at SF Unload B V 2 at SF B at SF Unload B V 1 at SF C at Paris Unload C V 1 Paris D at Paris Unload C V 2 Paris

Run Graphplan on Rocket, Flat-tire, etc.

Run Graphplan on Rocket, Flat-tire, etc.

Graph creation is poly time • IF operators have a constant number of parameters.

Graph creation is poly time • IF operators have a constant number of parameters. – (move <x> from <y> to <z>), (open <x>) • 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

Termination: what if not solvable?

Termination: what if not solvable?

When Graphplan does well

When Graphplan does well

When Graphplan performs badly

When Graphplan performs badly

Open Questions

Open Questions