QPALM main
Proximal Augmented Lagrangian method for Quadratic Programs
Loading...
Searching...
No Matches
QPALM: Proximal Augmented Lagrangian Solver for (Nonconvex) Quadratic Programs

Introduction

This is a C implementation of QPALM, a proximal augmented Lagrangian based solver for (possibly nonconvex) quadratic programs. QPALM solves problems of the form:

\begin{align*} & \operatorname*{\mathrm{minimize}}_x & & \tfrac{1}{2}x^\top Q x + q^\top x \\ & \text{subject to} & & b_\mathrm{min} \leq Ax \leq b_\mathrm{max} \end{align*}

Installation instructions

Python

The QPALM Python interface is available from PyPI, you can install it using:

python3 -m pip install qpalm

Julia

In the Julia console, press ] to enter the Pkg REPL and install QPALM using:

add QPALM

C/C++/Fortran

Pre-built C, C++ and Fortran libraries are available from the releases page.

Matlab

Pre-built Matlab binaries are available from the releases page. Download the version for your system and extract it into the ~/Documents/MATLAB folder.

As a one-liner in the Matlab console:

unzip(['https://github.com/kul-optec/QPALM/releases/latest/download/qpalm-matlab-' computer('arch') '.zip'], userpath)

Matlab versions R2021a and later are supported (R2023b and later on ARM64).

Building QPALM from source

For the full instructions to build QPALM from source, please see the Installation instructions.

Code examples

Citing QPALM

If you use QPALM in your research, please cite the following paper

@inproceedings{hermans2019qpalm,
author = {Hermans, B. and Themelis, A. and Patrinos, P.},
booktitle = {58th IEEE Conference on Decision and Control},
title = {{QPALM}: {A} {N}ewton-type {P}roximal {A}ugmented {L}agrangian {M}ethod for {Q}uadratic {P}rograms},
year = {2019},
volume = {},
number = {},
pages = {},
doi = {},
issn = {},
month = {Dec.},
}

License

  • LGPL-3.0