Next: Lovász function
Up: Specialized Routines
Previous: Specialized Routines
For the case of diagonally constrained problems (for example, MAX-CUT
relaxations), the Schur complement equations can be formed and solved
very efficiently using the XZ search direction
[4, 5].
The specialized routines dsdp.m and fdsdp.m take
advantage of this. As before, the five steps involved in setting up and
solving a problem are: preparing the data, setting the options,
initializing the variables, invoking the solver, and interpreting the
output. These are similar to those described in
Section 3, except for the following important differences:
- These routines solve a specialized SDP, not an SQLP.
The quadratic and linear parts of the SQLP are assumed to be empty.
- The k-th constraint matrix
is assumed to be
, where
is the k-th unit vector (a vector of all zeros,
except a 1 at the k-th position), so the matrix
should not
be stored explicitly. The user must provide the cost matrix
(stored in the field
) and the primal constraint
right-hand side b, stored in
.
The fields
and
are assumed to be empty, and are ignored.
No structure
is needed. -
There is a special initialization routine called
dsetopt.m which sets the options to default values. The
default value for reltol is larger than that used by
setopt.m, since the XZ method generally cannot achieve the
same high accuracy as the XZ+ZX method. Also the default value for
tau is 0.99 (instead of 0.999) since the XZ method performs
poorly with values of tau close to one.
- There is a special initialization routine called
dinit.m which initializes
,
,
.
It expects that
and
are available in the Matlab workspace. - The script dsdp.m uses an additional parameter called
useXZ, which when set to 1 (this is the default set by
dsetopt.m) solves the
problem by the specialized code fdsdp.m using the XZ method.
When useXZ is set to 0, the specialized code is not used, but
instead dsdp.m calls fsql.m to solve the problem using
the XZ+ZX method, after constructing the matrix
explicitly and
setting the structure
accordingly.
The latter usually provides more accurate solutions, but at substantially
increased computation time. -
The problems that fall into this class are graph problems
that usually require the graph to be connected, and hence will
usually be applied to problems with a single block.
They do not use the validate
parameter, i.e. no check is made to ensure block structure
compatibility. Nevertheless, a few simple consistency checks are
always made on the data. - The user who wants a function interface
can bypass the script dsdp.m by typing
- When the output parameter
has the value 3, the
meaning is slightly different from the XZ+ZX case. Here,
means that the Schur complement matrix, which is symmetric and
mathematically positive definite for the XZ method, was numerically
indefinite or singular, i.e. Matlab's
chol routine failed or generated a zero diagonal element.
Also, the termination code
is not used.
Next: Lovász function
Up: Specialized Routines
Previous: Specialized Routines
Madhu Nayakkankuppam
Wed Jun 25 18:01:54 EDT 1997