我正在阅读有关遗传编程的幻灯片,其中提到了一些选择个人的方法,例如轮盘赌选择、排名选择和锦标赛选择。
这三种选择方法有什么区别?
我正在阅读有关遗传编程的幻灯片,其中提到了一些选择个人的方法,例如轮盘赌选择、排名选择和锦标赛选择。
这三种选择方法有什么区别?
轮盘选择(又名健身比例选择)
适应度用于将选择概率与每个个体相关联。
如果 f i 是种群中个体 i 的适应度,则其被选中的概率为:
p i = f i / Σ j (f j ) 对于 j = 1 … N(N 是人口中的个体数量)
之所以叫轮盘,是因为它可以看作是赌场中的轮盘:
这可以通过以下(天真的)算法来模拟:
S
)。r
在区间[0;中生成一个随机数;年代]。有关可能的实现,请参见:
等级选择类似于轮盘赌选择,只是选择概率与相对适应度而不是绝对适应度成正比。
最适合的候选者是否比下一个最适合的人适合十倍或 0.001% 的适合度,这没有任何区别。在这两种情况下,选择概率是相同的。
重要的是相对于其他人的排名。
当您已经了解轮盘赌选择时,排名选择很容易实现。不是使用适应度作为被选中的概率,而是使用排名。因此,对于 N 个解决方案的群体,最佳解决方案的排名为 N,第二好的排名为 N-1,依此类推。最差的个人排名为 1。
如您所见,编码效率很高。它还适用于并行架构,并允许轻松调整选择压力(更改锦标赛中的人数)。
当然,这些算法有很多变体。
为了进行比较,您可以阅读:
不同选择策略在简单遗传算法上的性能比较(钟景辉,胡晓敏,顾敏,张军 - 2005)