Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Planning Domain Definition Language
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Planning programming language}} The '''Planning Domain Definition Language''' ('''PDDL''') is an attempt to standardize [[Automated planning and scheduling|Artificial Intelligence (AI) planning]] languages.<ref name="pddl1"/> It was first developed by [[Drew McDermott]] and his colleagues in 1998 mainly to make the 1998/2000 [[International Planning Competition]] (IPC) possible, and then evolved with each competition. The standardization provided by PDDL has the benefit of making research more reusable and easily comparable, though at the cost of some expressive power, compared to domain-specific systems.<ref name="pddlp_1" /> ==Overview== PDDL is a human-readable format for problems in automated planning that gives a description of the possible states of the world, a description of the set of possible actions, a specific initial state of the world, and a specific set of desired goals. Action descriptions include the prerequisites of the action and the effects of the action. PDDL separates the model of the planning problem into two major parts: (1) a domain description of those elements that are present in every problem of the problem domain, and (2) the problem description which determines the specific planning problem. The problem description includes the initial state and the goals to be accomplished. The [[#Example|example]] below gives a domain definition and a problem description instance for the automated planning of a robot with two gripper arms. PDDL becomes the input to planner software, which is usually a domain-independent Artificial Intelligence (AI) planner. PDDL does not describe the output of the planner software, but the output is usually a [[Partial-order planning|totally or partially ordered plan]], which is a sequence of actions, some of which may be executed in parallel. The PDDL language was inspired by the [[Stanford Research Institute Problem Solver]] (STRIPS) and the [[Action description language]] (ADL), among others. The PDDL language uses principles from [[knowledge representation]] languages which are used to author [[Ontology (information science)|ontologies]], an example is the [[Web Ontology Language]] (OWL). Ontologies are a formal way to describe taxonomies and classification networks, essentially defining the structure of knowledge for various domains: the nouns representing classes of objects and the verbs representing relations between the objects. The latest version of PDDL is described in a [[Backus–Naur Form|BNF (Backus–Naur Form)]] syntax definition of PDDL 3.1.<ref>{{cite web |last=Kovacs |first=Daniel L |title=BNF definition of PDDL 3.1 |url=https://helios.hud.ac.uk/scommv/IPC-14/repository/kovacs-pddl-3.1-2011.pdf |publisher=[[University of Huddersfield]] |date=2011}}</ref> Several online resources of how to use PDDL are available,<ref name="pddl1">{{cite web |last=Haslum |first=Patrik |title=Writing Planning Domains and Problems in PDDL |url=https://users.cecs.anu.edu.au/~patrik/pddlman/writing.html |publisher=[[Australian National University]] |access-date=5 February 2024}}</ref><ref>{{cite web |title=A PDDL Reference Guide |url=https://nergmada.github.io/planning-wiki/ |publisher=[[GitHub]] |access-date=5 February 2024}}</ref><ref>{{cite web |last1=Green |first=Adam |title=What is Planning Domain Definition Language (PDDL)? |url=https://planning.wiki/guide/whatis/pddl |publisher=Planning.wiki |access-date=5 February 2024}}</ref><ref>{{cite web |title=Planning Domain Definition Language (PDDL) |url=https://pantelis.github.io/artificial-intelligence/aiml-common/lectures/planning/pddl/index.html |publisher=[[GitHub]] |access-date=5 February 2024}}</ref><ref>{{cite web |last=Helmert |first=Malte |title=An Introduction to PDDL |url=https://www.cs.toronto.edu/~sheila/2542/s14/A1/introtopddl2.pdf |publisher=[[University of Toronto]] |date=16 October 2014}}</ref> and also a book.<ref>{{cite book|last1=Haslum |first1=Patrik |last2=Lipovetzky |first2=Nir |last3=Magazzeni |first3=Daniele |last4=Muise |first4=Christian |title=An Introduction to the Planning Domain Definition Language |url=https://link.springer.com/book/10.1007/978-3-031-01584-7 |publisher=[[Springer Publishing|Springer Cham]] |doi=10.1007/978-3-031-01584-7 |ISBN=978-3-031-00456-8 |date=April 2019}}</ref> == De facto official versions of PDDL == ===PDDL1.2=== This was the official language of the 1st and [http://www.cs.toronto.edu/aips2000 2nd] IPC in 1998 and 2000 respectively.<ref name="pddl1.2">{{cite journal | url = http://icaps-conference.org/ipc2008/deterministic/data/mcdermott-et-al-tr-1998.pdf | last1 = McDermott | first1 = Drew | last2 = Ghallab | first2 = Malik | last3 = Howe | first3 = Adele | author3-link = Adele Howe | last4 = Knoblock | first4 = Craig | last5 = Ram | first5 = Ashwin | last6 = Veloso | first6 = Manuela | last7 = Weld | first7 = Daniel | last8 = Wilkins | first8 = David | title = PDDL---The Planning Domain Definition Language | journal = Technical Report CVC TR98003/DCS TR1165 | publisher = Yale Center for Computational Vision and Control | location = New Haven, CT | year = 1998 | citeseerx = 10.1.1.51.9941 }}</ref> It separated the model of the planning problem in two major parts: '''(1)''' '''domain description''' and '''(2)''' the related '''problem description'''. Such a division of the model allows for an intuitive separation of those elements, which are '''(1)''' present in every specific problem of the problem-domain (these elements are contained in the domain-description), and those elements, which '''(2)''' determine the specific planning-problem (these elements are contained in the problem-description). Thus several problem-descriptions may be connected to the same domain-description (just as several instances may exist of a class in [[Object-oriented programming|OOP (Object Oriented Programming)]] or in [[Web Ontology Language|OWL (Web Ontology Language)]] for example). Thus a domain and a connecting problem description forms the PDDL-model of a planning-problem, and eventually this is the '''input''' of a planner (usually domain-independent AI planner) software, which aims to solve the given planning-problem via some appropriate planning algorithm. The '''output''' of the planner is not specified by PDDL, but it is usually a [[Partial-order planning|totally or partially ordered plan]] (a sequence of actions, some of which may be executed even in parallel sometimes). Now lets take a look at the contents of a PDDL1.2 domain and problem description in general...<br />'''(1)''' The domain description consisted of a '''domain-name''' definition, definition of '''requirements''' (to declare those model-elements to the planner which the PDDL-model is actually using), definition of '''object-type hierarchy''' (just like a class-hierarchy in [[Object-oriented programming|OOP]]), definition of '''constant objects''' (which are present in every problem in the domain), definition of '''predicates''' (templates for logical facts), and also the definition of possible '''actions''' (operator-schemas with parameters, which should be grounded/instantiated during execution). Actions had '''parameters''' (variables that may be instantiated with objects), '''preconditions''' and '''effects'''. The effects of actions could be also '''conditional (when-effects)'''.<br />'''(2)''' The problem description consisted of a '''problem-name''' definition, the definition of the related '''domain-name''', the definition of all the possible '''objects''' (atoms in the logical universe), '''initial conditions''' (the initial state of the planning environment, a conjunction of true/false facts), and the definition of '''goal-states''' (a logical expression over facts that should be true/false in a goal-state of the planning environment). Thus eventually PDDL1.2 captured the "physics" of a deterministic single-agent discrete fully accessible planning environment. ===PDDL2.1=== This was the official language of the [https://web.archive.org/web/20120202151620/http://planning.cis.strath.ac.uk/competition/ 3rd] IPC in 2002.<ref name="pddl2.1">{{cite journal | url = http://icaps-conference.org/ipc2008/deterministic/data/fox-long-jair-2003.pdf | last1 = Fox | first1 = M. | last2 = Long | first2 = D. | title = PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains | journal = [[Journal of Artificial Intelligence Research]] | volume = 20 | pages = 61–124 | year = 2003 | doi = 10.1613/jair.1129 | s2cid = 1397894 }}</ref> It introduced '''numeric [[Fluent (artificial intelligence)|fluents]]''' (e.g. to model non-binary resources such as fuel-level, time, energy, distance, weight, ...), '''plan-metrics''' (to allow quantitative evaluation of plans, and not just goal-driven, but utility-driven planning, i.e. optimization, metric-minimization/maximization), and '''durative/continuous actions''' (which could have variable, non-discrete length, conditions and effects). Eventually PDDL2.1 allowed the representation and solution of many more real-world problems than the original version of the language. ===PDDL2.2=== This was the official language of the deterministic track of the [https://web.archive.org/web/20111003064252/http://www.tzi.de/~edelkamp/ipc-4/ 4th] IPC in 2004.<ref name="pddl2.2">{{cite journal | url = http://icaps-conference.org/ipc2008/deterministic/data/edelkamp-hoffmann-tr-2004.pdf | archive-url = https://web.archive.org/web/20161012233231/https://www.icaps-conference.org/ipc2008/deterministic/data/edelkamp-hoffmann-tr-2004.pdf | archive-date = 2016-10-12 | last1 = Edelkamp | first1 = S. | last2 = Hoffmann | first2 = J. | title = PDDL2.2: The Language for the Classical Part of the 4th International planning Competition | journal = Technical Report No. 195 | publisher = Institut für Informatik | year = 2003 }}</ref> It introduced '''derived predicates''' (to model the dependency of given facts from other facts, e.g. if A is reachable from B, and B is reachable from C, then A is reachable from C (transitivity)), and '''timed initial literals''' (to model exogenous events occurring at given time independently from plan-execution). Eventually PDDL2.2 extended the language with a few important elements, but wasn't a radical evolution compared to PDDL2.1 after PDDL1.2. ===PDDL3.0=== This was the official language of the deterministic track of the [http://zeus.ing.unibs.it/ipc-5 5th] IPC in 2006.<ref name="pddl3.0shorter">{{cite conference | url = http://icaps-conference.org/ipc2008/deterministic/data/gerevini-long-icapsws-2006.pdf | last1 = Gerevini | first1 = A. | last2 = Long | first2 = D. | title = Preferences and Soft Constraints in PDDL3 | book-title = Proceedings of the ICAPS-2006 Workshop on Preferences and Soft Constraints in Planning | pages = 46–54 | year = 2006 }}</ref><ref name="pddl3.0longer">{{cite journal | url = http://icaps-conference.org/ipc2008/deterministic/data/gerevini-long-tr-2005.pdf | last1 = Gerevini | first1 = A. | last2 = Long | first2 = D. | title = Plan Constraints and Preferences in PDDL3 | journal = Technical Report R. T. 2005-08-47 | publisher = Dipartimento di Elettronica per l'Automazione, Università degli Studi di Brescia | year = 2005 }}</ref><ref name="pddl3.0bnf">{{cite journal | url = http://icaps-conference.org/ipc2008/deterministic/data/gerevini-long-unpublished-2005.pdf | last1 = Gerevini | first1 = A. | last2 = Long | first2 = D. | title = BNF Description of PDDL3.0 | journal = Unpublished Manuscript Linked from the IPC-5 Website | year = 2005 }}</ref> It introduced '''state-trajectory constraints''' (hard-constraints in form of [[Modal logic|modal-logic]] expressions, which should be true for the state-trajectory produced during the execution of a plan, which is a solution of the given planning problem) and '''preferences''' (soft-constraints in form of logical expressions, similar to hard-constraints, but their satisfaction wasn't necessary, although it could be incorporated into the plan-metric e.g. to maximize the number of satisfied preferences, or to just measure the quality of a plan) to enable [[preference-based planning]]. Eventually PDDL3.0 updated the expressiveness of the language to be able to cope with recent, important developments in planning. ===PDDL3.1=== This was the official language of the deterministic track of the [http://icaps-conference.org/ipc2008/ 6th] and [http://www.plg.inf.uc3m.es/ipc2011-deterministic 7th] IPC in 2008 and 2011 respectively.<ref name="pddl3.1homepage">{{cite journal | url = http://icaps-conference.org/ipc2008/deterministic/PddlResources.html | last1 = Helmert | first1 = M. | title = Changes in PDDL 3.1 | journal = Unpublished Summary from the IPC-2008 Website | year = 2008 }}</ref><ref name="pddl3.1final_bnf">{{cite journal | url = http://www.plg.inf.uc3m.es/ipc2011-deterministic/Resources?action=AttachFile&do=view&target=kovacs-pddl-3.1-2011.pdf | last1 = Kovacs | first1 = D. L. | title = BNF Definition of PDDL3.1: completely corrected, without comments | journal = Unpublished Manuscript from the IPC-2011 Website | year = 2011 }}</ref><ref name="pddl3.1commented_bnf">{{cite journal | url = http://www.plg.inf.uc3m.es/ipc2011-deterministic/Resources?action=AttachFile&do=view&target=kovacs-draft-2011.pdf | last1 = Kovacs | first1 = D. L. | title = BNF Definition of PDDL3.1: partially corrected, with comments/explanations | journal = Unpublished Manuscript from the IPC-2011 Website | year = 2011 }}</ref> It introduced '''object-fluents''' (i.e. functions' range now could be not only numerical (integer or real), but it could be any object-type also). Thus PDDL3.1 adapted the language even more to modern expectations with a syntactically seemingly small, but semantically quite significant change in expressiveness. ===Current situation=== The latest version of the language is [http://icaps-conference.org/ipc2008/deterministic/PddlResources.html PDDL3.1]. The [[Backus–Naur Form|BNF (Backus–Naur Form)]] syntax definition of PDDL3.1 can be found among the resources of the [http://www.plg.inf.uc3m.es/ipc2011-deterministic/Resources IPC-2011 homepage] or the [http://helios.hud.ac.uk/scommv/IPC-14/software.html IPC-2014 homepage]. == Successors/variants/extensions of PDDL== ===PDDL+=== This extension of PDDL2.1 from around 2002–2006 provides a more flexible model of continuous change through the use of autonomous '''processes''' and '''events'''.<ref name="pddlp_1">{{cite conference | last1 = Fox | first1 = M. | last2 = Long | first2 = D. | title = PDDL+: Modeling continuous time dependent effects | book-title = Proceedings of the 3rd International NASA Workshop on Planning and Scheduling for Space | year = 2002 | citeseerx = 10.1.1.15.5965 }}</ref><ref name="pddlp_2">{{cite journal | url = http://www.plg.inf.uc3m.es/ipc2011-deterministic/Resources?action=AttachFile&do=view&target=fox-long-jair-2006.pdf | last1 = Fox | first1 = M. | last2 = Long | first2 = D. | title = Modelling Mixed Discrete-Continuous Domains for Planning | journal = [[Journal of Artificial Intelligence Research]] | volume = 27 | pages = 235–297 | year = 2006 | citeseerx = 10.1.1.75.6792 | arxiv = 1110.2200 | doi = 10.1613/jair.2044 | s2cid = 5730335 }}</ref> The key this extension provides is the ability to model the interaction between the agent's behaviour and changes that are initiated by the agent's environment. Processes run over time and have a continuous effect on numeric values. They are initiated and terminated either by the direct action of the agent or by events triggered in the environment. This 3-part structure is referred to as the ''start-process-stop model''. Distinctions are made between logical and numeric states: transitions between logical states are assumed to be instantaneous whilst occupation of a given logical state can endure over time. Thus in PDDL+ continuous update expressions are restricted to occur only in process effects. Actions and events, which are instantaneous, are restricted to the expression of discrete change. This introduces the before mentioned 3-part modelling of periods of continuous change: '''(1)''' an action or event starts a period of continuous change on a numeric variable expressed by means of a process; '''(2)''' the process realizes the continuous change of the numeric variable; '''(3)''' an action or event finally stops the execution of the process and terminates its effect on the numeric variable. Comment: the goals of the plan might be achieved before an active process is stopped. ===NDDL=== '''NDDL''' ('''N'''ew '''D'''omain '''D'''efinition '''L'''anguage) is [[NASA]]'s response to PDDL from around 2002.<ref name="nddl_1">{{cite journal | url = http://ti.arc.nasa.gov/m/pub-archive/313h/0313%20%28Frank%29.pdf | last1 = Frank | first1 = J. | last2 = Jonsson | first2 = A. | title = Constraint-based attribute and interval planning | journal = Technical Report | publisher = NASA Ames Research Center | location = Moffett Field, CA | year = 2002 }}</ref><ref name="nddl_2">{{cite conference | url = http://ti.arc.nasa.gov/m/pub-archive/1364h/1364%20%28Smith,%20D%29.pdf | last1 = Bernardini | first1 = S. | last2 = Smith | first2 = D. E. | title = Developing Domain-Independent Search Control for EUROPA2 | book-title = Proceedings of the Workshop on Heuristics for Domain-independent Planning: Progress, Ideas, Limitations, Challenges | conference = 17th International Conference on Automated Planning and Scheduling (ICAPS-2007) | location = Rhode Island, US | year = 2007 }}</ref> Its representation differs from PDDL in several respects: 1) it uses a '''variable/value representation (timelines/activities)''' rather than a [[Propositional calculus|propositional]]/[[first-order logic]], and 2) there is no concept of states or actions, only of '''intervals (activities) and constraints between those activities'''. In this respect, models in NDDL look more like schemas for [[Boolean satisfiability problem|SAT]] encodings of planning problems rather than PDDL models. Because of the mentioned differences planning and execution of plans (e.g. during critical space missions) may be more robust when using NDDL, but the correspondence to standard planning-problem representations other than PDDL may be much less intuitive than in case of PDDL. ===MAPL=== '''MAPL''' ('''M'''ulti-'''A'''gent '''P'''lanning '''L'''anguage, pronounced "maple") is an extension of PDDL2.1 from around 2003.<ref name="mapl">{{cite conference | url = http://www.informatik.uni-freiburg.de/~ki/papers/brenner-mapl-icaps03.pdf | last1 = Brenner | first1 = M. | title = A Multiagent Planning Language | book-title = Proceedings of the Workshop on PDDL | conference = 13th International Conference on Automated Planning and Scheduling (ICAPS-2003) | location = Trento, Italy | year = 2003 }}</ref> It is a quite serious modification of the original language. It introduces '''non-propositional state-variables''' (which may be n-ary: true, false, unknown, or anything else). It introduces a temporal model given with '''modal operators''' (before, after, etc.). Nonetheless, in PDDL3.0 a more thorough temporal model was given, which is also compatible with the original PDDL syntax (and it is just an optional addition). MAPL also introduces '''actions whose duration will be determined in runtime''' and '''explicit plan synchronization''' which is realized through [[speech act]] based communication among agents. This assumption may be artificial, since agents executing concurrent plans shouldn't necessarily communicate to be able to function in a multi-agent environment. Finally, MAPL introduces '''events (endogenous and exogenous)''' for the sake of handling concurrency of actions. Thus events become part of plans explicitly, and are assigned to agents by a '''control function''', which is also part of the plan. ===OPT=== '''OPT''' ('''O'''ntology with '''P'''olymorphic '''T'''ypes) was a profound extension of PDDL2.1 by [[Drew McDermott]] from around 2003–2005 (with some similarities to PDDL+).<ref name="opt">{{cite journal | url = http://cs-www.cs.yale.edu/homes/dvm/papers/opt-manual.pdf | last1 = McDermott | first1 = D. | title = OPT Manual Version 1.7.3 (Reflects Opt Version 1.6.11) * DRAFT ** | journal = Unpublished Manuscript from Drew McDermott's Website | year = 2005 }}</ref> It was an attempt to create a general-purpose notation for creating '''ontologies''', defined as formalized conceptual frameworks for planning domains about which planning applications are to reason. Its syntax was based on PDDL, but it had a much more '''elaborate type system''', which allowed users to make use of higher-order constructs such as explicit '''[[Lambda calculus|λ-expressions]]''' allowing for efficient [[type inference]] (i.e. not only domain objects had types (''level 0 types''), but also the functions/fluents defined above these objects had types in the form of arbitrary mappings (''level 1 types''), which could be generic, so their parameters (the domain and range of the generic mapping) could be defined with variables, which could have an even higher level type (''level 2 type'') not to speak of that the mappings could be arbitrary, i.e. the domain or range of a function (e.g. predicate, numeric fluent) could be any level 0/1/2 type. For example, functions could map from arbitrary functions to arbitrary functions...). OPT was basically intended to be (almost) upwardly compatible with PDDL2.1. The notation for '''processes''' and '''durative actions''' was borrowed mainly from PDDL+ and PDDL2.1, but beyond that OPT offered many other significant extensions (e.g. '''data-structures''', '''non-Boolean fluents''', '''return-values''' for actions, '''links''' between actions, '''hierarchical action expansion''', '''hierarchy of domain definitions''', the use of '''[[XML namespace|namespaces]]''' for compatibility with the [[Semantic Web|semantic web]]). ===PPDDL=== '''PPDDL''' ('''P'''robabilistic '''PDDL''') 1.0 was the official language of the probabilistic track of the [http://www.cs.rutgers.edu/~mlittman/topics/ipc04-pt 4th] and [http://ldc.usb.ve/~bonet/ipc5 5th] IPC in 2004 and 2006 respectively.<ref name="ppddl1.0">{{cite journal | url = http://www.tempastic.org/papers/CMU-CS-04-167.pdf | last1 = Younes | first1 = H. L. S. | last2 = Littman | first2 = M. L. | title = PPDDL 1.0: an extension to PDDL for expressing planning domains with probabilistic effects | journal = Technical Report CMU-CS-04-167 | publisher = Carnegie Mellon University | location = Pittsburgh | year = 2004 }}</ref> It extended PDDL2.1 with '''probabilistic effects''' (discrete, general probability distributions over possible effects of an action), '''reward fluents''' (for incrementing or decrementing the total reward of a plan in the effects of the actions), '''goal rewards''' (for rewarding a state-trajectory, which incorporates at least one goal-state), and '''goal-achieved fluents''' (which were true, if the state-trajectory incorporated at least one goal-state). Eventually these changes allowed PPDDL1.0 to realize [[Markov decision process|Markov Decision Process (MDP)]] planning, where there may be uncertainty in the state-transitions, but the environment is fully observable for the planner/agent. ===APPL=== '''APPL''' ('''A'''bstract '''P'''lan '''P'''reparation '''L'''anguage) is a newer variant of NDDL from 2006, which is more abstract than most existing planning languages such as PDDL or NDDL.<ref name="appl">{{cite journal | url = http://shemesh.larc.nasa.gov/fm/papers/Butler-TM-2006-214518-Abstract-Plan.pdf | last1 = Butler | first1 = R. | last2 = Muñoz | first2 = C. | title = An Abstract Plan Preparation Language | journal = NASA Technical Report NASA/TM-2006-214518 | year = 2006 }}</ref> The goal of this language was to simplify the formal analysis and specification of planning problems that are intended for safety-critical applications such as power management or automated rendezvous in future manned spacecraft. APPL used the same concepts as NDDL with the '''extension of actions''', and also some other concepts, but still its expressive power is much less than PDDL's (in hope of staying robust and formally verifiable). ===RDDL=== '''RDDL''' ('''R'''elational '''D'''ynamic influence '''D'''iagram '''L'''anguage) was the official language of the uncertainty track of the [http://users.cecs.anu.edu.au/~ssanner/IPPC_2011/ 7th] IPC in 2011.<ref name="rddl">{{cite journal | url = http://users.cecs.anu.edu.au/~ssanner/IPPC_2011/RDDL.pdf | last1 = Sanner | first1 = S. | title = Relational Dynamic Influence Diagram Language (RDDL): Language Description | journal = Unpublished Manuscript from the IPC-2011 Website | year = 2010 }}</ref> Conceptually it is based on PPDDL1.0 and PDDL3.0, but practically it is a completely different language both syntactically and semantically. The introduction of '''partial observability''' is one of the most important changes in RDDL compared to PPDDL1.0. It allows efficient description of [[Markov decision process|Markov Decision Processes (MDPs)]] and [[Partially observable Markov decision process|Partially Observable Markov Decision Processes (POMDPs)]] by representing everything (state-fluents, observations, actions, ...) with variables. This way RDDL departs from PDDL significantly. Grounded RDDL corresponds to [[Dynamic Bayesian network|Dynamic Bayesian Networks (DBNs)]] similarly to PPDDL1.0, but RDDL is more expressive than PPDDL1.0. ==={{anchor|mapddl}}MA-PDDL=== '''MA-PDDL''' ('''M'''ulti '''A'''gent '''PDDL''') is a minimalistic, modular extension of [[#PDDL3.1|PDDL3.1]] introduced in 2012 (i.e. a new <code>:multi-agent</code> requirement) that allows ''planning by and for'' multiple agents.<ref name="mapddl1">{{cite conference |url = http://home.mit.bme.hu/~dkovacs/pubs/d.l.kovacs_2012_ICAPS-WIPC.pdf |last1 = Kovacs |first1 = D. L. |title = A Multi-Agent Extension of PDDL3.1 |book-title = Proceedings of the 3rd Workshop on the International Planning Competition (IPC) |conference = 22nd International Conference on Automated Planning and Scheduling (ICAPS-2012) |location = Atibaia, São Paulo, Brazil |year = 2012 |pages = 19–27 }}</ref> The addition is compatible with all the features of [[#PDDL3.1|PDDL3.1]] and addresses most of the issues of [[#MAPL|MAPL]]. It adds the possibility to distinguish between the possibly '''different actions of different agents''' (i.e. different capabilities). Similarly different agents may have '''different goals and/or metrics'''. The preconditions of actions now may directly refer to concurrent actions (e.g. the actions of other agents) and thus '''actions with interacting effects''' can be represented in a general, flexible way (e.g. suppose that at least 2 agents are needed to execute a <code>lift</code> action to lift a heavy table into the air, or otherwise the table would remain on the ground (this is an example of constructive synergy, but destructive synergy can be also easily represented in MA-PDDL)). Moreover, as kind of syntactic sugar, a simple mechanism for the '''inheritance and polymorphism of actions, goals and metrics''' was also introduced in MA-PDDL (assuming <code>:typing</code> is declared). Since [[#PDDL3.1|PDDL3.1]] assumes that the environment is deterministic and fully observable, the same holds for MA-PDDL, i.e. every agent can access the value of every state fluent at every time-instant and observe every previously executed action of each agent, and also the concurrent actions of agents unambiguously determine the next state of the environment. This was improved later by the addition of partial-observability and probabilistic effects (again, in form of two new modular requirements, <code>:partial-observability</code> and <code>:probabilistic-effects</code>, respectively, the latter being inspired by [[#PPDDL|PPDDL1.0]], and both being compatible with all the previous features of the language, including <code>:multi-agent</code>).<ref name="mapddl2">{{cite journal | url = http://www.uni-obuda.hu/journal/Kovacs_Dobrowiecki_46.pdf | last1 = Kovacs | first1 = D. L. | last2 = Dobrowiecki | first2 = T. P. | title = Converting MA-PDDL to extensive-form games | journal = Acta Polytechnica Hungarica | volume = 10 | issue = 8 | pages = 27–47 | year = 2013 | doi = 10.12700/APH.10.08.2013.8.2 | doi-access = free }}</ref> == Example == This is the domain definition of a [[Stanford Research Institute Problem Solver|STRIPS]] instance for the automated planning of a robot with two gripper arms.<ref name="pddl eg">{{cite web | last = Veloso | first = Manuela | title = PDDL by Example | publisher = Carnegie Mellon University | url = http://www.cs.toronto.edu/~sheila/384/w11/Assignments/A3/veloso-PDDL_by_Example.pdf | access-date = 2015-11-28 }}</ref> <syntaxhighlight lang="pddl"> (define (domain gripper-strips) (:predicates (room ?r) (ball ?b) (gripper ?g) (at-robby ?r) (at ?b ?r) (free ?g) (carry ?o ?g)) (:action move :parameters (?from ?to) :precondition (and (room ?from) (room ?to) (at-robby ?from)) :effect (and (at-robby ?to) (not (at-robby ?from)))) (:action pick :parameters (?obj ?room ?gripper) :precondition (and (ball ?obj) (room ?room) (gripper ?gripper) (at ?obj ?room) (at-robby ?room) (free ?gripper)) :effect (and (carry ?obj ?gripper) (not (at ?obj ?room)) (not (free ?gripper)))) (:action drop :parameters (?obj ?room ?gripper) :precondition (and (ball ?obj) (room ?room) (gripper ?gripper) (carry ?obj ?gripper) (at-robby ?room)) :effect (and (at ?obj ?room) (free ?gripper) (not (carry ?obj ?gripper))))) </syntaxhighlight> And this is the problem definition that instantiates the previous domain definition with a concrete environment with two rooms and two balls. <syntaxhighlight lang="pddl"> (define (problem strips-gripper2) (:domain gripper-strips) (:objects rooma roomb ball1 ball2 left right) (:init (room rooma) (room roomb) (ball ball1) (ball ball2) (gripper left) (gripper right) (at-robby rooma) (free left) (free right) (at ball1 rooma) (at ball2 rooma)) (:goal (at ball1 roomb))) </syntaxhighlight> == References == {{reflist}} [[Category:Automated planning and scheduling]] [[Category:Articles with example code]] [[Category:Computer languages]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Cite book
(
edit
)
Template:Cite conference
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)