1 简介 编辑 编辑 编辑 2 部分代码 function ret=Select(individuals,sizepop) % 本函数对每一代种群中的染色体进行选择,以进行后面的交叉和变异 % individuals input : 种群信息 % sizepop inpu
1 简介
编辑
编辑
编辑
2 部分代码
function ret=Select(individuals,sizepop)% 本函数对每一代种群中的染色体进行选择,以进行后面的交叉和变异
% individuals input : 种群信息
% sizepop input : 种群规模
% opts input : 选择方法的选择
% ret output : 经过选择后的种群
individuals.fitness= 1./(individuals.fitness);
sumfitness=sum(individuals.fitness);
sumf=individuals.fitness./sumfitness;
index=[];
for i=1:sizepop %转sizepop次轮盘
pick=rand;
while pick==0
pick=rand;
end
for j=1:sizepop
pick=pick-sumf(j);
if pick<0
index=[index j];
break; %寻找落入的区间,此次转轮盘选中了染色体i,注意:在转sizepop次轮盘的过程中,有可能会重复选择某些染色体
end
end
end
individuals.chrom=individuals.chrom(index,:);
individuals.fitness=individuals.fitness(index);
ret=individuals;
3 仿真结果
编辑
编辑
4 参考文献
[1]张腾飞, 马跃, 胡毅,等. 基于遗传算法的多目标车间调度问题的研究[J]. 组合机床与自动化加工技术, 2016(5):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
编辑