selection.m
来自「kmeans算法,许多同学做毕设需要用到」· M 代码 · 共 32 行
M
32 行
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 + =
减小字号Ctrl + -
显示快捷键?