一、简介
无线可充电传感器网络充电路线规划
二、源代码
function [L,B,A]=chushihua( )
%% 读取数据,计算两两距离
A=xlsread('附件1.xlsx');
B=zeros(30,30);
for i=1:29
for j=i+1:30
B(i,j)=sqrt((A(i,1)-A(j,1))^2+(A(i,2)-A(j,2))^2);
end
end
for i=1:29
for j=i+1:30
B(j,i)=B(i,j);
end
end
%% 初始种群
L=zeros(500,30);
for i=1:500
[a,b]=sort(rand(1,29));
L(i,2:30)=b+1;
L(:,1)=1;
end
%% 适应度
f=zeros(1,500);
L_new=zeros(500,30);
for i=1:500
f(1,i)=fitness(L(i,:),B);
end
[s,t]=sort(f);
for i=1:100
L_new(i,:)=L(t(1,i),:);
end
for i=101:500
k=ceil(rand^2*100);
a=sort(ceil(rand(1,2)*29));
L_new(i,1:a(1))=L(k,1:a(1));
L_new(i,a(2)+1:30)=L(k,a(2)+1:30);
L_new(i,a(1)+1:a(2))=fliplr(L(k,a(1)+1:a(2)));
end
L=L_new;
end
function [k ,C] = load2( )
A=xlsread('附件1.xlsx');
B=zeros(30,30);
for i=1:29
for j=i+1:30
B(i,j)=sqrt((A(i,1)-A(j,1))^2+(A(i,2)-A(j,2))^2);
end
end
k=xlsread('附件2.xlsx');
s=1000;
v=2:1:80;
% v=30;
p=sum(k);
f=1;
r=200:1:600;
% r=200;
C=zeros(size(v'),size(r'));
for i=1:size(v')
for j=1: size(r')
C(i,j)=f+s*7.8/(v(1,i)*(1-p/r(1,j)));
end
end
function L=select(L,B)
f=zeros(1,500);
L_new=zeros(500,30);
for i=1:500
f(1,i)=fitness(L(i,:),B);
end
[s,t]=sort(f);
for i=1:100
L_new(i,:)=L(t(1,i),:);
end
for i=101:500
k=ceil(rand^2*100);
a=sort(ceil(rand(1,2)*29));
L_new(i,1:a(1))=L(k,1:a(1));
L_new(i,a(2)+1:30)=L(k,a(2)+1:30);
L_new(i,a(1)+1:a(2))=fliplr(L(k,a(1)+1:a(2)));
end
L=L_new;
end
三、运行结果
四、备注
版本:2014a