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.py
is used to load an instance of the problem.SLSFinite.py
defines a classSLSFinite
storing the optimization variables and parameters of the optimization problems. Methods ofSLSFinite
compute system level synthesis constraint.optimize_SLS.py
solve the optimization problem with reweighting nuclear norm heuristic.utils.py
contains the function to compute an approximate causal factorization.minimax.py
contains 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.