【问题标题】:How do I determine the amount of genes that are mutated using a mutation operator?如何确定使用突变算子突变的基因数量?
【发布时间】:2017-03-07 12:14:22
【问题描述】:

我熟悉变异技术并在我的项目中实现了一些,但是我从来没有真正知道在实现变异算子时应该变异多少基因。我们以边界突变为例;我们随机选择一个基因并将其替换为该基因的下限或上限。

但是,我不确定我应该只突变 1 个基因,还是突变更多基因。因此,我想到了两种我认为可行的策略:

  1. 为每个基因分配一个随机概率,以确定是否 基因会发生突变。为每个基因掷骰子,如果出现则对其进行突变 落在概率之内。然后停下来继续下一个 染色体。
  2. 随机选择一个基因并对其进行突变。然后停下来继续 下一条染色体。

我的方向是否正确?什么时候我应该更喜欢一种策略而不是另一种?还是有另一种方法来确定要突变的基因数量?还是针对特定问题?

【问题讨论】:

  • 我现在实际上正在写一个 GA,我选择了选项 1;基本上。选项 2 的问题是你有一个由染色体长度决定的恒定突变率。如果它有 5 个基因长,那么你就有 1/5 的机会发生基因突变。
  • 我只是害怕使用选项 1 会导致野生突变而不是细微突变,因为在最坏的情况下所有基因都会发生突变。但是,我只能通过细微的突变来控制四肢。感谢您的意见!
  • 我现在使用的突变率大约为 0.1%,因此不太可能发生野生突变。
  • 你的意思是你对所有基因使用 0.1% 的概率,它们会发生突变?或者将其用作甚至启动突变程序的概率?然后计算每个基因突变的概率。
  • 每个基因有 0.1% 的几率(大约)发生突变。每一代,每条染色体的每个基因都有机会发生突变,我允许突变的基因成为任何可能的基因,而不仅仅是极端。不是说我的方法是正确的,而是我一直在使用的。

标签: genetic-algorithm mutation


【解决方案1】:

我从来不知道应该突变多少个基因......

没有人知道。没有最佳的突变率/方案。

还有其他方法吗

是的,有很多很多方法。事实上,您可以随时更改突变率或方案。没有人会阻止你!

一般来说,你可以有一个动态的突变率,恕我直言。

什么时候我应该更喜欢一种策略而不是另一种?

探索与开发之间存在自然的权衡。探索性突变率高,开发性低。你选。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2018-07-27
    • 2019-02-08
    • 2019-05-23
    相关资源
    最近更新 更多