Code accompaning the paper Minimal L2-Consistent Data-Transmission.
Authors: Antoine Aspeel, Laurent Bako and Necmiye Ozay
The code reproduces the results in the section "Numerical Experiments" of the paper.
From the base directory of this repository, install dependencies with:
pip install -r requirements.txt
The code runs in two steps: first it does the computations and save the results; and then it makes the plots.
To compute the results, run
python3 main_simulations.py
This will save the results in simulation_results/variables.pkl.
Then, to make the plots, run
python3 main_plot.py
this will plot the results and save them in the folder simulation_results/.
The script main_simulations.py relies on the following additional scripts:
load_system.pyis used to load an instance of the problem.SLSFinite.pydefines a classSLSFinitestoring the optimization variables and parameters of the optimization problems. Methods ofSLSFinitecompute system level synthesis constraint.optimize_SLS.pysolve the optimization problem with reweighting nuclear norm heuristic.utils.pycontains the function to compute an approximate causal factorization.minimax.pycontains an implementation of the method proposed in Balaghi, M. H., Antunes, D. J., & Heemels, W. M. (2019, December). An L 2-Consistent Data Transmission Sequence for Linear Systems. In 2019 IEEE 58th Conference on Decision and Control (CDC) (pp. 2622-2627). IEEE.
The script main_plot.py relies on plots.py which contains functions used for the plots.