For more details about this project, please refer to chapter 4 of my Master's Thesis.
- Python 3.8 or superior
- Hydra configuration framework
Install the virtual environment:
python3 -m venv ./venv
Activate the virtual environment:
source ./venv/bin/activate
Install third-party dependencies:
python3 -m pip install -r python/requirements.txt
This project is composed of 2 Python modules (one for each step of the application) that should be run in sequence. The output of the application is stored in the /out folder in a hierarchical fashion.
- Compute the ground truth density map (which associates each subset to the probability of being sampled from the ground truth distribution) only once
- Run the specified samplers over the target probabilistic submodular models, saving the history of the samples obtained in CSV
python3 -u -m python.benchmark -m \
obj=demo_monotone,demo_monotone_skewed \
runtime=laptop \
algo=SSG,SGL-III-b,SGL-III-c,Soma-DR-I
- Plot the cumulative probability distance between each sampler's outcome and the ground truth distribution
python3 -u -m python.plotter
python3 -u -m python.benchmark -m obj=demo_monotone \
runtime=laptop \
algo=SSG,SGL-I,SGL-II,SGL-III,Soma-II,Soma-DR-I
python3 -u -m python.benchmark -m obj=budget_allocation \
runtime=laptop \
algo=SSG,SGL-I,SGL-II,SGL-III,Soma-II,Soma-DR-I
python3 -u -m python.benchmark -m obj=facility_location \
runtime=laptop \
algo=SSG,SGL-I,SGL-II,SGL-III,Soma-II,Soma-DR-I
python3 -u -m python.benchmark -m obj=demo_non_monotone \
runtime=laptop \
algo=SSG,SGL-I,SGL-II,SGL-II-b,Soma-II
The experiment results are stored in the out/
folder.
We plan on releasing this code under the MIT license, if and when accepted.