宋梦培,莫礼平,周恺卿
(吉首大学信息科学与工程学院,湖南 吉首 416000)
粒子群优化(Particle Swarm Optimization,PSO)算法,是Kennedy博士和Eberhart博士于1995年通过研究鸟群聚集和迁徙的觅食行为而提出的一种基于群体的自适应搜索优化技术[1-2].由于PSO算法具有操作简单、易于实现和鲁棒性好等优点,因此该算法一经提出就引起了学者们的极大兴趣.SHI等[3]在粒子群算法中引入惯性因子,以平衡算法的全局搜索能力和局部搜索能力.这一改进算法被称为标准PSO算法.Suganthan[4]提出了一种基于动态邻域的PSO模型.该模型中,用每个粒子的当前邻域极值代替全局极值,结合不同的领域结构有效地改进算法的收敛性.Higashi Natsuki等[5]在PSO算法中引入自适应的变异算子,从而提高了粒子跳出局部极值的能力和粒子的寻优概率.LI等[6]提出了一种能够增强粒子之间交流的动态学习策略,该策略能有效提高算法的运行效率.张寅等[7]提出了一种混沌策略,该策略通过在迭代停滞时初始化粒子位置来保证粒子的多样性.XIA等[8]通过定期对变量空间进行划分,逐步缩小搜索区域,来提高算法的收敛速度和寻优精度.Mahdavi等[9]提出了一种基于变量效应的协同多级进化策略,该策略通过决策变量将问题分解,减少了求解复杂度.改进后的粒子群算法能较大概率地找到问题的全局最优解,并且已成功应用于约束优化问题[10-11]、调度问题[12]、图形图像处理[13]、数据挖掘[14]和电力系统调控[15]等领域.尽管学者们对标准PSO算法展开了广泛的讨论,但是关于惯性权值和学习因子对算法性能的影响并没有作详细探究.笔者拟选取惯性权值和学习因子2类参数,基于标准PSO算法,通过分析2类参数不同的取值策略对常用测试函数的优化结果的影响,来探究2类参数对算法性能的影响.
标准PSO算法的基本框架如图1所示.
图1 标准PSO算法的基本框架Fig. 1 Basic Framework of the Standard PSO Algorithm
假设在一个D维的目标搜索空间中,有N个粒子组成一个群落,粒子自身最优位置为个体极值pbest,当前全局的最优位置为全局极值gbest.每个粒子追随当前的最优粒子在解空间中运动,并根据如下公式来更新自己的速度和位置:
vi+1=wvi+c1r1(pbesti-xi)+c2r2(gbestt-xi),
(1)
xi+1=xi+vi+1.
(2)
其中:w为惯性权值;c1和c2为学习因子,分别反映粒子的自我学习能力和向群体最优粒子学习的能力;r1和r2为[0,1]的均匀随机数;vi为粒子速度,vi∈[-vmax,vmax],vmax是用户设定的用来限制粒子速度的常量.
1.2算法描述
标准PSO算法的流程如图2所示,其中precent为粒子当前的适应度值.
图2 标准PSO算法的流程Fig. 2 Flow Chart of the Standard PSO Algorithm
由(1),(2)式可知,惯性权值w和学习因子c1,c2的取值策略直接影响标准PSO算法的性能.w反映粒子对当前速度的继承情况:
(ⅰ)当w较大时,粒子的全局搜索能力较强;
(ⅱ)当w较小时,粒子的局部搜索能力较强.
学习因子c1,c2分别反映粒子的自我学习能力和向群体最优粒子学习的能力:
(ⅰ)当c1较大时,粒子的自我认知能力较强,容易偏离最优粒子;
(ⅱ)当c2较大时,粒子的社会认知能力较强,容易陷入局部最优.
笔者将基于标准PSO算法,通过分析2类参数不同的取值策略对常用测试函数优化结果的影响,来探究w,c1,c2对标准PSO算法性能的影响.
为了更好地评价改进参数后算法性能的优劣,选取PSO算法常用的5个测试函数(Sphere,Rosenbrock,Griewank,Ackley,Rastrigrin)进行实验设计,其中Sphere和Rosenbrock是单峰函数,其他均为多峰函数.测试函数的具体设置见表1.
表1 测试函数
在标准PSO算法中,惯性权值最优范围为[0.4,0.9],学习因子通常取常数2[3].为了探究w,c1,c2的动态变化对算法性能的影响,按如下策略进行取值:
惯性权值w的动态选取策略为:递增策略,w=0.4+0.5t/MaxDT;递减策略,w=0.9-0.5t/MaxDT.
学习因子c1和c2的动态选取策略均为:递增策略,c=1+sin(tπ/MaxDT);递减策略,c=2-sin(tπ/MaxDT).其中:t为迭代次数;MaxDT为最大迭代次数.
3.3.1 参数设置对5个测试函数均设计15组对比实验.各组实验中,基本参数设置如下:N=40,MaxDT=1 000,D=5.w,c1,c2的取值见表2.
表2 2类参数的取值
3.3.2 函数仿真结果 表3给出了5个测试函数的仿真结果,图3~7分别示出了5个测试函数的收敛曲线.
表3 5个测试函数的仿真结果
图3 Sphere函数的收敛曲线Fig. 3 Convergence Curve of Sphere Function
图4 Rosenbrock函数的收敛曲线Fig. 4 Convergence Curve of Rosenbrock Function
图5 Griewank函数的收敛曲线Fig. 5 Convergence Curve of Griewank Function
图6 Ackley函数的收敛曲线Fig. 6 Convergence Curve of Ackley Function
图7 Rastrigrin函数的收敛曲线Fig. 7 Convergence Curve of Rastrigrin Function
Sphere函数是只有全局极值点而没有局部极值点的单峰函数,通常用来测试算法的优化精度.由表3和图3可知:
(1)当c1,c2为常数且w采取动态改变策略时,标准PSO算法的寻优精度明显提高.当w递增时,收敛速度加快;当w递减时,寻优精度提高.
(2)当w为常数且c1,c2采取动态改变策略时,标准PSO算法的寻优精度显著提高,且比动态改变w时的精度更高.当c2递增时,收敛速度加快.
(3)当w递增时,标准PSO算法的收敛速度明显加快.当c1,c2同增同减时,收敛适应度值降低;当c2递增时,寻优精度明显提高.
(4)当w递减时,标准PSO算法的收敛速度略微降低.但当c1递减时,收敛适应度值明显降低.
Rosenbrock函数是只有全局极值点而没有局部极值点的非凸病态函数,极难收敛于全局极值点,通常用来评价优化算法的执行效率.由表3和图4可知:
(1)当c1,c2为常数且w递增时,标准PSO算法的收敛速度加快,但寻优概率并没有明显提高;当c1,c2为常数且w递减时,寻优概率略微提高,寻优波动的范围明显缩小.
(2)当w为常数且c1,c2同增同减时,标准PSO算法的收敛速度加快;当w为常数且c1,c2一增一减时,收敛适应度值降低.c1,c2的动态改变缩小了寻优波动的范围,提高了粒子寻优概率.
(3)当w递增时,标准PSO算法的收敛速度明显加快.当c1递减时,收敛适应度值降低;当c1,c2同增同减时,寻优概率提高.
(4)当w递减时,标准PSO算法的收敛速度略微降低.但当c1,c2同增同减时,收敛适应度值降低,算法的寻优概率提高.
Griewank函数是由多个局部极值点包围1个全局极值点的旋转多峰函数,在5维空间均能找到全局最优解.由表3和图5可知:
(1)当c1,c2为常数且w递增时,标准PSO算法的收敛速度加快;当c1,c2为常数且w递减时,寻优概率提高.
(2)当w为常数且c1,c2同增同减时,标准PSO算法的收敛速度加快,收敛适应度值降低.当c2递减时,寻优概率提高;当c2递增时,寻优精度提高.
(3)当w递增时,标准PSO算法的收敛速度明显加快,且c1,c2一增一减时,收敛适应度值降低.当c2递减时,寻优概率提高;当c2递增时,寻优精度提高.
(4)当w递减且c1,c2同增同减时,标准PSO算法的寻优概率和寻优精度同步提高,收敛适应度值降低.
Ackley函数是具有很多局部极值的多峰函数,其图像是一个有很多孔峰、起伏不平的曲面,w,c1,c2的动态改变在5维均能找到最优解.由表3和图6可知:
(1)当c1,c2为常数且w递增时,标准PSO算法的收敛速度加快;当c1,c2为常数且w递减时,寻优精度提高.
(2)当w为常数且c2递增时,标准PSO算法的收敛速度和寻优精度同步提高.
(3)当w递增时,标准PSO算法的收敛速度明显加快,且当c1递增时,寻优概率和寻优精度同步提高.
(4)当w递减且c1,c2同增同减时,收敛适应度值降低,但收敛速度和寻优概率并没有明显改变.
Rastrigrin函数是典型的多峰函数,只有1个被多个随余弦函数波动的局部极值包围的全局极值,很难找到全局极值点.由表3和图7可知:
(1)动态改变w,c1,c2,只能适当缩小标准PSO算法寻优波动的范围,而不能找到全局的最优解.但当c1,c2为常数且w递增时,收敛速度明显加快;当c1,c2为常数且w递减时,寻优波动范围缩小.
(2)当w为常数且c2递增时,标准PSO算法的收敛速度加快;当w为常数且c2递减时,寻优波动范围缩小.
(3)当w递增时,标准PSO算法的收敛速度明显加快,且当c1,c2同增同减时,收敛适应度值降低.
(4)当w递减时,标准PSO算法的收敛速度略微降低,但当c1,c2一增一减时,收敛适应度值明显降低.
基于标准PSO算法,通过分析惯性权值和学习因子2类参数不同的取值策略对常用测试函数优化结果的影响,来探究2类参数对算法性能的影响.实验结果表明:
(1)w主要影响标准PSO算法的收敛速度,随着w的递增,收敛速度明显加快;c1,c2主要影响寻优精度,随着c2的递增,寻优精度提高.
(2)w递减与c1,c2一增一减结合,对标准PSO算法性能的优化较好;w递增与c1,c2同增同减结合,对算法性能的优化效果较好.
(3)当w,c1,c2均为动态函数时,单峰函数的寻优精度和收敛速度明显提高,双峰或多峰函数波动的范围缩小且寻优概率提高.
(4)w,c1,c2的动态改变对函数低维优化效果明显,但随着维数的增加,寻优难度加大,优化效果迅速降低.
考虑到惯性权值和学习因子的改变仅对单峰函数的优化效果较明显,对多峰或双峰函数并没有明显的优化作用,下一步将结合蚁群算法、遗传算法等来探究2类参数对函数优化效果的影响.