PEPit: computer-assisted worst-case analyses of first-order optimization methods in Python
This tool simplifies worst-case analysis for researchers and practitioners in optimization, though it is incremental as it builds on existing performance estimation problem frameworks.
The authors tackled the challenge of performing worst-case analyses for first-order optimization methods by developing PEPit, a Python package that automates this process by casting it as a semidefinite program, enabling users to write methods as they would implement them and obtain numerical worst-case bounds.
PEPit is a Python package aiming at simplifying the access to worst-case analyses of a large family of first-order optimization methods possibly involving gradient, projection, proximal, or linear optimization oracles, along with their approximate, or Bregman variants. In short, PEPit is a package enabling computer-assisted worst-case analyses of first-order optimization methods. The key underlying idea is to cast the problem of performing a worst-case analysis, often referred to as a performance estimation problem (PEP), as a semidefinite program (SDP) which can be solved numerically. To do that, the package users are only required to write first-order methods nearly as they would have implemented them. The package then takes care of the SDP modeling parts, and the worst-case analysis is performed numerically via a standard solver.