next up previous
Next: The main routine Up: SDPT3 - a Previous: The homogeneous predictor-corrector algorithm

Initial iterates

Our algorithms can start with an infeasible starting point. However, the performance of these algorithms is quite sensitive to the choice of the initial iterate. As observed in [5], it is desirable to choose an initial iterate that at least has the same order of magnitude as an optimal solution of the SDP. Suppose the matrices tex2html_wrap_inline2161 and C are block-diagonal of the same structure, each consisting of L blocks of square matrices of dimensions tex2html_wrap_inline2757 . Let tex2html_wrap_inline2759 and tex2html_wrap_inline2761 denote the ith block of tex2html_wrap_inline2161 and C, respectively. If a feasible starting point is not known, we recommend that the following initial iterate be used:

  eqnarray661

where tex2html_wrap_inline2769 , tex2html_wrap_inline2771 is the identity matrix of order tex2html_wrap_inline2773 , and

eqnarray669

By multiplying the identity matrix tex2html_wrap_inline2771 by the factors tex2html_wrap_inline2777 and tex2html_wrap_inline2779 for each i, the initial iterate has a better chance of having the same order of magnitude as an optimal solution of the SDP.

The initial iterate above is set by calling infeaspt.m, with initial line

 function  [X0,y0,Z0] = infeaspt(blk,A,C,b,options),

where options = 1 (default) corresponds to the initial iterate just described; and options = 2 corresponds to the choice where X0, Z0 are identity matrices and y0 is a zero vector.