一种改进的粒子群遗传算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种改进的粒子群遗传算法
张辉;李辉
【摘要】针对粒子群算法易陷入局部最优,在粒子进化过程中引入交叉和变异操作,提出了一种基于实数编码的改进粒子群遗传算法,大大提升了算法的寻优能力以及收敛速度。
通过对非线性函数进行仿真研究,验证了该算法的优越性。
【期刊名称】《科学家》
【年(卷),期】2016(004)009
【总页数】2页(P26-26,118)
【关键词】局部最优;粒子群算法;遗传算法
【作者】张辉;李辉
【作者单位】中国电子科技集团第二十八研究所,江苏南京210007
【正文语种】中文
【中图分类】TP3
粒子群优化算法[1,2]是一种通过模拟鸟群捕食,通过种群协作找到目标的一种寻优算法。
该算法实现简单,收敛速度快,具有较强的实用性。
但该算法也具有自身的缺点,进化模式较为单一,在全局寻优方面能力较弱,易陷入局部极值,尤其当待求解问题具有多局部极值。
本文提出了一种改进粒子群遗传算法,在粒子进化的过程中,不断进行交叉操作和变异操作,丰富种群进化的多样性,大大提升了算法的寻优能力和收敛速度。
1.1 基本粒子群算法
假设在n 维连续空间,一个由m个粒子组成的群体,其中分别代表具体每个粒子的位置和速度,为每个粒子记录的最优值,gbest为所有粒子当前经过的最优值,粒子群通过不断记忆个体最优值及和群体最优值来不断更新当前的位置和速度,不断向最优值进行靠拢,该算法不断寻优的过程如式(1)(2)所示:
其中,c1和c2为加速因子,ω为惯性权重,r1 ,r2为随机数在[0,1]范围内变化。
1.2 改进的粒子群遗传算法
由于粒子群算法[3]收敛速度快,而遗传算法[4]的交叉操作和变异操作大大提升了种群多样性,本文将交叉变异操作引入粒子群进化,基本流程为:首先依据应用场景产生m 个粒子,随机进化k代后,计算每个粒子的适应度值,依据从大到小的原则将粒子进行排序,将适应度较小的粒子剔除,保留较大适应度值的l个粒子,对其进行选择操作,选择m-l个粒子,并进行交叉变异操作,将这些粒子与最初适应度值最大的l个粒子进行结合,继续寻优,直到寻找到最优解或者达到最大迭代次数。
该算法的具体步骤为:
1)初始化参数设置:种群包含m个粒子,惯性权重ω,最大速度vmax,加速因子c1,c2,变异概率pm,交叉概率pc,每次进化k 代,每次保留l个粒子,最大迭代次数MaxIter ;2)根据应用场景定义对应的适应度函数;3)在解范围内随机产生粒子,共m个,并计算其对应的适应度;4)重复进行k次迭代,不断更新粒子位置以及速度;5)保留适应度值最优的l个粒子;6)对上述的l 个粒子进行复制操作,选出m-l个粒子;7)将复制得到的粒子进行交叉操作,交叉概率设为p;8)将复制得到的粒子进行变异操作,变异概率设为pm;9)通过交叉变异后得到m-l个粒子与步骤5)得到最优的l 个粒子进行混合,得到m个粒子的粒子群体,对粒子继续进行迭代寻优操作;10)如果达到指定输出条件或者最大迭代次数,则算法终止并将当前解输出作为算法的最优解;否则,继续进行步骤
4)。
为了验证提出的改进粒子群遗传算法的有效性,对典型函数进行仿真测试。
通过将改进的粒子群遗传算法与基本粒子群算法进行仿真对比实验,可以较为准确地衡量本文算法的优化性能。
本文选取Rosenbrock函数,如下所示:
以二维的Rosenbrock函数为例,其在空间的直观图如下图所示:
从图1可以看出,Rosenbrock函数的全局极小值点只有一个,很难找到位于抛物线底部的极小值0,对其进行全局优化难度很高。
特别是随着Rosenbrock函数的维度不断增长时,全局寻优的难度也随之越来越难。
为了验证改进粒子群算法的寻优能力,仿真中选取五维Rosenbrock函数进行测试实验,对测试结果多次测试取平均值,初始化40个粒子,每次进化20代,
最大迭代1000代,惯性权重随着进化代数线性递减,其中最大惯性权重设为0.9和最小惯性权重设为0.2。
选取平均误差作为适应度函数如下所示:
其中,代表粒子个数,为预测值,为实际值,即为每个粒子预测值与实际值的误差取平均,也就是平均误差作为判定网络预测能力好坏的标准。
通过将传统PSO算法和改进后PSO算法对Rosenbrock函数非线性逼近能力进行对比实验,在迭代过程中,网络预测的平均误差的趋势图如下图所示。
从图2的逼近误差趋势可以看出,改进后的PSO算法找到了最优解0,并且只用了431代,而传统PSO算法没有找到最优解0,陷入局部最优。
可以看出,改进后的PSO算法比传统PSO算法由于进化多样性,在一定程度上避免陷入局部最优,具有较高的收敛精度,尤其是在处理多极值的问题上。
本文通过对粒子群算法做出深入分析,该算法具有收敛速度快的优点,但由于粒子传递信息较为单一,容易陷入局部最优,故在粒子群进化中,加入变异操作和交叉操作,丰富粒子进化的多样性,在保持粒子群收敛速度的同时,大大提升了粒子群
的收敛精度。
将其用于逼近Rosenbrock非线性函数,通过仿真结果,验证改进后的粒子群算法具有很强的非线性逼近能力以及较快收敛的能力。
【相关文献】
[1]Kennedy J and Eberhar t R C.Par t i c l e swarm optimization[C]//.Proceedings of IEEE International Conference on Neural Networks,1995:1942-1948.
[2]Shi Y, Eberhar t R C. A modi ed par t icle swarm opt imizer[C]//.Proceedings of IEEE International Conference on Evolutionary Computation,1998:69-73.
[3]周明,孙树栋.遗传算法原理及其应用[M].北京:国防工业出版社,1999.
[4]戴晓晖,李敏强,寇纪淞.遗传算法理论综述[J].控制与决策,2000,15(3):263-266.。