Software
Our GitHub page is available at: https://github.com/unc-optimization
Sieve-SDP – A preprocessing Matlab toolbox for Semidefinite Programming
- Sieve-SDP is a MATAB code to preprocess SDPs based on a simple algorithm developed in “Y. Zhu, G. Pataki, and Q. Tran-Dinh: Sieve-SDP: a simple facial reduction algorithm to preprocess semidefinite programs, https://arxiv.org/abs/1710.08954“.
- Sieve-SDP can be downloaded from https://github.com/unc-optimization/SieveSDP.
PAPA – Proximal Alternating Penalty Algorithms
- PAPA-v1.0 is a MATLAB software package for solving constrained convex optimization problems of the form:
where
and
are two convex functions,
,
is a simple, nonempty, closed, and convex set in
.
Here, we assume thatand
are proximally tractable, i.e., the proximal operators
and
are efficient to compute (see below).
PAPA aims at solving constrained convex optimization problem for any convex functions
and
, where their proximal operator is provided.
PAPA is developed by Quoc Tran-Dinh at the Department of Statistics and Operations Research, University of North Carolina at Chapel Hill (UNC), North Carolina. - Download: PAPA-v1.0 can be downloaded HERE.
- References: The theory and algorithms implemented in PAPA can be found in:
- Q. Tran Dinh: Proximal Alternating Penalty Algorithms for Nonsmooth Constrained Convex Optimization, Manuscript, STOR-UNC, Nov., 2017. (preprint: https://arxiv.org/pdf/1711.01367.pdf).
LMAOPT – Low-Rank Matrix Approximation Optimization
- LMAOPT-v1.0 is a MATLAB code collection for solving three special cases of the following low-rank matrix optimization problem:
where
is a proper, closed and convex function from
,
is a linear operator from
to
, and
is a given observed vector. Here, we are more interested in the case
. Currently, we provide the code to solve three special cases of the above problem:
- Quadratic loss:
;
- Quadratic loss and symmetric case:
and
; and
- Nonsmooth objective loss with tractably proximal operators: For instance,
.
- Quadratic loss:
- LMAOPT is implemented by Quoc Tran-Dinh at the Department of Statistics and Operations Research (STAT&OR), The University of North Carolina at Chapel Hill (UNC). This is a joint work with Zheqi Zhang at STAT & OR, UNC.
- Download: LMAOPT-v1.0 can be downloaded HERE.
For further information, please read Readme3.txt. - References: The theory and algorithms implemented in LMAOPT can be found in the following manuscript: Q. Tran-Dinh, and Z. Zhang: Extended Gauss-Newton and Gauss-Newton ADMM algorithms for low-rank matrix optimization. STAT&OR Tech. Report UNC-REPORT-2016.a, (2016). Preprint: http://arxiv.org/abs/1606.03358
Useful Software Tools in Optimization
These opensource and academic free-of-charge software tools are very useful for research in optimization:
- ACADOToolkit – A Toolkit for Automatic Control and Dynamic Optimization (open-source), Boris Houska and Hans Joachim Ferreau (for C++ and Matlab).
- IPOPT – Sparse Nonlinear Optimization (open-source).
- CasADi – A minimalistic computer algebra system with automatic differentiation (open-source), Joel Andersson (for C++ and Python).
- qpOASES – Parametric Quadratic Programming for MPC (open-source), Hans Joachim Ferreau.
- TFOCS – Templates for first-order conic solvers, Stephen Becker.
- CVX – Disciplined Convex Programming, Michael Grant.
- Some of many other software tools that I have been using: SDPT3, SDPNAL+, SeDuMi, SDPA, Mosek, CPLEX, etc.