【发布时间】:2014-06-04 17:15:04
【问题描述】:
我正在阅读有关遗传编程的幻灯片,其中有一些选择个人的方法,例如轮盘选择、排名选择和锦标赛选择 strong>,都提到了。
这三种选择方式有什么区别?
【问题讨论】:
标签: selection genetic-algorithm genetic-programming roulette-wheel-selection
我正在阅读有关遗传编程的幻灯片,其中有一些选择个人的方法,例如轮盘选择、排名选择和锦标赛选择 strong>,都提到了。
这三种选择方式有什么区别?
【问题讨论】:
标签: selection genetic-algorithm genetic-programming roulette-wheel-selection
轮盘选择(又名Fitness proportionate selection)
适应度用于将选择概率与每个个体相关联。
如果fi是种群中个体i的适应度,它被选中的概率为:
pi = fi / Σ j(fj) 对于 j = 1 … N ( N是人口中的个体数量)
之所以叫轮盘,是因为它可以看作是赌场中的轮盘:
这可以通过以下(朴素)算法来模拟:
S)。 r年代]。 有关可能的实现,请参阅:
排名选择类似于轮盘赌选择,只是选择概率与相对适应度而不是绝对适应度成正比。
最适合的候选者是否比下一个最适合的人适合十倍或适合 0.001% 的人,这没有任何区别。在这两种情况下,选择概率是相同的。
重要的是相对于其他人的排名。
当您已经知道轮盘赌时,排名选择很容易实现 车轮选择。而不是使用适应度作为概率 被选中使用排名。所以对于 N 个解的种群 最佳解决方案获得排名 N,第二好的排名 N-1,依此类推。 最差的个人排名第一。
(Ranking Selection in Genetic Algorithm code)
如您所见,编码效率很高。它还适用于并行架构,并允许轻松调整选择压力(更改锦标赛中的人数)。
当然,这些算法有很多变体。
为了比较,您可以阅读:
Comparison of Performance between Different Selection Strategies on Simple Genetic Algorithms (钟景辉, 胡晓敏, 顾敏, 张军 - 2005)
【讨论】: