遗传算法中的变异算子的述评
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法中的变异算子的述评
【摘要】遗传算法中的变异算子是必不可少的产生新个体的辅助方法。本文首先简单介绍传统的变异算子,既而结合文献分析和讨论改进的变异算子,并展望其未来研究方向,为遗传算法中变异算子的进一步发展提供参考。
【关键词】遗传算法;变异算子;早熟
0引言
遗传算法于1969年由美国Michigan大学的Holland教授提出后,在保持其基本框架的基础上,许多学者提出了不同的改进方法,如自适应遗传算法、混沌遗传算法、量子遗传算法、混合遗传算法等。但算法的改进和问题本身相关,并且遗传算法的基础理论仍未根本解决,在进行算法改进时缺少理论的指导,所以改进的算法没有普遍的适用性。虽然遗传算法有自身的不足,但因其具有较强的鲁棒性,在如金融,自动控制,模式识别,组合优化,故障诊断等领域都有成功的应用。
在遗传算法中,变异算子通过模拟生物遗传和进化过程中的变异环节对个体进行变异,虽然发生变异的可能性比较的小,但也是产生新物种的一个不可忽视的原因[1]。通过变异不断在交叉算子产生的新个体的基础上进行微调、增加种群的多样性、使遗传算法在交叉算子决定的全局搜索能力的基础上还具有一定的局部搜索能力。变异算子被认为是必不可少的产生新个体的辅助方法,文献[2]认为变异算子能够成为一个重要的遗传算子,特别体现在维持种群的多样性问题上。正是变异算子在遗传算法中的不可或缺性,本文在总结相关文献资料的基础上,从不同角度对变异算子的改进进行讨论,并展望其发展方向,为遗传算法中变异算子的进一步发展提供参考。
1变异算子的发展
简单遗传以初始种群为基点,经过选择、交叉、变异操作生成新的种群,如此更新种群直到满足终止条件。遗传算法中变异算子的具体操作是以变异概率Pm用新的基因值替代原有的基因值,产生新的个体。变异算子对个体编码串的基因做了局部的改变,维持种群的多样性,这样有利于防止出现早熟现象。
1.1传统的变异算子
用遗传算法求解问题时,对于变异算子的选择首先会考虑已有的成熟的变异算子。几种常用的变异算子主要有基本位变异、均匀变异和高斯变异等。
1.1.1基本位变异是指对个体的每一个基因座,依变异概率Pm指定其为变异点,对变异点的基因值进行反转或用其他等位基因值来代替。
1.1.2均匀变异操作是指分别用符合某一范围内均匀分布的随机数,以某一较小的概率替换个体编码串中各个基因座上的原有基因值。
1.1.3高斯变异操作是指进行变异操作时,用符合均值为μ、方差为σ的正态分布的一个随机数来替换原有基因值。
还有如边界变异、非均匀变异等等,这里不赘述了。可以看出变异算子的设计会涉及变异点位置的确定和基因值的替换两个方面。这两个问题的解决与编码及所解决的问题是密切联系的。上述的变异算子对多值编码都适用,但考虑问题的特殊性,变异算子又不能一概简单进行操作。如对TSP问题,若用数字代表城市,如用52134编码串表示5个城市的一种旅行路线。因问题本身要求城市不能重复出现,这使得变异时不能通过对基因座上的基因值进行替换来实现。出现
了如倒位变异和交换变异等变异算子。倒位变异是指将随机选取的两个基因座之间的基因进行逆序排序。变换变异是指对于随机选取的基因座之间的基因值进行交换。
1.2改进的变异算子
在成熟的传统变异算子的基础上不少学者做了大量的研究和探索,从理论,克服早熟现象和应用等方面提出了许多改进方法,有效提高遗传算法的性能。
1.2.1变异算子在理论方面的研究
变异算子在理论方面的深入研究不多,文献[3]给出了基于模式定理的变异概率上限确定公式,由公式可知,可以通过选择适当的变异概率,使得某模式所含个体数目经过选择、交叉和单点变异等操作后得到增长。文献[4]提出了基于位变异的模式遗传算法。直接把模式作为个体,使用的编码策略本质上比SGA 的编码策略更加直接。并对其收敛性进行了分析。
1.2.2变异算子在克服早熟现象上的改进
对变异算子的改进主要是针对遗传算法的局部搜索能力较弱及存在早熟现象,许多研究者提出了许多改进的方法,下面对此做个总结。
文献[5]提出基于细分变异算子的遗传算法。将变异算子细分为最优调教算子和大步前进算子两种算子的形式。文献[6]提出了一种新的改进遗传算法双变异算子遗传算法。通过将所有产生的子代个体与父代个体混合作为下一代种群,在种群选择前对适应度值较低的个体进行一次变异,然后通过选择、交叉,再一次变异产生新种群,再利用自适应算法改变交叉和变异率及最优保存策略保护历代最优个体,双变异算子的遗传算法能够最大限度使种群多样性,这样最有可能得到最优解,也易突破局部收敛的局限而达到全局最优。文献[7]提出了一种双变异率的改进遗传算法。在进化过程中,引入广义海明距离这个概念,当由广义海明距离控制的交叉操作产生个体数不足种群规模时,对原种群进行局部小变异,这样在避免近亲繁殖的同时又可扩大搜索空间,增加种群多样性,有效地抑制了早熟收敛;随后进行的全局大变异保证整个过程全局收敛。文献[8]提出了一种基于位变异的防止遗传算法过早收敛的算法。该算法通过种群熵来判断过早收敛的发生。当发生过早收敛时,在单调系数的指导下进行有针对性的位变异,从局部最优解的范围内摆脱出来,算法重新具有进化能力。文献[9]提出一种采用新的解码方案的动态变异遗传算法。文献[10]根据个体适应度不同对变异概率进行自适应调整,使群体中的优良模式不易被破坏,同时又保证了种群个体的多样性,从而提高了算法的搜索效率。算法中改变了交叉与变异的操作顺序,避免了个体适应度的重复计算,提高运行速度。文献[11]提出了一种将强制变异、最佳解保留和自适应交叉变异参数调整相结合的改进遗传算法。这种方法将进化过程中群体的平均适应度与最大适应度进行比较,以确定是否需要对群体实施强制变异或采用自适应交叉、变异概率调整。这种方法可有效地克服早熟现象,提高全局优化能力。1.2.3变异算子在TSP的改进组合优化问题是遗传算法通常解决的应用问题,TSP是典型的组合优化问题,属于NP难问题。其变异算子的设计有其特殊性,有学者在这方面也做了相应的研究。
文献[12]通过分析TSP问题的特征,结合以减少周游路线中交叉边为启发式信息,引入了一个遗传算法中新的变异策略用于TSP求解。该变异策略能够引导算法通过有指导性的变异更快地收敛到更好的解。文献[13]也在遗传算法解决tsp问题中进行了改进。提出多步强化变异,其是在单步强化变异策略的基础