I had solved the convex problem by using SDPT3 and SEDUMI, when I added the following codes the cvx_status changes to Failed.
The code is below:
nStops = 3;
w_k = [400 0 0; 0 0 400];
start_time= [2,3,5];
end_time = [5,7,8];
S_k = 1e6*ones(1,nStops);
V_max = 50;
area = 500;
q_GW = [400;400];
C_size = 1e6;
H = 100;
N = 10;
delta_t = 0.5;
delta_d = V_max*delta_t;
alpha = 2;
start_time_max = [2,3,5];
end_time_max = [5,7,8];
B = 0.5e6;
B_SC = 15e3;
M = fix(B/B_SC);
P_U_max = 5;
P_k_max = 0.1;
P_U_ave = P_U_max/2;
P_k_ave = P_k_max/2;
% Parameters for LoS and NLoS channels
kappa = 0.2; A = 11.95; D = 0.14; omega_0 = 10^(-5); % -50 dB
sigma_sq = 10^(-20.4)*B; % 10^(-20.4)*B (-174 dBm/Hz=10log10(Noise)) Noise = 10^(-20.4) W/Hz
rho_RSI = 10^(-10); % Residual SI suppresion = -100dB
K_factor = 10^0.5; % K factor = 5 dB
Mean_value = sqrt(K_factor/(K_factor+1)); % 1e-5
Std_value = sqrt(1/(K_factor+1)); % 1
H_coeff = 0.8716 - 0.0000i ;
%%
Phi_RSI = rho_RSI.*abs(H_coeff)^2;
K = nStops;
epsilon = 1e-4; err = 1.0;
%% Find the Initial Feasible Point
% Step 1: Set initial feasible values
lambda_j = 0.1*ones(1,K);
q_j = q_GW*ones(1,N);
a_1_j=0.5*ones(M,N,K);
a_2_j=0.5*ones(M,N,K);
p_1_j = P_k_max*ones(M,N,K)/(M*N);
p_2_j = P_U_max*ones(M,N,K)/(M*N);
z_1k_j = zeros(N,K);
z_2k_j = zeros(1,N);
for n=1:N
for k=1:K
z_1k_j(n,k) = H^2+sum( (q_j(:,n) - w_k(:,k)).^2 ,1);
end
z_2k_j(1,n) = H^2+sum( (q_j(:,n) - q_GW).^2 ,1);
end
%% Initilize for variable t
for m=1:M
for n=1:N
for k=1:K
t_j(m,n,k) = (Phi_RSI*reshape( p_2_j(m,n,[1:(k-1) (k+1):K]),[1 K-1])*reshape((a_2_j(m,n,[1:(k-1) (k+1):K])),[K-1 1])...
+ a_1_j(m,n,k)*sigma_sq)/a_1_j(m,n,k);
end
end
end
%% Initial feasible point
while 1
cvx_begin quiet
variable lambda(1,K)
variable q(2,N)
variable a_1(M,N,K)
variable a_2(M,N,K)
variable p_1(M,N,K)
variable p_2(M,N,K)
variable z_1k(N,K)
variable z_2k(1,N)
variable t(M,N,K)
variable Tau(1,K)
variable sqrt_p1(M,N,K)
variable sqrt_a2p2(M,N,K)
expression a_1mn(M,N)
expression a_2mn(M,N)
expression p_1_total(1,K)
expression p_2_total(1,K)
expression A1(M,N,K)
expression A2(M,N,K)
expression A3(M,N,K)
expression B1(M,N,K)
expression B2(M,N,K)
expression B3(M,N,K)
expression r_1k_lb(M,N,K)
expression r_2k_lb(M,N,K)
expression R_1k_lb(1,1,K)
expression R_2k_lb(1,1,K)
expression R_1n_lb(1,N)
expression R_2n_lb(1,N)
expression R_1n(1,N)
expression R_2n(1,N)
expression Sum_mnk_star(1)
expression A1(M,N,K)
expression A2(M,N,K)
expression A3(M,N,K)
expression B1(M,N,K)
expression B2(M,N,K)
expression B3(M,N,K)
expression LHS_35_1(M,N,K)
expression LHS_35_2(M,N,K)
maximize (min(Tau))
subject to:
%% Constraint 21e
for m=1:M
for n=1:N
a_1mn(m,n) = sum(a_1(m,n,:));
a_2mn(m,n) = sum(a_2(m,n,:));
a_1mn(m,n) <= 1;
a_2mn(m,n) <= 1;
end
end
%% Constraint (21i)
q(1,1) == q_GW(1,1);
q(2,1) == q_GW(2,1);
q(1,N) == q_GW(1,1);
q(2,N) == q_GW(2,1);
%% Constraint (21j)
for n = 2: N
norm(q(:,n) - q(:,n-1)) <= delta_d;
end
%% Constraint 21k and 21l
for k=1:K
p_1_total(1,k)= sum(sum(p_1(:,:,k),1));
p_1_total(1,k) <= P_k_max;
p_1_total(1,k) <= N*P_k_ave;
end
%% Constraint 21m and 21n
for k=1:K
p_2_total(1,k)=sum(sum(p_2(:,:,k),1));% Summation of all M,N value corresponding to each k value
end
sum(p_2_total) <= P_U_max;
sum(p_2_total) <= N*P_U_ave;
%% Constraint 25b
0 <= lambda <=1;
0 <= a_1 <=1;
0 <= a_2 <=1;
%% Constraint 30c
for n=1:N
for k=1:K
H^2 + square(q(1,n) - w_k(1,k)) + square(q(2,n) - w_k(2,k)) <= z_1k(n,k) ;
end
H^2 + square(q(1,n) - q_GW(1,1)) + square(q(2,n) - q_GW(2,1)) <= z_2k(1,n) ;
end
%% Constraint 35
for m=1:M
for n=1:N
for k=1:K
LHS_35_1(m,n,k) = sqrt(Phi_RSI)*reshape( sqrt(p_2_j(m,n,[1:(k-1) (k+1):K])./(2*a_2_j(m,n,[1:(k-1) (k+1):K])) ),[1 K-1])*reshape((a_2(m,n,[1:(k-1) (k+1):K])),[K-1 1]);
LHS_35_2(m,n,k) = sqrt(Phi_RSI)*reshape( sqrt(a_2_j(m,n,[1:(k-1) (k+1):K])./(2*p_2_j(m,n,[1:(k-1) (k+1):K])) ),[1 K-1])*reshape((p_2(m,n,[1:(k-1) (k+1):K])),[K-1 1]);
norm( [LHS_35_1(m,n,k) LHS_35_2(m,n,k) 0.5*( a_1(m,n,k)- (t(m,n,k)-sigma_sq) ) ] ) <= 0.5*(a_1(m,n,k)+( t(m,n,k)-sigma_sq) );
end
end
end
%% Constraint 38c
for m=1:M
for k=1:K
for n=1:start_time(k)-1
r_1k_lb(m,n,k) = 0;
r_2k_lb(m,n,k) = 0;
end
for n=start_time(k):end_time(k)
theta_1n = 90;
P_1LoS = inv_pos(1+A*exp(-D*(theta_1n-A)));
P_1NLoS = 1 - P_1LoS;
P_1LoS_NLoS = omega_0*(P_1LoS+kappa*P_1NLoS);
A1(m,n,k) = log( 1 + p_1_j(m,n,k)*P_1LoS_NLoS*inv_pos( z_1k_j(n,k)*t_j(m,n,k) ) )/0.6931;
A2(m,n,k) = P_1LoS_NLoS*(-p_1_j(m,n,k)+2*pow_p(p_1_j(m,n,k),0.5)* sqrt_p1(m,n,k) )*inv_pos(z_1k_j(n,k)*t_j(m,n,k)*0.6931);
p_1(m,n,k) >= square(sqrt_p1(m,n,k)); % New constraint for sqrt(p1(m,n,k))
A3(m,n,k) = inv_pos(p_1_j(m,n,k)*P_1LoS_NLoS + z_1k_j(n,k)*t_j(m,n,k))*inv_pos(z_1k_j(n,k)*t_j(m,n,k)*0.6931)* p_1_j(m,n,k)*P_1LoS_NLoS*...
( p_1(m,n,k)*P_1LoS_NLoS+ z_1k_j(n,k)*square(t(m,n,k))*inv_pos(2*t_j(m,n,k))+ t_j(m,n,k)*square(z_1k(n,k))*inv_pos(2*z_1k_j(n,k)) );
r_1k_lb(m,n,k) = B_SC*(A1(m,n,k)+A2(m,n,k)-A3(m,n,k) );
r_2k_lb(m,n,k) = 0;
end
for n=end_time(k)+1:N
theta_2n = 90;
P_2LoS = inv_pos(1+A*exp(-D*(theta_2n-A)));
P_2NLoS = 1 - P_2LoS;
P_2LoS_NLoS = omega_0*(P_2LoS+kappa*P_2NLoS);
B1(m,n,k) = log(1 + a_2_j(m,n,k)*p_2_j(m,n,k)*P_2LoS_NLoS*inv_pos(z_2k_j(1,n)*sigma_sq))/0.6931;
B2(m,n,k) = P_2LoS_NLoS*inv_pos(z_2k_j(1,n)*sigma_sq*0.6931)*( -a_2_j(m,n,k)*p_2_j(m,n,k)+...
2*pow_p(a_2_j(m,n,k)*p_2_j(m,n,k),0.5)*sqrt_a2p2(m,n,k) );
norm([2*sqrt_a2p2(m,n,k) a_2(m,n,k)-p_2(m,n,k)]) <= (a_2(m,n,k)+p_2(m,n,k)); % New constraint for sqrt(a_2(m,n,k)*p_2(m,n,k))
B3(m,n,k) = a_2_j(m,n,k)*p_2_j(m,n,k)*P_2LoS_NLoS*inv_pos(a_2_j(m,n,k)*p_2_j(m,n,k)*P_2LoS_NLoS+z_2k_j(1,n)*sigma_sq)...
* inv_pos(z_2k_j(1,n)*sigma_sq*0.6931)*(a_2_j(m,n,k)*square(p_2(m,n,k))*P_2LoS_NLoS*inv_pos(2*p_2_j(m,n,k))...
+ p_2_j(m,n,k)*P_2LoS_NLoS*square(a_2(m,n,k))*inv_pos(2*a_2_j(m,n,k))+ z_2k(1,n)*sigma_sq);
r_2k_lb(m,n,k) = B_SC*(B1(m,n,k)+B2(m,n,k)-B3(m,n,k));
r_1k_lb(m,n,k) = 0;
end
end
end
R_1k_lb = sum(sum(r_1k_lb,1),2);% matrix(1,K)
R_2k_lb = sum(sum(r_2k_lb,1),2);
R_1n_lb = sum(sum(r_1k_lb,1),3);% matrix(1,N)
R_2n_lb = sum(sum(r_2k_lb,1),3);
%% Constraint 38c, 38d, 38e, and 38f
for k=1:K
lambda(k)*S_k(k) <= R_1k_lb(:,:,k)*(end_time(k)-start_time(k))*delta_t; % 38c
lambda(k)*S_k(k) <= R_2k_lb(:,:,k)*(N - end_time(k))*delta_t; % 38d
delta_t * min(R_1k_lb(:,:,k),R_2k_lb(:,:,k)) >= lambda(k)*S_k(k) + Tau(k); % 38e
end
sum(R_2k_lb)>= sum(lambda.*S_k); % 38f
%% Constraint 38g
R_1n = cumsum(R_1n_lb);
R_2n = cumsum(R_1n_lb);
for n=1:N
if n==1
sum(lambda.*S_k) -delta_t*R_1n(n) <= C_size;
else
sum(lambda.*S_k) -delta_t*R_1n(n)- delta_t* R_2n(n-1) <= C_size;
end
end
cvx_end
if min(Tau)>=0
break;
end
end
And the log information during the simulation is shown as below:
SeDuMi 1.34 (beta) by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 8551, order n = 13152, dim = 17498, blocks = 3357
nnz(A) = 25111 + 18745, nnz(ADA) = 59523, nnz(L) = 35357
Handling 24 + 0 dense columns.
it : by gap delta rate t/tP t/tD* feas cg cg prec
0 : 1.33E+38 0.000
Run into numerical problems.
iter seconds |Ax| [Ay]_+ |x| |y|
0 0.2 4.5e+27 0.0e+00 2.3e+02 0.0e+00
Failed: no sensible solution/direction found.
Detailed timing (sec)
Pre IPM Post
1.680E-01 1.260E-01 1.700E-02
Max-norms: ||b||=1, ||c|| = 3.389681e+10,
Cholesky |add|=0, |skip| = 1, ||L.L|| = 2e+06.
Status: Failed
Optimal value (cvx_optval): NaN
Thank you very much. Hope that this issue can be solved.