锦标赛选择(Tournament Selection)
每次从种群中取一定数量(n)的个体(放回抽样),选择其中适应度较好的进入子代种群。重复该操作直到种群规模到和原来的种群规模一样。几元锦标赛就代表一次性从总体中抽取几个个体,然后从中选择最优的个体保留到下一代种群。
步骤如下:
-
确定每次选择的个体数量N。(二元锦标赛选择即选择2个个体)
-
从种群中随机选择N个个体(每个个体被选择的概率相同) ,根据每个个体的适应度值,选择其中适应度值最好的个体进入下一代种群。
-
重复步骤(2)多次(重复次数为种群的大小),直到新的种群规模达到原来的种群规模。
优点:
- 更小的复杂度,无需对所有适应度进行排序处理
- 不易陷入局部最优点
- 易于并行化处理
代码如下:
% Tournament 本次使用二元锦标赛选择,即每次选择两个个体
clear
clc
% 设置种群大小为10,其适应度值Fit,使用随机函数生成,取值范围[0,1]
Fit = rand(10,1)
% 选择的个体索引
Sel = [];
for i = 1:length(Fit)
% 随机选择两个个体
temp = randi(10,1,2);
% 比较这两个个体的适应度值大小,选择大的
if Fit(temp(1)) >= Fit(temp(2))
Sel(i) = temp(1);
else
Sel(i) = temp(2);
end
end
Sel = Sel'

本文介绍了锦标赛选择(TournamentSelection)策略在遗传算法中的使用,它通过随机选取多个个体并选择适应度较高的个体进入下一代。二元锦标赛选择是其中的一种,每次比较两个个体的适应度。这种方法具有较低的计算复杂度,避免陷入局部最优,并且易于并行化。在给定的例子中,通过比较个体适应度,发现第7个个体的适应度最高,被选择次数最多。这表明锦标赛选择与轮盘赌选择等其他策略有所不同。

8838

被折叠的 条评论
为什么被折叠?



