遗传算法 - 交叉
在本章中,我们将讨论什么是交叉运算符及其其他模块、它们的用途和好处。
交叉简介
交叉运算符类似于繁殖和生物交叉。在此过程中,选择多个亲本,并使用亲本的遗传物质产生一个或多个后代。交叉通常以高概率应用于 GA - pc 。
交叉运算符
在本节中,我们将讨论一些最常用的交叉运算符。需要注意的是,这些交叉运算符非常通用,GA 设计人员也可以选择实现针对特定问题的交叉运算符。
单点交叉
在此单点交叉中,选择一个随机交叉点,并交换其两个父代的尾部以获得新的后代。
多点交叉
多点交叉是单点交叉的泛化,其中交替交换段以获得新的后代。
均匀交叉
在均匀交叉中,我们不划分将染色体分成片段,而是分别处理每个基因。在此过程中,我们基本上为每个染色体抛硬币来决定它是否将被包含在后代中。我们还可以将硬币偏向一个父母,以便孩子拥有来自该父母的更多遗传物质。
全算术重组
这通常用于整数表示,并通过使用以下公式对两个父母取加权平均值来工作 −
- Child1 = α.x + (1-α).y
- Child2 = α.x + (1-α).y
显然,如果 α = 0.5,那么两个子代将完全相同,如下图所示。
Davis 顺序交叉 (OX1)
OX1 用于基于排列的交叉,目的是将有关相对顺序的信息传递给后代。其工作原理如下 −
在父代中创建两个随机交叉点,并将它们之间的片段从第一个父代复制到第一个后代。
现在,从第二个父代中的第二个交叉点开始,将剩余的未使用数字从第二个父代复制到第一个子代,环绕列表。
对第二个子代重复上述操作,但父代的角色相反。
还有很多其他交叉,如部分映射交叉 (PMX)、基于顺序的交叉 (OX2)、随机交叉、环形交叉等。