More Planning




CS156

Chris Pollett

Nov 13, 2017

Outline

Introduction

Heuristics for Planning

Ignore Preconditions Heuristic

Ignore Delete Lists

State Abstraction

Problem Decomposition

Quiz

Which of the following is true?

  1. In classical logic, there are statements such that `\Gamma |== F`, but not `\Gamma |-- F`.
  2. PDDL makes use of the unique names assumption.
  3. Fluents are allowed to contain function symbols.

Planning Graphs 1

Planning Graphs 2

Example Planning Graph

Using Planning Graphs for Heuristic Estimation

GraphPlan

The GraphPlan algorithm is as follows:

function GraphPlan(problem) returns solution or failure:
    graph := Initial-Planning-Graph(problem) 
    goals := Conjuncts(problem, Goal)
    nogoods := empty hash table
    for t= 0 to infty do:
        if goals all present and non-mutex in S_t of graph then
            solution := Extract-Solution(graph, goals, NumLevels(graph), nogoods)
            if solution != failure then return solution
        if graph  and nogoods have not changed since t-1 then return failure
        graph := Expand-Graph(graph, problem)

Two Approaches to Extract Solution

There are two common approaches to computing extract solution:

  1. If all the goals are present and non-mutex, one can take the current graph and formulate it as a CSP. The variables for this CSP are the actions at each level, the values for each variable are either in or out of the plan, and the constraints are the mutexes and the need to satisfy each goal and precondition. One can then use CSP algorithms to solve this problem.
  2. Another way to code Extract-Solution is as a backward search problem, where each state in the search contains a pointer to a level in the planning graph and a set of unsatisfied goals. This search problem can be defined as follows:
    • The initial state is the last level of the planning graph `S_n`, along with the set of goals from the planning problem.
    • The actions available at level `S_i` are to select any conflict-free subset of the actions in `A_(i-1)` whose effects cover the goals in the state. The resulting state has level `S_(i-1)` and has as its set of goals the preconditions for the selected set of actions. Here "conflict free" means a set of actions such that no two of them are mutex and no two of their preconditions are mutex.
    • The goal is to reach a state at level `S_0` such that all the goals are satisfied.
    • The cost of each action is 1.

GraphPlan - Spare Tire Example

Graph Plan algorithm working with spare tire problem

Backward Search and Spare Tire Problem

GraphPlan Heuristics