📜  字符串操作 (GA) 的变异算法

📅  最后修改于: 2021-10-21 05:25:33             🧑  作者: Mango

遗传算法(GA)是自适应启发式搜索算法,属于进化算法的较大部分。在每一代染色体(我们的解决方案候选者)经历突变和交叉,然后选择产生一个更好的群体,其候选者更接近我们想要的解决方案。变异运算符是一元运算运算符,它只需要一个父级即可。它通过从我们选择的染色体中选择一些基因并应用所需的算法来实现。

在本文中,我将讨论用于字符串操作的五种变异算法——
1) 位翻转突变
2) 随机重置突变
3) 交换变异
4) 加扰突变
5) 反转突变

Bit Flip Mutation 主要用于位字符串操作,而其他的可以用于任何
一种字符串。这里我们的染色体将被表示为一个数组,每个索引将代表一个基因。字符串可以表示为字符数组,而字符数组又是 ASCII 或数值数组。

位翻转突变 —

在位翻转突变中,我们选择一个或多个基因(数组索引)并翻转它们的值,即我们将 1 更改为 0,反之亦然。使用给定的图表可以更好地解释。

随机重置突变 —

在随机重置突变中,我们选择一个或多个基因(数组索引)并用给定范围中的另一个随机值替换它们的值。假设 a[i](数组索引/基因)的范围为 [1, 6] 然后随机重置突变将从 [1, 6] 中选择一个值并用它替换 a[i] 的值。

交换突变 —

在交换突变中,我们从染色体中选择两个基因并交换它们的值。

扰乱突变—

在 Scramble Mutation 中,我们选择我们基因的一个子集并扰乱它们的值。选定的基因可能不是连续的(参见第二张图)。

反转突变 —

在反转突变中,我们选择我们基因的一个子集并颠倒它们的顺序。在这种情况下,基因必须是连续的(见图)。

参考-
1.
http://ijcsit.com/docs/Volume%205/vol5issue03/ijcsit20140503404.pdf
2.https://www.youtube.com/watch?v=FKhgrb2zaMA