Codes implementing the D-GLIS algorithm presented in the paper "D-GLISp: A Distributed Algorithm for Preference-Based Black-Box Optimization in Multi-Agent Systems", by Loris Cannelli, Mengjia Zhu,  Alberto Bemporad, Dario Piga, submitted for publication. 


-------------------------------------------------------------------------------------------------------------------
Instructions for benchmark problems reported in the paper (Python 3.8, and the Python libraries listed in the scripts to run are required):

1. In the same directory where all the files of this library are stored, the following directory should also be created: "Data/<problem_name>/".
One different subfolder must be created for each different benchmark problem that it is of interest to solve.

2. Run Python script 'main_benchmarks.py' to launch the D-GLISp algorithm. The name of the benchmark problem to be solved must be specified in 'main_benchmarks.py'. The problem can be
one of the existing ones or can be defined in the separate script 'utilities.py', according to the syntax which can be inferred from existing examples.

3. Run Python script 'plot_benchmarks.py' to print/plot results and additional information.


-------------------------------------------------------------------------------------------------------------------
Instructions for the distributed MPC problem reported in the paper (MATLAB R2022a, Python 3.8, and the Python libraries listed in the scripts to run are required):

1. In the same directory where all the files of this library are stored, the following directory should also be created: "Data/mpc/".

2. Specify local objectives for each agent in the MATLAB script 'benchmark_mpc_calibration.m'.

3. Run Python script 'main_MPC.py' to launch the D-GLISp algorithm for solving the distributed MPC calibration problem.


-------------------------------------------------------------------------------------------------------------------

This software is distributed without any warranty. Please cite the above paper if you use this software. 


(C) L. Cannelli, Lugano, September 23, 2025
