# Solvers (Mosek, Sedumi and SDP3) Failure

Hi, I have a convex problem which I am going to describe it below. I used CVX with Mosek, Sedumi and SDP3 underlying solvers. Most of the times they fail (Rarely solve) and I don’t know what is the reason and how to handle that. Do you have any suggestion.
Thanks

``````N=3; D=1; K=2; W_0=1; N_0=1;
L=N*(N-1);
H=1/2*(abs(randn(L,K)+sqrt(-1)*randn(L,K))).^2;
A=[1  1 -1  0 -1  0;  -1  0  1  1  0 -1;   0 -1  0 -1  1  1];
Ap=[1  1 0  0 0  0;  0  0  1  1  0 0;   0 0  0 0  1  1];
P_T=10*ones(N,1);

cvx_begin
variables X(L,K) S C(L,K) Y(L,K)
maximize S
subject to
X >= 0;
S >= 0;
Y >= 0;
C >= 0;
A(2,:)*sum(X,2)==S;
A(3,:)*sum(X,2)==0;
sum(C) == ones(1,K);
vec(X) <= vec(-1/log(2)*rel_entr(C,Y.*H+C));
Ap*sum(Y,2)<=P_T;
cvx_end``````

Unfotunately, as the warning undoubtedly told you, you are trying to solve a problem that requires the experimental successive approximation solution method. There is a reason CVX insists on offering a warning: it is simply not possible to guarantee that it will work. There is more about this here in the users’ guide. I wish I could tell you there was a way to modify your model to make it reliable, but I cannot. The underlying solvers can’t handle this problem natively. (Actually, Mosek does have a solver that likely can handle this, but CVX does not connect to it; you will have to build this problem from scratch with a full version of MOSEK. You can use their MATLAB interface.)

Thank you so much. I was not sure that the failure is because of the log function but now I am.

@mcg, If I am not wrong since CVX 2.2 it actually supports utilizing Mosek for this kind of problems, right?

At least according to How to Use CVXQUAD and CVX 2.2 Supports Exponential Cone in MOSEK.

@Royi You are correct (CVX 2.2 + Mosek 9.x).

Note that if using Mosek 9.x, do not “install” CVXQUAD’s exponential.m replacement. That way, Mosek’s native exponential cone capability will be utilized without being “mucked up” with CVXQUAD’s Pade approximant. If CVXQUAD is installed without the exponential.m replacement, that still allows CVXQUAD to handle its quantum (matrix) exponential-related functions.