11

我正在阅读有关遗传编程的幻灯片,其中提到了一些选择个人的方法,例如轮盘赌选择排名选择锦标赛选择

这三种选择方法有什么区别?

4

1 回答 1

30

轮盘选择(又名健身比例选择

适应度用于将选择概率与每个个体相关联。

如果 f i 是种群中个体 i 的适应度,则其被选中的概率为:

p i = f i / Σ j (f j ) 对于 j = 1 … N(N 是人口中的个体数量)

之所以叫轮盘,是因为它可以看作是赌场中的轮盘:

在此处输入图像描述

这可以通过以下(天真的)算法来模拟:

  1. 计算人口中所有适应度的总和 (sum S)。
  2. r在区间[0;中生成一个随机数;年代]。
  3. 遍历人口并总结适应度。当总和 s 大于 r 时,停止并返回您所在的个人。

有关可能的实现,请参见:


等级选择类似于轮盘赌选择,只是选择概率与相对适应度而不是绝对适应度成正比。

最适合的候选者是否比下一个最适合的人适合十倍或 0.001% 的适合度,这没有任何区别。在这两种情况下,选择概率是相同的。

重要的是相对于其他人的排名。

当您已经了解轮盘赌选择时,排名选择很容易实现。不是使用适应度作为被选中的概率,而是使用排名。因此,对于 N 个解决方案的群体,最佳解决方案的排名为 N,第二好的排名为 N-1,依此类推。最差的个人排名为 1。

遗传算法代码中的排序选择


比赛选择

  1. 从人群中随机选择几个人(锦标赛)。
  2. 选择具有最佳适应度的个体(获胜者)进行交叉。

如您所见,编码效率很高。它还适用于并行架构,并允许轻松调整选择压力(更改锦标赛中的人数)。

当然,这些算法有很多变体。

为了进行比较,您可以阅读:

不同选择策略在简单遗传算法上的性能比较(钟景辉,胡晓敏,顾敏,张军 - 2005)

于 2014-04-21T08:07:54.513 回答