遗传算法 - 变异


突变简介

简单来说,突变可以定义为对染色体进行小的随机调整,以获得新的解决方案。它用于维持和引入遗传群体的多样性,通常以较低的概率应用 – p m。如果概率非常高,遗传算法就会简化为随机搜索。

变异是遗传算法中与搜索空间“探索”相关的部分。据观察,突变对于 GA 的收敛至关重要,而交叉则不然。

变异算子

在本节中,我们将描述一些最常用的变异运算符。与交叉算子一样,这并不是一个详尽的列表,遗传算法设计者可能会发现这些方法的组合或针对特定问题的变异算子更有用。

位翻转突变

在这个位翻转突变中,我们选择一个或多个随机位并翻转它们。这用于二进制编码的 GA。

位翻转突变

随机重置

随机重置是整数表示的位翻转的扩展。在此,将允许值集中的随机值分配给随机选择的基因。

交换突变

在交换突变中,我们随机选择染色体上的两个位置,并交换值。这在基于排列的编码中很常见。

交换突变

乱序突变

加扰突变在排列表示中也很流行。在这种情况下,从整个染色体中选择一个基因子集,并将它们的值随机打乱或改组。

乱序突变

倒位突变

在反转突变中,我们像打乱突变一样选择基因的子集,但我们不是对子集进行洗牌,而是仅仅反转子集中的整个字符串。

倒位突变