alpaqa
1.0.0a16
Nonconvex constrained optimization
|
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 (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).
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:
alpaqa-driver
command-line tool)The project is available on PyPI:
For more information, please see the full installation instructions. To build alpaqa
or any of its interfaces from source, see these instructions.
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.