select.m
来自「一个利用遗传算法解决TSP问题的程序,有利于对遗传算法进一步的理解.」· M 代码 · 共 25 行
M
25 行
function y=select(gt,pathlength,alpha)
%选择复制操作,主要思想是基于排名的轮盘赌选择
%alpha越大,则越择优复制进入下一代,推荐alpha=0.1
%gt为种群,length为种群中各个路径的长度
[var1,var2]=size(gt);
gtb=gt;
[aftercost,aftersort]=sort(pathlength,2);
for i=1:var1
gt(i,:)=gtb(aftersort(i),:);
end
gtb=gt;
for j=1:var1
posibility(j)=alpha*(1-alpha).^(j-1);
end
p=[0 cumsum(posibility)];
pmax=max(p);
for i=1:var1
r=pmax*rand(1);
for j=1:var1
if (r>p(j)&r<=p(j+1))
y(i,:)=gtb(j,:);
break;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?