Lecture 11: Automated Planning
Learning Objectives¶
Define classical planning (STRIPS)
Apply forward and backward state-space search
Use planning as satisfiability
Handle nondeterminism and hierarchical planning
Classical Planning¶
State: Set of ground atoms
Actions: Preconditions, effects (add/delete lists)
Goal: Set of literals to achieve
Initial state: Given
STRIPS Representation¶
Precondition: Conjunction of literals
Effect: Add list, delete list
Example: Load(c,t) — Pre: At(c,t) ∧ Cargo(c), Effect: In(c,t)
Example: Blocks World¶

At(block, location)
On(block1, block2)
Clear(x)
Actions: Move(b,from,to), Stack(b,on), Unstack(b,from)
Forward State-Space Search¶
State: Current world state
Actions: All applicable actions
Goal test: Goal satisfied
Problem: Branching factor large
Backward Search (Regression)¶
State: Set of subgoals to achieve
Actions: Whose effects achieve subgoal
Goal: Subgoals empty
Regressive: Work backward from goal
Planning as SAT¶
Variables: At(Location, t), Have(Arrow, t), etc.
Axioms: Actions imply preconditions
Frame axioms: What stays same
SAT solvers: Very efficient
Heuristics for Planning¶
Relaxation: Ignore delete lists
State abstraction: Merge states
h: Distance in relaxed problem
Hierarchical Planning¶
High-level actions: Abstract (e.g., “Travel”)
Refinement: Decompose into primitive actions
HTN: Hierarchical Task Networks
Nondeterministic Domains¶
Sensorless: No observations
Contingent: Use observations
Online: Interleave planning and execution
Summary¶
Classical: STRIPS, forward/backward search
SAT: Encode as propositional
Heuristics: Relaxation
Hierarchical: HTN
Nondeterministic: Contingent, online
References¶
Russell & Norvig, AIMA 4e, Ch. 11
Chapter PDF:
chapters/chapter-11.pdfaima-python: planning.ipynb