APP下载

具有自适应行为的粒子群算法研究

2019-03-05丁知平牛培峰

统计与决策 2019年2期
关键词:测试函数惯性全局

丁知平,刘 超,牛培峰

(1.清远职业技术学院 信息技术与创意设计学院,广东 清远 511510;2.贵州航天电器股份有限公司,贵阳 550009;3.燕山大学 工业计算机控制工程河北省重点实验室,河北 秦皇岛 066004)

0 引言

近年来,越来越多的启发式智能算法被应用于解决复杂高维数值函数优化问题[1]。PSO(particle swarm optimization,PSO)算法是由Kennedy等受鸟群觅食行为启发而提出的一种基于种群的仿生类智能优化算法[2,3],PSO算法中每一个粒子代表一个可行的解决方案,食物源的位置就是全局最优的位置点。PSO具有搜索多样性强、操作简单和调节参数少等优点,一经提出就得到广泛应用[4]。针对复杂优化问题的求解,PSO算法易陷入局部最小值,收敛精度较低等不足[5]。

为了更好平衡PSO算法的全局探索能力和局部开采能力,提高算法的收敛速度和收敛精度,本文提出了一种基于自适应惯性权重的粒子群算法(AIW-PSO),该算法能够有效平衡原粒子位置和飞行速度对新粒子位置的影响。仿真实验表明,AIW-PSO算法具有较高的收敛精度和收敛速度。

1 基本的粒子群算法(PSO)

PSO算法基本思路是对飞鸟的捕食过程进行模拟,每个粒子在解空间中进行运动,记录各个粒子搜索到的最优点和所有粒子搜索到的全局最优点,粒子根据自身最优点及全局最优点不断地更新自己的速度和位置。

假设在D维搜索空间中,粒子群的种群大小为N,第i个粒子的位置为飞行的速度为vi=[vi1,vi2,…,viD]。在进行第t次迭代时,粒子自身的历史最优位置为pbest,全局粒子最优位置为gbest。则粒子飞行速度和位置更新的计算公式表述如下:

2 基于自适应惯性权重的粒子群算法

为了提高PSO算法的全局寻优能力和搜索精度,本文在原始PSO算法的基础上提出了一种基于自适应惯性权重的粒子群算法(AIW-PSO)。具体描述如下:

PSO算法全局探索能力和局部开采能力相互矛盾,不易找到平衡点,为了有效地改善算法的优化能力,在粒子位置更新公式(2)的基础上引入了两个自适应惯性权重wj和w'j。其中,wj用于控制原粒子位置对新粒子位置的影响度,w'j用于平衡粒子飞行速度对新位置的影响权重。改进后的粒子位置更新公式表述如下:

式中,wj和w'j既能保持粒子种群的多样性,又能增强算法寻优过程中跳出局部最优的能力。

wj和w'j的数学表达式如下:式中,f(j)表示第j个粒子的适应度值,u表示在第一次迭代计算中粒子种群中最佳的适应度值,iter表示当前的迭代次数。

AIW-PSO算法搜索的具体步骤如下:

步骤1:对粒子群的初始位置进行初始化,并对种群规模N,学习因子c1和c2,最大迭代次数M,初始飞行速度v和维数D等参数进行设置;

步骤2:计算每个粒子的适应度值,并找出初始全局最优gbest和个体最优pbest;

步骤3:用公式(1)更新粒子的飞行速度v;

步骤4:用公式(4)和公式(5)更新自适应惯性权重wj和w'j;

步骤5:用公式(3)更新粒子的位置;

步骤6:计算新产生位置的适应度值,更新全局最优gbest和个体最优pbest,重复步骤3至步骤6,直到达到最大迭代次数M,算法寻优结束;

步骤7:输出最优粒子个体,即算法找到的最优解。

3 数值实验与分析

为了更好地评价AIW-PSO算法的可行性和有效性,将AIW-PSO算法与生物地理优化算法(BBO)[6]磷虾群算法(KH)[7]、原始PSO算法及其它PSO改进算法进行比较,并分析实验结果。

3.1 测试函数与参数设定

为了检验AIW-PSO算法的性能,引入8组基准测试函数进行仿真实验,所采用的测试函数见表1。在表1中,f1至f4为单峰测试函数,f5至f8为多峰测试函数。f3的理论最优位置为[1]n,f4的理论最优位置为[-0.5]n,其余6组测试函数的理论最优位置为[0]n,n表示优化问题的维数,f1至f8的理论最优值均为0。

表1 基准测试函数

实验中设置PSO和AIW-PSO算法的学习因子c1=c2=2;BBO算法的突变概率Mu=0.005;KH算法的最大感应速度Nmax=0.01m/s,觅食速度Vf=0.02m/s,最大扩散速度Dmax=0.005m/s。为了比较的统一,四种算法的种群规模N=40,最大迭代次数M=500。算法在每组测试函数上独立运行20次,并对20次运行的平均值和均方差进行记录,标黑部分表示最好结果。所有的仿真实验均在Windows XP系统上使用Matlab 2009a进行。

3.2 仿真实验结果与分析

表2为四种算法对8组基准测试函数寻优的结果统计,表中分别给出了算法在30维和50维问题上的搜索精度和稳定性测试,即20次独立运行的平均值和均方差。

表2 四种算法对基准测试函数的运行结果

从表2中可以看出,无论是对于单峰测试函数,还是多峰测试函数,本文提出的AIW-PSO算法在30维和50维问题上均表现出了较好的搜索性能。相比于BBO算法,AIW-PSO算法在8组测试函数上的寻优精度和稳定性均更好;相比于KH算法,AIW-PSO算法除去f3在30维的情况下,对其他情况下的测试函数均表现出了较高的搜索效果;相比于原始的PSO算法,AIW-PSO算法的搜索性能得到了很大的提高,有些甚至能优化到最优值或接近理论最优值。综上所述,本文提出的AIW-PSO算法引入自适应惯性权重,能够有效的提高PSO算法的全局搜索精度和跳出局部最优的能力。

3.3 收敛性能曲线分析

图1 四种算法对f2(30维)的寻优曲线

图1和图2(见下页)是BBO、KH、PSO和AIW-PSO算法分别在30维和50维问题上的部分寻优曲线,实验中得到的其他寻优曲线与给出的部分类似,因篇幅有限此处不再给出。

图2 四种算法对f8(50维)的寻优曲线

从图1中可以看出,AIW-PSO算法对f2函数在30维进行寻优时,有多处拐点出现,证明其跳出局部最优的能力得到了有效增强;进一步也可以观察到AIW-PSO算法收敛速度较其他三种算法更快,收敛精度也有一定的提高。对图2进行分析,对于f8函数(50维),AIW-PSO算法的收敛精度得到了一定幅度的提高,且寻优过程较平稳,稳定性更好。综上所述,AIW-PSO算法对多维复杂优化问题寻优时,相比于其他三种算法全局寻优能力得到了有效改善且稳定性较强。

3.4 AIW-PSO算法与其它改进PSO算法实验

为了进一步评价AIW-PSO算法的优化能力,将AIW-PSO 与 CLPSO、HPSO-TVAC[8]、LPSO、DMS-PSO[9]和LFPSO进行比较。具体实验参数设定与上文相同,算法均独立运行20次。表3给出了8组测试函数在30维问题上的实验结果,其中,CLPSO、HPSO-TVAC、LPSO、DMS-PSO和LFPSO的实验数据来自于文献[10]。

表3 AIW-PSO算法与其他相关算法的实验结果对比

从表3中可以看出,AIW-PSO、CLPSO、HPSO-TVAC、LFPSO算法找到最优解个数分别为 5、1、1、1,LPSO 和DMS-PSO找到的最优个数为0,且对于f5和f7函数,AIW-PSO算法直接搜索到了理论最优值,对于f1、f4和f6函数,AIW-PSO算法搜索的结果无限接近最优值。实验结果表明,AIW-PSO算法的搜索性能更优,特别是对于多峰函数具有较高的寻优能力和稳定性。综上所述,自适应行为的惯性权值的引入,改善了PSO算法的性能。AIW-PSO算法能够有效解决高维复杂数值优化问题。

4 结束语

针对粒子群算法全局寻优能力差和易陷入局部最小值的不足,在原始粒子群算法的基础上,通过引入自适应惯性权重来平衡原粒子位置和飞行速度对新粒子位置的影响度。数值函数仿真实验表明,AIW-PSO算法无论是对于单峰测试函数,还是多峰测试函数,均表现出了较强的全局寻优能力和跳出局部最优的能力,且搜索精度也得到了较大的提升,进一步验证了AIW-PSO算法的有效性。

猜你喜欢

测试函数惯性全局
基于改进空间通道信息的全局烟雾注意网络
冲破『惯性』 看惯性
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
认清生活中的“惯性”
基于自适应调整权重和搜索策略的鲸鱼优化算法
落子山东,意在全局
记忆型非经典扩散方程在中的全局吸引子
具有收缩因子的自适应鸽群算法用于函数优化问题
高超声速飞行器全局有限时间姿态控制方法