Background — Search algorithms (like A*) define states as black boxes. Logic algorithms (like Resolution) are fully expressive but often too slow to find action sequences efficiently. Planning sits in the middle.
Planning: The task of coming up with a sequence of actions that will achieve a goal.11. If you are just finding a path on a map, use Search. If you are coordinating a fleet of autonomous rovers on Mars, you need Planning.
PDDL (Planning Domain Definition Language) is the standard syntax for expressing planning problems.
At(Plane1, JFK) ^ Cargo(C1)).
Action(Load(c, p, a),PRECOND: Cargo(c) \land Plane(p) \land Airport(a) \land At(c, a) \land At(p, a)EFFECT: \neg At(c, a) \land In(c, p))
Since we have states, actions, and goals, we can just use standard search algorithms!
Search from the initial state toward the goal.
Search from the goal state backwards to the initial state.
State-space search forces us to strictly order actions, even if they are independent (e.g., putting on your left shoe and right shoe). Partial-Order Planning searches through the space of plans rather than states.
Because the state representation is standardized, we can automatically generate heuristics without the user providing them.
If you are just finding a path on a map, use Search. If you are coordinating a fleet of autonomous rovers on Mars, you need Planning.↩︎
Explicitly listing what changes (the effects) neatly sidesteps the “Frame Problem”—the impossible task of listing all the things in the world that do not change when an action occurs.↩︎
Regression search works on sets of states (subgoals) rather than complete specific states.↩︎
Partial-Order Planning is excellent for multi-agent execution because independent branches of the plan can be executed simultaneously by different robots.↩︎
The “Ignore Delete Lists” heuristic is incredibly famous in AI planning research and forms the backbone of modern fast-forward (FF) planners.↩︎