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://tttapa.github.io/QPALM-minimal/Doxygen
Examples are included as well: https://tttapa.github.io/QPALM-minimal/Doxygen/examples.html
Installation
To install the Python interface to QPALM, you can download pre-built binaries from PyPI:
python3 -m pip install qpalm
To install the Matlab interface, download qpalm-matlab.tar.gz
from the
releases page, and
extract it into the ~/Documents/MATLAB
folder. As a one-liner:
wget https://github.com/tttapa/QPALM-minimal/releases/download/0.0.0a1/qpalm-matlab.tar.gz -O- | tar xz -C ~/Documents/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.},
}
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.
- Minunit: a minimal unit testing framework for C, modified from the version by David Siñuela Pastor and licensed under MIT, 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.0a1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ed808746a9695c323f9a2dad62e41a0958b45187613bcf01d49339802c64ef1 |
|
MD5 | 66618c2d133102dccb5ceed297108001 |
|
BLAKE2b-256 | 5245d03af8146d665d4a531aea3d87d818ab59877af08b2f11e8a0118863b8ac |
Hashes for qpalm-0.0.0a1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d62b09b78fd3a177b64e0e9fcb8c51e656dcf31b2f2ed8f419031af9e2e0fe7 |
|
MD5 | e8051f997fe3d4ab22fcab582f4a9e48 |
|
BLAKE2b-256 | fe9a4fc3e9b5875c907ded111eb1f10b881a6763b35c2d4f622939c50d9fa704 |
Hashes for qpalm-0.0.0a1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a824cbae181e02f68d330904ecfebd9aae2c4c5e949907c325ec0a6ef021a222 |
|
MD5 | 8b37abc11e53a6fa329dea7e608e6fc1 |
|
BLAKE2b-256 | b5623df0ca3e7a55744cf5859dcadb98388481363e0f37f159420472f994acf9 |
Hashes for qpalm-0.0.0a1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20629cbe0e181d125f0b8536b8e9cc9c5841892868e9060ff369e8dbd6bdd904 |
|
MD5 | 53426cd117c32189f8cc582105cd5eff |
|
BLAKE2b-256 | 0f7ec060f75cde459d12cf18e51cd71b40591504bf0fd11fe8ccf3bfc6080a3a |
Hashes for qpalm-0.0.0a1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2660be74642c17e7806eb5e017414abb7ec0dadead42c0227edb35d1b273c55 |
|
MD5 | 55afc6ce4e3933ca9e1c7e3979b6955b |
|
BLAKE2b-256 | 6f160ff793387bdfe3c568178242be5b2f504f48cf96c2d10b02aff4641d61ca |
Hashes for qpalm-0.0.0a1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 087e9177169e8fb2ed6cd9109256de9340f6522365c447909fec5c21837cc611 |
|
MD5 | fbd78ceb3a82a33263f3db3841643989 |
|
BLAKE2b-256 | 00a2fb643da6849ad6058a8156f5207692014f2a665521771e3838ba03e38ebc |
Hashes for qpalm-0.0.0a1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8557ac975e4666822a5d244070a5b881fbdeeb6ff6cbdc46484fc4bd9faabb10 |
|
MD5 | 1d4baeeae82811dd2fe7cfdf2a15bae8 |
|
BLAKE2b-256 | a832f2d5da1ad92bb8dce9ff8c496ead64801872b9e012da9ab0aeb24b3d4d20 |
Hashes for qpalm-0.0.0a1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_27_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd3c1ef9575e29818028ce354013dfd9eaae20ccdba8fb5c2be34f4312df3440 |
|
MD5 | 5772d84a993ce9b672910bfb464eea24 |
|
BLAKE2b-256 | abfb7703c8a5b1a37ed6ff0dd40d3ded3f9fcff8c142a061ba22211abac5a22f |
Hashes for qpalm-0.0.0a1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_27_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 219567fa026d6427b740a5b5a3bf08eaac9ac101fd92a58f311082966afe521e |
|
MD5 | b37f4a663a6bba6bbf93c099a811a8d6 |
|
BLAKE2b-256 | e5a8d258f0e5bcad17299211fb0e936512ef59bf3837fd63c050ed0ff36c5c9e |