solve least square problem with Multiple SDP constraints

318 Views Asked by At

I have the following problem

$$min_{S,K,m} \quad ||Ax-b||^2 s.t \quad S \geq 0 , Z \geq 0$$

where, $x= \begin{pmatrix} S \\ m\\ K \end{pmatrix},$ $$S:= \begin{bmatrix} s_{1} & s_{2} & \\ s_{3} & s_{4} \\ \end{bmatrix} \geq 0, $$ S is 2 by 2 matrix and $$Z:= \begin{bmatrix} K & m & \\ m^T & 1 \\ \end{bmatrix} \geq 0 , $$
Z is 3 by 3 matrix where, $ K := \begin{bmatrix} m_{1}^2 & m_{2}m_{1} & \\ m_{1}m_{2} & m_{2}^2 \\ \end{bmatrix} \geq 0 $

$m= \begin{pmatrix} m_{1} \\m_{2} \end{pmatrix},$

My first question: How can I solve this problem ? especially I have two SDP constraints ? I read about something called block diagonal matrix. What I understand is to convert the two constraints into one constraints, my new problem will be as follow :

$min ||Ax-b||^2 $ s.t

$L:= \begin{bmatrix} matrix S & 0 & \\ 0 & matrix Z \\ \end{bmatrix} \geq 0 $
is this is correct ? how can I assure the off diagonal elements are zero? should I add constraints for that

Second question: I want to code this problem which solver can help me with that ?

1

There are 1 best solutions below

19
On BEST ANSWER

You appear to try to implement a semidefinite relaxation of a problem involving a quartic objective, and a semidefinite constraint on some variables.

The idea in a semidefinite relaxation is that you replace the quadratic terms $mm^T$ with linear elements from a matrix $M$, and then add the constraint that $M$ has rank 1. As you have written it now, keeping the outer product (which trivially is positive semidefinite) and the nonlinear terms does not make any sense.

The model you probably look for, implemented using YALMIP, would be

S = sdpvar(2,2);
m = sdpvar(2,1);
K = sdpvar(2);
x = [S(:);m(:);K(:)]; 
Objective = (A*x-b)'*(A*x-b);
Constraints = [S>=0, [K m;m' 1] >= 0] % Relaxation as rank constraint dropped
optimize(Constraints,Objective)

More generally, you are doing this https://yalmip.github.io/tutorial/momentrelaxations/