A topic in the Open Knowledge Graph — a free, open map of 15,495 topics and the order to learn them in.

Classical Planning: STRIPS and PDDL

Graduate Depth 117 in the knowledge graph ☐ I know this ☆ Set as goal
656prerequisites beneath it
See this on the map →
Problem Formulation and Uninformed Search StrategiesFirst-Order Logic for AI+1 more→
planning STRIPS PDDL action-schemas blocks-world relaxed-problems automated-planning

Core Idea

Classical planning finds a sequence of actions that turns an initial state into one that satisfies a goal, in a world that is fully observable, deterministic and static. Instead of writing a custom state representation for every problem, planners describe states as sets of logical facts and actions as reusable schemas with preconditions and effects. This style comes from STRIPS, a planner built at SRI International around 1971, and is standardized today in PDDL, the Planning Domain Definition Language. Because the representation is shared, one general planner can solve logistics, robot and puzzle problems, and it can compute domain-independent heuristics automatically.

How It's Best Learned

Write the blocks world in PDDL style by hand: predicates such as On(x, y) and Clear(x), one Move action schema, an initial state and a goal. Apply actions to states on paper using "remove the delete list, add the add list" until the goal holds. Then run forward search with and without the ignore-delete-lists heuristic, and examine the Sussman anomaly to see why goals cannot always be achieved one at a time.

Common Misconceptions

Explainer

Search algorithms such as breadth-first search and A* treat a state as an opaque object. The programmer supplies a successor function and a goal test for each new problem. Classical planning opens up the state. Each state is a set of facts written in logic, and each action is described by what it requires and what it changes. That shared structure lets one planner handle many domains, and it lets the planner compute its own heuristics.

The representation comes from STRIPS, the Stanford Research Institute Problem Solver, developed by Richard Fikes and Nils Nilsson around 1971 for the Shakey robot project. A state is a conjunction of ground facts, such as On(A, B) and Clear(C). Under the closed-world assumption, anything not listed is false. An action schema has parameters, a precondition and an effect. In the blocks world, Move(b, x, y) requires On(b, x), Clear(b) and Clear(y). Its effect adds On(b, y) and Clear(x) and deletes On(b, x) and Clear(y). Applying an action to a state is simple set arithmetic: remove the delete list, then add the add list. Today domains and problems are written in PDDL, introduced in 1998 for the International Planning Competition.

Given this representation, planning is search. Forward (progression) search starts from the initial state and applies applicable actions. Backward (regression) search starts from the goal and asks which actions could have made a goal fact true. The factored form makes general heuristics possible. A common idea is to ignore delete lists. In that relaxed problem, facts once achieved stay true, so an approximate plan is found quickly, and its length estimates the true remaining cost. The FF planner made this approach well known. Other methods translate planning into propositional satisfiability (SATPlan) or build a layered planning graph (Graphplan).

Planning also exposes a trap. Goals usually have several parts, and it is tempting to solve them one at a time. The Sussman anomaly in the blocks world shows that this can fail. Whichever subgoal you achieve first, you must undo it to achieve the second. A correct plan interleaves steps that serve both.

Classical planning assumes a deterministic, fully observable world. Extensions handle time, resources, uncertainty and partial observability. The core lesson carries over: a good representation of actions turns many problems into one general search.

Practice Questions 4 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Combining Small Groups Within 5 → Number Bonds Within 5 → Number Bonds to 10 → Tens and Ones Place Value → Reading and Writing Three-Digit Numbers → Comparing Three-Digit Numbers → Comparing and Ordering Three-Digit Quantities → Comparing and Ordering Whole Numbers → Comparing Numbers 1 to 20 → Ordering Numbers to 20 → Number Line 0 to 20 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Opposites and Additive Inverses → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Boolean Algebra → Boolean Type and Truth Values → Comparison Operators and Boolean Tests → Logical Operators and Boolean Algebra → Boolean Algebra and Fundamental Laws → Logic Gates Fundamentals → Implementing Boolean Functions with Gates → Karnaugh Map Simplification → Combinational Circuit Design → Flip-Flops and Latches → Finite State Machines (FSMs) → Deterministic Finite Automata (DFA) → Nondeterministic Finite Automata (NFA) → Regular Language Recognition Algorithms → DFA Properties and Minimization Algorithms → Regular Languages: Definition and Characterization → Context-Free Grammars (CFGs) → Context-Free Grammar Properties and Ambiguity → Parse Trees, Derivations, and Ambiguity in CFGs → Context-Free Grammars in Compiler Design → Abstract Syntax Trees (ASTs) → Symbol Tables and Scope Resolution → Semantic Analysis Phase → Scope and Binding Resolution → Scope, Shadowing, and Variable Lifetime → Parameter Passing: Value vs. Reference → Two-Dimensional Arrays → Graph Representations: Adjacency List vs. Adjacency Matrix → Depth-First Search (DFS) → Depth-First Search: Implementation and Applications → Topological Sort → Dynamic Programming → Longest Common Subsequence (LCS) Problem → Edit Distance: Levenshtein Distance and DP → 0/1 Knapsack Problem: Bounded Capacity DP → Greedy Algorithms → Activity Selection Problem Using Greedy Algorithms → Dijkstra's Algorithm → A* Search Algorithm → Heuristic Search Functions → Classical Planning: STRIPS and PDDL

Longest path: 118 steps · 656 total prerequisite topics

Prerequisites (3)

Leads To (0)

No topics depend on this one yet.