如何确定使用变异算子发生变异的基因数量?

How do I determine the amount of genes that are mutated using a mutation operator?

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

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

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

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

I have never really known how many genes should be mutated...

没有人知道。没有最佳突变rate/scheme。

is there another way

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

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

When should I prefer one strategy over the other?

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