This package was first made in the winter of 2015 in the state of Tempe at Arizona State University when I was working on a paper for AAMAS, 2016. I have later added opensource implementation of the files using Google's ORTools (these files are also unit-tested).
If you plan to use the ORTools too (insted of gurobi), here is the venv setup
# From the repository root, create the virtual environment
python3 -m venv .venv
# Activate the virtual environment
source .venv/bin/activate
# Install OR-Tools
pip install ortools
# To deactivate when done
deactivateStrategy generation code for web-applications [paper]:
cd ./src/DOBSS
python BSG_miqp.py mtd_webapps_inputRunning unit-tests (supported for the *_ortools.py version as it doesn't need a gurobi license.)
# From the repository root, activate the virtual environment
source .venv/bin/activate
# Run all DOBSS tests
python3 -m unittest discover src/DOBSS/tests/ -v
# Run a specific test file
python3 src/DOBSS/tests/test_bsg_miqp_ortools.py
python3 src/DOBSS/tests/test_whatToFix_ortools.py
Strategy generation code for web-applications that handles switching costs [paper]
cd ./src/switch_cost_DOBSS
python cost_BSG_miqp.py cost_BSSG_input.txtRunning unit-tests
# From the repository root, activate the virtual environment
source .venv/bin/activate
# Run all DOBSS tests
python3 -m unittest discover src/switch_cost_DOBSS/tests/ -v
# Run a specific test file
python3 src/switch_cost_DOBSS/tests/test_cost_bsg_miqp_ortools.pyStrategy generation code for IDS placement [paper]
cd ./src/ResourcesHomogeneousScheduleSingleton
python BSG_multi_lp.py BSSG_input.txtThe above code provides you with the marginal probabilities. Use the following code to get the mixed strategy distribution (Uses code by Aubrey Clark).
python strategy_generator.pyStrategy generation code for deep neural networks [paper], use the following command:
cd ./src/DOBSS
python BSG_miqp.py mtd_neuralnets_input