⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qcompeteselect.m

📁 经典遗传算法
💻 M
字号:
%q竞争选择
%f为适应度, q为选择参数
%q竞争选择机制
%从u个父代个体中选择n个子代个体的方法
%(1)记u个父代个体集合为P, 对每一个个体Xk∈P,再从这个个体集合中随机选取q个个体(q<u),比较这q个个体和个体Xk之间的适应度大小,以其中适应度比Xk的适应度要低的个体的数目作为个体Xk的得分Wk(k =1,2,...,u); 
%(2)按个体集合P中每个个体得分Wk(k =1,2,...,u) 的大小对全部u个个体作降序排列,选择前n个个体作为进化过程中的下一代群体.
function y=qCompeteSelect(f,n)
m=size(f,1);%取得f的行数m
q=floor(m/2);
r=floor(m*rand(m,q))+1;%取q个个体(范围是[1..m])进行筛选,r是m*q矩阵
W=sum(f(:,ones(1,q))>f(r),2);%比较这q个个体和个体Xk之间的适应度大小并计算得分
[ans,index]=sort(W);%排序
y=index(m-n+1:end);%选择前n个个体作为进化过程中的下一代群体

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -