📄 selection.m
字号:
function [Ps]=Selection(P0,Fit0)
% 比例选择操作,
% input:
% P0 --- 初始种群
% Fit0 --- 初始种群适应度值
% output:
% Ps --- 选择后的种群
%-------------------------------------------------------------------------%
N=size(P0,1); % 种群规模
n=length(Fit0);
SumFitn=sum(Fit0); % 总体适应度
SumFit(1)=Fit0(1); % 累积适应度第一项
RateFit(1)=SumFit(1)/SumFitn; % 第一项在总体适应度中所占比例
% 累积适应度其余项及所占比例大小:
for i=2:n
SumFit(i)=Fit0(i)+SumFit(i-1);
RateFit(i)=SumFit(i)/SumFitn;
end
% 以适应度大小,划分选择概率:
RateFit=[0,RateFit];
% 种群选择,产生新的种群
for i=1:N
r=rand;
for j=1:n
if r<RateFit(j+1)&&r>RateFit(j)
P2(i,:)=P1(j,:);%×
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -