QPALM
Platform | CI Status |
---|---|
Linux | |
OSX |
A proximal augmented Lagrangian method for (possibly nonconvex) QPs using semismooth Newton direction and exact line search.
To install the mex interface of QPALM, add QPALM and its subfolders to the matlab path. Then run qpalm_make.m. You can test whether QPALM is working using the examples/qpalm_mex_demo.m and examples/qpalm_mex_nonconvex_demo.m.
To install a C-callable library, check Bintray for the binaries. These were compiled against intel mkl and lapack from conda. So install miniconda and run the following commands
conda install -c conda-forge lapack conda install -c intel mkl export LD_LIBRARY_PATH=path-to-miniconda/lib/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=path-to-qpalm-binaries/lib/:$LD_LIBRARY_PATH
The python interface has been compiled for python version 3.7. If you want to use a different version, do your own install with the instructions on custom compilation below.
Follow the instructions for installing the C-library above. Then in an open terminal, do
export LD_LIBRARY_PATH=path-to-qpalm-binaries/interfaces/python/build/lib/:$LD_LIBRARY_PATH python3 path-to-qpalm-binaries/interfaces/python/qpalm_python_demo.py
See QPALM.jl for the instructions on installing the Julia interface.
If you wish to do a custom compilation of the shared libraries, take a look at buildCustom.sh. First install the dependencies
conda install -c conda-forge lapack conda install -c intel mkl
Then change the following lines near the top of the script
export MINICONDA_LIB=path-to-miniconda/lib export MINICONDA_INCLUDE=path-to-miniconda/include
Furthermore, change the cmake line to have whatever flags you want. To build the release version (with tests), use
cmake $curdir -DCMAKE_BUILD_TYPE=release -DCOVERAGE=ON
To build the python interface, use instead
cmake path-to-QPALM -DCMAKE_BUILD_TYPE=release -DINTERFACES=OFF -DUNITTESTS=OFF -DPYTHON=ON
Finally, run the buildCustom.sh script
chmod 755 buildCustom.sh ./buildCustom.sh
Basic demos are available for the different ways to call the solver:
For the mex interface of QPALM, check out examples/qpalm_mex_demo.m and examples/qpalm_mex_nonconvex_demo.m.
For the C-version of QPALM, check out examples/qpalm_demo.c.
For the python interface of QPALM, check out interfaces/python/qpalm_python_demo.py.
For the Julia interface of QPALM, check out any of the files in interfaces/QPALM.jl/test/.
You can now find the the documentation online.
The QPALM library is tested extensively. The tests currently have . To build the debug version and run the automated tests yourself, check out the custom compilation section above.
Ben Hermans - Main developer
Panagiotis Patrinos - Codeveloper
Andreas Themelis - Theoretical contributions
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.}, }
QPALM is licensed under GPL v3.0. Some modules are used in this software:
Suitesparse: authored by Tim Davis. Each of its modules is licensed separately, see suitesparse/LICENSE.txt. The main module used in QPALM is CHOLMOD.
Intel MKL: authored by the Intel Corporation and licensed under the Intel Simplified Software License.
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, originally authored by David Siñuela Pastor and licensed under MIT, see here.
还没有评论,说两句吧!
热门资源
seetafaceJNI
项目介绍 基于中科院seetaface2进行封装的JAVA...
spark-corenlp
This package wraps Stanford CoreNLP annotators ...
Keras-ResNeXt
Keras ResNeXt Implementation of ResNeXt models...
capsnet-with-caps...
CapsNet with capsule-wise convolution Project ...
shih-styletransfer
shih-styletransfer Code from Style Transfer ...
智能在线
400-630-6780
聆听.建议反馈
E-mail: support@tusaishared.com