Hi,
I hope everyone is doing well.
I am trying to solve an SDP by using CVX. Unfortunately, it constantly gives me infeasible solutions!
In the below, I provide comprehensive details of my problem including CVX code and constant values.
Besides, it is absolutely guaranteed to be convex. I was wondering if it has to do with the solver (i.e., SDPT3 4.0)? or the dimension of the problem? I really appreciate it if somebody could give me a hint regarding this problem.
cvx_begin SDP
% cvx_precision low
variable W(M,M,K) hermitian semidefinite
variable W_E(M,M,1) hermitian semidefinite
variable rho(K) nonnegative
variable t
C0=cvx(zeros(1));
for m=1:K
C0=C0+real(trace(W(:,:,m)));
end
maximize(t)
subject to
C1=cvx(zeros(K,1));
for m=1:K
for n=1:K
old=real(trace(H(:,:,m)*W(:,:,n)));
C1(m)=old+C1(m);
end
(log(C1(m)+sigma_1+(sigma_2)*(inv_pos(rho_int(m))-inv_pos(rho_int(m).^2)* (rho(m)-rho_int(m)))))/log(2)-real(g_new(m))-real(trace(derivative1(:,:,m)'*(W(:,:,m)-W_int(:,:,m))))-real(derivative2(m).'*(rho(m)-rho_int(m)))>=real(lamda*(real(trace(W(:,:,m)))+real(trace(W_E(:,:,1)))+p_cir)+t);
sigma_1+(sigma_2)*inv_pos(rho(m))<=real(((1/gamma)+1)*(real(trace(H(:,:,m)*W(:,:,m))))-(C1(m)));
C1(m)+real(trace(H(:,:,m)*W_E(:,:,1)))>=e_m*inv_pos(eta*(1-rho(m)));
C0+real(trace(W_E(:,:,1)))<=p_max;
0<rho(m)<1;
end
cvx_end
%%%%%%%%%%%%%%%%%
Values:
p_max=10;
e_m =1.0000e-04;
H(:,:,1) =
1.0e-06 *
0.2136 + 0.0000i 0.2000 + 0.0697i 0.2678 + 0.0851i 0.2756 + 0.0079i 0.1923 + 0.0096i
0.2000 - 0.0697i 0.2100 + 0.0000i 0.2785 - 0.0077i 0.2606 - 0.0826i 0.1832 - 0.0538i
0.2678 - 0.0851i 0.2785 + 0.0077i 0.3698 + 0.0000i 0.3488 - 0.0999i 0.2450 - 0.0646i
0.2756 - 0.0079i 0.2606 + 0.0826i 0.3488 + 0.0999i 0.3560 - 0.0000i 0.2486 + 0.0053i
0.1923 - 0.0096i 0.1832 + 0.0538i 0.2450 + 0.0646i 0.2486 - 0.0053i 0.1737 + 0.0000i
H(:,:,2) =
1.0e-05 *
0.1285 - 0.0000i 0.1309 - 0.0053i 0.1275 - 0.0079i 0.1241 - 0.0053i 0.1305 - 0.0041i
0.1309 + 0.0053i 0.1336 + 0.0000i 0.1302 - 0.0028i 0.1266 - 0.0002i 0.1331 + 0.0012i
0.1275 + 0.0079i 0.1302 + 0.0028i 0.1270 + 0.0000i 0.1234 + 0.0024i 0.1297 + 0.0040i
0.1241 + 0.0053i 0.1266 + 0.0002i 0.1234 - 0.0024i 0.1200 + 0.0000i 0.1262 + 0.0014i
0.1305 + 0.0041i 0.1331 - 0.0012i 0.1297 - 0.0040i 0.1262 - 0.0014i 0.1326 + 0.0000i
H(:,:,3) =
1.0e-06 *
0.7061 + 0.0000i 0.7558 - 0.2411i 0.5608 - 0.1586i 0.5493 + 0.0182i 0.7382 - 0.0480i
0.7558 + 0.2411i 0.8915 + 0.0000i 0.6545 + 0.0218i 0.5818 + 0.2070i 0.8066 + 0.2007i
0.5608 + 0.1586i 0.6545 - 0.0218i 0.4811 - 0.0000i 0.4322 + 0.1378i 0.5971 + 0.1277i
0.5493 - 0.0182i 0.5818 - 0.2070i 0.4322 - 0.1378i 0.4278 - 0.0000i 0.5730 - 0.0563i
0.7382 + 0.0480i 0.8066 - 0.2007i 0.5971 - 0.1277i 0.5730 + 0.0563i 0.7751 - 0.0000i
H(:,:,4) =
1.0e-07 *
0.2512 - 0.0000i 0.3100 - 0.2699i 0.0981 - 0.2902i 0.0892 - 0.1249i 0.3247 - 0.1531i
0.3100 + 0.2699i 0.6726 - 0.0000i 0.4330 - 0.2528i 0.2443 - 0.0584i 0.5653 + 0.1600i
0.0981 + 0.2902i 0.4330 + 0.2528i 0.3737 - 0.0000i 0.1792 + 0.0542i 0.3038 + 0.3155i
0.0892 + 0.1249i 0.2443 + 0.0584i 0.1792 - 0.0542i 0.0938 - 0.0000i 0.1915 + 0.1072i
0.3247 + 0.1531i 0.5653 - 0.1600i 0.3038 - 0.3155i 0.1915 - 0.1072i 0.5132 + 0.0000i
%%%%%%%%%%%%%%%%%%%%%%
Result:
CVX Warning:
Models involving “log” or other functions in the log, exp, and entropy
family are solved using an experimental successive approximation method.
This method is slower and less reliable than the method CVX employs for
other models. Please see the section of the user’s guide entitled
The successive approximation method
for more details about the approach, and for instructions on how to
suppress this warning message in the future.
Successive approximation method to be employed.
SDPT3 will be called several times to refine the solution.
Original size: 186 variables, 48 equality constraints
4 exponentials add 32 variables, 20 equality constraints
Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
0/ 0 | 0.000e+00 0.000e+00 0.000e+00 | Infeasible
Status: Infeasible
Optimal value (cvx_optval): -Inf