浅谈粒子群算法改进方法【摘要】本文介绍了粒子群算法的基本概念及粒子群算法的训练过程,分别从基本进入、改变惯性因子、改变收缩因子三个方面对其进行优化改进。【关键词】粒子群;进化方程;惯性因子;收缩因子1.粒子群算法综述二十世纪九十年代,美国的社会心理学家JamesKennedy和电气工程师Russell通过对自然界的鸟群进行觅食的行为进行观察和研究,提出了模仿鸟群行为的新型群体智能算法——粒子群(ParticleSwarmOptimization,PSO)算法。粒子群算法与其它进化类算法十分相似,同样也是采用“群体”与“进化”的概念,同样也是依据粒子的适应值大小进行操作。而与之不同的是,粒子群算法不像其它进化算法那样,对于每个个体使用进化算子,而是将每个个体看作是在一个n维搜索空间中的没有重量没有体积的微粒,并在搜索空间中以一定的速度进行飞行。该飞行速度这个个体的飞行经验和群体的飞行经验来进行动态的调整。2.粒子群算法实现的步骤这里将基本粒子群算法的训练过程描述如下:(1)首先将初始化方程作为依据,将该粒子群体的随机位置和速度进行初始化设置;(2)计算粒子群中每个粒子的适应度值;(3)将该粒子群中每个粒子的适应值与其经历过的最好位置Pi的适应值进行比较,如果好,将它作为当前的最好位置;(4)将该粒子群体中每个粒子的适应值与所有粒子经历的最好位置Pg的适应值进行比较,如果好,将它作为当前的全局最好位置;(5)以粒子群进化方程为依据,进化粒子的速度及位置;(6)如果没有达到设置的结束条件或达到一个设置的最大迭代次数,则返回到第二步,否则结束。3.粒子群算法进化方程的改进3.1基本粒子群算法进化方程的分析本文中我们将基本粒子群算法的基本形式描述如下:(1)(2)在这个进化方程中用Pi来表示第i个粒子所经历过的最好位置,用Pg来表示在所有粒子中经历的最好位置,c1、c2为常数,为均匀分布的一组随机数值。为了方便研究和分析基本粒子群算法,我们这里将(1)式改写成下面的形式:(3)在这种形式中:(4)(5)(6)在式子3中我们可以看出,我们这里将粒子群算法的进化方程分成了三个部分:第一部分为原有的速度项;第二部分与第三部分分别为在原有的速度项基础上做的调整。在这里,第二部分则描述粒子历史最好位置对当前位置的影响程度,而第三部分刚描述的是整个粒子群体的历史最好位置对当前位置的影响程度。为了更好的分析G1、G2、G3这三部分分别对粒子群搜索能的影响,首先,我们将式子3改写成:(7)在式子3.7中,这里只保留该粒子群进化方程的第一项,这时粒子的速度将保持不变,沿着一个方向一直飞,一直飞到边界为止。因此,粒子很难找到比较优化的解。然后我们接着将式子3改写为:(8)在这个式子中,我们保留了粒子群基本进化方程中的第二项和第三项,这时粒子的速度只受粒子历史的最优位置和该粒子群体的历史最优位置的影响,直接导致无法对粒子的速度进行记忆。对于基本的粒子群算法进化方程而言,它具有全局搜索的能力,即方程中的第一项是用来保证全局搜索能力的,通过以上分析,我们可以得出粒子群速度的进化方程的第一项用来保证全局收敛能力,而第二项与第三项用来保证局部收敛性能。3.2带有惯性因子的改进粒子群算法将粒子群算法应用到不同的问题中,确定局部搜索能力与全局搜索能力的比例关系,是求解过程中一个重要的问题,有时对于同一个问题,其进化过程中也伴随着不同的比例关系,因此,在这里提出了带有惯性权重的改进粒子群算法进化方程为:(9)(10)当式9中的惯性权重w=1时,式子9与式子1相同,也就是说基本粒子群算法为带惯性权重的粒子群算法的特殊形式。文献中建议我们这里的惯性权重w的取值范围在0到1.4之间,但经过多次实验结果表明,当w的取值范围在0.8到1.2之间时,粒子群算法的收敛速度是最快的,而当w的取值大于1.2时,粒子群算法往往出现陷入局部极值的情形。惯性权重w类似于模拟退火中的温度,较大的w会得到较好的全局收敛能力,较小的w会得到较好的局部收敛能力。所以,随着迭代次数的增加,惯性权重w的取值应该呈现不断减小的趋势,只有这样才能使粒子群算法在进化初期具有较强的全局收敛能力,后期具有较强的局部收敛能力,在文献中提出,惯性权重w应满足以下表达式:(11)这里称之为最大的迭代次数,惯性权重w为迭代次数t的函数,可在0.9到0.4之间进行线性递减,通过对四个测试函数的测试结果来看,效果非常好。3.3带有收缩因子的粒子群算法进化方程在Clerc的研究文献中,提出了收缩因子的概念,并描述了、c1和c2值的选取方法,用以确保粒子群算法的收敛。运用这种方法来控制各项参数,就不必将vij的取值范围控制在-vmax到vmax之间,首先讨论一个收缩因子的粒子群算法相关的收敛模式的特例。(12)在这个式中的x为,且,。设c1=c2=2.05,将代入上式中,得出:再代入式12中,同时省略参数t,可得到结果为:(13)再进行计算可得:(14)这个方程式与改进的PSO速度更新方程式中使用c1=c2=1.4962和w=0.7298所得到的方程式等价。4.总结本文介绍了粒子群的基本概念及其基本算法,可看出粒子群算法的进化方程可分成三个部分,基本速度项、粒子历史最好位置对当前位置的影响程度、整个粒子群体的历史最好位置对当前位置的影响程度,介绍了三种粒子群算法进化方程的改进方法及其优缺点。参考文献[1]袁曾任.神经网络原理及其应用[M].北京:清华大学山版,1999.[2]曾建潮,梁艳春.群智能优化算法理论与应用[M].北京:科学出版社,2009.