資源簡(jiǎn)介
matlab GA算法程序
clc,clear
load sj.txt
sj = [sj;sj(1,:)];
x = sj(:,2);
y=sj(:,3);
sj = [x y];
%距離矩陣 d
N = size(sj,1);
d = zeros(N);
for i=1:(N-1)
for j=i+1:N
d(i,j) = sqrt((x(i)-x(j))^2 + (y(i)-y(j))^2) + 0.5;
end
end
代碼片段和文件信息
clcclear?
load?sj.txt
sj?=?[sj;sj(1:)];
x?=?sj(:2);
y=sj(:3);
sj?=?[x?y];
%距離矩陣?d?
N?=?size(sj1);
d?=?zeros(N);
for?i=1:(N-1)
????for?j=i+1:N?
????????d(ij)?=?sqrt((x(i)-x(j))^2?+?(y(i)-y(j))^2)?+?0.5;
????end?
end?
d?=?floor(d);
d=d+d‘;L=N;w=50;dai=5;?
%通過(guò)改良圈算法選取優(yōu)良父代?A?s
%%2-opt
for?k=1:w?
????c=randperm(L-2);?
????c1=[1c+1L];?
????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:L;?
end?
J=J/L;??
J(:1)=0;J(:L)=1;?
rand(‘state‘sum(clock));?
%遺傳算法實(shí)現(xiàn)過(guò)程?
A=J;?
for?k=1:dai??%產(chǎn)生?0~1間隨機(jī)數(shù)列進(jìn)行編碼
????k
????B=A;?
????c=randperm(w);?
????%交配產(chǎn)生子代?B?
????for?i=1:2:w???
- 上一篇:EMD工具箱matlab
- 下一篇:FM解調(diào) 仿真方法.docx
評(píng)論
共有 條評(píng)論