Proximal Augmented Lagrangian method for Quadratic Programs
Project description
Proximal Augmented Lagrangian method for Quadratic Programs
QPALM is a numerical optimization package that finds stationary points of (possibly nonconvex) quadratic programs, that is
minimize ½ xᵀQx + qᵀx
subject to l ≤ Ax ≤ u
Documentation
The documentation can be found at: https://kul-optec.github.io/QPALM/Doxygen
Examples are included as well: https://kul-optec.github.io/QPALM/Doxygen/examples.html
Installation
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
Matlab
To install the Matlab interface, download qpalm-matlab-linux.tar.gz
or
qpalm-matlab-windows.zip
from the
releases page, and
extract it into the ~/Documents/MATLAB
folder.
As a one-liner in the Matlab console:
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.0/qpalm-matlab-linux.zip', userpath)
unzip('https://github.com/kul-optec/QPALM/releases/download/1.1.0/qpalm-matlab-windows.zip', userpath)
C/C++/Fortran
Pre-built C, C++ and Fortran libraries for Linux are available from the releases page.
Building QPALM from source
For detailed instructions on how to build QPALM from source, please see https://kul-optec.github.io/QPALM/Doxygen/installation-md.html
Supported platforms
QPALM is written in C, with interfaces for C++, Python, Julia, Matlab and Fortran.
The code itself is portable across all popular platforms. Binaries are available
for Linux on x86-64 and AArch64* and for Windows on x86-64.
(*) Except Matlab.
Benchmarks
Check out the papers below for detailed benchmark tests comparing QPALM with state-of-the-art solvers.
- QPALM: A Newton-type Proximal Augmented Lagrangian Method for Quadratic Programs
- QPALM: A Proximal Augmented Lagrangian Method for Nonconvex Quadratic Programs
Citing
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.},
}
Previous versions
The original repository by Ben Hermans at https://github.com/Benny44/QPALM_vLADEL will no longer be maintained.
License
QPALM is licensed under LGPL v3.0. Some modules are used in this software:
- LADEL: authored by Ben Hermans and licensed under LGPL-v3.
- LOBPCG: the version of LOBPCG used here was written by Ben Hermans and licensed under the GNU Lesser General Public License v3.0, see LOBPCG/LICENSE.
- LAPACK: authored by The University of Tennessee and The University of Tennessee Research Foundation, The University of California Berkeley, and The University of Colorado Denver, and licensed under BSD-3, see here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for qpalm-1.1.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 502554266100d6c3418e64a3bf7c11bb15b6a96159f5214ac68464be17ad24fc |
|
MD5 | ff879e6192827f5d2bb687c0da2068ea |
|
BLAKE2b-256 | dad1ad833bdee8eaf5d9e3bc77ccb4c34b0f367512795c37ad49e633c13c4511 |
Hashes for qpalm-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da02704e52c638d346809f977b8cac74549e002706593b1d41a2b24eb77925df |
|
MD5 | c89c74ebb3af64805cfd69842b4d81f5 |
|
BLAKE2b-256 | 710872f77ec0e7582f50e8cbe84c4c24211553ba40de4f8b3670d39252b9e9f4 |
Hashes for qpalm-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d5a221aade192bdf3185a693b9cfaf96c87ce5e51c61ce6d1af9ce6c19af6c7 |
|
MD5 | fe39dd8504deae7173eb3007da75d656 |
|
BLAKE2b-256 | cda679bed1ba4b8f9711b39515d812bf143ceb9f8de00741cdfbe9f533e33663 |
Hashes for qpalm-1.1.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5679ae99c88e299e1e77f0d7cb8dc740059d41d25bf67b6f5b1d286486e248d5 |
|
MD5 | d55c5e16bf827da0af309084a9c8cb1a |
|
BLAKE2b-256 | 45ef9de66f72a5bdfb4b6f079d845c8cc2f6f2f32cace9566eae7f93a2842f7b |
Hashes for qpalm-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e86ec7875853d67061f04bc319f0a466c1581bff2af44c45baff99daf704043 |
|
MD5 | 3a54462104bae26164fb1941b4101c79 |
|
BLAKE2b-256 | a4026340df84cae822aef55ff79b32faeee39c7c12ef6e42721bbbc11b39a0f8 |
Hashes for qpalm-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68e0cbea65b8f82ee78c59007d12946c9a7ace104cfb547f3f7d7755d0d2b63f |
|
MD5 | 94eab21ed5bf267157137aa65f44d5b1 |
|
BLAKE2b-256 | e5336aac74697969e537ca4c93c70d3230ecc890413aeb9ff8328d65c169c1bd |
Hashes for qpalm-1.1.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00059e340b02e307ba2d55f78f3ed651dd56b4579154f816f9a630d27bfaa701 |
|
MD5 | fad16f020815c66473f994eea70d3b0a |
|
BLAKE2b-256 | cc7e6d93a5ded88374748347ced12e6e5442cc03ceec119f1e311bac8cdc3123 |
Hashes for qpalm-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 839808a30a1d4c1dfd372cab8e55236a9b85b90a139f57a89da640f2c1805fff |
|
MD5 | e6392740ca809ff38be0680952e57b4a |
|
BLAKE2b-256 | 23585605d09e1da6deac96abab91dd8a0baf3680fe340f4014de2166c8dee582 |
Hashes for qpalm-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 457f4bca1f78b04f5361fd3e000c34ed1422c4bf63c83d157896b084595c2919 |
|
MD5 | 7b23af4ffd5ad7ae4da3700e0963881c |
|
BLAKE2b-256 | 870bbbc1bd094defefb88d8d08116999140f09d852cae20eab1caa89f0ac0216 |