SDP program in Mosek 9.2.24 with Python

80 views
Skip to first unread message

Benedetto Manca

unread,
Oct 19, 2020, 1:07:23 PM10/19/20
to mosek
Hi,

I'm trying to write the following SDP constraints using the Mosek API for python:

 S=[s, v^T; v, F]>=0
[F, Id; Id, T]>=0

where F, T are nxn semidefinite positive matrices, s is a real number and v is a vector in R^n. As far as I understood one way to do this is to use a (2n+2)x(2n+2) SDP variable X and then use constraints of the form <A_i, X> = b_i to force the (n+1)x(n+1) upper left block to be the matrix S and the lower right block to be [T,0;0,0], plus more constraints to obtain [F, Id; Id, T]>=0.

I was wondering if there is a better way to do this, because it seems to me that the solution I have in mind is far from efficient, but I might be wrong.

Best,

Benedetto

Michal Adamaszek

unread,
Oct 20, 2020, 4:01:56 AM10/20/20
to mosek
Hi,

You need two SDP variables anyway, so maybe it is more natural just to implement as is: Have X (n+1)x(n+1) and Y (2n)x(2n)

X = [ s, v^T; v, F]
Y = [ F, I; I, T];

and then you use the bara part of linear constraints to equalize the two "F" s with each other and the upper corner of Y with I.

But either way it looks like you will need a large number of coupling constraints.

It would be easy to prototype in the Fusion interface to start with.

Michal

Michal Adamaszek

unread,
Oct 20, 2020, 4:26:32 AM10/20/20
to mosek
Reply all
Reply to author
Forward
0 new messages