首页 理论教育 遗传算法中的交换操作及其影响分析

遗传算法中的交换操作及其影响分析

时间:2023-06-27 理论教育 版权反馈
【摘要】:在遗传算法中,模仿了自然界的交换与变异操作,通过配对个体的交换与变异,产生新一代个体。又如,4点交换时,个体A、B在1、2交换点间的码串及3、4交换点间的码串相互交换,如图9.3.7所示。图9.3.63点交换图9.3.74点交换一般而言,多点交换较少采用。图9.3.8表示了一致交换的屏蔽作用。交换操作对遗传算法的性能及收敛性影响很大,但遗憾的是,至今关于这方面仍无系统而全面的论述。

遗传算法中的交换操作及其影响分析

在自然界中,父体与母体的结合,使各自的遗传基因重组,经过基因的交换与变异,产生新一代。在遗传算法中,模仿了自然界的交换与变异操作,通过配对个体的交换与变异,产生新一代个体。

交换操作应保证前一代个体的优秀性能可以在后一代新个体中尽可能地得到遗传和继承。同时交换操作应与编码设计相互联系起来考虑,使二者能协调工作。以下介绍几种基本的交换操作(以二值编码为例)。

1)一点交换(one-point crossover)

一点交换又称简单交换。具体操作是:在两个个体串中随机设定一个交换点,实行交换。

其中,交换点设置在第4和第5基因座之间,采用交换点后的两个个体的部分码串互相交换(也可以选择交换点前的部分码串相互交换),生成新的个体A'及B'。

当染色体长度为n时,可能有n-1个交换点设置方案,所以一点交换可能有n-1个不同的交换结果。

2)二点交换(two-point crossover)

随机设定两个交换点,在两个交换点之间的码串相互交换,其余保持不变。二点交换举例如下:

在此例中,两个交换点分别设置在第2、3基因座和第6、7基因座之间。A、B两个个体在这两个交换点之间的码串相互交换,分别生成新个体A'和B'。

对两点交换而言,若染色体长度为n位,则可能有(n-2)(n-3)种交换点的设置方案,相应地就可能有(n-2)(n-3)种不同的交换结果。

3)多点交换(multi-point crossover)

这是前述两种交换的推广。例如,3点交换时,个体A、B在前两个交换点之间的码串相互交换,同时在第3点后的码串相互交换,如图9.3.6所示。又如,4点交换时,个体A、B在1、2交换点间的码串及3、4交换点间的码串相互交换,如图9.3.7所示。(www.xing528.com)

图9.3.6 3点交换

图9.3.7 4点交换

一般而言,多点交换较少采用。因为在多点交换时,被保存的结构很少,也就是说,多点交换不能有效地保存某些重要的模式。

4)一致交换(uniform crossover)

一致交换通过设定屏蔽字(mask)来实现。图9.3.8表示了一致交换的屏蔽作用。在进行交换操作时,当屏蔽字中的位为0时,新个体A'继承旧个体A中对应的基因码,当屏蔽字中的位为1时,新个体A'继承旧个体B中对应的基因码,由此生成一个完整的新个体A'。反之,可以生成新个体B'。

图9.3.8 一致交换

显然,一致交换包括在多点交换范围内。

5)其他交换方法

针对不同的问题,还可以提出各种交换方法。如在二维编码中,相对应的就有二维交换。在TSP问题中,还有部分匹配交换(PMX)、顺序交换(OX)和循环交换(CX)等,这些将在专门的TSP问题(9.6节)中讨论。

以上仅讨论了一些交换的基本方法。交换操作对遗传算法的性能及收敛性影响很大,但遗憾的是,至今关于这方面仍无系统而全面的论述。不过交换操作有很大的实用性,许多用一般搜索算法很难收敛的问题,对于基于交换操作的遗传算法而言,反而是收敛很快的、简单可解的问题了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈