This repository contains the code from our paper
Jakob, Fabian, and Andrea Iannelli. "A Linear Parameter-Varying Framework for the Analysis of Time-Varying Optimization Algorithms." arXiv preprint. arXiv:2501.07461 (2025).
The repo has been developed and tested with Python 3.11 and the dependencies given in requirements.txt
pip install -r requirements.txtYou may also use open source SDP solvers such as CVXOPT. However, the numeric results are most robust using Mosek, which can be used with an academic license:
pip install MosekDemonstrates the use of the repo; reproduces the plots in the paper.
tracking_certificates.ipynb: Algorithm certificates across problem parameters
tracking_bounds.ipynb: Certified tracking error bounds for a given objective and algorithm
src/
├── tracking_certificates.ipynb
├── tracking_bounds.ipynb
├── lib/
│ ├── algorithms/
│ │ ├── unconstrained.py
│ │ └── constrained.py
│ ├── analysis/
│ │ ├── lure.py
│ │ ├── lyapunov.py
│ │ ├── polytope.py
│ │ ├── solver.py
│ │ └── run_solver.py
│ ├── simulation/
│ │ ├── algorithm.py
│ │ ├── objectives.py
│ │ └── simulate.py
│ └── utils/
│ └── plot.py
└── tests/
pytest src/tests/Tests cover algorithms, objectives, IQC builders, Lyapunov matrices, polytope
utilities, and simulation outputs (89 tests). Tests that invoke the MOSEK/CVXPY
solver are marked slow and skipped by default; run them with pytest -m slow.
Fabian Jakob — fabian.jakob@ist.uni-stuttgart.de