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 \rarr goal
  • regression planing: initial state \larr 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 GG , let AA be an action that is relevant and consistent.

  1. Any positive effects of AA in GG are deleted
  1. Each precondition literal of AA is added, unless it already appears.

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

  1. 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, ...

  1. set of ordering constraints

    ABA \prec B Action AA must be executed before action BB .

    Must be free of contradictions/cycles : (AB)(BA)(A \prec B) \wedge (B\prec A)

  1. set of casual links

    ApBA \stackrel{p}{\longrightarrow} B Executing action AAachieves precondition pp for action BB .

    Means pp must remain true\text{true} from time of action AA to the time of action BB .

    Otherwise there is a conflictCC that causes the effect ¬p\neg p .

    ie:RightSockRightSockOnRightShoe \text {RightSock} \stackrel{\text {RightSockOn}}{\longrightarrow} \text {RightShoe} 

  1. 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.

  1. Initiating empty plan

    only contains the actions:

    Start\text{Start} no preconditions, effect has all literals, all preconditions are open, no casual links

    Finish\text{Finish} has no effects, no open preconditions

    ordering constraint:  StartFinish\text { Start} \prec \text {Finish}

    no casual links

  1. Searching

    2.1 successor function: repeatedly choosing next possible state.

    Chooses an open precondition pp of action BB and generates a successor plan (subtree) for every consistent way of choosing an action AA that achieves pp .

    2.2 enforce consistency by defining new casual links in the plan:

    ApB,AB A \stackrel{p}{\longrightarrow} B, \space A \prec B 

    IfAAis new:StartAFinish\text{Start} \prec A \prec\text{Finish}

    2.3 resolve conflicts

    add (BC)(CA)(B\prec C) \wedge (C\prec A)

    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.

SATPlan

Solve planning problems by translating them into formulas of propositional logic.

Planning as satisfiability.