Contains the Docker files for connecting the Monte-Carlo Tree Search planner PROST with pyRDDLGym.
Note
PROST only works with finite state and action domains only. If you wish to do planning for continuous state and/or action spaces, check out the gradient-based JAX planner or the deep reinforcement learning wrappers.
First, you will need to download the necessary Docker files and run scripts packaged with this repository. You do not need to download or install PROST, as this is handled by the Dockerfile:
git clone https://github.com/pyrddlgym-project/pyRDDLGym-prost /path/to/dockerfiles
cd /path/to/dockerfiles/prostIn the above example, it is assumed that /path/to/dockerfiles is a valid path on the file system where the project files will be cloned into.
After executing the above commands, the folder should now contain:
- a
Dockerfilewith instructions for Docker to build the image prost.shfile that calls PROST from the command linerddlsim.pyfile that runsprost.shfrom Python, andrunprost.shfile that you can use to automate the build and run process (described below).
To build the Docker image, you will need to install Docker. Then, with Docker running, build the image as follows:
docker build -t prost .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 RDDLdomain.rddlandinstance.rddlfiles 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
After the container runs, you can then copy the files from the container to a directory <output dir> in your local filesystem for further analysis:
docker cp <container name>:/OUTPUTS/ <output dir>You do not need to run the two commands described in the previous section, since we have provided a script to automate the process:
bash runprost.sh <container name> <rddl dir> <rounds> <prost args> <output dir>where the arguments are as described above.
PROST was written by Thomas Keller. If you use it in your research, please cite:
@inproceedings{keller2012prost,
title={PROST: Probabilistic planning based on UCT},
author={Keller, Thomas and Eyerich, Patrick},
booktitle={Proceedings of the International Conference on Automated Planning and Scheduling},
volume={22},
pages={119--127},
year={2012}
}