【数学建模】无线可充电传感器网络充电路线规划【含Matlab源码 750期】

171 阅读2分钟

一、简介

无线可充电传感器网络充电路线规划

二、源代码

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