Classical Planning and PDDL

Chapter 11 — Automated Planning Book: Artificial Intelligence: A Modern Approach (Russell & Norvig, 4th ed) Pages: 373–408


What is Planning?

Planning is the task of finding a sequence of actions to achieve a goal from an initial state.

Differences from classical search (Ch.3): - Explicit action representation: actions described by preconditions and effects (not black-box successors) - Expressive goal language: goals are logical sentences, not a specific target state - Open-world assumption: planning deals with incomplete state descriptions

Key insight: representing actions symbolically allows planners to decompose the problem rather than just searching blindly.


STRIPS (Stanford Research Institute Problem Solver, 1971)

The foundational planning formalism.

An action schema in STRIPS:

Action(Fly(p, from, to)):
  PRECOND:  Plane(p) ∧ Airport(from) ∧ Airport(to) ∧ At(p, from)
  EFFECT:   ¬At(p, from) ∧ At(p, to)

STRIPS Assumption


PDDL (Planning Domain Definition Language)

PDDL extends STRIPS with: - Types (typed objects) - Conditional effects: when P: E - Quantified effects: forall (x) E(x) - Numeric fluents and durations (PDDL 2.1+) - Temporal and probabilistic extensions

PDDL Structure

;; Domain definition
(define (domain airport)
  (:predicates (Plane ?p) (Airport ?a) (At ?obj ?loc))
  (:action fly
    :parameters (?p ?from ?to)
    :precondition (and (Plane ?p) (Airport ?from) (Airport ?to) (At ?p ?from))
    :effect (and (not (At ?p ?from)) (At ?p ?to))))

;; Problem definition
(define (problem fly-to-paris)
  (:domain airport)
  (:objects plane1 JFK CDG - object)
  (:init (Plane plane1) (Airport JFK) (Airport CDG) (At plane1 JFK))
  (:goal (At plane1 CDG)))

State, Goal, and Action in the Planning Problem

Initial state I: a conjunction of ground atoms.

Goal G: a conjunction of ground/universally-quantified atoms to be made true.

Action schema: universally quantified; instantiated by binding variables to objects.

Solution: a sequence of ground action instances (a plan) such that:

apply(aₙ, apply(aₙ₋₁, ... apply(a₁, I))) ⊨ G

Complexity

Classical planning (STRIPS) is: - Satisficing (find any plan): PSPACE-complete - Optimal (find shortest plan): PSPACE-complete / sometimes harder

In practice, modern planners solve problems with thousands of actions using heuristic search.


The Blocks World

Classic planning benchmark: - Objects: blocks A, B, C on a table or stacked - Actions: Pick-Up, Put-Down, Stack, Unstack - Goals: achieve specific stack configurations

Sussman Anomaly: goal On(A,B) ∧ On(B,C) from On(C,A) ∧ OnTable(B) cannot be solved by working on each subgoal independently — they interact. Illustrated the need for interleaved planning.


Relevance to DynamICCL

PDDL’s action schema model maps to NCCL operations:

Action(SwitchAlgorithm(node, from_algo, to_algo)):
  PRECOND: CurrentAlgo(node, from_algo) ∧ SupportedAlgo(node, to_algo)
  EFFECT: ¬CurrentAlgo(node, from_algo) ∧ CurrentAlgo(node, to_algo)

Planning formalizes NCCL configuration management — finding a sequence of parameter changes to achieve a target throughput state.