資源簡介
改代碼是Matlab解決商旅問題的代碼,代碼較易理解,運用時需要根據問題自己修改
代碼片段和文件信息
clc
clear
load?sj.txt;
x=sj(:1:2:4);x=x(:);
y=sj(:2:2:4);y=y(:);
sj=[xy];
d1=sj(1:);
sj0=[d1;sj(2:end:);d1];
sj=sj0*pi/180;
d=zeros(89);
for?i=1:88
????for?j=i+1:89
????????temp=cos(sj(i1)-sj(j1))*cos(sj(i2))*cos(sj(j2))+sin(sj(i2))*sin(sj(j2));
????????d(ij)=6370*acos(temp);
????end
end
d=d+d‘;L=89;w=50;dai=1000;
for?k=1:w
????c=randperm(87);
????c1=[1c+189];
????flag=1;
????while?flag>0
????????flag=0;
????????for?m=1:L-3
????????????for?n=m+2:L-1
????????????????if?d(c1(m)c1(n))+d(c1(m+1)c1(n+1)) ????????????????????flag=1;
????????????????????c1(m+1:n)=c1(n:-1:m+1);
????????????????end
????????????end
????????end
????end
????J(kc1)=1:89;
end
????J=J/89;
????J(:1)=0;J(:89)=1;
????%遺傳算法實現過程
????A=J;
????for?k=1:dai
????????B=A;
????????c=randperm(w);
%交配產生子代B
????????for?i=1:2:w
????????????F=2+floor(87*rand(1));
????????????temp=B(c(i)F:89);
????????????B
- 上一篇:DCT數字水印實現
- 下一篇:MIMO-OFDM無線通信matlab代碼
評論
共有 條評論