基于收缩因子的改进粒子群算法
- 格式:doc
- 大小:181.00 KB
- 文档页数:6
对粒子群优化算法的改进及应用作者:张帆来源:《科教导刊》2010年第21期摘要本文首先给出了粒子群优化算法(Particle Swarm Optimization,即PSO)的概念及算法原理,然后对分析了其研究现状,并详细阐述了其算法的改进及应用,最后将PSO与其他算法进行比较。
关键词粒子群优化算法 PSO 群体遗传算法中图分类号:TP39文献标识码:A0 绪论在鸟群、鱼群和人类社会的行为规律的启发下,由Kennedy和Eberhart在1995年提出的一种基于群智能(Swarm Intelligence)的演化计算技术,即粒子群优化算法(Particle Swarm Optimization,即PSO)。
粒子群优化算法的基本思想是群体模型,这个群体模型是模拟鸟类的群体行为得到的。
1 PSO算法原理粒子群优化算法中,粒子群由个粒子组成,每个粒子的位置代表优化问题在D维搜索空间中潜在的解。
根据各自的位置,每个粒子用一个速度来决定其飞行的方向和距离,然后通过优化函数计算出一个适应度函数值(fitness)。
粒子是根据如下三条原则来更新自身的状态:(1)在飞行过程中始终保持自身的惯性;(2)按自身的最优位置来改变状态;(3)按群体的最优位置来改变状态。
此算法是基于群体智能理论的优化算法的思想,群体中粒子具有记忆能力,它们相互合作与竞争,这样会产生群体智能指导优化搜索方式,并在搜索过程中进行调整。
2 PSO算法研究现状PSO算法一经提出,就吸引了学术界众多学者的广泛重视,目前已经成为一个研究热点,关于PSO算法应用研究的各种成果不断涌现。
专家研究此算法主要是因为其具有许多优点,如算法收敛速度快,设置参数少,使用的是高效的并行搜索算法等。
其研究现状包括两方面:算法的改进和应用。
2.1 算法的改进粒子群优化算法具有如下优点,如:(1)收敛速度快;(2)实现能力强;(3)易于理解;(4)使用过程中需要调整的只是少量参数,但自身也存在不足。
一种改进的粒子群优化算法作者:金丽兰王志刚夏慧明来源:《价值工程》2013年第23期摘要:粒子群优化算法是由Kennedy和Eberhart[1,2]在1995年提出的一种基于群体智能的随机进化算法,是在鸟群、鱼群和人类社会行为规律的启发下提出来的。
针对粒子群优化算法容易陷入局部极小的缺陷,对粒子群优化算法的速度进化公式进行改进,将粒粒子行为基于个体极值和全局极值变化为基于个体极值的加权平均、全局极值和按概率选择其它粒子的个体极值。
新算法更符合生物的学习规律,使得粒子充分利用整个种群的信息,保证了群体的多样性。
Abstract: Particle swarm optimization algorithm is proposed by Kennedy and Eberhart[1,2] in 1995, which is a stochastic evolutionary algorithm based on swarm intelligence and is inspired by birds, fish and human social behavior. Aiming at the defect that particle swarm optimization algorithm is easy to fall into local minimum, the speed of evolution equation of particle swarm optimization algorithm is improved, the particle behavior of individual extremum and global extreme changing into individual extremum based on weighted average, the global extremum and other particles chosen by probability. The new algorithm is more consistent with the laws of biological learning, making full use of the information of the whole population of particles and ensuring the diversity of the group.关键词:粒子群优化算法;群体智能;进化计算Key words: particle swarm optimization;swarm intelligence;evolutionary computation中图分类号:TP301.6 文献标识码:A 文章编号:1006-4311(2013)23-0235-020 引言算法收敛近年来受到学术界的广泛重视,主要是由于它的速度快、设置参数少、实现简单,现在,粒子群优化算法在模糊系统控制、模式分类、神经网络训练、函数优化以及其它工程领域都得到了广泛的应用。
一种改进的粒子群算法
白艳敏
【期刊名称】《科技信息》
【年(卷),期】2012(0)5
【摘要】粒子群算法是一种新型的智能优化技术,该算法程序实现简单,可调整的参数少.本文针对粒子群优化算法易早熟收敛陷入局部极值的事实,对粒子群优化算法的惯性权重进行适当改进.数值仿真结果说明该算法是非常有效的.
【总页数】2页(P40-41)
【作者】白艳敏
【作者单位】兰州交通大学数理与软件工程学院甘肃兰州 730070
【正文语种】中文
【相关文献】
1.一种改进的粒子群算法
2.一种改进的粒子群算法在云计算资源中的研究
3.一种改进的粒子群算法在WSN中的定位研究
4.一种改进的粒子群算法研究
5.一种改进的粒子群算法的优化
因版权原因,仅展示原文概要,查看原文内容请购买。
改进的粒子群优化算法的研究作者:马洁荣,任淑萍来源:《科技创新与生产力》 2017年第9期摘要:针对粒子群优化(PSO)算法易于陷入局部最优、早熟而造成求解成功率不高的问题,笔者在现有粒子群优化算法的基础上,提出了一种具有快速收敛的改进算法——瑞利分布的粒子群优化(RPSO)算法,利用RPSO算法对经典函数优化问题进行性能测试,并对比了RPSO算法与标准粒子群优化(PSO)算法和高斯分布的粒子群优化(GPSO)算法,仿真结果表明,RPSO算法的收敛速度和计算精度都优于其他两种算法,RPSO算法提高了运算效率,有效地避免了早熟现象的发生,并在迭代后期能更精确地找到测试函数极值点。
关键词:算法;优化算法;粒子群;RPSO;瑞利分布中图分类号:TP301.6;TP18 文献标志码:A DOI:10.3969/j.issn.1674-9146.2017.09.0941995年,EBERHART和KENNEDY博士提出了基于自然界生物群体行为构造的随机优化算法,即粒子群智能算法(Swarm Intelligence Algorithm),也称为粒子群优化(Particle Swarm Optimization,PSO)算法,这种新算法是一种并行算法。
该算法的基本思想是模拟鸟、鱼群在觅食过程中的移动和聚集行为,并结合了生物学家HEPPNER Frank提出的生物群体模型。
基于群体智能随机优化技术的基础,PSO算法通过个体间合作找寻其最优解,并利用了生物类群中共享消息的思想。
由于没有复杂观念、容易实现、精确度高、收敛快,加之人工智能技术发展环境的深刻变革,该算法已被学术界广泛关注,既有益于科学的探索,又适于工程的实践,并且在解决实际问题时具有很强的优越性。
近年来,粒子群理论被国内外学者广泛研究,针对目前存在的不足和待解决问题,分别提出了改进的算法。
主要有两种改进措施,一是改进算法本身,提高PSO算法某个方面的特性,例如压缩因子、惯性权重法等。
一种改进的粒子群算法闫元元;高兴宝【摘要】To overcome the particle swarm optimization algorithm to the local optima, an improved new algorithm is proposed by introducing the swarm behavior and disturbances. To show the optimization performances of the new algorithm,several benchmark functions are tested. The experimental results show that the new algorithm not only effectively solves the premature convergence problem,but also significantly speeds up the convergence.%为克服粒子群算法易于陷入局部极值的缺点,通过引入聚群效应和扰动,设计了一种新的粒子群算法.通过对常用测试函数的数值试验,说明了新算法不仅能有效地进行全局搜索,而且具有更好的收敛精度.【期刊名称】《纺织高校基础科学学报》【年(卷),期】2011(024)003【总页数】4页(P428-431)【关键词】聚群;粒子群算法;扰动;惯性权重【作者】闫元元;高兴宝【作者单位】陕西师范大学数学与信息科学学院,陕西西安710062;陕西师范大学数学与信息科学学院,陕西西安710062【正文语种】中文【中图分类】TP3010 引言1995年,通过对鸟群捕食行为的研究,文献[1]提出了粒子群优化算法(PSO).它基于群体智能理论,通过群体中粒子跟踪自己和群体所发现的最优值,修正前进方向和速度,实现寻优.PSO算法简单,需调整的参数少且易于实现,但在处理多局部极值问题时,容易陷入局部最优.2002年,文献[2-3]提出了鱼群算法.该方法通过模拟自然界中鱼的觅食、聚群和追尾行为实现寻优,且其聚群行为具有克服局部最优的能力.因此通过用群体中心位置替换粒子群算法中的个体最优,将聚群行为引入粒子群算法.另外根据自然界中扰动的存在性,通过给中心位置一个扰动,将扰动引入算法.基于上述考虑,本文提出一种简单而有效的改进PSO算法(为方便记作YPSO).通过对基准函数的优化,实现了新算法与基本PSO和标准PSO的试验比较.试验结果表明,改进的粒子群算法防止陷入局部最优的能力有了明显提高,并且加快了收敛速度.1 基本粒子群和标准粒子群算法基本粒子群算法首先对群体初始化,然后通过迭代寻找最优解.在每一次迭代中,每个粒子考虑自身搜索到的最优位置以及群体搜索到的最优位置,进行速度与位置的更新.在D维目标搜索空间中,由种群数为N的粒子组成群体,其第i个粒子的位置为xi,飞行速度为vi,该粒子当前搜索到的最优位置为pi,整个粒子群的最优位置为pg.PSO算法迭代式为其中 i=1,2,…,m,d=1,2,…,D;学习因子c1和c2为非负常数,描述了粒子向自己搜索到的最优位置及群体搜索到的最优位置靠近程度;r1和r2为[0,1]区间均匀分布的随机数,其随机性使得整个粒子群表现极复杂的特性.基本PSO算法简单,易实现,功能强大且没有太多参数需要调整,但在搜索后期局部搜索能力差,收敛速度慢,因此其整体性能较差.为了改善基本粒子群算法的整体性能,使算法在迭代初期有较强的全局搜索能力,在迭代后期有较强的局部搜索能力,文献[4-5]提出了带惯性因子的PSO算法,即标准粒子群算法,其将速度更新式(1)改为其中惯性权重ω为非负数,它描述了上次迭代速度对当前速度的影响.当ω较大时,算法有较强的全局搜索能力,而当ω较小时,算法有较强的局部搜索能力.因此为改善算法的收敛性能,ω应随迭代次数的增加而减小.特别地,文献[6]提出了ω在0.9到0.4之间线性递减的策略其中 T max为最大迭代次数,ωend为迭代至最大迭代次数时的惯性权重,ωini 为初始惯性权重.尽管标准粒子群算法提高了算法的收敛速度和精度,但在克服粒子群算法陷入局部极值方面,效果并不理想.2 改进的PSO算法(Y PSO)基本PSO和标准PSO算法优点很多,但在高维多极值情况下,却容易陷入局部最优,因此搜索到的最优解精度不高.其原因在于算法运行后期,全局搜索能力大幅度减弱.而人工鱼群算法是一种全局优化能力较强的新型群智能算法,算法中的聚群行为具有较好的克服局部极值的能力[7].受此启发,本文在粒子群算法中引入中心位置的概念,将速度更新公式中的第t次迭代的个体最优pi替换为第t 代的中心位置pc(t)/N.此外,为了使粒子群算法当前迭代能够利用上一次迭代中心位置的信息,在算法中引入扰动,将中心位置pc(t)修改为pc(t)=pc(t)+pc(t-1)/N.利用以前迭代所产生的信息,将速度更新中的个体最优替换为扰动后的中心位置,有助于提高算法性能.试验表明,在多局部极值的优化问题中,这种处理大大提高了算法防止陷入局部最优的能力.基于上述的思考,改进PSO算法的其速度和位置更新式为pc是粒子经过扰动过的中心位置,pc按pcd(t+1)计算.其中 i=1,2,…,m;d=1,2,…,D,pc(1)/N,算法流程为:步骤1 c1=c2=2.0为学习因子,ω=0.5为压缩因子,D为变量的维数,N为粒子数,T max为最大迭代次数.步骤2 计算每个粒子的适应值以及扰动后的中心位置.步骤3 计算每个粒子的个体最优值.步骤4 计算粒子群的全局最优值.步骤5 根据粒子的速度和位置的更新方程来调整粒子的速度和位置.步骤6 检验是否满足结束条件,如果当前的迭代次数达到初始的最大次数,则停止迭代,输出最优解,否则转到步2.将速度更新中的个体最优替换为扰动后的中心位置,增强了算法使用以前迭代所产生的信息.试验表明,在多局部极值的优化问题中,这种对速度更新的处理提高了算法防止陷入局部最优的能力.3 试验分析为了说明改进算法(YPSO)的效果,本文选择了4个基准函数[8-9]试验,并与基本PSO(PSO)和标准PSO算法(linWPSO)作了比较.4个基准函数见表1,其中f1(x)为可分离的单峰函数,用来测试算法的寻优精度;f2(x)为旋转、不可分离的多峰函数;f3(x)在搜索区域内有无数个局部极值,且此函数的强烈震荡特性使算法很难收敛;f4(x)为连续、旋转、不可分离的多峰函数,其全局最优解落在边缘上.表1 测试函数的维数、初值范围和目标值函数表达式函数名维数初值范围目标值f1(x)=∑D x2 i i=1 Sphere 30 [- 10,10]30 0/i| Griewank 30 [- 600,600]30 0 f3(x)=((sin x21+x f2(x)= 1 4 000∑D x2 i cos|xi■i=1-∏D i=1■22)2-0.5)/(1+0.0001(x21+x22))2+0.5 Schaffer 30 [-100,100]30 0 f4(x)=-20 exp -0.2 1((( )■2 -exp 1 30∑D xi))(30∑D(cos(2πxi i=1 i=1)+20+e Ackley 30 [- 32,32]30))03种算法的优化目标是求函数的最小值.在试验中,3种算法的种群大小均为30,最大迭代次数为1 000,学习因子 c1,c2均为2.0;在 linWPSO 算法中,ωini=0.9,ωend=0.4.在 YPSO 算法中,ω =0.5;为了消除随机干扰,对每个优化函数独立运行30次.数值试验结果见表2.从表2的数据对比可以看出,对于所有测试函数,本文算法的优化结果好于对比算法.其中对于f1(x),f2(x)和f4(x),本文算法在30次平均最优和最优上要明显好于对比算法;对于f3(x),在最优上同标准粒子群算法相同,但平均最优上要好于标准粒子群算法.为了更加直观的了解3种算法的性能差异,图1至图4给出了4个测试函数对于3种算法的最优函数值进化曲线图.从曲线图中可以看出,本文算法在所测试的函数中,具有较快的全局收敛速度和较高的收敛精度.表2 3种算法的试验结果f1(x)f2(x)算法f3(x)f4(x)最优解平均最优解最优解平均最优解最优解平均最优解0018 10.6701 12.5852 linWPSO 0.2153 0.91601.1681 1.6910 0 0.00092.5806 4.1507 YPSO 4.57 × 10-48 1.40 × 10-40 0 0 0 0.0005 8.88 × 10-16 1.01 × 10-158最优解平均最优解PSO 21.8718 54.6188 13.6091 47.3070 0.0010 0.图1 Sphere函数图2 Schwefel函数4 结束语PSO算法是一种简单实用的智能算法,但对多极值点的优化问题中极易陷入局部极值点.在对PSO算法仔细分析的基础上,本文提出了一种改进的算法(YPSO).在新算法中,通过引入了聚群行为和扰动,提高了PSO算法跳出局部最优解得能力.数值试验结果表明新算法提高了基本粒子群算法和标准粒子群算法的全局搜索性能.图3 Rastrigrin函数图4 Griewank函数参考文献:【相关文献】[1] KENNEDY J,EBERHART R C.Particle swarm optimization[C].Proc IEEE International Conference on Neural NetworksⅣ.Piscataway:IEEE Service Center,1995:1942-1 948.[2]李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:玉泉算法[J].系统工程理论实践,2002,22(11):32-38.[3]李晓磊,钱积新.基于分解协调的人工鱼群优化算法研究[J].电路与系统学报,2003,8(1):1-6.[4] SHI Y,EBERHART R C.A modified particle swarm optimizer[C].Proceedings of the Conference on Evolutionary Computation.Piscataway:IEEE Press,1998:69-73.[5] EBERGART R C,SHI Y H.Particle Swarm Optimization:Developments,Applications and Resources[C].Proc Congress on Evolutionary Computation.Piscataway:IEEE Press,2001:81-86.[6] SHI Y,EBERHART R C.Fuzzy Adaptive Particle Swarm Optimization [C].Proceedings of the 2001 Congress on Evolutionary Computation.Piscataway:IEEE Press,2001:101-106.[7]李荣钧,常先英.一种新的混合粒子群优化算法[J].计算机应用研究,2009(5):1 700-1 702.[8]纪震,廖惠连,吴青华著.粒子群算法及应用[M].北京:科学出版社,2009.[9]刘伟,周育人.一种改进惯性权重的算法[J].计算机工程与应用,2009,22(45):46-48.。
一种改进的粒子群算法摘要:粒子群算法是一种基于群体智能的优化算法,具有全局搜索能力和简单易用的特点,但存在收敛速度慢、易陷入局部最优等问题。
本文针对粒子群算法的不足,提出了一种改进的粒子群算法,主要包括两个方面的改进:自适应惯性权重和差分进化算子。
实验结果表明,改进后的算法在求解复杂函数优化问题时具有更快的收敛速度和更高的搜索精度。
关键词:粒子群算法;自适应惯性权重;差分进化算子;全局搜索1.引言粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,由Kennedy和Eberhart于1995年提出[1]。
PSO算法通过模拟鸟群捕食、觅食等行为,将待优化问题转化为粒子在搜索空间中的移动过程,通过粒子之间的信息交流和个体经验积累,逐步找到全局最优解。
相比其他优化算法,PSO算法具有简单易用、全局搜索能力强等优点,在多个领域都得到了广泛应用[2]。
然而,PSO算法也存在一些不足之处。
首先,PSO算法的收敛速度较慢,需要较长的迭代次数才能找到较优解。
其次,PSO算法容易陷入局部最优解,导致搜索精度不高。
为了解决这些问题,研究者们提出了许多改进的PSO算法,如自适应权重PSO[3]、混沌PSO[4]、改进收缩因子PSO[5]等。
本文针对PSO算法的不足,提出了一种改进的PSO算法,主要包括自适应惯性权重和差分进化算子两个方面的改进。
2.算法描述2.1 基本PSO算法基本PSO算法是由一群粒子组成的集合,每个粒子表示一个解向量。
每个粒子在搜索空间中随机初始化,然后根据自己的经验和全局最优解进行位置更新,直到满足停止条件为止。
具体算法流程如下:(1)初始化粒子群,包括粒子数量、搜索空间范围、速度范围、惯性权重等参数。
(2)对每个粒子,随机初始化位置和速度。
(3)对每个粒子,计算其适应度函数值。
(4)对每个粒子,更新速度和位置。
(5)更新全局最优解。
(6)判断是否满足停止条件,若不满足则返回第(3)步。
基于收缩因子的改进粒子群算法陈国鸿(河池学院计算机与信息科学系广西河池 546300)摘要:针对基本粒子群优化算法(ParticleSwarmOptimization,简称PSO )存在的早熟收敛问题,提出了一种既保持粒子活性又保证粒子快速收敛于全局极值点的改进粒子群优化(XARPSO)算法。
在算法运行过程中,如果种群多样性逐步减小,直至超出下限时,种群不再向整体最优位置靠近,而是纷纷远离该最优位置,从而执行了“扩散”操作,而当种群多样性逐步增大,直至超出上限时,种群又开始向整体最优位置靠拢,即执行了“吸引”操作,从而保持了粒子的多样性。
同时,该方法引入收缩因子的概念,即通过正确选择惯性权重系数与加速常数即学习因子这些控制参数的值的方法,确保算法收敛。
通过Goldstern-Price 函数的最小化测试结果表明,该算法不仅具有较快的收敛速度,而且能够更有效地进行全局搜索。
关键词:粒子算法;收缩因子;吸引;扩散;多峰值函数引言粒子群算法最早是在1995年由美国社会心理学家James Kennedy和电气工程师Russell Eberhart共同提出的,简称PSO算法。
其基本思想是受他们早期对许多鸟类的群体行为进行建模与仿真研究结果的启发。
粒子群算法与其他进化类算法一样,也是一类基于群智能的随机优化算法。
但与其它进化计算方法相比, PSO算法具有收敛速度快、设置参数少、程序实现异常简洁、具有深刻的智能背景等特点,既适合科学研究,又特别适合工程应用。
因此PSO算法一经提出就引起了国际上相关领域众多学者的关注和研究。
目前PSO 算法已广泛应用于函数寻优、神经网络训练、模式分类、模糊系统控制以及其它的应用领域。
但是,由于PSO算法在优化过程中所有粒子都向最优解方向飞去,所以粒子趋向同一化,群体的多样性逐渐丧失,即存在早收敛问题,因而也就难以获得较好的优化结果。
为了克服这一缺点,近年来出现了不少改进的PSO算法。
如:Shi Y.(1998)提出的带惯性权重的PSO算法、Angeline P.(1999)提出的杂交粒子群混合PSO 算法、Clerc M.(1999)提出的带约束因子的PSO 算法、Suganthan P.(1999)提出的带有领域因子的PSO 算法、Shi Y.(2001)提出的模糊自适应惯性权重的PSO 算法、Van (2001)提出的协同PSO 算法、Natsuki (2003)提出的具有高斯变异的PSO 算法、Sun J.(2004)提出的具有量子行为的PSO 算法等。
这些改进的PSO 算法各有优缺点。
本文提出一种既保持粒子活性又保证粒子快速收敛于全局极值点的改进PSO 算法(XARPSO 算法)。
该算法描述了一种通过选择惯性权重系数w 与加速常数1C 、2C 的值的方法以确保算法收敛,并引入“吸引”和“扩散”两个算子,动态地调整“勘探”与“开发”比例,从而能更好的提高算法效率。
测试表明,该改进PSO 算法在搜索能力方面和收敛速率方面都得到很大的提高。
1 基本粒子群算法美国的James Kennedy 和Russell 受鸟群觅食行为的启发,提出了PSO 算法。
PSO 算法求解优化问题时,问题的解就是搜索空间中的一只鸟的位置,称这些鸟为“粒子”。
所有的粒子都有一个被优化函数决定的适应值和一个决定它们飞翔方向与距离的速度。
在优化过程中,每个粒子记忆、追随当前的最优粒子,在解空间中进行搜索。
PSO 算法初始化为一群随机粒子(随机候选解),然后通过迭代找到最优解。
在每一次迭代过程中,粒子通过追逐两个极值来更新自己的位置。
一个是粒子自身所找到的当前最优解,这个解称为个体极值pbest ;另 一个是整个群体当前找到的最优解,这个解称为全局极值gbest 。
PSO 算法数学表示如下:设i X =(1i X ,2i X ,……,in X )为粒子i 的当前位置;i V =(1i V ,2i V ,……,in V )为粒子i 的当前飞行速度;i P (t )=(1i P ,2i P ,……,in P )为粒子i 所经历的最好位置,也就是粒子i 所经历过的具有最好适应值的位置,称为个体最好位置。
对于最小化问题,目标函数值越小,对应的适应值越好。
整个粒子群搜索到的最优位置为g P (t )=(1g P ,2g P ,……,gn P ),称为全局最好位置。
则基本粒子群算法的进化方程可描述为:ij V (t+1)=ij V (t)+11j c r (t)(ij P (t)-ij X (t)+22j c r (t)(gj P (t)-ij X (t))(2.1)(1)()(1)ij ij ij X t X t V t +=++ (2.2)其中:下标“j ”表示粒子的第j 维,“i ”表示粒子i ,t 表示第t 代,1C 、2C 为加速常数,通常在0~2间取值,1r ∪(0,1),2r ∪(0,1)为两个相互独立的随机函数。
从上述粒子进化方程可以看出,1C 调节粒子飞向自身最好位置方向的步长,2C 调节粒子向全局最好位置飞行的步长。
为了减少在进化过程中,粒子离开搜索空间的可能性,ij V 通常限定于一定范围内,即ij V ∈[-Vmax,Vmax]。
如果问题的搜索空间限定在[-Xmax ,Xmax]内,则可设定Vmax=k 〃Xmax ,0.1≦k ≦1.0。
基本粒子群算法的初始化过程为:1)设定群体规模N ;2)对任意i ,j 在[-Xmax,Xmax]内服从均匀分布产生ij X ;3)对任意i ,j 在[-Vmax,Vmax]内服从均匀分布产生ij V ;4)对任意i ,设i i y x =。
算法流程如下:(1)依照初始化过程,对微利群的随机位置和速度进行初始化设定;(2)计算每个粒子的适应值;(3)对于每个粒子,将其适应值与所经历过的最好位置i P 的适应值进行比较,若较好,则将其作为当前的最好位置;(4)对于每个粒子,将其适应值与全局所经历的最好位置g P 的适应值进行比较,若较好,则将其作为当前的全局最好位置;(5)根据粒子群的进化方程对粒子的速度和位置进行进化;(6)如未达到结束条件通常为足够好的适应值或达到一个预设最大代数,则返回步骤(2)。
2 基于收缩因子的改进粒子群算法为了避免粒子群算法所存在的过早收敛问题及使粒子快速收敛于全局最优解,本文引入了收缩因子与“吸引”和“扩散”两个算子使粒子群保持了多样性并具有更好的收敛率。
该算法的速度进化方程为:i V (t+1)=χ(i V (t)+dir(1C 1r (i P -i X (t)+ 2C 2r (g P -i X (t)))) (3.1) 其中:1,(0)..()1,(0)..()low high if dir and diversity d dir if dir and diversity d -><⎧=⎨<>⎩(3.2) 并且提出了种群多样性函数:||11()||||S i diversity S S L ==∙∙ (3.3)其中,S 为种群,|S|为种群所含粒子的个数,|L|为搜索空间的最长半径,N 为问题的维数,ij P 为第i 个粒子的第j 个分量。
在算法运行过程中,如果种群多样性函数满足diversity (S )<low d ,则dir=-1,从而种群不再向整体最优位置靠近,而是纷纷远离该最优位置,从而执行了“扩散”操作,而当种群多样性逐步增大,直至超出上限high d 时,dir=1,从而种群又开始向整体最优位置靠拢,即执行了“吸引”操作。
此外,low d 为5.0610-⨯,high d 为0.25;同时,这里,χ= (3.4)且 =1C +2C , >4,设1C =2C =2.05,将 =1C +2C =4.1代入(3.4),得出χ=0.7298并代入方程式(3.1),结果为:i V (t+1)=0.7298 (i V (t)+dir(2.05×1r (i P -i X (t))+ 2.05×2r (g P -i X (t)))) (3.5)因为2.05×0.7298=1.4962,所以这个方程式与在基本PSO 算法的速率更新方程式使用1C =2C =1.4962和W=0.7298所得到的方程式是等价的。
3 算法测试3.1实验设置为了比较改进粒子群算法与基本粒子群算法的性能,本文使用如公式(4.1)所示Goldstern-Price 函数的最小化问题进行测试。
22211211212222212112122()[1(1)(191431463)][30(23)(183212483627)]f x x x x x x x x x x x x x x x x x =+++-+-++⨯+--++-+(4.1)-2≤12,2x x ≤在基本PSO 算法中,W 从 1.0到0.4随进化而线性减少,C1=C2=1.8。
在该改进PSO 算法中通过收缩因子确定W=0.7298,C1=C2=1.4962。
分别对两种算法进行了50次仿真计算,群体规模为20,最大进化代数为500。
3.2实验结果与分析实验结果如下表1所示。
实验结果表明改进的PSO 算法的收敛精度远远超过了基本PSO 算法,效果明显优于基本PSO 算法,并迅速收敛到全局最优解附近。
表1仿真实验结果比较算法误差 平均收敛代数 收敛次数/运行次数 基本PSO0.0001 156.8 50/50 改进PSO0.0001 38.4 47/504 结束语本文针对基本粒子群优化算法PSO 存在的早熟收敛问题,提出了一种既保持粒子活性又保证粒子快速收敛于全局极值点的改进粒子群优化(XARPSO )算法。
通过对Goldstern-Price 函数的最小化问题进行测试,表明该算法不仅具有较快的收敛率,而且能够更有效地进行全局搜索,并快速的收敛于全局最优解。
同时也显示了改进算法的健壮性。
该改进算法弥补了单纯引入“吸引”和“扩散”两个算子所存在的在低维及低迭代次数时算法效率低的缺陷,并在一定程度上解决了单纯引入收缩因子所存在的对一些测试函数的求解过程中在给定的迭代次数内无法达到全局极值点的问题。
参考文献:[1] Kennedy J,Eberhart R C.Particle Swarm Optimization [C]//Proc IEEE International Conference on Neural Networks ,Ⅳ.Piscataway,NJ: IEEE Service Center,1995: 1942-1948[2] 易云飞,吴启明,唐凤仙.一种基于复合形粒子群算法的改进k-means 聚类算法[J].软件导刊.2008,7(10):46-47[3] 覃俊,易云飞,李林.改进k均值聚类算法在网络入侵检测中的应用研究[J].中南民族大学学报(自然科学版).2008,3(27):75-78[4] 徐杰,黄德先.基于混合粒子群算法的多目标车辆路径研究[J].计算机集成制造系统.2007,13(3):573-579[5] 沈显君,王伟武,郑波尽,李元香.基于改进的微粒群优化算法的0-1背包问题求解[J].计算机工程.2006,32(18):23-24[6] 杨勋,王江晴.求解聚类问题的混合PSO算法设计[J].微电子学与计算机.2007,24(10):43-45[7] 曾建潮,介婧,崔志华.微粒群算法[M].北京:科学出版社.2004[8] 熊伟丽,徐保国,吴晓鹏等.带变异算子的改进粒子群算法研究.博士论坛.2006[9] 熊磊.粒子群算法在离散优化问题中的研究.硕士学位论文.2006[10] 寇保华,杨涛,张晓今等.基于交叉变异的混合粒子群优化算法[J].计算机工程与应用.2007,43(17):85-88[11] 史海军,王志刚,郭广寒.引入变异算子的粒子群优化算法[J].长春理工大学学报(自然科学版).2007,30(3):81-83[12] 王波,李瑞涛,王灿林等.一种改进的变异粒子群算法研究[J].军械工程学院学报.2006,18(3):50-53(附录打印页)(证明材料粘贴处)。