Pure Exploration with Feedback Graphs, AISTATS 2025.
Authors: Alessio Russo, Yichen Song, Aldo Pacchiano.
License: MIT
Please, refer to the main paper for more details.
To run the experiments, see instructions below.
- Language: Python 3.10.12
- Libraries: The following libraries are required:
pandas, numpy, tqdm, scipy, matplotlib, cvxpy, seaborn, latex, multipledispatch, jupyter
. For a complete list, check also therequirements.txt
file. We suggest to create avenv
environment, activate it and install the libraries using the commandpython -m pip install -r requirements.txt
- Optimizers: We suggest to use the GUROBI optimizer. The original figures were obtained using GUROBI 10. To change the optimizer, change the solver in
baifg\utils\characteristic_time.py
whenever the functioncp.solve(solver=cp.GUROBI)
is called. We suggest using CLARABEL (cp.CLARABEL
) as an alternative.
Make sure to have latex installed to properly plot the figures (e.g. MikTEX).
To evaluate the example of a symmetric feedback graph please refer to the notebook example_symmetric_graph.ipynb
.
To evaluate the loopy star graph (as in App. A.1) please refer to the notebook example_loopystar.ipynb
.
For the alternative loopy star example refer to the notebook example_loopystar_alt.ipynb
.
To evaluate the loopless clique graph (as in App. A.1) please refer to the notebook example_looplessclique.ipynb
.
To evaluate the ring graph (as in App. A.1) please refer to the notebook example_ring.ipynb
.
To run the main simulations, refer to the python file run_experiments.py
.
Adjust the variables:
NUM_PROCESSES
, which indicates how many processes to use to run the simulations.Nsims
, which defines how many seeds to use
All the data will be saved in the data
folder, within a folder with the current date
in the format %Y-%m-%d-%H-%M
. All the data will be saved in a lzma file named full_data.lzma
.
To plot the results, run the notebook plot_data.ipynb
. Set the path = "data/{FOLDER}/full_data.lzma"
variable at the beginning to point to the correct folder.