-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
12 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,21 +9,22 @@ subject to l <= A x <= u | |
where `x in R^n` is the decision variable. The symmetric positive semidefinite matrix `Q in S_+^n`, the vector `q in R^n`, and the matrix `A in R^{m x n}` are bounded. The vectors `l in R^m U {-inf}^m` and `u in R^m U {+inf}^m` are extended-real-valued and satisfy `l_i ⩽ u_i` for all `i in 1,...,m`. | ||
|
||
## Method and Citing | ||
QPDO implements a primal-dual Newton proximal method for convex quadratic programming. Details can be found in the [research paper](https://aldma.github.io/bib/2020_DeMarchi_QPDO.pdf), currently under review. The preprint is freely available [here](https://doi.org/10.13140/RG.2.2.33215.12964), and serves as a user manual for advanced users. If you use QPDO in your work, we kindly ask that you cite the following reference. | ||
QPDO implements a primal-dual Newton proximal method for convex quadratic programming. The proposed method can handle degenerate problems, provides a mechanism for infeasibility detection, and can exploit warm starting, while requiring only convexity. In particular, all linear systems are solvable by construction, independently from the problem data, and an exact linesearch can be performed. Details can be found in the [research paper](https://doi.org/10.1007/s10589-021-00342-y) mentioned below, which serves as a user manual for advanced users. If you use QPDO in your work, we kindly ask that you cite the following reference. | ||
``` | ||
@article{qpdo, | ||
author = {De~Marchi, Alberto}, | ||
title = {On a Primal-Dual Newton Proximal Method for Convex Quadratic Programs}, | ||
journal = {Preprint}, | ||
year = {2020}, | ||
month = {12}, | ||
doi = {10.13140/RG.2.2.33215.12964}, | ||
note = {Submitted}, | ||
@article{demarchi2022qpdo, | ||
author = {De~Marchi, Alberto}, | ||
title = {On a primal-dual {N}ewton proximal method for convex quadratic programs}, | ||
journal = {Computational Optimization and Applications}, | ||
year = {2022}, | ||
volume = {81}, | ||
number = {2}, | ||
pages = {369--395}, | ||
doi = {10.1007/s10589-021-00342-y}, | ||
} | ||
``` | ||
|
||
## Installation | ||
QPDO is implemented in C and provides a MATLAB interface via mex. | ||
QPDO is implemented in C and provides a MATLAB interface via mex, inspired by [OSQP](https://github.com/osqp/osqp) and [QPALM](https://github.com/Benny44/QPALM). | ||
|
||
Clone this repository with the submodule for SuiteSparse, running | ||
``` | ||
|
@@ -35,8 +36,5 @@ git submodule update --init --recursive | |
### Matlab | ||
* To install the mex interface of QPDO, add QPDO and its subfolders to the MATLAB path. Then go to [interfaces/mex/](./interfaces/mex/) and run `qpdo_make.m`. You can test and see how to call QPDO from MATLAB using `demo_mex.m` in the [examples/](./examples) folder. | ||
|
||
## Benchmarks | ||
We are currently benchmarking QPDO against [OSQP](https://github.com/oxfordcontrol/osqp) and [QPALM](https://github.com/Benny44/QPALM), looking forward to sharing the results. | ||
|
||
## Get in touch | ||
Although this software package is still in its infancy, don't hesitate to [share](mailto:[email protected]) your impression! Would you like to collaborate to build better software? Here we are! | ||
Don't hesitate to [share](mailto:[email protected]) your impression! Would you like to collaborate to build better software? Here we are! |