You need to download and build the Z3 theorem prover. Then in our repository cd into ./src/rl_agents/sjirp/cpp and build the constraint solver:
g++ -L/home/jan/repos/z3/build -I/home/jan/repos/z3/src/api -std=c++17 main.cpp -lz3Where /home/USER_NAME/REPOS/z3 is the directory where you cloned and built Z3. Our repository includes the header file in the right place, one only needs to be able to use -lz3.
We manually installed the OpenAI Baselines from GitHub, using commit ea25b9 (Jan 31st 2020).
We provide a full list of dependencies in ./environment.yml.
We provide two scripts in the ./scripts/ directory:
run_parallel.sh(runs 10 experiments in parallel)run_sequential.sh(runs 10 experiments one-by-one)
E.g. for 10 runs of S-JIRP on the Mining environment:
cd scripts
./run_parallel.sh mining sjirpThe first argument (mining in the above example) is one of:
mining(regular Mining)harvest(regular Harvest)mining_ns(non-stochastic version of Mining)harvest_ns(non-stochastic version of Harvest)
The second argument (sjirp in the above example) is one of:
sjirp(S-JIRP)baseline(the baseline algorithm)jirp(non-stochastic JIRP)
Results are saved in the results/EXPERIMENT_ALGORITHM/DATE directory (which will be created).
We provide a Python script for parsing and displaying experiment results. cd into ./src/ directory and run:
To reproduce figures like the ones from the paper, run:
python src/process_results.py show results/EXPERIMENT1 results/EXPERIMENT2 results/EXPERIMENT3Alternatively use save as the first argument to produce a tex file (saved as combined.tex). Order matters in the last three arguments because the legend is hardcoded to label the first as S-JIRP, second as the baseline algorithm, and third as JIRP.