一种新的改进粒子群算法研究
![一种新的改进粒子群算法研究](https://img.360docs.net/imga7/050fk2xdl75huzsbadm2-71.webp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种新的改进粒子群算法研究
马金玲,唐普英
电子科技大学光电信息学院,成都 (610054)
E-mail:majinling2006@
摘 要:研究粒子群优化算法(PSO)的收敛速度,以提高该算法性能是PSO的一个重要而且有意义的研究。Jun Sun 等人通过对PSO系统下的单个个体在量子多维空间的运动及其收敛性的分析,提出了具有δ函数形式的粒子群算法(Quantum Delta-Potential-Well-based PSO)。论文在此基础上提出了改进型算法(IQDPSO),用粒子的速度来产生一个随机数引导粒子向最优解快速靠拢,并对速度的处理采取了新的策略。仿真结果表明:该改进算法较原算法在收敛速度上有很好的改善,而且稳定性也较好。
关键词:粒子群优化算法,量子行为,量子机理
中图分类号: TP301.6
1. 引言
粒子群优化算法(PSO)是近年来被广泛关注和研究的一种智能优化算法,最初由Kennedy和Eberhart于1995年提出并成功地应用于函数优化,后来又进行了有效的拓展。它是对鸟群觅食过程和集聚的模拟[1],是一种全局优化算法。其基本的表达式为
v t+1= v t +c1·r1(P t - x t) + c2·r2(P g - x t) (1)
x t+1 = x t + v t+1(2)其中,r1 ,r2是介于(0,1)之间的随机数;c1、c2均是正常数;P g是全局最优解;P t是当前代的个体粒子最优解;x t是当前代粒子的位置;v t是当前代粒子的速度。经典PSO算法的粒子就是根据以上两式来更新自己的位置和速度,寻求最优解。
后来Shi 等人又提出了惯性权重的方法[2]和用模糊控制器来动态自适应地改变惯性权重的技术[3],以提高算法的收敛速度。Clerc 等人提出了压缩因子法[4],以控制系统行为最终收敛。随后又有很多学者从各个角度提出了改进型算法,这些改进的算法虽然解决了一些实际应用问题,但大部分却牺牲了粒子群算法简单、易实现的特性,并且大大增加了计算量。这对要求快速找到最优解的问题显然是不适用的。所以探索在不增加计算量的情况下,能够更好的解决实际问题的粒子群算法,是一个值得研究的课题。Jun Sun等人提出的具有δ函数形式的粒子群算法就很好的保持了粒子群算法的特性[5]。文中的算法就是该算法的改进(IQDPSO):用个体粒子的速度产生一个引导该粒子向最优解靠拢的随机数,但是只有当前代个体粒子的适应值不如前一代时,才更新粒子的速度。仿真结果显示:该改进算法在收敛率上有很大的提升,并且稳定性也近乎完美。
2. QDPSO算法
该算法改变了经典PSO的粒子更新策略。文献[5]认为,在PSO系统下的个体粒子如果具有量子行为,那么此粒子将会与经典PSO算法中的粒子以截然不同的方式运行。根据传统的牛顿力学机制,经典PSO算法中的每一个粒子的状态都是由它的速度向量和位置向量来描述的,粒子移动的过程形成了一个确定的运动“轨迹”。文献[5]的作者认为,这个所谓的“轨迹”对具有量子机理的粒子已经没有意义了。因为粒子的速度向量和位置向量不能再依据“不确定原理”被同时确定了。所以文献[5]在保持了PSO算法原理下,提出了QDPSO (Quantum Delta-Potential-Well-based PSO)算法。该算法只用了粒子的位置向量,并且是用
计算机随机产生的一个数据来选择更新粒子位置的方程。QDPSO 算法是在量子时域空间的框架下讨论的,并且粒子的状态由一个波函数(,)x t Ψv 来描述的。在三维空间中,粒子的波函数可以表述为
2d x d y d z Q d x d y d z Ψ= (3) 其中, 2Ψ是波函数的概率密度,并且满足21d x d y d z Q d x d y d z +∞
+∞−∞−∞Ψ==∫∫。
QDPSO 算法的粒子进化公式为:
p = (a· p id + b·p gd )/(a +b ) (4)
L = (1/g )·ab s( x id -p ) (5)
x id = p ± L·(㏑(1/u )) (6)
其中, p id 是第i 个粒子在解空间的第d 维所找到的最优解, x id 是第i 个粒子在解空间第d 维的当前值,p gd 是所有粒子在解空间中第d 维找到的最优解; a ,b ,u 都是(0,1)之间的随机数。由上式可知,参数g 的选取将直接影响到算法的性能,根据文献[5]给出的参数控制与选取的方法,要求g 满足条件:
ln g >
3. 改进的QDPSO 算法(IQDPSO )
在量子框架下,虽然粒子的位置和速度不能再根据“不确定原理”被同时确定,但是,粒子的速度大小及状态仍然对粒子向最优解的靠拢有一定的影响。那么利用粒子的速度来引导该粒子向最优解的方向飞去,自然也就能提高算法的性能,特别是在算法的收敛速度和稳定性方面。试验结果也证明了这一点。该改进算法与原算法相比,主要有两方面的改进:
a.
利用个体粒子的速度产生一个介于(0,1)之间的数来代替原算法中的由计算机随机产生的数,用以选择该粒子的位置更新公式。 b. 如果个体粒子的位置向量的大小超出了预设的范围,采取让该粒子向相反的方
向飞行的策略。为了尽可能的减少计算量和更好的引导粒子向最优解靠拢以增
强粒子的收敛性[6],此改进型算法还采用:只要当前代粒子的适应值优于上一代,
就不再更新粒子的速度,即不计算公式(1)。
综上所述,IQDPSO 算法的流程如下所示(以寻求函数的极小值为例):
Step 1. 在给定的范围内初始化种群粒子的位置和速度;
Step 2. 评价粒子当前适应值,并保存全局最优解和局部最优解及它们对应的状态;
Step 3. 根据Step2的结果产生上面的(4)、(5)两式;
Step 4. 用个体粒子的速度产生选择该粒子更新位置方程的数据
m ax m in 11()/()id id ra n d q v v v v −=+−− (7)
Step 5. 由Step4 产生的数据选择更新粒子位置的方程
If rand-q > 0.5
x id = p + L·(㏑(1/u ))
Else x id = p –L ·(㏑(1/u ))
Step 6. 判断Step5 中x id 的大小,并判断是否更新粒子的速度
If x id > X max
x id = X max , v id = -v id
Elseif x id < X min
x id =X min , v id = -v id