当前位置:首页 期刊杂志

非线性随机扰动的粒子群优化算法

时间:2024-08-31

张少辉,吴文欢,韩秋英

(周口师范学院 计算机科学与技术学院,河南 周口 466001)

粒子群优化(Particle Swarm Optimization,简称PSO)算法是一种新颖的进化算法,由美国学者J.Kennedy博士和R.C.Eberhart于1995年共同提出[1].PSO算法受鸟群觅食行为的启发而提出,因故得名.PSO算法因其算法程序简单、需要调节的参数较少、高效等特点,已经得到了众多学者的重视和研究,目前多应用于工程目标优化问题的求解中.然而基本粒子群优化算法也存在收敛速度慢、易早熟收敛等缺点,为此,许多学者将PSO算法同遗传思想、模拟退火算法和单纯性方法等结合起来,以期提高算法的全局搜索能力和精度.

本文在非线性递减惯性权重的基础上,引入小阻尼振荡函数,在算法收敛后期对其进行随机扰动,提出一种非线性随机扰动的粒子群优化算法,并通过两个基准测试函数对其进行性能测试.实验结果表明,相对于标准粒子群优化算法,新算法能有效平衡全局搜索和局部搜索,具有更快的收敛速度.

1 标准粒子群优化算法

群体智能算法中,单个个体并不具有智能性,但整个群体因其相互影响和相互制约的关系,而体现出人工智能的特征.PSO算法中粒子的速度和位置的计算更新公式表示如下[2]:

其中,Xi(t)表示第i个粒子在第t代的位置;Vi(t)表示第i个粒子在第i代的速度;pbesti(t)表示第i个粒子在第i代所经历的历史最优位置;gbest(t)代表所有粒子经过t代后的全局最优位置;ω表示算法的惯性权重,它的作用是用于衡量旧的速度对新速度的影响;c1和c2为加速常数,一般取值范围为[0~2];r1和r2为两个相互独立的随机数,取值范围为[0~1].

1998年,Y.Shi[2]等提出在公式(1)的基础上,通过增加一个惯性权重ω来决定粒子从当前速度继承的多少,从而来协调算法中的搜索能力.并且通过实验得出:较大的惯性权重有利于展开大范围的开拓(Exploration),较小的惯性权重有利于进行小范围的开掘(Exploitaion).因此,Y.Shi[3]等经过反复实验,提出了线性递减惯性权重策略(LDIW),采用惯性权重从0.9到0.4之间线性递减,会取得令人满意的算法性能.LDIW策略的计算公式如(3)所示:

其中,ωstart和ωend分别为惯性权重的开始值和终止值;t为当前迭代次数;tmax为最大迭代次数.

在粒子群优化算法优化过程中,所有粒子均向最优解的方向靠拢,所以在迭代后期,粒子的趋向同一化,群体的多样性逐渐丧失,致使在算法后期,收敛速度明显变慢,甚至处于停滞状态.为了克服这一缺点,近年来出现了不少针对惯性权重改进的PSO算法,胡建秀[4]等提出了一种线性微分递减策略;张顶学等[5]提出了一种动态改变惯性权重策略;陈贵敏等[6]提出了3种惯性权重非线性递减的策略.这些算法都针对惯性权重的递减策略,对PSO算法进行了改进,不同程度上提高了算法的搜索能力和收敛速度,但它们很难在搜索速度和保持种群多样性之间达到平衡.

2 非线性随机扰动粒子群优化算法(PSONLRD)

2.1 随机扰动策略

本文在非线性惯性权重递减策略的基础上,基于凹函数递减策略(Concave Function's Inertia Weight,PSO-CFIW)[6],引入小阻尼振动函数,提出一种非线性随机扰动(Nonliner Random Disturbance,PSO-NLRD)的惯性权重改进策略,其惯性权重计算如公式(4)所示:

式中,Ae-βtcos(ωt+φ)为小阻尼振动函数,利用阻尼振动来控制算法中的惯性权重,使其随着迭代次数的增加而出现随机扰动现象.加入了随机扰动策略,在算法迭代前期,扰动较弱,增强了种群的多样性,使PSO算法能尽快找到全局最优解的大致位置,增强PSO算法的开拓(Exploration)能力;随着迭代次数的增加,扰动逐渐加强,在最优解的局部区域内进行开掘(Exploitation),有利于算法跳出局部最优,精确定位全局最优解,避免了停滞现象的发生.标准PSO算法(SPSO),PSO-CFIW 算法和PSO-NLRD算法中三种惯性权重递减策略随迭代次数变化曲线对比如图1所示.

2.2 基准测试函数

本文采用Rastrigrin和MexicoHat两个标准的基准(Benchmark)测试函数进行算法测试.

Rastrigrin函数的定义如下:

该函数是一个典型的具有大量局部最优的复杂多峰函数,算法很容易陷入局部最优,其全局最优解为x*=(0,0,…,0),全局最优值为f(x*)=0.

图1 惯性权重随迭代次数变化曲线对比图

MexicoHat函数(墨西哥草帽函数)定义如下:

该函数有很多的局部极大值点,而全局最优解为x*=(0,0,…,0),全局最优值为f(x*)=1.005 4.

3 仿真实例及数据分析

3.1 实验结果

本文采用上述两个基准测试函数来测试所提出的PSO-NLRD算法,种群规模大小均为40,优化变量的维数为20,最大迭代次数为300,最大速度Vmax和最小速度Vmin分别设置为上限和下限的一半,Wmax=0.9,Wmin=0.4,c1=c2=2.0.为了比较算法的性能和减少偶然性的影响,在相同迭代次数的条件下,各算法对每个函数测试平均运行20次,用于统计实验平均值和标准差.SPSO,PSOCFIW和PSO-NLRD算法的寻优结果比较如表1所示(表中 Min表示最小值,Max表示最大值,Avg表示平均值,SD表示标准差).

表1 基准测试函数对三种算法的性能测试结果

测试函数优化曲线对比如图2和图3所示.

3.2 收敛性分析

从表1可以看出,对于Rastrigrin函数,PSO-NLRD算法平均值为0.010 8,接近全局极小值0;对于MexicoHat函数,算法平均值为1.005 2,非常接近全局极大值1.005 4,取得了满意的结果.从图2、图3可以看出,PSO-NLRD算法比其他算法具有较快的收敛速度和稳定性,在迭代后期,随机扰动策略使得算法具有跳出局部极小值的能力,有效避免了算法的早熟收敛问题.

4 小结

本文在非线性惯性权重递减策略的基础上,提出了一种非线性随机扰动的递减策略,并使用两个基准测试函数对算法进行测试和分析.目前,虽然对粒子群算法的研究取得了较为显著的成绩,但粒子群算法的数学模型还待完善,在很多领域还存在亟待解决的问题,所以,进一步研究PSO算法具有十分重要的现实意义.

[1]Kennedy J,Eberhart R.Particle Swarm Optimization[C]//Proc of IEEE Int'l Conf on Neural Networks,1995:1942-1948.

[2]Shi Y,Eberhart R C.A modified pariticle swarm optimizer[C].Procedings of the IEEE International Conference on Evolutionary Computation.Piscataway:IEEE Press,1998:69-73.

[3]Shi Y,Eberhart R C.Particle Swarm Optimization:development,applications and resources[C].In:Proc Congress on Evolutionary Computation 2001NJ:Piscataway,IEEE Press,2001:81-86.

[4]胡建秀,曾建潮.微粒群算法中惯性权重的调整策略[J].计算机工程,2007,33(11):193-195.

[5]张顶学,关治洪,刘新芝.一种动态改变惯性权重的自适应粒子群算法[J].控制与决策,2008,11(23):1253-1257.

[6]陈贵敏,贾建援,韩琪.粒子群优化算法的惯性权重递减策略研究[J].西安交通大学学报,2006,40(1):53-56.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!