如何确定使用变异算子发生变异的基因数量?
How do I determine the amount of genes that are mutated using a mutation operator?
我熟悉变异技术并在我的项目中实现了一些,但是我从来不知道在实现变异算子时应该变异多少基因。让我们以边界突变为例;我们 select 一个随机的基因,并将其替换为该基因的下限或上限。
但是,我不确定我是应该只突变 1 个基因,还是突变更多基因。因此,我想到了两种我认为可行的策略:
- 为每个基因分配一个随机概率,以确定
基因会发生突变。为每个基因掷骰子,如果
降落在概率之内。然后停下来继续下一个
染色体.
- 随机选择一个基因并对其进行变异。然后停下来继续
下一条染色体。
我的方向对吗?什么时候我应该更喜欢一种策略而不是另一种策略?还是有其他方法可以确定要突变的基因数量?还是特定问题?
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?
探索与开发之间存在自然的权衡。探索是高突变率,开发是低。你选。祝你好运!
我熟悉变异技术并在我的项目中实现了一些,但是我从来不知道在实现变异算子时应该变异多少基因。让我们以边界突变为例;我们 select 一个随机的基因,并将其替换为该基因的下限或上限。
但是,我不确定我是应该只突变 1 个基因,还是突变更多基因。因此,我想到了两种我认为可行的策略:
- 为每个基因分配一个随机概率,以确定 基因会发生突变。为每个基因掷骰子,如果 降落在概率之内。然后停下来继续下一个 染色体.
- 随机选择一个基因并对其进行变异。然后停下来继续 下一条染色体。
我的方向对吗?什么时候我应该更喜欢一种策略而不是另一种策略?还是有其他方法可以确定要突变的基因数量?还是特定问题?
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?
探索与开发之间存在自然的权衡。探索是高突变率,开发是低。你选。祝你好运!