遗传算法 - 交叉

在本章中,我们将讨论什么是交叉运算符及其其他模块、它们的用途和好处。

交叉简介

交叉运算符类似于繁殖和生物交叉。在此过程中,选择多个亲本,并使用亲本的遗传物质产生一个或多个后代。交叉通常以高概率应用于 GA - pc

交叉运算符

在本节中,我们将讨论一些最常用的交叉运算符。需要注意的是,这些交叉运算符非常通用,GA 设计人员也可以选择实现针对特定问题的交叉运算符。

单点交叉

在此单点交叉中,选择一个随机交叉点,并交换其两个父代的尾部以获得新的后代。

单点交叉

多点交叉

多点交叉是单点交叉的泛化,其中交替交换段以获得新的后代。

多点交叉

均匀交叉

在均匀交叉中,我们不划分将染色体分成片段,而是分别处理每个基因。在此过程中,我们基本上为每个染色体抛硬币来决定它是否将被包含在后代中。我们还可以将硬币偏向一个父母,以便孩子拥有来自该父母的更多遗传物质。

均匀交叉

全算术重组

这通常用于整数表示,并通过使用以下公式对两个父母取加权平均值来工作 −

  • Child1 = α.x + (1-α).y
  • Child2 = α.x + (1-α).y

显然,如果 α = 0.5,那么两个子代将完全相同,如下图所示。

Whole Arithmetic Recombination

Davis 顺序交叉 (OX1)

OX1 用于基于排列的交叉,目的是将有关相对顺序的信息传递给后代。其工作原理如下 −

  • 在父代中创建两个随机交叉点,并将它们之间的片段从第一个父代复制到第一个后代。

  • 现在,从第二个父代中的第二个交叉点开始,将剩余的未使用数字从第二个父代复制到第一个子代,环绕列表。

  • 对第二个子代重复上述操作,但父代的角色相反。

Davis 顺序交叉

还有很多其他交叉,如部分映射交叉 (PMX)、基于顺序的交叉 (OX2)、随机交叉、环形交叉等。