Search This Blog

Friday, October 05, 2012

SDPT3 version 4.0 -- a MATLAB software for semidefinite-quadratic-linear programming


SDPT3 version 4.0 -- a MATLAB software for semidefinite-quadratic-linear programming

Kim-Chuan Toh , Michael J. Todd, and Reha H. Tutuncu

The last major update on the software was in Feb 2009. It implemented an infeasible path-following algorithm (sqlp.m) for solving SQLP -- conic optimization problems involving semidefinite, second-order and linear cone constraints. Note: though this software is fairly well tested, but minor refinement or fix may still be needed from time to time.
New features that SDPT3 can now handle:
** free variables;
** determinant maximization problems;
** SDP with complex data;
** Matlab 7.3 on 64-bit machine;
** 3-parameter homogeneous self-dual model of SQLP (in HSDsqlp.m);
Citation:
  • K.C. Toh, M.J. Todd, and R.H. Tutuncu, SDPT3 --- a Matlab software package for semidefinite programming, Optimization Methods and Software, 11 (1999), pp. 545--581.
  • R.H Tutuncu, K.C. Toh, and M.J. Todd, Solving semidefinite-quadratic-linear programs using SDPT3, Mathematical Programming Ser. B, 95 (2003), pp. 189--217.

  • Copyright: This version of SDPT3 is distributed under the GNU General Public License 2.0. For commercial applications that may be incompatible with this license, please contact the authors to discuss alternatives.
  • SDPT3 is currently used as one of the main computational engines in optimization modeling languages such as CVX and YALMIP.
  • Download SDPT3-4.0.zip
    Please read. Welcome to SDPT3-4.0! The software is built for MATLAB version 7.4 or later releases, it may not work for earlier versions. The software requires a few Mex files for execution. The package comes with pre-compiled Mex files having the following extensions: *.mexa64 *.mexglx *.mexmaci *.mexmaci64 *.mexw32 *.mexw64. For Matlab running on other platforms, you can generate the Mex files as follows:
    • Firstly, unpack the software:
      unzip SDPT3-4.0.zip;
    • Run Matlab in the directory SDPT3-4.0
    • In Matlab command window, type:
      >> Installmex(1) (skip this step if you don't have to generate the Mex files)
    • After that, to see whether you have installed SDPT3 correctly, type:
      >> startup
      >> sqlpdemo
    • By now, SDPT3 is ready for you to use.
  • User's guide (pdf) (Draft)
  • The following example shows how SDPT3 call a data file that is stored in SDPA format:
    >> [blk,At,C,b] = read_sdpa('./sdplib/theta3.dat-s');
    >> [obj,X,y,Z] = sqlp(blk,At,C,b);
    The following example shows how SDPT3 call a data file that is stored in SeDuMi format:
    >> [blk,At,C,b] = read_sedumi(AA,bb,cc,K); or [blk,At,C,b] = read_sedumi('./dimacs/hamming_7_5_6.mat');
    >> [obj,X,y,Z] = sqlp(blk,At,C,b);
  • Simple examples to illustrate the usage of the software
  • Special thanks go to Hans Mittelmann for his effort in benchmarking several SDP software packages on the following test problems:
    benchmark on SDPLIB problem set;
    benchmark on DIMACS problem set;
    benchmark on some large sparse SDPs;
    benchmark on SDPs with free variables;
    benchmark on SOCP problems generated with the Matlab FIR toolbox.
Acknowledgements: We thank those who had made suggestions and reported bugs to make SDPT3 better. In particular, we thank Hans Mittelmann for bugs reported while benchmarking SDPT3. We also thank Johan Lofberg and Didier Henrion for bug reports while incorporating SDPT3 into YALMIP and GloptiPoly, respectively. Thanks also go to Michael Grant for bug reports while testing SDPT3 as an engine for CVX.

No comments:

Post a Comment

Thank you