Skip to content

rssalessio/Pure-Exploration-with-Feedback-Graphs

Repository files navigation

Pure-Exploration-with-Feedback-Graph

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.

Libraries and optimizers

  • 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 the requirements.txt file. We suggest to create a venv environment, activate it and install the libraries using the command python -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 function cp.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).

Example of symmetric feedback graph

To evaluate the example of a symmetric feedback graph please refer to the notebook example_symmetric_graph.ipynb.

Example of the loopy star graphs

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.

Example of the loopless clique graph

To evaluate the loopless clique graph (as in App. A.1) please refer to the notebook example_looplessclique.ipynb.

Example of the ring graph

To evaluate the ring graph (as in App. A.1) please refer to the notebook example_ring.ipynb.

To run the simulations and plot the main numerical results

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.

About

Pure Exploration with Feedback Graphs, AISTATS2025

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors