alpaqa develop
Nonconvex constrained optimization
Loading...
Searching...
No Matches
alpaqa

alpaqa is an efficient implementation of an Augmented Lagrangian method for general nonlinear programming problems. It makes use of 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 also 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{aligned} & \underset{x}{\text{minimize}} & & f(x) &&&& f : \Rn \rightarrow \R \\ & \text{subject to} & & \underline{x} \le x \le \overline{x} \\ &&& \underline{z} \le g(x) \le \overline{z} &&&& g : \Rn \rightarrow \R^m \end{aligned} \]

Documentation

Documentation (Sphinx)
C++ Documentation (Doxygen)
Matlab documentation

For the Python interface, it is recommended to consult the Sphinx documentation, whereas the Doxygen documentation provides the best overview of the C++ API (see especially the Topics page).

Examples

Python examples
C++ examples

To get started using the C++ API, see the C++/CustomCppProblem/main.cpp example, which explains how to formulate an optimization problem, how to configure the solver, and how to solve the problem.

Other examples are provided to demonstrate how to load external problems or problems that have been defined in different programming languages:

Installation

The project is available on PyPI:

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

For more information, please see the full installation instructions. To build alpaqa or any of its interfaces from source, see these instructions.

Citations

If you use this software in your research, please cite the following publication: [4]

‍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.