The Planning Domain Definition Language (PDDL) is a simple and standard way to describe planning problems for computers, especially in the field of Artificial Intelligence (AI). It helps define all the things, actions and goals needed for a computer to plan out a series of actions to solve a problem like moving robots, scheduling tasks or solving puzzles. PDDL describes planning problems using plain text files written in a specific format. There are always two parts:
Domain File: Lists all the actions and types of items in the problem area.
Problem File: Lists the specific items such as the starting state and the goal to reach.
State Representation
A state is a set of facts about the world, for instance: “block1 is on block2 and the robot’s hand is empty.”
If a condition is not specified then it is assumed to be false (closed world assumption).
Describes rules for the actions: What needs to be true before and after each action.
2. Problem File
Names the planning problem.
Refers to the domain.
Lists objects, initial facts (the starting reality).
Lists the desired goal (what we're aiming to make true).
Domain File Breakdown
Lets see some key parts of Domain File,
Types: Different categories of objects in the world. Types can also have subtypes. (e.g., robots, boxes, rooms).
Constants: Objects present in every problem for this domain(e.g., robot1, boxA, room1).
Predicates: Logical properties or relationships about the objects (e.g., is-on, is-holding).
Actions: Templates for things that can happen, detailing parameters, conditions and what they change.
Problem File Breakdown
Let's see some key parts of Problem File,
Problem Name: Unique name for this problem instance (e.g., blocks-problem).
Domain: Links to the domain file; tells which domain rules are being used.
Objects: Lists all the specific things (robots, boxes, rooms, etc.) present in this planning scenario.
Initial State: Facts and relationships that are true at the start of planning.
Goal: Conditions that must be true for the planner to consider the problem solved.
Example: Blocksworld Domain
Here’s a classic scenario where a robotic arm manages blocks. The domain file defines actions for picking up and putting down blocks either on the table or on other blocks.
Domain File
Problem File
Result
Applications of PDDL
Robotics: Planning and coordinating robot actions, such as navigation, manipulation and task execution in dynamic environments.
Automated Scheduling: Assigning jobs or resources in industries like manufacturing, transportation and satellite operations.
Game AI: Controlling the actions of agents, NPCs or solving game-level puzzles by formalizing goals and actions.
Logistics and Supply Chain Management: Optimizing delivery routes, warehouse operations and resource allocation.
Workflow Management: Automating business process flows, complex service composition and multi-step procedures.
Advantages
Standardization: Provides a common format for defining planning domains and problems, enabling interoperability across tools and research groups.
Modularity: Separates domain knowledge (actions, rules) from specific instances (objects, goals), promoting reuse and easier testing.
Human-Readable: Designed to be easy for humans to write, read and modify.
Extensibility: Supports advanced features (e.g., numeric fluent, temporal planning) as the language evolves.
Limitations
Complexity for Large Domains: Modeling very large or dynamic domains can lead to lengthy and hard-to-manage PDDL files.
Debugging Difficulty: Errors in PDDL models can be non-obvious and debugging is less straightforward compared to standard programming languages.
Semantic Constraints: Although PDDL can express complex actions, some real-world details (e.g., uncertainty, partial observability) are difficult to capture fully.
Limited Types of Reasoning: Not suited for problems that require probabilistic, stochastic or continuous reasoning out-of-the-box (though extensions exist).