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.txtfile. We suggest to create avenvenvironment, 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.pywhenever 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.