forked from prost-planner/prost
-
Notifications
You must be signed in to change notification settings - Fork 0
martcram/prost
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Guide to set up and run the PROST planner. If you have any questions that are not answered by this file or under https://bitbucket.org/tkeller/prost/wiki/Installation, please do not hesitate to contact tho.keller [at] unibas.ch. ===[ Prerequisites ]=== Libraries: BuDDy (http://sourceforge.net/projects/buddy/) On Linux, you can install BuDDy and all other dependencies with the command sudo apt install mercurial g++ cmake bison flex libbdd-dev If you cannot install BuDDy this way, it is likely you have to adapt the file src/cmake_modules/FindBDD.cmake to make sure that the BuDDy library can be found. ===[ Installing the PROST planner ]=== Prost consists of two parts: a parser component that can be found in the directory src/rddl_parser, and a search component that can be found in src/search. The parser version in src/rddl_prefix_parser is deprecated and can be ignored in most cases. Both the parser and the search component are compiled with the build.py script in the root directory of the repository. Running ./build.py will compile the release version, and ./build.py --debug will compile the debug version. ===[ Installing the rddlsim server ]=== The PROST solver requires the rddlsim server to run. We refer to the github repository of rddlsim for the latest installation information. Without any guarantee for success, you can try the following installation instructions: A java runtime environment is required to run rddlsim, which can (for instance) be installed with sudo apt install default-jre Now you have to obtain rddlsim by cloning the repository with git clone https://github.com/ssanner/rddlsim /path/to/rddlsim, where /path/to/rddlsim refers to a directory on your machine where you install rddlsim (you can replace this with any directory on your machine). After the repository is cloned, run ./compile once in /path/to/rddlsim. The Prost repo contains the script testbed/run-server that can be used to start rddlsim. To work properly, it requires that you set an environment variable RDDLSIM_ROOT that points to /path/to/rddlsim, e.g. by adding export RDDLSIM_ROOT=/path/to/rddlsim to the file ~/.bashrc. ===[ Running PROST and rddlsim ]=== Running ./run-server benchmarks/elevators-2011/ will then start rddlsim with all instances of the elevators domain of IPC 2011 (all other RDDL domains that were used in an IPC can also be found in the testbed/benchmarks folder). If your IPPC server is running, you can start PROST with the prost.py script that can be found in the root directory of the repository. For instance, to start planning for the first elevators instance of IPC 2011 with the PROST version from IPC 2014, run ./prost.py elevators_inst_mdp__1 "[Prost -s 1 -se [IPPC2014]]" Note that there are many PROST configuration implemented. Run the prost.py script without any parameters for an overview of all available solvers and their options. ===[ Create your own search engine ]=== The simplest way to implement your own search engine is to derive a class from SearchEngine and implement the pure virtual method estimateQValues as a function that assigns a Q-Value estimate to each action. After you have added your search engine to the SearchEngine::fromString method with a unique string, PROST will use your search engine if called with that string and execute the action with the highest Q-Value estimate in each step. Have a look at thts.h if you are interested in creating a search engine that can be modelled within the THTS framework (see the ICAPS 2013 paper by Keller and Helmert for more information on THTS). ===[ Compare your search engine ]=== There are some scripts to compare your algorithm to other methods implemented in PROST. You can use the analyze_results.py script (from the scripts folder) to compare to 1.) those algorithms that are in the highscore folder (which also contains the minimum policy of IPPC 2011) and 2.) all algorithms that are in your <resultdir> by running: analyze_results.py <resultdir> <texfile> which creates a texfile that contains both an instance-by-instance comparison and a table with IPPC scores. We are currently also working on incorporating Lab (https://bitbucket.org/jendrikseipp/lab) into the Prost planner, which provides much more powerful scripts to analyze results.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C++ 90.7%
- Python 8.0%
- Other 1.3%