基于具有量子行为的粒子群优化算法惯性权重研究及应用
粒子群优化(PSO)算法是一种群智能优化算法,最早由Kennedy和Eberhart于1995年共同提出,其基本思想是对鸟群捕食行为的仿生模拟,通过鸟群之间的集体协作,快速搜寻并找到最优解。其基本的进化方程如下:
本文引用地址:http://www.amcfsurvey.com/article/151470.htm其中,r1,r2∈[0,1]为均匀分布的随机数;C1,C2均是正常数;t表示进化代数;Vt,Xt分别表示每个粒子的速度和位置;Pg,Pt分别是粒子群的全局最优和个体最优。
为了改善基本PSO算法的收敛性能,Y?Shi等人提出了惯性权重的方法和用模糊控制器来动态自适应地改变惯性权重的技术。之后Jun Sun等人提出的具有δ函数形式的粒子群算法(QDPSO)使粒子群算法的计算更加简单容易。最近一种新的QDPSO算法考虑了速度对位置的影响,通过速度的更新选择位置的更新方程。在经典粒子群算法的可调整参数中,惯性权重是非常重要的参数,较大的权重有利于提高算法的全局搜索能力,而较小的权重会增强算法的局部搜索能力。因此,对这种新的QDPSO算法的速度项引用惯性权重ω,通过研究4种方案,发现惯性权重ω的变化对具有量子行为的粒子群算法的收敛性具有很大改善。可以说惯性权重的适当设置对新的QDPSO算法性能也起着重要的作用。
1 量子行为的粒子群优化算法及其改进
1.1 QDPS0算法
文献[4]的作者认为,若是在PSO系统下的个体粒子具有量子行为,则该粒子将会以与基本PSO算法中的粒子不同的方式运动。在量子空间,粒子的速度和位置不能再依据“不确定原理”被同时确定,所以提出了QDPSO算法。该算法改变了基本PSO算法的粒子更新策略,只用了粒子的位置向量。QDPSO算法的粒子进化方程如下:
其中,a,b,u∈[0,1]为均匀分布的随机数;pid是第i个粒子在第d维空间找到的局部最优解,pgd是群体在第d维空间找到的全局最优解;xid表示第i个粒子在第d维空间找到的当前值;而g必须满足条件:,才能保证算法的收敛。
1.2 改进的粒子群算法
新的QDPSO算法利用个体粒子的速度产生一个介于[0,1]之间的数来代替原算法中的由计算机随机产生的数,用以选择该粒子的位置更新方程。更新方程和参数设定参考文献[5]。
本文考虑到惯性权重随粒子的迭代次数变化影响个体粒子的速度引导该粒子向最优解靠拢,所以采用4种方案对该改进算法进行研究。通过使惯性权重随粒子的迭代次数变化,从而影响速度的更新方程:
其中,采用4种惯性权重ω方案来影响速度的更新,然后与QDPSO算法进行性能比较:
方案1 ω为从(1,0.875)递减的函数ω=1-k?0.125/genmax。采用这种方案的QDPSO算法称为ω1-QDPSO;
方案2 ω为从(0.9,0.4)递减的函数甜ω=0.9-k?0.5/genmax。采用这种方案的QDPSO算法称为ω2-QDPSO;
方案3 ω为一定值0.729 8,采用这种方案的QDPSO算法称为ω3-QDPSO;
方案4 ω为一凹函数(ωstart-ωend)(t/tmax)2+(ω-ωend)(2t/tmax)+ωstart,其中ωstart=0.95,ωend=0.4,tmax为最大的迭代次数。采用这种方案的QDPSO算法称为ω4-QDPOS。
综上所述,选择测试函数F1(x)和F2(x)分别为Sphere和Rastrigin(参数设置见文献[4]),改进后的算法流程如下:
Step 1 初始化种群粒子的速度和位置;
Step 2 通过对两个测试函数进行初始化计算,得到每个粒子的当前位置为粒子最佳位置Pbest,初始群体粒子位置的最优值为群体最佳位置gbest;
Step 3 重新把粒子的位置代入测试函数进行计算,得到每个粒子新的适应值,将其与Pbest比较,若较好,则将Pbest设置为新位置;并将其与gbest比较,若较好,则将gbest设置为新位置;
Step 4 根据公式(6)更新粒子的速度;
评论