Hello @all !
I hope everyone is doing well.
I have convert my optimization problem into a suitable form so that Cvx can solve it, but still the status shows infeasible, anyone have idea about this?
Code i made is;
clear,clc %Clear all
m=2; %number of Tx and Rx antennas
n=1;
P=1; %Transmitted Power
%rng(1);
%H=rand(m,m); %Channel matrix
G1=rand(n,m);
G2=rand(n,m);
W1=rand(m,n);
W2=rand(m,n);
T1=W1W1’;
%t=0.5;
t=1/(trace(G2G2’W1W1’)+1);
%Arho = [0.3 0; 0 0.3]; %Fix Arho
I=eye(m,m) %Identity matrix
%Arhobar=I-Arho %Arhobar
cvx_clear %To clear models used before
cvx_begin %To begin a new CVX model
variable T1(m,m) Symmetric %S Variable
maximize (trace(G2G2’W2W2’)); %Objective Function
subject to
(trace(G2G2’*T1))+t==1;
trace(G1G1’T1)>=0.5(trace(G1G1’W2W2’)+t*I);
trace(T1)+trace(W2W2’)<= tP
t>0;
T1==semidefinite(m);
W2*W2’>=0;
cvx_end %To end the CVX model
cvx_status
The status is:
Calling SDPT3 4.0: 6 variables, 2 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.
num. of constraints = 2
dim. of sdp var = 2, num. of sdp blk = 1
dim. of linear var = 3
SDPT3: Infeasible path-following algorithms
version predcorr gam expon scale_data
HKM 1 0.000 1 0
it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime
0|0.000|0.000|9.1e-11|1.3e+01|5.0e+02|-8.127156e+00 0.000000e+00| 0:0:00| chol 1 1
1|1.000|0.936|1.1e-07|9.1e-01|2.8e+01|-9.156551e+00 0.000000e+00| 0:0:00| chol 1 1
2|1.000|0.188|2.6e-08|7.4e-01|4.3e+01|-1.967381e+02 0.000000e+00| 0:0:00| chol 1 1
3|1.000|0.018|1.0e-08|7.3e-01|1.0e+03|-4.259003e+05 0.000000e+00| 0:0:00| chol 1 1
4|1.000|0.002|5.5e-09|7.3e-01|2.1e+07|-1.022235e+11 0.000000e+00| 0:0:00| chol 1 1
5|1.000|0.000|2.8e-09|7.3e-01|5.0e+13|-2.455185e+18 0.000000e+00| 0:0:00|
sqlp stop: dual problem is suspected of being infeasible
number of iterations = 5
residual of dual infeasibility
certificate X = 1.14e-27
reldist to infeas. <= 3.44e-28
Total CPU time (secs) = 0.18
CPU time per iteration = 0.04
termination code = 2
DIMACS: 2.8e-09 0.0e+00 8.1e-01 0.0e+00 -1.0e+00 2.0e-05
Status: Infeasible
Optimal value (cvx_optval): -Inf
cvx_status =
Infeasible