Understanding the planning problem and key assumptions
Classical Planning is about finding a sequence of actions to transform an initial state into a goal state.
States: Abstract nodes (black boxes)
Actions: Transitions between nodes
No internal structure visible
States: Sets of logical facts
Actions: Preconditions + Effects
Fully structured and inspectable!
Classical planning makes four simplifying assumptions. Click each to see what happens when violated:
Actions always produce the same result
Click to see non-deterministic (stochastic) scenarioAgent knows all facts about current state
Click to see partial observabilityWorld changes only when agent acts
Click to see dynamic environmentFinite states and actions
Click to see continuous spaceYou're on a road trip in Saudi Arabia and get a flat tire. Let's use planning to fix it!
Axle: Flat Tire 🔴
Trunk: Spare Tire ⚪
Precondition: Tire(obj, loc)
Effect ADD: Tire(obj, Ground)
Effect DELETE: Tire(obj, loc)
Precondition: Tire(tire, Ground)
Effect ADD: Tire(tire, Axle)
Effect DELETE: Tire(tire, Ground)
A robot needs to grasp a box to move it to a target location.
Hand: Empty ✋
Table: 📦 Box
Target: 🎯 (empty)
Precondition: On(obj, loc) Clear(obj) Empty(Hand)
Effect ADD: Holding(obj)
Effect DELETE: On(obj, loc) Clear(obj) Empty(Hand)
Precondition: Holding(obj)
Effect ADD: On(obj, loc) Clear(obj) Empty(Hand)
Effect DELETE: Holding(obj)
A classic planning problem: rearrange blocks from one configuration to another.
Current:
Goal:
Hand: Empty ✋
Precondition: On(x, Table) Clear(x) HandEmpty
Effect ADD: Holding(x)
Effect DELETE: On(x, Table) Clear(x) HandEmpty
Precondition: Holding(x)
Effect ADD: On(x, Table) Clear(x) HandEmpty
Effect DELETE: Holding(x)
Precondition: Holding(x) Clear(y)
Effect ADD: On(x, y) Clear(x) HandEmpty
Effect DELETE: Holding(x) Clear(y)
Let's visualize the fundamental concepts using our Spare Tire example:
All possible states the world can be in:
The state space contains ALL possible states. Planning searches through this space to find a path to the goal.
How actions transform states:
Each action transforms one state into another by adding and deleting facts according to its effects.
Checking if the goal condition is satisfied:
{Tire(Flat, Axle), Tire(Spare, Trunk)}
{Tire(Flat, Ground), Tire(Spare, Ground)}
{Tire(Spare, Axle)}
Goal test checks if all goal facts are present in the current state.
The sequence of actions from initial to goal state:
{Tire(Flat, Axle), Tire(Spare, Trunk)}
{Tire(Spare, Axle)}
🎉
A plan is a sequence of actions that, when executed from the initial state, reaches the goal state.
Classical planning combines these four concepts:
Classical planning uses the same search algorithms you already know!
Because states and actions have structure (preconditions, effects, facts), we can create heuristics that work for ANY planning problem without domain-specific knowledge! This is the power of classical planning.