The program can be run.But Status: Inaccurate/Solved!
I can’t figure out why the result I get has status inaccurate/solved.
I have the following optimization problem:
clc
N=6;
alpha=2;
Nuncached=3;%不在UAV上缓存
Ndatauav=3;
a11=randperm(N,Nuncached);
theta=rand(1,N);%UAV-users bandwidth allocation
ita=rand(1,N);
%initial location
[x_server,y_server,x,y]=userlocation(N);
[c,ita]=randcache(N,Nuncached,a11);%cache
Q_users=zeros(N,2);
for i=1:N
Q_users(i,1)=x(i);
Q_users(i,2)=y(i);
end
Q_server=[x_server,y_server];
R=200;
x_u1=2Rrand-R;
y_u1=2Rrand-R;
step_size=0.5;
%final=zeros(1,M);
%for epoch=1:M
Q_u1=[x_u1,y_u1];
cvx_begin
cvx_solver sedumi
variable Q_u(1,2)
variable e(1,N)
variable w(1,N)
variable T
expression Zlb(1,N)
expression Ilb(1,N)
a=randdataprocess(N,Ndatauav);
B=10^6;
%input data
I=10+5rand(1,N);
for i=1:N
I(i)=I(i)(10^3);
end
O=zeros(1,N);
for i=1:N
O(i)=I(i)alpha;
end
%CPUcycles
F=500+300rand(1,N);
%users compute resource
f_local=0.5+0.5rand(1,N);
for i=1:N
f_local(i)=f_local(i)(10^9);
end
f=1+5rand(1,N);
for i=1:N
f(i)=f(i)(10^9);
end
[q,q1]=computebound(N,theta,ita);
Hu=150;
for i=1:N
Ilb(i)= theta(i)Blog2(1+q(i)/(pow_pos(norm((Q_users(i,:)-Q_u1),2),2)+Hu^2))+ theta(i)Bq(i)(-1)(pow_pos(norm((Q_users(i,:)-Q_u),2),2)-pow_pos(norm((Q_u1-Q_users(i,:)),2),2)) /((pow_pos(norm((Q_u1-Q_users(i,:)),2),2)+Hu^2+q(i))(pow_pos(norm((Q_u1-Q_users(i,:)),2),2)+Hu^2)log(2));
%Ilb(i)=theta(i)Blog2(1+q(i)/((x_u1-x(i))^2+(y_u1-y(i))^2+Hu^2))-(theta(i)Bq(i)((pow_pos(x_u-x(i),2)+pow_pos(y_u-y(i),2))-((x_u1-x(i))^2+(y_u1-y(i))^2))/(((x_u1-x(i))^2+(y_u1-y(i))^2+Hu^2+q(i))((x_u1-x(i))^2+(y_u1-y(i))^2+Hu^2)*log(2)));
end
for j=1:length(a11)
i=a11(j);
Zlb(i)= ita(i)*B*log2(1+q1(i)/(pow_pos(norm((Q_server-Q_u1),2),2)+Hu^2))+ ita(i)*B*q1(i)*(-1)*(pow_pos(norm((Q_server-Q_u),2),2)-pow_pos(norm((Q_u1-Q_server),2),2)) /((pow_pos(norm((Q_u1-Q_server),2),2)+Hu^2+q1(i))*(pow_pos(norm((Q_u1-Q_server),2),2)+Hu^2)*log(2));
%Zlb(i)=ita(i)*B*log2(1+q1(i)/((x_u1-x_server)^2+(y_u1-y_server)^2+Hu^2))-(ita(i)*B*q1(i)*(pow_pos((x_u-x_server),2)+pow_pos((y_u-y_server),2)-((x_u1-x_server)^2+(y_u1-y_server)^2)))/(((x_u1-x_server)^2+(y_u1-y_server)^2+Hu^2+q1(i))*((x_u1-x_server)^2+(y_u1-y_server)^2+Hu^2)*log(2));
end
for i=1:N
p(i)=(a(i)*I(i)*F(i))/f(i)+((1-a(i))*I(i)*F(i))/f_local(i);
end
obj_function=T;
minimize(obj_function);
subject to
for i =1:N
(a(i)*O(i)+(1-a(i))*I(i))*inv_pos(e(i))+ (1-c(i))*I(i)*inv_pos(w(i))<=T-p(i);
end
for i=1:N
Ilb(i)>=e(i);
end
for i=1:Nuncached
Zlb(i)>=w(i);
end
T>0;
cvx_end
disp(Q_u)