基于两阶段变异交叉策略的差分进化算法.pdf
基于两阶段变异交叉策略的差分进化算法
张大斌1,2,江华1,徐柳怡1,张文生2
【摘要】摘要:针对差分进化算法存在的收敛速度慢、稳健性差等问题,借鉴
多种变异优化策略,提出一种基于两阶段不同变异交叉策略的差分进化算法。
引入反向混沌搜索的初始化方法,将初始种群分为较好和较差2个子种群,两
阶段依次对上一阶段改进的较好和较差2个子种群采用不同的差分进化策略,
并定期将较好和较差2个子种群重新按适应值排列组合进入下一阶段,以提高
种群的质量,同时克服单一差分策略的缺陷。函数仿真结果表明,与其他差分
进化算法相比,该算法的收敛速度和寻优精度均得到明显改善。
【期刊名称】计算机工程
【年(卷),期】2014(040)008
【总页数】7
【关键词】关键词:差分进化;差分策略;反向学习;混沌搜索;两阶段变异交叉;函数
优化问题
1概述
差分进化(DifferentialEvolution,DE)算法是由RainerStoorn和Kenneth
Price[1]在1995年共同提出的,它是一种简单、快速、基于全局的并行直
接搜索优化算法。其原理简单、鲁棒性强、受控参数少、易于实现。由于差分
进化算法对函数的可导性甚至连续性要求较低,近年来被广泛地应用于解决复
杂的、离散的、非线性的优化问题,且具有良好的效果。DE与传统的遗传算法
(GA)不同,它采用实数编码、基于简单变异交叉操作和一对一的贪婪竞争生存
策略,同时保有独特的记忆能力进行动态搜索,并可以不断调整其搜索策略,
最后使种群个体趋于一致。标准的DE算法在低维度函数寻优问题上能够使种
群收敛于全局最优解,并且寻优速度快、求解质量高。但是在求解高维度、多
峰值这些复杂函数问题过程中,很容易出现早熟现象,即算法经过多次迭代之
后,个体间的差异变小,种群多样性降低并陷入局部收敛;后期收敛速度较慢并
且缺乏稳健性。此外,在差分进化模式和参数取值上缺乏普遍的指导原则。为
了提高差分进化算法搜索和开发能力及算法的收敛速度,许多学者对标准的DE
算法进行了一些研究和改进。如文献[2]提出一种基于DE算法和NSGA-Ⅱ
的多目标混合进化算法,确保最优解不会丢失并保证解的多样性。文献[3]提
出一种带基向量种群的改进差分进化算法,通过缩小基向量选择范围减少迭代
次数。文献[4]在DE算法中引入搜索空间扩展机制,有效增强了算法的全局
收敛能力,该算法在解决线性系统最优近似问题时有一定的优势;文献[5]提
出一种基于适应性步长的局部搜索策略来确定合适的缩放比例因子F,从而加
速算法全局搜索的进程;文献[6-8]采用反向学习方法初始化种群和实现个体
跳变以加快算法的收敛速度。
本文将两阶段变异交叉策略引入到差分进化算法中,提出了一种改进的差分进
化算法。该算法采用反向混沌搜索产生初始个体种群,进而根据种群适应值将
个体种群分为好个体子种群和坏个体子种群,两阶段变异交叉操作依次对不同
的子种群采取不同的差分策略,借助种群内个体的知识学习能力,使种群内全
局搜索寻优信息和局部搜索寻优信息协同在种群间稳定扩散,以达到平衡搜索
开发能力和加快收敛的目的,从而提高算法的收敛速度、稳健性和通用性。
2差分进化算法
差分进化算法(DE)和传统的遗传算法(GA)相似,通过交叉、变异和选择3种策
略对候选种群进行反复的迭代,最终趋于全局最优解。但与其他进化算法不同
的是,DE是借助种群个体间不同粒子间的加权差异向量来对另一个体进行扰动
实现变异操作,以产生新差异向量,种群中的每个个体都要进行干扰。接下来
对父代个体和生成的变异个体按照一定的交叉概率进行交叉操作生成中间个体;
最后采用贪婪淘汰策略在父代个体和中间个体之间进行适应度一对一比较选择
操作,选择具有更佳适应度的个体作为下一代迭代种群。基本差分进化算法的
主要操作如下[9]:
(1)种群初始化,定义参数向量个体:
式(1)表示的是第g次迭代的第i个个体,随机产生的种群规模为NP,每个个
体均有D个分量。在可行域内依据式(2)随机产生初始种群:
其中,xmax,j,xmin,j分别是xi个体中第j个分量的上下限;randi,j(0,1)
为[0,1]区间的一个随机数。
(2)变异操作,对种群中的每个目标向量xgi,随机寻找除自身外3个不同的个
体r1,r2,r3(此时需满足NP≥4),根据式(3),将其中2个个体的向量差经缩
放后加到另一个体上,得到变异后的个体
其中,F