This readme includes the instructions to run the experiments for the paper "Fair Best Arm Identification".
You can find the full paper here
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.ipynbmake_table_scheduling.ipynb