【问题标题】:Implementing the mutation rate in a genetic algorithm在遗传算法中实现突变率
【发布时间】:2018-01-29 08:53:52
【问题描述】:

给定一个数组,例如

[1, 4, 6, 1, 10, 3, 24, 1]

假设我想实现 0.2 的突变率。我会:

  • 总是对我的数组条目的 20% 进行变异,或者
  • 改变 0-20% 的条目?
  • 每 20% 的时间对数组进行迭代和变异

从文献中我不清楚这是如何处理的 - 或者是否有公认的标准。

注意 - 我是一名参与 GA 的编码员,所以请耐心等待我缺乏 GA 知识的深度。

谢谢

【问题讨论】:

  • 我已经为旅行商问题做了一个遗传算法,但我不记得有任何参数标准。 AFAIK,你可以让它成为你想要的任何东西。
  • 这是我的想法。我正在查看他们执行范围的一些代码,但不确定它是否是标准的。我想试图将“20% 概率”的概念编入法典。
  • 没错,没有标准方法,因为“最佳”方法取决于问题空间。尝试每种方法,看看哪种方法最适合您的问题。
  • 好的。感谢您的输入
  • explanation的突变率效应。

标签: genetic-algorithm


【解决方案1】:

当我开始学习遗传算法时,我也不确定这一点。我决定最好给每个基因 x% 的机会发生突变(完全改变)。在您的情况下,我将遍历数组,并且每当 Math.random() 小于 0.2 时,我会将当前数字设置为新的随机数字。

如果您发现自己没有获得足够的多样性,您还可以添加一两个完全随机的个体(我喜欢称他们为“外国人”,因为他们没有任何共同的祖先)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 2016-11-04
    • 2014-02-07
    • 2014-10-02
    • 2020-08-04
    • 2015-06-25
    • 2011-09-10
    • 2011-02-22
    相关资源
    最近更新 更多