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 for Linux:
wget https://github.com/kul-optec/QPALM/releases/download/0.0.0a3/qpalm-matlab-linux.tar.gz -O- | tar xz -C ~/Documents/MATLAB
Building QPALM from source
For the full instructions 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 and Matlab.
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-0.0.0a3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c66f745af94e4045f12d6f230f6a560e350b9bdccdf780248de1ded49af39fa4 |
|
MD5 | 953880b245cc5c40799cbee9be1ed843 |
|
BLAKE2b-256 | cccfcc395736086d14ead2796a7662123887e0b38fe080d2e545b2836ae6998e |
Hashes for qpalm-0.0.0a3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63d8de7ef7f55fcaf344507a5781c1d37fa79e066c3b8d9f9b0dbdd12741dfb8 |
|
MD5 | 2d57d354d250cf52a1dd3cca0b78fa14 |
|
BLAKE2b-256 | c0ba2867704e9017cf2c2246524e2a1022abc70096a9b12846cf2077cddc800e |
Hashes for qpalm-0.0.0a3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a706c28399cefdf5eafb16ab96e4a9f464d824108646e20ff7d43dc59f9c2058 |
|
MD5 | 4c6631fe1f7eafd70981d474448793b0 |
|
BLAKE2b-256 | ba411b81319966c709a50e688a450d1f4c99ed05fd9cbb58aa0d3549b596f02a |
Hashes for qpalm-0.0.0a3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f2b95d62ab594a3a66cbf881484dbd0cb08bcb90f598f9f43967bea906d9ccc |
|
MD5 | 9dd1dff6580708970a6bcdd4e45b2b68 |
|
BLAKE2b-256 | 716879b2c6dabf1b1b20593ba1600edda398a9445284375e79d2292910ff01b4 |
Hashes for qpalm-0.0.0a3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1c201f841170d1ad30418a17f742fa3db68c0b9d0b03e17796f27830914fc51 |
|
MD5 | c52966833ddf9e1cc1c773dcbf76a15e |
|
BLAKE2b-256 | fd1ecfc4ef2751496c2d12568a43fa543a423740b24a1992ec64f9e5521b5320 |
Hashes for qpalm-0.0.0a3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d36b780af8baaa29f49842200a08c3b581e6ea910d032dd19a6d116af17af0b9 |
|
MD5 | 61ef45ebb39c43a93ae2f1dd9b547b10 |
|
BLAKE2b-256 | 850175aeb88131dd93f8b75db89c0a8cfe268f715953d67a558cc29f89b44a3b |
Hashes for qpalm-0.0.0a3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3764b5ad961abdd905ae9892b687ea6cd2831d9ffa8e86912fde1d5d47204cc9 |
|
MD5 | cac355ed5df5eca69ff32c525d0d1a37 |
|
BLAKE2b-256 | 0d1a413505cb378b02247b181d50a46518b77d141fd59b7ebbeb63122697d5e1 |
Hashes for qpalm-0.0.0a3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ed150516eb5589d5fe16136c3feec07ed0188f8359170e7e66be844ed6dc3f5 |
|
MD5 | 9eec336991f936d2731be48deb01c82f |
|
BLAKE2b-256 | 175aaa1543d31a128c02da4d2c9d49a750adee6e915ccd730f95b54561ffc115 |
Hashes for qpalm-0.0.0a3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7140849b6e07da80ae7c036ccad8340d7c19854344defb7253f3fda29d5f6680 |
|
MD5 | 8a3d2248086f24209af86aa72c06ff51 |
|
BLAKE2b-256 | 256161c0d533b15b8bd79023b25edf64ee0fdcc83eaa7c73a102cca58242aea6 |