我正在阅读有关遗传编程的幻灯片。在这张幻灯片中,它表示在选择阶段有一些方法,如Roulette
,Rank
或Tournament
,没有任何解释。我尝试过谷歌,但没有清楚说明这些条款。遗传编程:轮盘等级和锦标赛选择之间的区别
请告诉我他们之间有什么区别。
我正在阅读有关遗传编程的幻灯片。在这张幻灯片中,它表示在选择阶段有一些方法,如Roulette
,Rank
或Tournament
,没有任何解释。我尝试过谷歌,但没有清楚说明这些条款。遗传编程:轮盘等级和锦标赛选择之间的区别
请告诉我他们之间有什么区别。
轮盘选择(又名Fitness proportionate selection)
健身用于选择的概率给每个个体相关联。
若f 我是个体i的在人群中的健身,被选择的它的概率是:
p 我 = F 我/Σ Ĵ(F Ĵ)对于j = 1… N(N是个人的人口数)
这就是所谓的轮盘赌,因为它可以被看作是一个赌场轮盘:
这可以通过下面的模拟(天真)算法:
S
)。r
在区间[0; S]。有关可能的实现中可以看到:
秩选择类似于轮盘赌选择不同之处在于选择概率正比于相对适合度而不是绝对奥尔姆健身。
最适合的候选人是否比下一个适合者或0.001%钳工适应者的十倍没有什么区别。在这两种情况下,选择概率将是相同的。
所有重要的是相对于其他个人的排名。
等级选择很容易实现,当你已经知道轮盘 轮选择。选择 而不是使用适合度作为概率,您可以使用排名。因此,对于n个解 群的最佳解决方案得到秩N,第二个最佳秩N-1,等。 最坏个体具有秩1
(Ranking Selection in Genetic Algorithm code)
正如您所见,编码效率很高。它也适用于并行架构,并允许轻松调整选择压力(更改锦标赛中的个人数量)。
当然这些算法有许多变种。
为了进行比较,你可以阅读:
Comparison of Performance between Different Selection Strategies on Simple Genetic Algorithms(胡景晖钟,小敏胡,顾敏,张军 - 2005年)
的话题真的详尽和记录答案! – 5agado