Planning with search
Classical planning - with state-space-search.
Totally ordered plan searches
in strictly linear order.
The state space is finite without function symbols - any graph search algorithm can be used.
Variants:
- progression planing: initial state goal
-
regression planing: initial state
goal
(possible because of declarative representation of PDDL and strips)
Progression Planning
Forward (progression) states search.
Inefficient without heuristics - Explores irrelevant actions.
Good heuristics can be derived automatically.
Goal test checks whether the state satisfies the goal of the planning problem
Step cost Usually 1 for each action
Regression Planning
Backward (regression) relevant -states search.
"Relevant-states" because we only consider relevant actions. - In forward search we choose all actions that are applicable.
forward search inefficiency
Buying a book online with its ISBN:
Chosen actions should be consistent : not undoing the made progress by changing correct literals.
We have sets of states, finding heuristics is harder - forward search therefore prefered.
Computing state predecessors with STRIPS
Given a goal description , let be an action that is relevant and consistent.
- Any positive effects of in are deleted
- Each precondition literal of is added, unless it already appears.
Formally
goal description
regression from over
ground action
state description defined by:
True in :
example
with partially instantiated actions and states
Goal = Delivering cargo to so that
Action that leads to goal:
(is a "standardized variable" that can be substituted with any value)
We can now use any plane for :
Partial-order Planning
Order is not specified: can place to actions into a plan without specifying which one comes first.
Search in space of partial-order-plans.
Components of a plan
- set of action
The actions in this search are not actions in the world but actions on plans .
ie. adding a step to the plan, setting an ordering that puts one action before another, ...
- set of ordering constraints
Action must be executed before action .
Must be free of contradictions/cycles :
- set of casual links
Executing action achieves precondition for action .
Means must remain from time of action to the time of action .
Otherwise there is a conflict that causes the effect .
ie:
- set of open preconditions
Minimizing open preconditions (= preconditions not achieved by an action in the plan)
Partial order planning POP Algorithm
Defines execution order of plan by searching in the space of partial-order plans.
Returns a consistent plan : without cycles in the ordering constraints and conflicts in the casual links.
- Initiating empty plan
only contains the actions:
no preconditions, effect has all literals, all preconditions are open, no casual links
has no effects, no open preconditions
ordering constraint:
no casual links
- Searching
2.1 successor function: repeatedly choosing next possible state.
Chooses an open precondition of action and generates a successor plan (subtree) for every consistent way of choosing an action that achieves .
2.2 enforce consistency by defining new casual links in the plan:
Ifis new:
2.3 resolve conflicts
add
2.4 goal test
because only consistent plans are generated - just check if preconditions are open.
If goal not reached, add successor states
Alternatives
Graphplan
Based on graphical data structure to extract plans.
- Planning graph = sequence of layers that correspond to time steps in the plan.
- Layer = superset of all the literals or actions that could occur at that time step.
SATPlan
Solve planning problems by translating them into formulas of propositional logic.
Planning as satisfiability.