- Introduce a factored representation language called Planning Domain Definition Language (PDDL) that allows for compressive expressiveness of the planning domain (general application space such as logistics) and problem (the specific logistics task we face).
- Solve the planning problem by using domain-independent solvers that are able to reason over the PDDL expressed domain and problem. The domain independence is probably not the most efficient way to solve a planning problem but it is the most general and flexible way to do so and the associated tradeoff is worth making.
- The domain model written in a planning language and in the so called domain file.
- A problem definition that describes the initial state and the desired goal state using the domain model’s terminology; and produces as output a plan, that is, a sequence of actions that takes the agent from the initial state to the goal state.

PDDL Language Constructs
PDDL Domain File
PDDL expresses the four things we need to plan a sequence of actions. The set of all predicates and action schemas are defined in the domain file () as shown next.
Note that the specification via action schemas rather than via an enumeration of all possible actions for all possible states is compressive via the usage of variables.
For the famous Blocksworld domain shown below where a robotic arm must reason to stack blocks according what the goal is, we list the corresponding domain PDDL specification.

- Blocks are picked up and put down by the arm
- Blocks can be picked up only if they are clear, i.e., without any block on top
- The arm can pick up a block only if the arm is empty, i.e., if it is not holding another block, i.e., the arm can be pick up only one block at a time
- The arm can put down blocks on blocks or on the table
PDDL Tools
Use the PDDL VSCode extension as described here
to invoke this planning server and ensure you understand the ropes of using PDDL planners. The blocks word problem is a classic problem employed in the International Planning Competition (IPC) 2000. For non-trivial examples in robotics see Plansys2 - any AI engineer must know and understand the ROS2 platform.
PDDL Solvers (Planners)
Now we need to look how the planners solve the PDDL expressed problems. As it turns out many use the Forward (state-space) Search algorithms where despite the factored representation assumed here, we can treat states and actions as atomic and use forward search algorithms with heuristics. . The Fast Downward planner is a state-of-the-art planner that uses the FF heuristic and the LAMA heuristic to solve PDDL problems. The VSCode PDDL extension allows for visualizing the search tree so make sure you understand how the search tree is constructed and how the search algorithm works. PDDL as a representational language is evolving and new solvers are regularly appearing to allow us to relax the contraints such as determinism, full observability, etc. and apply planning to more realistic problems. The International Planning Competition (IPC) is a biennial event that evaluates the state-of-the-art in automated planning - see IPC 2023 for the latest ICAPS conference and competition.Found an error on this page? Report an issue.

