selection - 如何在遗传算法中执行基于等级的选择?

标签 selection genetic-algorithm stochastic roulette-wheel-selection

我正在实现一个小型遗传算法框架 - 主要供私有(private)使用,除非我设法做出合理的事情,届时我会将其作为开源发布。现在我专注于选择技术。到目前为止,我已经实现了轮盘赌选择、随机通用采样和锦标赛选择。我列表中的下一个是基于排名的选择。与我已经实现的其他技术相比,我在查找有关该方面的信息时遇到了一些困难,但这是我迄今为止的理解。

  1. When you have your population from which you want to get reasonable parents for the next round, you first go through it and divide the fitness of each individual by the total fitness in the population.

  2. Then you use some other selection technique (such as roulette wheel) to actually determine whom to select for breeding.



它是否正确? 如果是这样,我是否认为排名调整是一种预处理步骤,然后必须遵循一个实际的选择程序来挑选候选人?如果我对此有任何误解,请纠正我。我很感激任何额外的指示。

最佳答案

您所描述的是轮盘赌选择,而不是等级选择。要进行排名选择,而不是根据每个候选人的适应度得分来加权,而是根据其“排名”(即最佳、第二佳、第三佳等)对其进行加权。

例如,您可以给第一个权重 1/2,第二个权重 1/3,第三个权重 1/4,等等。或者最差的权重为 1,第二个最差的权重为 2,等等

重要的一点是不考虑绝对或相对适应度分数,只考虑排名。所以最好的比第二好的更有可能被选中,但是无论最好的得分是第二好的分数的十倍,还是只有稍高的分数,两者被选中的概率都是相同的。

关于selection - 如何在遗传算法中执行基于等级的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290831/

相关文章:

python - 如何使用defaultdict选择python tkinter列?

javascript - Firefox 选择文本范围

algorithm - 遗传算法的最优参数

Java - 无法从 JComboBox 获取所选项目

algorithm - 轮盘赌选择和基于排名的选择之间的差异

python - 如何使用轮盘赌选择 parent ?

filter - 卡尔曼滤波器与指数滤波器

algorithm - 如何在高度不确定的系统上运行MCTS?

moving-average - 带有两个指标的 pine 脚本,一个覆盖在图表上,另一个单独显示?

excel - 64 位与 32 位 Excel 中的 double