genetic-algorithm - 遗传算法 - parent 选择与交叉概率

标签 genetic-algorithm

我阅读了 TutorialsPoint 上的教程和 this question and answer on StackOverflow .但是,我仍然不明白交叉概率在遗传算法的父选择和交叉过程中的含义。

假设我的人口规模为 100,交叉概率为 0.9。这是什么意思?我是否:

  • 精确选择 10 个 parent (因为 90% 的后代应通过杂交产生),或
  • 运行 RNG 100 次,每次 0.9 的概率失败,我选择一个父代?

然后, parent 以某种方式交叉,一些个体发生变异。此时种群是否需要刚好有 100 名成员,还是需要额外选择哪些个体会进入下一代?

最佳答案

正如 Carcingenicate 所提到的,实现可能会有所不同。 0.90 的交叉率表示 90% 的后代或子群体将通过对父解决方案的交叉操作创建。这可能会被实现,使得每代交叉产生恰好 90% 的 child ,或者它可能被概率地实现(就像在 AI_Learning 的例子中所做的那样)。交叉产生的 child 可能也可能不会发生突变。

父解决方案的选择方式也可能有所不同。可能是更适合的 parent 解决方案更有可能被选择来产生后代,而产生的任何后代都将构成下一代的 parent 种群。或者,可以随机选择父解决方案来产生后代。然后对组合的父代和后代种群进行选择,以创建下一代的父代种群。

通常,父代种群总是等于规定的种群大小。然而,有可能产生更多的后代,然后只选择一个子集。或者每一代可能只创建几个后代,每个后代都可能替换父解决方案。一些实现还可能随着时间的推移改变人口规模,可能最初使用大量人口来促进探索,然后随着时间的推移减少人口规模以促进开发。

关于genetic-algorithm - 遗传算法 - parent 选择与交叉概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961193/

相关文章:

java - 同一群体中的重复个体

Javascript:随机绘制 block 状形状(遗传算法)

machine-learning - 如何在输入空间和高维稀疏约束空间之间创建双向映射?

c - 遗传算法、群体初始化

genetic-algorithm - 如何设置 Matlab 遗传算法约束?

r - 从群体中选择最不相似的个体的最佳方法是什么?

algorithm - 遗传算法与matlab如何使用分类精度作为适应度函数

classification - 分类的遗传算法

java - 使用 Jenetics 仅一条染色体显示出良好结果