【问题标题】:What is meant by (non-) uniform mutation in genetic algorithms?遗传算法中的(非)统一变异是什么意思?
【发布时间】:2017-02-15 10:24:30
【问题描述】:

为了准备一个项目,我一直在研究遗传算法的文献。在研究突变时,我经常遇到术语“统一突变”和“非统一突变”。

Wikipedia将统一和非统一突变突变解释为“类型”:

Uniform Mutation:此运算符将所选基因的值替换为在用户指定的该基因的上限和下限之间选择的统一随机值。该变异算子只能用于整数和浮点基因。

非均匀变异:使用非均匀变异算子增加了下一代变异量为0的概率。它可以防止人口在进化的早期阶段停滞不前。它在进化的后期调整解决方案。该变异算子只能用于整数和浮点基因。

A powerpoint presentation关于遗传算法的主题解释了浮点突变上下文中的统一突变:

xi' 是从 [Lower bound, Upper bound] 随机(均匀)绘制的。它类似于二进制字符串的位翻转或整数字符串的随机重置。

The MathWorks documentation 将统一突变解释为:

统一变异是一个两步过程。首先,该算法选择个体的一小部分向量条目进行突变,其中每个条目都有一个被突变的概率。速率的默认值为 0.01。在第二步中,算法将每个选定的条目替换为从该条目的范围中统一选择的随机数。

根据 MathWorks 对统一为“随机”的解释,我找到了 this 源,它甚至没有命名统一或非统一突变。

但是,没有提供关于它实际上是什么的信息。我不确定它是否是遵循某些属性的某些方法的总称,或者它本身是否是一种方法,就像维基百科所说的那样。 我找不到任何将该术语作为方法的真实演示。但我也找不到该术语作为总称的任何定义。由于一位消息人士称它类似于位翻转,我不确定。

在遗传算法的上下文中,均匀和非均匀突变是什么意思?使用这些方法或术语的例子是什么?

【问题讨论】:

    标签: genetic-algorithm


    【解决方案1】:

    均匀突变 - 随机选择一定百分比的基因,例如 1%,并将它们设置为随机值,并在整个程序中以相同的速率执行此操作。

    非均匀突变 - 任何其他方案,但通常您要么随着种群变得更健康而降低突变率(因此在几千代后突变 0.1% 的基因),或者随着时间的推移使突变更小(因此添加或减去一两个位置,而不是设置为随机)。

    【讨论】:

    • 谢谢!您对非均匀变异的解释非常清楚,尽管我仍然对均匀变异有疑问;一定比例的基因是什么意思?例如,1% 是否意味着我们从一个基因的 60 位中随机选择 6 位并随机化它们的值?在整个程序中,你的意思是总是有 6 个相同的基因被随机化(例如 bit 1, 4, 5, 8 ,9 and 11),还是每次只有 6 个随机基因?最后;它们是方法还是只是笼统的术语?如果问题已更新以反映此反馈,我可以接受您的回答。
    • 这是个好问题。如果我们的模拟单元是 64 位双精度,那么我们应该将基因视为 1 个单元并将其设置为 Min-Max 上的随机值,还是应该将其视为 64 位向量?对此没有答案,尽管在第二种情况下,突变率显然需要降低约 64 倍。但是,您在每次传递中随机分配不同的基因。
    猜你喜欢
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2015-03-01
    • 2017-10-10
    • 1970-01-01
    • 2023-03-27
    • 2013-11-02
    • 1970-01-01
    相关资源
    最近更新 更多