A PDDL Reference Guide
|Go Straight To Contents||Report a problem with this guide||Join Planning & PDDL Group on Slack|
The PDDL reference guide needs your help
- Upload and complete a survey on the PDDL you use
- Help us close issues and improve this guide, see how to contribute
This reference and guide is here to provide easy access to resources related to the field of AI Planning. AI Planning is difficult to quantify under one roof, due to the variety of ongoing research in the field.
The International Conference on Autonomous Planning and Scheduling has in the course of supporting AI Planning research created a competition for the AI Planning Software (Planners) that have been built to solve AI Planning problems.
This competition, dating from 1998, has defined a general purpose definition language, Planning Domain Definition Language (PDDL), which is designed to be capable of specifying any planning or scheduling problem you could come across.
In reality, PDDL since it’s first incarnation in 1998 has had serious modifications to make it capable of handling the complex tasks we expect of modern autonomous planning and scheduling techniques.
For more details on PDDL, Planning, the history, the usage and the research, see the guide.
Using This Guide
This guide splits into three main sections, guide, reference and examples.
The guide section is here to help the uninitiated get an idea of what planning is and how it can be used. It glazes over technical details where they’re complex and difficult to understand. This is not intended to be a substitute to the copious academic literature written in the subject.
The reference guide itself splits into two sections, one for the language of planners, PDDL. The other section for the planners which can read and solve PDDL problems.
The nature of AI planning and the language means that not all features are supported by all planners and not all techniques are used as often as others. The reference here aims to help with that by firstly showing next to each definition an indication of how well supported the feature is and how commonly used it is.
Support: Universal, High, Medium, Poor
Usage: High, Medium, Low, Rare
For planners, this reference will aim to provide indication of what features are supported by what planners. It also provide useful hints and notes about the quirks and specific issues certain planners have in running certain problems.
To help grow the community and support available to new and experienced users alike, we’ve launched a slack chat, to help connect people working and using planning & PDDL. Drop in and say hello
Contributions, Corrections and Feedback
Contributions are always welcome!
The best way to provide multiple contributions is to request collaborator access to this repository, either via emailing firstname.lastname@example.org or by filing an issue on this repo. You can fork this repository to your GitHub, make changes and file a pull request.
Alternatively, if you are not able to provide a contribution, but maybe think there is something this guide is missing or is incorrect, please add a new issue to this repo, and a correction, or additional will be made based on priority. Please use the “Report a problem with this guide” button available on most pages.
Finally, if you have a planner which you think should be included in this reference guide, please ask for collaborator access or fork the repository (if you’re the creator of the planner), or create an issue (if you’re a user) and we’ll try to include it.
Any other issues/concerns should be sent to email@example.com and I’ll try to get back to you ASAP.
This site breaks down into two major content sections
- the guide - Focuses on what planning is and using planning and planners to solve planning problems
- the reference - Provides a “handbook” to the language and the planners which solve the problems modelled in said language.
- What is AI Planning?
- What is PDDL?
- What is a planner?
- Report a problem with this guide
- PDDL (1.2)
- PDDL 2.1
- PDDL 2.2
- PDDL 3.0
- Other PDDL Flavours & Syntaxing
- A-Z of Planners
- All tags
- Classical Planners
- Temporal Planners
- Probabilistic Planners
- How to submit a planner to this guide
Examples (Coming Soon)
Below you can find a collection of resources for writing, learning and using PDDL and planning. For more information on what these tools and resources are and how they can help, please visit the additional resources page.
- Planner Tools
- PDDL Tools
- Learning Resources
- Publicly Available PDDL Domains
- PDDL - The Planning Domain Definition Language, [Ghallab, M. Howe, A. Knoblock, C. McDermott, D. Ram, A. Veloso, M. Weld, D. Wilkins, D.]
- OPTIC - Optimising Preferences and Time Dependent Costs
- PDDL+: Modelling Continuous Time Dependent Effects [Fox, M. Long, D.]
- PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains, [Fox, M. Long, D.]
- PDDL Examples
- PDDL2.2: The Language for the Classical Part of the 4th International Planning Competition [Edelkamp, S. Hoffmann, J.]
- Plan Constraints and Preferences in PDDL 3 [Gerevini, A. Long, D.]
- BNF Description of PDDL 3.0 [Gerevini, A. Long, D.]
- Temporal Planning with Preferences and Time-Dependent Continuous Costs [Benton, J. Coles, A. Coles, A.]
- Temporal Planning in Domains with Linear Processes [ Coles, A. J. Coles, A. I. Fox, M. Long, D.]
- Heuristic Planning for PDDL+ Domains [Piotrowski, W. Fox, M. Long, D. Magazzeni, D. Mercorio, F.]
- Interval-Based Relaxation for General Numeric Planning [Scala, E. Haslum, P. Thiebaux, S. Ramirez, M.]
- The MetricFF Planning System: Translating “Ignoring Delete Lists” to Numeric State Variables [Hoffmann, J.]
- Forward-Chaining Partial-Order Planning [ Coles,A. J. Coles, A. I. Fox, M. Long, D.]
- A Compilation of the Full PDDL+ Language into SMT [Cashmore, M. Fox, M. Long, D. Magazzeni, D.]