Hello to all!
I am solving a mixed integer problem through CVX/MOSEK. This involves a series of Cone Constraints, expressed as norm([…]) <= affine(),
Is it possible to control the precision of the particular cone constraint?
In particular, after cvx ends. I am printing the values of the expression {norm([…]) - affine()} and I get some values > 0, of the order 1e-3 or 1e-4. So could I set this tolerance down to 1e-5 or 1e-6 for example?
I have also set “cvx_precision best” with no luck, so I wonder if there is a MOSEK parameter that I should change and not a CVX one.
Many thanks,
a.
EDIT:
So, following Micheal’s suggestion I provide the exact model for the MI-SOCP problem I am referring.
% problem data: H(M,K) complex; P_max real, oh_max real, t real
cvx_begin;
cvx_solver mosek;
variable W(M,K) complex;
variable a(M,K) binary;
minimize(sum(sum(a))); % objective
subject to
% C1: cone constraints (active)
for k=1:K
norm([1;(H(k,:)*W(:,:)).']) <= sqrt(1+1/t)*real(H(k,:)*W(:,k));
end
% C2: cone constraints
for m=1:M
norm(W(m,:).') <= sqrt(P_max);
end
% C3: integer/cone constraints
for m=1:M
for k=1:K
norm(W(m,k)) <= a(m,k)*sqrt(P_max);
end
end
% C4: linear constraint
sum(sum(a)) <= oh_max;
cvx_end;
The problems arise due to the discrete nature of the a_{m,k} variables. A possible work-around recommended by Michael is to first search for a satisfactory a matrix, then fix it, and finally resolve the problem with a new objective minimize(norm(W,‘fro’))
(several W elements will be zero based on the fixed a).
Regards,
a.