I am trying to formulate my problem with cvx, pls take a look at my problem as follow:
variable v(n,n): v is a nxn matrix we are looking for
objective function: minimize (sum (|v_i - v_j|^2)) where |v_i - v_j|^2 = sum (v_ik - v_jk)^2 (euclidian distance between vi and vj); i,j,k in the range of [1…n], and (i,j) in a given set call E
- (1) for every i in the range [1…n] |v_i|^2 == 1
- (2) for every i<j, sum (|v_i - v_j|^2) >= c where c is a positive real value (c = n/2 for example)
- (3) for every i,j,k (i ~= j ~=k), |v_i - v_j|^2 + |v_j - v_k|^2 >= |v_i - v_k|^2
The problem is said that it is a SDP problem
I formulated the objective function and it is accepted in cvx
And the constraints are formulated like this:
(1) + (2) :
for every i<j, sum(|v_i - v_j|^2) = sum(|v_i|^2) + sum (|v_j|^2) - 2* sum(v_iv_j = 2n^2 - 2* sum(v_iv_j) >= c.
(3) <=> we form a matrix from v_i, v_j, v_k, called r
we form a matrix
B =[ 0 -1 1
-1 2 -1
1 -1 0 ];
so, (3) <=> sum (sum(B r * r’, 2 ), 1) >= 0 (sum up all the matrix entries; r’ : transpose matrix of r; parameter 1 and 2: sum up in column and row respectively)
I saw cvx does not accept the constraint like " t * t’ < 5 where t is a variable matrix"
Can someone help me point the way of reformulating the constraints that are accepted in cvx?
I highly appreciate your time and your help!