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 that and 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, .
- 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.