基于收缩因子的改进粒子群算法陈国鸿(河池学院计算机与信息科学系广西河池 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(附录打印页)(证明材料粘贴处)。