Also known as the new version of the "RobotBrunch" codebase from HEATlab.
This code is closely tied to the paper:
Abrahams et al. 2019. DREAM: An Algorithm for Mitigating the Overhead of Robust Rescheduling. In Proc. of the 29th International Conference on Automated Planning and Scheduling (ICAPS-2019). A pre-print is available here.
DREAM now requires the COIN-OR CBC program, located at /usr/bin/cbc
. It can be installed on Debian systems via
sudo apt install coinor-cbc
Requirements (python packages) to run are listed in requirements.txt.
These can be installed via your standard python3 pip method of pip install -r requirements.txt
.
Newer versions may be used, but these versions have been selected to work on HMC's shared server, Knuth.
Usage
usage: run_simulator.py [-h] [-v] [-t THREADS] [-s SAMPLES] [-e EXECUTION]
[-o OUTPUT] [--ar-threshold AR_THRESHOLD]
[--si-threshold SI_THRESHOLD] [--mit-parse]
[--seed SEED] [--ordering-pairs ORDERING_PAIRS]
[--start-point START_POINT] [--stop-point STOP_POINT]
[--no-live]
stns [stns ...]
You may always use the --help
option to get a full print out of every option.
How to use DREAM on an PSTN:
$ python3 run_simulator.py -e arsi -s 100 test_data/two_agent_sync.json
The -e
option sets the execution strategy, and the -s
sets the number of samples to simulate.
To generate Sphinx autodoc documentation:
- Go to docs
- Run
make html
. - Open the index now generated at
docs/build/html/index.html
using your favourite web browser.
Docstrings follow Google Docstring Style, and we use the Sphinx Napolean add-on to convert between Google style to RST for Sphinx.
All problem instances used to evaluate DREAM are available in the problem_instances directory. They are parameterized into subdirectories by problem features, as described in Lund et al 2017
The ROVERS benchmark is available at http://groups.csail.mit.edu/mers/datasets/scheduling/. rovers_coordination.json contains the instances used to evaluate DREAM in the 2019 ICAPS paper.
Check out the IDEAS.md file to see what we (as a lab) have tried.
This project supports the unit test module. To run the tests in this project, use the following shell command.
$ cd <project_dir>
$ python3 -m unittest # Auto searches for unit tests in <project_dir>/tests
PuLP may give a warning. You can implement Jordan's fix here in PuLP itself to remove it.
This code is copyright of Harvey Mudd College's HEATlab.
Rewrite Started by: Jordan R. Abrahams (HMC '19)
Original Written by:
- Jeb Brooks
- Emilia Reed
- Alexander Gruver
- Sam Dietrich
- Kyle Lund
- Scott Chow
- Jordan R. Abrahams
- Brenner Ryan
- David A. Chu
- Grace Diehl
- Marina Knittel
- Judy Lin
- Liam Lloyd
- James C. Boerkoel Jr.
Please contact Jordan R. Abrahams if you have any questions about the internals of the code, documentation, or any of the results gathered.