pyRDDLGym-prost: PROST Planner
The PROST planner is based on Monte-Carlo UCT search, but is heavily informed by the RDDL problem structure in order to improve the search. It is described in this paper, and it works well for stochastic problems with finite action spaces.
Installation
This package is not designed to be installed like an ordinary Python package, so there is no pip installer. Instead, you will need to download the necessary Docker files and run scripts packaged with this repository.
Here, it is assumed that /path/to/dockerfiles
is a valid path on the file system
where the project files will be cloned into.
When you run this command, you will find:
a
Dockerfile
that instructs Docker how to build the image with all the dependenciesprost.sh
file that calls PROST from the command linerddlsim.py
file that runsprost.sh
from Pythonrunprost.sh
file that you can use to automate the build and run process (as described below).
Building the Image
To build the Docker image, you will need to install Docker. Then, with Docker daemon running, build the image as follows:
docker build -t prost .
Running the Container
To run a container from the built image:
docker run --name <container name> --mount type=bind,source=<rddl dir>,target=/RDDL prost <rounds> "<prost args>"
where:
<container name>
is the name of the container you want to use<rddl dir>
is the path of the directory containing the RDDL domain.rddl and instance.rddl files you wish to run<rounds>
is the number of runs/episodes/trials of optimization<prost args>
are the arguments to pass to PROST, whose syntax is described here.
For example, to run the IPC 2014 version of PROST with default parameters, set <prost args>
to [PROST -se [IPC2014]]
.
Additional notes about PROST command line arguments from Thomas Keller can be found
here.
After the container runs, you can then copy the files from the container to a
directory <output dir>
in your local file system for further analysis:
docker cp <container name>:/OUTPUTS/ <output dir>
Using the Convenience Script
You do not need to run the commands described above, as we provide a script runprost.sh
to automate the process:
bash runprost.sh <container name> <rddl dir> <rounds> <prost args> <output dir>
where the arguments are as described above.
Reporting PROST Bugs
Any PROST-specific issues should be directed to Thomas Keller by filing a bug report here.