This readme includes the instructions to run the experiments for the paper "Fair Best Arm Identification".
For the full paper (including proofs and additional results), refer to the file in paper/full_paper.pdf
To run the code make sure to use Python 3.11. The libraries needed are:
Numpy, Cvxpy, Matplotlib, mobile-env, Scipy, tqdm, seaborn, tikzplotlib
.
Additional libraries may be needed (including latex to correctly plot the results)
To run the experiment, simply run the script run_experiment.sh
using bash run_experiment.sh
in Linux. This script will automatically run the scripts that generate all the data
of the experiments. Double check that the data
folder includes the data from the synthetic
and the scheduler
environments. Lastly, the notebook generate_models_env.ipynb
shows how the
environment for the scheduler is constructed.
To plot the results in the synthetic model, run the notebook analyse_result_prespecified.ipynb
for the pre-specified case, and the notebook analyse_result_thetadep.ipynb
in the
To plot the results for the scheduler, run the notebook analyse_result_scheduling.ipynb
.
To plot the results for the price of fairness, run the notebook scaling_study_bai.ipynb
.
All images are saved in the images
folder.
Once you have generated all the data, to make the tables that are in the paper simply run the following two jupyter notebooks:
make_table_synthetic.ipynb
make_table_scheduling.ipynb