I am running below codes on MATLAB and licensed cvx solver SDPT3 4.0.
As a result, I am getting Failed status. Also, I have tried use SeDuMi and Mosek to solve it, they both returned that:Infeasilbe.
So I want to know what’s the problem or how can I modify the model.
Thanks.
M=3;
N=2;
K=4;
E0=5;
pmax_r=2;
pr_max=pmax_r*ones(1,M);
min_user_rate=.1;
e_avail=E0*ones(1,K,M);
J_nor=0*rand(N,K,M);
b_nkm(:,:,1)=[ 1 1 0 0;1 0 1 0];
b_nkm(:,:,2)=[ 1 0 1 0;1 1 0 0];
b_nkm(:,:,3)=[ 0 0 1 1;0 1 1 0];
pr_old=2*ones(N,M);
landa=.5;
R_rrh_min=.4;
e_old=.3*ones(N,K,M);
alfa_old=[.6 .5 .7];
cvx_begin
variables alfa(1,M)
cnr=rrh_fad./(N0*Bw);
tr=log(1+cnr.*pr_old);
r_rrh=cvx(zeros(N,M));
for m=1:M
E_km=e_avail(:,:,m);
r_rrh(:,m)=((1-alfa(m))*tr(:,m));
for n=1:N
for k=1:K
check=J_nor(n,:,m)>=J_nor(n,k,m);
x=sum(J_nor(n,:,m).*b_nkm(n,:,m).*e_old(n,:,m).*check.*E_km)+alfa(m);
G=entr(x)+ sum(J_nor(n,:,m).*b_nkm(n,:,m).*e_old(n,:,m).*check.*E_km)*log(x);
H=-alfa_old(m)*log(alfa_old(m)+sum(J_nor(n,:,m).*b_nkm(n,:,m).*e_old(n,:,m).*check.*E_km)+(J_nor(n,k,m)*b_nkm(n,k,m)*e_old(n,k,m)*E_km(1,k)));
for i=1:K
if(i~=k)
temp=alfa_old(m)/(alfa_old(m)+sum(J_nor(n,:,m).*b_nkm(n,:,m).*e_old(n,:,m).*check.*E_km)+(J_nor(n,k,m)*b_nkm(n,k,m)*e_old(n,k,m)*E_km(1,k)));
gerad_a=-log(alfa_old(m)+sum(J_nor(n,:,m).*b_nkm(n,:,m).*e_old(n,:,m).*check.*E_km)+(J_nor(n,k,m)*b_nkm(n,k,m)*e_old(n,k,m)*E_km(1,k)))-temp;
else
gerad_a=0;
H_hat=H+(gerad_a*(alfa(m)-alfa_old(m)));
obj_s3(n,k,m)=G-H_hat;
end
end
end
end
end
maximize sum(sum(sum(obj_s3)))+sum(sum(r_rrh))-(landa*sum(sum(pr_old)))
subject to
for m=1:M
0<=alfa(m)<=1
end
%constraint for the rate of the users
for m=1:M
ot1=obj_s3(:,:,m);
btemp=b_nkm(:,:,m)
ot2=obj_s3(:,:,m).*b_nkm(:,:,m);
ot3=sum(ot2,1);
for k=1:K
ot3(k)-min_user_rate >= 0;
end
end
%constraint for the rate of the rrh
for m=1:M
temp1=sum(tr,1);
R_rrh_min-temp1(:,m) <=0;
end
cvx_end