next up previous contents
Next: Primal and dual nondegeneracy Up: Complementarity and Nondegeneracy Previous: Complementarity and Nondegeneracy

Strict complementarity

  In order to define the strict complementarity condition for given tex2html_wrap_inline4735 and tex2html_wrap_inline4737 satisfying the cone inequalities, we must consider the three components separately:
The semidefinite part
The matrices tex2html_wrap_inline4739 satisfy the complementarity condition if tex2html_wrap_inline4741 , i.e., the matrix product tex2html_wrap_inline4743 , and the strict complementarity condition if, in addition, tex2html_wrap_inline4745 is strictly positive definite. Alternatively, let tex2html_wrap_inline4747 denote the eigenvalues of tex2html_wrap_inline4039 and tex2html_wrap_inline4751 denote the eigenvalues of tex2html_wrap_inline4395 . Then tex2html_wrap_inline4739 satisfy the complementarity condition if, for all i, the product tex2html_wrap_inline4759 is zero, and the strict complementarity condition if, for all i, exactly one of the pair tex2html_wrap_inline4763 and tex2html_wrap_inline4765 is zero.

The quadratic part
Using the notation (1)-(2), again writing tex2html_wrap_inline4085 for brevity, and likewise tex2html_wrap_inline4769 : x,z satisfy the complementarity condition if tex2html_wrap_inline4773 , and the strict complementarity condition if, in addition, for each block i, exactly one of the pair

  equation2878

is zero, and exactly one of the pair

  equation2884

is zero. Consequently, for each block, either the vectors tex2html_wrap_inline4777 and tex2html_wrap_inline4779 are both nonzero boundary points, or one is zero and the other is in the interior of the quadratic cone.

The linear part
tex2html_wrap_inline4781 satisfy the complementarity condition if tex2html_wrap_inline4783 is zero, and the strict complementarity condition if, for each i, exactly one of the pair tex2html_wrap_inline4787 and tex2html_wrap_inline4789 is zero.

Generally, fsql.m returns computed solutions approximately satisfying strict complementarity when these exist. The routine which verifies strict complementarity is
scomp.m
Verify strict complementarity at a computed solution. The calling sequence is

displaymath4733

where tex2html_wrap_inline4293 , tex2html_wrap_inline4295 and tex2html_wrap_inline4187 are structures as before, and tol is a tolerance This routine first checks the global complementarity condition tex2html_wrap_inline4797 . If violated, it quits immediately with tex2html_wrap_inline4799 . Otherwise, it checks strict complementarity block by block, using the square root of tol to determine whether the relevant quantities are sufficiently close to zero. The output vectors v.s and v.q and scalar v.l indicate the result for each block, with a value of 1 if strict complementarity holds in that block, and 0 if it is violated. The summary flag strictc is then set to the minimum value of v.s, v.q and v.l.

The SDPpack routines are generally able to solve problems for which strict complementarity fails to hold, but the convergence rate is markedly slower, and generally less accuracy is achieved. Note the use of the square root of the tolerance in scomp.m, since if strict complementarity is violated, usually quantities which are mathematically zero are not reduced to very small values. The reason for the square root is as follows. Suppose that an SDP where strict complementarity fails to hold is approximately solved, obtaining computed solutions tex2html_wrap_inline4039 and tex2html_wrap_inline4395 with tex2html_wrap_inline4805 . This implies that the pairwise computed eigenvalue products satisfy tex2html_wrap_inline4807 . For an index i for which strict complementarity holds, one computed eigenvalue of the pair is typically small (about the same order of magnitude as tex2html_wrap_inline4811 ) and the other is not. For an index for which strict complementarity fails, both computed eigenvalues in the pair typically have order of magnitude only tex2html_wrap_inline4813 , even though both are zero at the true solution.

If tex2html_wrap_inline4815 returns tex2html_wrap_inline4817 , check the output parameter v to identify which blocks are relevant, and use the routines blkeig (for the semidefinite part) and qcpos (for the quadratic part) to investigate further (see below). Consider also experimenting with different values for tol.

An example of a simple SDP for which strict complementarity fails is given in the sample Matlab session in Appendix B. The ladder2 Steiner tree example in Appendix C is an example of a QCLP for which strict complementarity fails.


next up previous contents
Next: Primal and dual nondegeneracy Up: Complementarity and Nondegeneracy Previous: Complementarity and Nondegeneracy

Madhu Nayakkankuppam
Wed Jun 25 18:01:54 EDT 1997