An extension to the Universal PDDL Parser to handle multiagent domains. The parser currently supports [Crosby, Jonsson and Rovatsos, 2014] and [Kovacs, 2012] specifications.
Firstly, make sure you have the scons
tool installed in your computer. You will need it to compile the software.
Then, you have to either clone or download this repository. To clone it, you can use the following command:
git clone https://github.com/aig-upf/universal-pddl-parser-multiagent.git
This repository references the universal-pddl-parser
repository. There are two ways of referencing that repository:
- You use the
universal-pddl-parser
submodule inside this repository. - You use the
PDDL_PARSER_PATH
environment variable, which should contain the path to theuniversal-pddl-parser
repository.
Finally, to compile the repository tools, run the following command:
cd universal-pddl-parser-multiagent
./script/build.sh
The domains
folder contains a variety of multiagent domains. Each domain folder contains two subfolders:
domain
: It contains domain description(s). Note that there can be more than one if they are written in different specifications.problems
: It contains some domain problems. In some cases, you will also find a generator for creating new instances.
The domains are briefly described in their corresponding folders:
In this section, it is described how to run different compilers for converting multiagent planning problems (MAP) into classical planning problems. The resulting classical planning problems can be later solved using an off-the-shelf classical planner, such as Fast Downward in the LAMA-2011 setting.
This compilation is described in [Crosby, Jonsson and Rovatsos, 2014]. Note that only domains following the notation described in this paper will be compiled.
The folder containing the source code is examples/serialize_cn
. After compiling the source code, two binaries are created: serialize.bin
and compress.bin
.
The binary for compiling MAPs into classical problems is serialize.bin
. It used as follows:
./serialize.bin <ma-domain> <ma-problem> > <cl-domain> 2> <cl-problem>
where:
ma-domain
andma-problem
are the paths to the multiagent domain and the multiagent problem respectively.cl-domain
andcl-problem
are the output paths for the classical domain and the classical problem respectively.
For example, we can use it with the Maze domain as follows:
./serialize.bin ../../domains/maze/domain/maze_dom_cn.pddl ../../domains/maze/problems/maze5_4_1.pddl > dom.pddl 2> ins.pddl
The compress.bin
binary can be used to compress the plans given by a classical planner. The compression algorithm is described in the paper, and consists in forming joint actions from the classical plan. It is used as follows:
./compress.bin <cl-plan> <ma-plan>
where cl-plan
is the plan given by the classical planner, while ma-plan
is the compressed/multiagent plan.
This compilation is described in [Furelos-Blanco and Jonsson, 2019]. Early descriptions can be found in [Furelos-Blanco, 2017] and [Furelos-Blanco and Jonsson, 2018]. This compiler takes as input domains and problems specified using [Kovacs, 2012] notation.
The folder containing the source code is examples/serialize
. After compiling the source code, a serialize.bin
binary is created and is used as follows:
./serialize.bin [-h] [-j N] [-o] <ma-domain> <ma-problem> > <cl-domain> 2> <cl-problem>
ma-domain
andma-problem
are the paths to the multiagent domain and the multiagent problem respectively.cl-domain
andcl-problem
are the output paths for the classical domain and the classical problem respectively.-h
shows information about how to use the program.-j N
forces the output plans to have joint actions composed by at mostN
atomic actions. For example, if you use-j 2
, then the plan generated by a classical planner will not have joint actions formed by 3 or more atomic actions. By default there is not a limit on the size of the actions.-o
forces agents to run actions in an specific order (a1
beforea2
,a2
beforea3
and so on).
-
Boutilier, C. and Brafman, R. I. (2001). Partial-Order Planning with Concurrent Interacting Actions. Journal of Artificial Intelligence Research (JAIR) 14, 105-136.
-
Kovacs, D. L. (2012). A Multi-Agent Extension of PDDL 3.1. In Proceedings of the 3rd Workshop on the International Planning Competition (IPC), 19–27.
-
Crosby, M., Jonsson, A., and Rovatsos, M. (2014). A Single-Agent Approach to Multiagent Planning. Proceedings of the 21st European Conference on Artificial Intelligence (ECAI-14), 237-242.
-
Furelos-Blanco, D. (2017). Resolution of Concurrent Planning Problems using Classical Planning. Master Thesis.
-
Furelos-Blanco, D., Jonsson, A. (2018). Solving Concurrent Multiagent Planning using Classical Planning. ICAPS Proceedings of the 6th Workshop on Distributed and Multi-Agent Planning (DMAP-2018), 8-16.
-
Furelos-Blanco, D., Jonsson, A. (2019). Solving Multiagent Planning Problems with Concurrent Conditional Effects. Proceedings of the 33rd AAAI Conference on Artificial Intelligence (AAAI-19), 7594-7601.