分数阶策略和带有Lévy飞行的螺旋蝙蝠算法
2021-09-26李苗苗王秋萍
李苗苗,王秋萍,惠 蕙
西安理工大学 理学院,西安710054
近年来,模拟自然现象的群智能算法常被用于解决优化问题,以达到预期目的。群智能算法结构简单,具有并行和分布式特点,解决复杂问题时的效率和稳定性高,而被广泛用于实际优化问题。
蝙蝠算法[1]是一种基于群体智能的启发式搜索算法,可以有效地搜索全局最优解。它是一种随机搜索算法,通过模拟蝙蝠的回声定位以检测猎物并避开障碍物,并且结合现有优化算法的优点,使其在解决优化问题方面更具优势。基于BA的算法已应用于多个领域,例如优化节能系统[2]、神经网络模型[3]、多级图像阈值处理[4]等。与其他传统的优化技术相比,BA算法具有较强的优势,但存在陷入局部极值的可能,从而会降低收敛速度和准确性。因此,国内外学者对其进行了各种改进研究。Paiva等[5]使用柯西突变算子和精英反向学习策略来提高BA的多样性和收敛速度。Cai等[6]提出了具有高斯随机游走的BA算法,以增强局部搜索能力。Cui等[7]提出了一种具有惯性权重的蝙蝠算法,该算法可以控制每个蝙蝠先前速度的惯性影响,并提高了局部搜索能力。
上述基于蝙蝠算法的改进,从不同方面提高了算法的性能。为了进一步提升算法性能,本文提出一种新的改进的蝙蝠算法,具体改进如下:利用分数阶对历史经验的记忆性,自适应调整阶次,增强种群多样性,加快了算法收敛速度;将Lévy飞行与阿基米德螺旋结合产生局部新解,增强了算法的局部开发和跳出局部最优能力;为更好地平衡算法的探索和开发能力,采用新的动态机制调节响度和脉冲发射率。最后,将FOSBA在CEC2014测试集和减速器设计问题上进行对比实验,验证其有效性。
1 蝙蝠算法
1.1 基本的蝙蝠算法
蝙蝠算法[1]是在理想状态下,利用蝙蝠在觅食时所发出的脉冲频率、响度、脉冲发射率的变化而设计的一种群智能算法。蝙蝠使用声波回声定位、检测猎物、躲避障碍,并且在逼近目标时会增大脉冲发射率,减小响度。蝙蝠寻找猎物理想化过程如下:
(1)蝙蝠使用回声定位来确定与目标的距离。
(2)蝙蝠以速度vi向一个位置xi飞行,并通过不同波长(λ)和响度(A)搜索位置,在给定的频率间隔(fmin,fmax)内发射,以检测猎物或躲避障碍。
(3)蝙蝠在计算与目标的距离时,可以调节信号的波长和脉冲速率。
(4)A从最大值(Amax)降到最小值(Amin)。当Amin=0意味着蝙蝠刚刚找到了猎物,暂时停止发出任何声音。在d维搜索空间中,第i只蝙蝠在第t次迭代中的位置和速度更新公式为:
其中,β是[0,1]均匀分布的随机数;fi是蝙蝠的搜索脉冲频率,fi∈[fmin,fmax];x∗是当前最好的解。
对于算法的局部搜索,一旦从当前解集选取最好的解,那么通过随机游走产生新解:
这里ε∈[-1,1]是服从均匀分布的随机数,At是所有蝙蝠在t次迭代中的平均响度。响度和脉冲发射率的更新公式为:
1.2 改进的蝙蝠算法
蝙蝠算法是基于蝙蝠回声定位设计的一种随机搜索算法,具有较好的搜索能力。然而,同其他智能优化算法一样,基本的蝙蝠算法在优化过程中存在收敛速度低,易陷入局部极值等不足,譬如在蝙蝠的位置中,个体的位置与速度有关,而速度依赖于当前全局最好解,每次进行全局位置更新时,就会受上一代位置与当前最好解位置的距离牵制,导致算法的全局搜索能力不足,易陷入局部最优;另外,基本的蝙蝠算法在迭代后期响度趋于零,脉冲发射率趋于最大值,如果产生的优良新解,由于不满足条件而不能被接受,就会导致算法早熟。
针对上述问题,本文将分数阶策略、带有Lévy飞行的阿基米德螺旋策略以及动态调整响度和脉冲发射率进行结合,其目的是提高算法的收敛速度,加强算法的局部开发和跳出局部极值能力,避免迭代后期出现早熟,具体的改进策略如下。
1.2.1 基于分数阶的改进策略
分数微积分是公认的有效工具,可用来描述自然的行为,以及许多研究领域的实际问题,如工程、数学、物理、金融领域等[8]。其中,Grunwald Letnikov分数阶微积分形式[9]如下:
其中,Dβ(z(t))是Grunwald Letnikov(GL)的β阶导数,Γ是伽马函数。
从式(7)可以得到,整数阶导数具有有限项,而分数阶导数具有无限项,因此,整数导数是局部算子,而分数导数对所有过去事件具有记忆性。然而,对过去事件的影响随着时间的推移而减小。基于式(7),离散Grunwald Letnikov分数阶微积分可表述如下:
其中,P是采样周期,r为截断阶次,β表示阶次。
在基本蝙蝠算法中,蝙蝠位置更新如式(3)所示,将其变形为式(9):
考虑前四项微分,得到本文的蝙蝠位置更新式如式(13):
分数阶的阶次β影响着蝙蝠的位置更新,当β很小时,将忽略蝙蝠先前的活动容易陷入局部极值,但β太大,算法的复杂度会增加,花费时间更多。因此,本文采用式(14)调整分数阶阶次β,β取值范围为[0.4,0.6][9],式中T是最大迭代次数。
基于上述分析,将分数阶微积分嵌入到蝙蝠算法[9],在搜索前期,分数阶微积分凭借自身的记忆特性,可以提升算法的探索能力,随迭代次数增加,分数阶阶次不断减小,有利于后期算法开发。因此结合阶次自适应调整的分数阶策略,可以增强种群多样性,提高算法的收敛速度,获得高质量的解。
1.2.2 结合Lévy飞行的阿基米德螺旋策略
阿基米德螺线[10]是以恒定角速度绕固定点旋转并不断远离固定点而产生的的轨迹。在极坐标中,(R,θ)的定义如式(15)所示:
式中,θ是极角;参数a为起始点与极坐标中心的距离;参数b控制螺线间的螺距。本文将Lévy飞行与阿基米德螺旋结合产生局部新解,如式(16)所示:
其中,x∗是当前所有蝙蝠中的最好解,xlevy是基于Lévy飞行[11]产生的解,l,ε是[-1,1]内均匀分布的随机数,At是所有蝙蝠在t次代里的平均响度,λ是[λmin,λmax]范围内的随机数,xrr是在蝙蝠种群中随机选取的个体,μ和v服从正态分布,v~N(0,1),即标准正态分布,μ~
其中,Γ为伽马函数,通常η的取值范围为(0,2][11]。
该螺旋策略以一定的旋转角度进行搜索,最大限度地避免了生成重复个体,能够有效提升算法的局部开发能力。Lévy飞行是一种随机游走方式,并且在随机游走过程中偶尔会出现长跳跃,在搜索过程中,Lévy飞行能够扩大群体搜索范围,协助算法在必要时跳出局部最优。与其他螺旋方式不同的是,本文在算法的局部位置更新中将Lévy飞行与阿基米德螺旋相结合,生成局部新解,该策略不但可以增强算法的局部开发能力,而且能有效协助算法跳出局部最优,提升算法搜索性能。
1.2.3 新的动态调节机制