tvopt: A Python Framework for Time-Varying Optimization
This is an incremental tool for researchers and practitioners in optimization to streamline algorithm development and testing.
The authors introduced tvopt, a Python framework for prototyping and benchmarking time-varying optimization algorithms, providing functionalities for centralized and distributed problems, built-in methods like gradient-based and ADMM, and prediction strategies, with code available on GitHub.
This paper introduces tvopt, a Python framework for prototyping and benchmarking time-varying (or online) optimization algorithms. The paper first describes the theoretical approach that informed the development of tvopt. Then it discusses the different components of the framework and their use for modeling and solving time-varying optimization problems. In particular, tvopt provides functionalities for defining both centralized and distributed online problems, and a collection of built-in algorithms to solve them, for example gradient-based methods, ADMM and other splitting methods. Moreover, the framework implements prediction strategies to improve the accuracy of the online solvers. The paper then proposes some numerical results on a benchmark problem and discusses their implementation using tvopt. The code for tvopt is available at https://github.com/nicola-bastianello/tvopt.