kul-optec / alpaqa

Library for nonconvex constrained optimization using the augmented Lagrangian method and the matrix-free PANOC algorithm.
GNU Lesser General Public License v3.0
64 stars 7 forks source link

CI Tests: C++ CI Tests: Python CI: Matlab Docs PyPI Downloads GitHub all releases GitHub License

alpaqa

alpaqa is an efficient implementation of an augmented Lagrangian method for general nonlinear programming problems, which uses the first-order, matrix-free PANOC algorithm as an inner solver.
The numerical algorithms themselves are implemented in C++ for optimal performance, and they are exposed as an easy-to-use Python package. An experimental MATLAB interface is available as well.

The solvers in this library solve minimization problems of the following form:

$$ \begin{equation} \begin{aligned} & \underset{x}{\textbf{minimize}} & & f(x) &&&& f : {\rm I\!R}^n \rightarrow {\rm I\!R} \ & \textbf{subject to} & & \underline{x} \le x \le \overline{x} \ &&& \underline{z} \le g(x) \le \overline{z} &&&& g : {\rm I\!R}^n \rightarrow {\rm I\!R}^m \end{aligned} \end{equation} $$

Documentation

Installation

The Python interface can be installed directly from PyPI:

python3 -m pip install --upgrade --pre alpaqa

For more information, please see the full installation instructions.

Publications

Pieter Pas, Mathijs Schuurmans, and Panagiotis Patrinos. Alpaqa: A matrix-free solver for nonlinear MPC and large-scale nonconvex optimization. In 2022 European Control Conference (ECC), pages 417–422, 2022.