On the implementation and usage of SDPT3 - a MATLAB software package for semidefinite-quadratic-linear programming, version 4.0
Toh, Kim-Chuan; Todd, Michael J.; Tutuncu, Reha H.
This software is designed to solve primal and dual semide¯nite-quadratic-linear conic programming problems (known as SQLP problems) whose constraint cone is a product of semide¯nite cones, second-order cones, nonnegative orthants and Euclidean spaces, and whose objective function is the sum of linear functions and log-barrier terms associated with the constraint cones. This includes the special case of determinant maximization problems with linear matrix inequalities. It employs an infeasible primal-dual predictor-corrector path-following method, with either the HKM or the NT search direction. The basic code is written in Matlab, but key subroutines in C are incorporated via Mex ¯les. Routines are provided to read in problems in either SDPA or SeDuMi format. Sparsity and block diagonal structure are exploited. We also exploit low-rank structures in the constraint matrices associ- ated with the semide¯nite blocks if such structures are explicitly given. To help the users in using our software, we also include some examples to illustrate the coding of problem data for our solver. Various techniques to improve the eficiency and robustness of the main solver are incorporated. For example, step-lengths associated with semide¯nite cones are calculated via the Lanczos method. The current version also implements algorithms for solving a 3-parameter homogeneous self-dual model of the primal and dual SQLP problems. Routines are also provided to determine whether the primal and dual feasible regions of a given SQLP have empty interiors. Numerical experiments show that this general-purpose code can solve more than 80% of a total of about 430 test problems to an accuracy of at least 10¡6 in relative duality gap and infeasibilities.
semidefinite programming; second-order cone programming; implementation of optimization algorithm; computational testing