Planning Domain Definition Language(PPDL) (original) (raw)
Last Updated : 22 Aug, 2025
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).
Structure of PDDL Files

Structure of PDDL
**1. Domain File
- Names the domain (problem area).
- Lists types, constants, predicates and actions.
- 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
Lisp `
(define (domain blocksworld) (:requirements :typing :fluents :negative-preconditions) (:types block) (:predicates (on ?a ?b - block) (clear ?a - block) (holding ?a - block) (handempty) (ontable ?x - block) )
(:action pickup :parameters (?x - block) :precondition (and (ontable ?x) (handempty) (clear ?x)) :effect (and (holding ?x) (not (handempty)) (not (clear ?x)) (not (ontable ?x))) )
(:action unstack :parameters (?x ?y - block) :precondition (and (on ?x ?y) (handempty) (clear ?x)) :effect (and (holding ?x) (not (handempty)) (not (clear ?x)) (clear ?y) (not (on ?x ?y))) )
(:action putdown :parameters (?x - block) :precondition (and (holding ?x)) :effect (and (ontable ?x) (not (holding ?x)) (handempty) (clear ?x)) )
(:action stack :parameters (?x ?y - block) :precondition (and (holding ?x) (clear ?y)) :effect (and (on ?x ?y) (not (holding ?x)) (handempty) (not (clear ?y)) (clear ?x)) ) )
`
Problem File
Lisp `
(define (problem blocks-problem) (:domain blocksworld) (:objects a b c - block) (:init (ontable a) (ontable b) (on c b) (clear a) (clear c) (handempty)) (:goal (and (on a b) (on b c))) )
`
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).