Mixed Integer SDPs which are not Mixed Integer SOCPs

CVX documentation seems to suggest that CVX Professional will accept mixed integer SDPs for which the continuous relaxation of the SDP (i.e, ignoring the integer constraints) is expressible in CVX, and pass them on to MOSEK for solution, presuming MOSEK is installed.

Is this true for SDPs which are not convertible into SOCPs? Per Erling, MOSEK solves mixed integer SOCPs, but does not currently handle mixed integer SDPs. So how does CVX handle a mixed integer SDP for which the SDP is not convertible into an SOCP? Is this a CVX documentation subtelty or does CVX do some magic (beyond the normal magic, that is) under the hood?

Well, the answer is that CVX supports mixed-integer SDPs, but the underlying solvers do not :slight_smile: I am afraid that fact needs to be clarified in the documentation.

I have encouraged Erling to support mixed-integer SDPs, but for him to do so, he will need some compelling evidence of their usefulness… paying customers preferably! :slight_smile:

If the model input into CVX is expressible as (convertible into) a mixed integer SOCP, will CVX pass a mixed integer SOCP to MOSEK for solution? As I wrote above, MOSEK 7 does support mixed integer SOCPs. Can CVX always convert any accepted CVX model which can be expressed as a SOCP into a SOCP?

I do not think I can be quite categorical about this. CVX will indeed convert all 2x2 LMIs into SOC equivalents (both real and complex). And CVX does not use 3x3-or-larger LMIs unless it has to. But if you force the issue by specifying, say, an arrow-shaped 4x4 LMI, CVX will not detect that.

MOSEK may some day support mixed integer SDP. If someone is willing to give us some interesting/relevant/important test instances then that “some day” may happen sooner than later.

@Erling I’m not saying that this is an interesting or important test instance, nevertheless, look at Error using Mosek Solver with binary constraints .