我正在阅读一个关于遗传编程的幻灯片,其中提到了一些选择个体的方法,如轮盘赌选择、排名选择和锦标赛选择。
这三种选择方法有什么区别?
我正在阅读一个关于遗传编程的幻灯片,其中提到了一些选择个体的方法,如轮盘赌选择、排名选择和锦标赛选择。
这三种选择方法有什么区别?
轮盘赌选择(又称适应度比例选择)
适应度用于将选择概率与每个个体相关联。
如果fi是种群中个体i的适应度,则其被选中的概率为:
pi = fi / Σ j(fj),其中j = 1 … N(N是种群中个体数)
它被称为轮盘赌,因为它可以看作是一个赌场的轮盘赌:
下面是可以模拟的(天真的)算法:
S
)。r
。有关可能的实现,请参见:
排名选择与轮盘赌选择类似,但选择概率是相对适应度而非绝对适应度成比例的。
无论最适合的候选者比下一个最适合的候选者强十倍还是强0.001%,选择概率都会相同。
唯一重要的是与其他个体相对的排名。
当您已经了解轮盘赌选择时,排名选择很容易实现。不使用适应度作为选择概率,而是使用排名。因此,对于N个解决方案的种群,最佳解决方案获得排名N,第二个最佳解决方案获得排名N-1,以此类推。最差的个体排名为1。
可以看出这种算法在编程时非常高效。它也适用于并行架构,并且允许轻松调整选择压力(更改锦标赛中个体的数量)。
当然,这些算法有许多变体。
如果您想进行比较,可以阅读:
简单遗传算法中不同选择策略性能比较(Jinghui Zhong,Xiaomin Hu,Min Gu,Jun Zhang-2005)