APP下载

一种改进的动态惯性权重粒子群优化算法

2014-12-06杨华芬

关键词:惯性全局权重

李 艳,杨华芬

(曲靖师范学院计算机科学与工程学院,云南 曲靖655011)

0 引言

粒子群算法(Particle Swarm Optimization,PSO)是一种进化算法[1],它和其他智能算法一样:随机初始化种群,通过多次迭代寻优,根据个体当前的信息进行更新。和其他算法相比,PSO算法具有结构简单、参数较少、易于描述和实现、全局搜索能力较强、无需梯度信息等诸多特点,这使其在函数优化、多目标问题求解、模式识别等诸多领域得到广泛应用[2-6],尤其适用于非线性、多极值和不可微且多变量复杂优化问题的求解。尽管PSO算法有很多优点,但是基本粒子群算法还是存在早熟收敛,难以平衡全局和局部搜索能力等问题,若不加以改进,将影响其应用领域。常见的方法有:引入惯性权重因子[7-8]、收缩因子和自适应变异算子[9-10]、线性递减方法[11]、模糊自适应方法[12]、距离信息方法[13]、带压缩因子的PSO算法[14]等。尽管提出的粒子群改进算法在性能和效率上都有一定程度的改善,但很难达到在避免早熟收敛的同时提高算法的局部搜索能力。

为了较好地平衡算法全局和局部搜索能力,提高算法的搜索效率和精度,本文提出一种改进的动态惯性权重粒子群优化算法。改进惯性权重的同时考虑粒子的集聚程度和算法的进化速度:当粒子的多样性较低,则容易陷入局部最优,此时应增大惯性权重,避免算法陷入局部最优;当粒子的多样性较好,此时集聚程度较低,为防止算法成为随机搜索,应降低惯性权值。改进算法能较好地平衡算法的求精和求泛的能力,同时还能提高算法的搜索效率和精度。

1 基本粒子群算法

在D维搜索空间中,由N个粒子组成的种群X =(X1,X2,…,XN),第i个粒子表示为一个D 维向量Xi= (xi1,xi2,…,xiD),i=1,2,…,N。第i个粒子的速度为Vi= (vi1,vi2,…,viD)。粒子i找到的最优位置表示为Pi= (pi1,pi2,…,piD),群体找到的最优位置为Pg= (pg1,pg2,…,pgD)。粒子i分别根据式(1)和式(2)更新速度和位置。

式中:n为当前进化的代数,i=1,…,N;c1和c2为学习因子,且c1>0,c2>0;rand为均匀分布于(0,1)的随机数;w为惯性权重,它决定粒子原来的速度对现在速度的影响程度,起到平衡全局搜索和局部搜索能力的作用。

2 算法描述及仿真实验

从基本的粒子群更新速度和位置的公式(1)和(2)可以看出:粒子速度的改变由3个因素决定:1)惯性权重表明当前速度与前速度之间的关系,很多学者认为:惯性系数决定搜索步长,较大有利于全局搜索,较小有利于局部探索;2)认知因子c1反映粒子的搜索能力;3)探索因子c2,也称全局学习因子,或者称为社会共享能力系数,表示粒子之间的信息共享与合作能力。适当调整惯性权重,可以平衡粒子的全局和局部搜索能力。粒子的惯性权重极大影响算法的寻优效果,惯性权重应该随着粒子群的进化速度和集聚程度不断的调整,以提高算法的寻优效率。在进化过程中,每个粒子的进化速度不尽相同,为让惯性权重随着粒子群的进化速度和集聚程度自适应的变化,本文提出一种基于集聚度和进化速度的动态变化的惯性权重调整方法。

粒子的集聚度越高,ct的值越大,粒子的多样性越差,搜索容易陷入局部最优,应增大惯性权值,帮助算法跳出局部最优,提高算法全局搜索能力;粒子的集聚程度越低,ct的值越小,粒子的多样性越好,全局搜索能力越强,为平衡粒子全局和局部搜索能力,防止算法变成随机搜索,应适当降低惯性权值。为了能够让惯性权值自适应的改变,惯性权值可以表示为ct和的函数,即

式中:wini为w的初始值,通常wini=1;wv和wc分别为和ct的比例因子。

2.1 本文的算法

在上述讨论的基础上,本文提出一种改进的粒子群算法,该算法在运行过程中,w的值根据和ct动态调整,初始状态下,wv=0,wc=0。本文提出的算法步骤如下:

1)初始化粒子的位置和速度,计算粒子的适应度;

2)初始化粒子的全局最优值和个体最优值;

3)如果算法收敛达到精度要求或达到最大迭代次数,则执行步骤7),否则执行步骤4);

4)根据式(3)、式(4)和式(5),分别计算sti,ct和wti;

5)根据式(1)和式(2)分别更新粒子的速度和位置,计算粒子的适应度,更新粒子群的全局最优值和个体最优值;

6)将迭代次数加1,并执行步骤3);

7)输出最优个体,算法结束。

该算法考虑到粒子的进化速度和集聚程度对算法寻优的影响,如果粒子太过于集聚,则种群的多样性较差,容易陷入局部最优,此时应该增大惯性权值,增加粒子的多样性,扩大算法的搜索范围。本文采用适应度方差来度量粒子的集聚程度,方差越大,粒子的集聚程度越低,种群的多样性越好;方差越小,粒子的集聚程度越高,种群的多样性越差。为平衡算法全局不局部寻优能力,当进化速度较快时,应该减小算法全局搜索能力,提高局部搜索能力,以免错过较好的位置。由于每个粒子的进化速度各不相同,因此本文针对各个粒子提出自己的进化速度。由此可以看出,本文提出的算法不仅可以平衡局部和全局的搜索能力,还可以提高算法的效率,避免算法陷入局部最优。

2.2 仿真实验

为验证本文算法的有效性,与传统的PSO算法进行比较。采用4个典型测试函数进行实验,函数如下:

1)Sphere函数

Sphere函数是一个单峰二次函数病态函数,全局极小点在x=(0,0,…,0)处,全局极小值为f(x)=0。该函数是一个病态函数,只有一个极小点,但难以寻优,搜索区域为xi∈ [-10,10]。

2)Rastrigrin函数

Rastrigrin函数在x= (0,0,…,0)处取得全局极小值,极小点值为f(x)=0,搜索区域为xi∈ [-5.12,5.12]。

3)Noisy Quadric函数

Noisy Quadric函数在x= (0,0,…,0)处取得最优值0,搜索区域为xi∈ [-1.28,1.28]。

4)Rosenbrock函数

Rosenbrock函数在x=(1,…,1)处取得最优值0,搜索区域为xi∈ [-5,10]。

用传统粒子群算法和本文算法优化每一个函数都采用同一组规模为40的粒子,进化1 000代,每个函数的维度都为30。用2种算法优化上述4个函数,优化1 000代得到的最优值的变化情况分别如图1~4所示。

图1 Sphere函数进化1 000代最优值的变化情况

图2 Rastrigrin函数进化1 000代最优值的变化情况

图3 Noisy Quadric函数进化1 000代最优值的变化情况

图4 Rosenbrock函数进化1 000代最优值的变化情况

优化Sphere函数时,基本粒子群算法在前10代进化速度非常快,10代以后进化速度非常慢,600代以后基本就陷入局部最优0.850 512 221 140 020;用本文算法优时,经过10代的进化,最优值降低到0.1左右,此后进化速度减慢,最终得到最优值0.100 512 221 140 020。

在优化Rastrigrin函数时,基本粒子群算法在30代以前进化速度较快,从第1代的最优值2.985 226 741 101 385降低到第30代的0.892 207 868 042 702,此后进化速度较慢,最终得到最优值0.737 767 653 668 991;本文算法在前13代进化比较快,从第1代的最优值2.985 226 741 101 385降低到第13代的0.997 335 940 729 150,此后进化速度降低,得到最优值0.205 362 085 666 930。

在优化Noisy Quadric函数时,基本粒子群算法在前面3代进化速度较快,从第1代的最优值1.747 821 696 213 246降低到第3代的0.568 825 851 997 124,此后进化速度非常的慢,最后得到最优值0.513 012 935 365 487。

在优化Rosenbrock函数时,前6代进化速度比较快,从第1代的最优值9.192 361 368 484 599下降到第6代的最优值0.677 038 897 510 543,最终得到最优值0.151 365 801 046 284;用本文算法优化时,前面10代的进化速度比较快,从第1代的最优值9.192 361 368 484 599降低到第10代的最优值0.010 392 238 053 912,最后得到最优值0.007 303 451 374 953。

由此可以看出,本文的算法在跳出局部最优的能力要比基本粒子群算法要强,可以较好平衡求精和求泛的能力。

3 结语

在粒子群算法中,惯性权值是较为重要的参数,它的取值直接关系到算法的性能。本文从算法进化速度和粒子的集聚程度考虑,提出动态变化的惯性权重机制,让权重根据算法的运行状态动态变化,控制了粒子的搜索范围,使粒子较好地平衡全局和局部搜索能力。和传统的粒子群优化算法相比,进一步说明固定的惯性权重在实际应用中受到很大的限制。对几种典型函数的测试实验表明,本文算法既能保持传统粒子群算法的简单,搜索速度快的特点,还能跳出局部最优,提高算法的搜索效率和精度。

[1]Shi Y,Eberhart R C.A modified particle swarm optimizer[C]//Evolutionary Computation Proceedings,IEEE World Congress on Computational Intelligence.,The 1998IEEE International Conference.Anchorage,AK:IEEE,1998:69-73.

[2]赵曦,李颖,徐江,等.基于PSO-SVM 的发动机故障诊断研究[J].计算机仿真,2014,31(3):171-174.

[3]赵卫伟,潘宏侠.基于PSO参数优化的支持向量机齿轮箱故障诊断研究[J].机床与液压,2014,42(7):152-154.

[4]刘岩.增强学习的PID控制参数优化快速整定算法[J].计算机测量与控制,2014,22(2):467-479.

[5]张春.PID控制参数优化在合成氨控制系统中的应用[J].计算机仿真,2013,30(5):366-369.

[6]赵越,起嵩正.多样性P S O_S V R油气操作成本时间序列预测模型[J].计算机仿真,31(1):96-102.

[7]ZHAN Zhi-Hui,ZHANG Jun,LI Yun,et al.Adaptive particle swarm optimization[J].IEEE Transactions On Systems Man And Cybernetics Part B-cybernetics,2009,39:1362-1381.

[8]赵志刚,黄树运,王伟倩.基于随机惯性权重的简化粒子群优化算法 [J].计算机应用 研究,2014,31(2):361-363.

[9]申元霞,王国胤,曾传华.相关性粒子群优化模型[J].软件学报,2011,22(4):695-708.

[10]高卫峰,刘三阳.一种高效粒子群优化算法[J].控制与决策,2011,26(8):1158-1162.

[11]Khare A,Rangnekar S.A review of particle swarm optimization and its applications in SolarPhotovoltaic system[J].Applied Soft Computing,2013,13:2997-3006.

[12]Valdez F,Melin P,Castillo O.An improved evolutionary method with fuzzy logic for combining particle swarm optimization and genetic algorithms[J].Applied Soft Computing,2011,11:2625-2632.

[13]Marinakis Y,Marinaki M.Particle swarm optimization with expanding neighborhood topology for the permutation flowshop scheduling problem[J].Soft Computing,2013,17:1159-1173.

[14]王晓佳,张宝霆,徐达宇.含有压缩因子的粒子群优化灰色模型在智能电网中的应用[J].运筹与管理,2012,21(3):114-118.

猜你喜欢

惯性全局权重
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
冲破『惯性』 看惯性
权重常思“浮名轻”
落子山东,意在全局
为党督政勤履职 代民行权重担当
无处不在的惯性
基于局部权重k-近质心近邻算法
无处不在的惯性
新思路:牵一发动全局