Create a virtual environment and activate it.
On Linux (or use the Mac/Windows equivalent):
python3 -m venv .venv && source .venv/bin/activate
Then, install the required libraries:
pip install lark && pip install git+https://github.com/AI-Planning/pddl.git@2fba52e9a9bd9bf93031828bffcd326452f85d1c
Example PDKBDDL domains are located under bdi_extension.
Use the evaluate script to run the ancillary effect algorithm on a sample domain and problem number, e.g.:
python3 evaluate.py belief-desire 3 solve
You will see that pdkb-domain.pddl and pdkb-problem.pddl files are generated in bdi_extension/belief-desire.
RP-M*P compiles to classical planning, so you can use any classical planner to solve. We used lama-first with planutils.
Place your domain directory under bdi_extension. This directory should include your domain.pdkbddl, your numbered problem_{#}.pdkbddls, the base ancillary effect file found in the other directories ancillary_effects.pdkbddl, and whichever other ancillary effect files you would like. Modify the get_num_agents function in the file to represent how the number of agents is distributed across your problems. Run evaluate.py, using your domain name and the problem number as your first two arguments. Finally, use your preferred classical planner to solve.
Finally, the evaluate_domain.sh script runs all the problem files for the sample domain. You can use these to reproduce the results in the paper. Note that this uses lama-first from planutils.
./evaluate_domain.sh "belief-desire" (do for all domains)
If there are any issues, feel free to contact 18rldv@queensu.ca. :)
We recommend using RP-M*P, but if you are curious, this repository also houses the old code for solving Multi-agent Epistemic Planning (MEP) problems using Proper Doxastic Knowledge Bases (PDKB). There are a number of components that may be useful on their own, including working directing with PDKB's, augmenting the MEP formalism, or even just creating / dealing with KD45 kripke structures.
Eventually, more documentation will be added to the project, but feel free to contact me if you have any questions. For a demo and more information on the project, [click here].
docker build -t pdkbplanning:latest .
docker run -it pdkbplanningYou end up in a shell running in the Docker container, which has all the required tools installed. Then you can run the planner on an example PKDBDDL problem:
python3 -m pdkb.planner /MEP/pdkb-planning/examples/planning/grapevine/prob-paper1.pdkbddlpython3 -m pdkb.planner /MEP/pdkb-planning/examples/planning/grapevine/prob-paper1.pdkbddl
## Requirements ##
* [Graphviz](http://graphviz.org/)
* [NetworkX](http://networkx.github.io/)
* [Pygraphviz](http://networkx.lanl.gov/pygraphviz/index.html)