多策略融合的改进萤火虫算法

2022-12-18 08:11高岳林赫亚华王惠敏
计算机应用 2022年12期
关键词:莱维萤火虫全局

雍 欣,高岳林,2,赫亚华,王惠敏

(1.北方民族大学 计算机科学与工程学院,银川 750021;2.宁夏智能信息与大数据处理重点实验室(北方民族大学),银川 750021)

0 引言

受到生物智能群体行为的启发提出的智能优化算法在解决全局优化问题中具有重要的地位,近年来逐渐发展并得到了广泛应用,成为了优化领域的热点研究问题之一。针对传统优化算法在实际工程领域中的应用存在的算法规模庞大和复杂度过高等问题,群智能优化算法通过智能个体的群体行为进行移动寻找全局最优解,拥有更为强大的计算能力和解空间的搜索能力,因此能够用于解决诸多应用问题且已得到了丰富的研究成果[1-4]。典型的群智能优化算法有模拟鸟群飞行觅食行为的粒子群优化(Particle Swarm Optimization,PSO)算法[1]、模拟蚁群寻找最优路径的蚁群优化算法[2]、模拟灰狼群体捕食行为的灰狼优化算法[3]等,对于群智能算法的研究主要集中在对现有算法的改进和应用,以及模仿生物群体行为的新型算法的提出和理论研究。

萤火虫算法(Firefly Algorithm,FA)是群智能优化算法的一种,由Yang[5]于2008 年提出。该算法通过模拟自然界中萤火虫的发光行为进行寻优,将萤火虫个体的亮度同目标函数值相关联。在算法中,萤火虫的飞行行为抽象为仅由亮度吸引彼此,它们之间的吸引度则和距离密切相关,萤火虫们总是趋向于最亮的个体,即最终收敛到最优解。自提出以来,萤火虫算法得到了领域内广泛的应用和研究[6-11],取得了丰富的研究成果;然而,传统的萤火虫算法仍存在一些不足,例如易陷入局部最优、收敛速度慢且收敛精度低等问题。

针对以上问题,本文把莱维飞行、精英参与的交叉算子及精英反向学习机制融入到传统的萤火虫算法中,提出了一种多策略融合的改进萤火虫算法LEEFA(Levy flight-Elite participated crossover-Elite opposition-based learning Firefly Algorithm)。引入莱维飞行机制能够有效地进行全局搜索,提升解的多样性;精英参与的交叉算子提供的跳出局部最优的能力和优良个体保留的能力能够避免萤火虫算法陷入局部最优,进而提升算法的表现和收敛精度等;引入精英反向学习机制能够在算法陷入局部最优区域时,通过构建反向解保留精英个体使得种群解的多样性增加和收敛精度提升,让算法朝着最优解的方向进行进化。

本文在基准测试函数上进行了对比仿真实验,结果表明所提算法相比传统智能优化算法及其他改进萤火虫算法提升了萤火虫算法的性能,在收敛速度和精度上表现均优于对比算法。

1 相关工作

萤火虫算法自提出以来便受到国内外学者的广泛关注,为了解决萤火虫算法存在的局部开发能力不足、容易陷入局部极值、收敛精度低且过早收敛的问题,近年来不同的改进和优化方向的提升算法不断被提出。相关研究提出的算法在萤火虫算法的基础上,不同程度提升了算法的全局搜索能力和局部寻优能力,且对于两方面的能力如何平衡做出了改进。

何栎等[6]提出了一种基于莱维飞行和变异算子的萤火虫算法(Levy flight and Mutation operator based Firefly Algorithm,LMFA),该算法侧重于在传统萤火虫算法陷入局部最优时增加跳出局部最优解的概率,当种群无法通过初始寻优算法提升解的质量时,莱维飞行和变异算子将被用来进行种群解的更新;然而,直到相对停滞再进行种群更新极大地影响了种群多样性的提升速度,因此也限制了算法收敛速度和精度一定程度的上升空间。值得注意的是,针对萤火虫算法的研究不仅注重提升其局部寻优能力,也关注如何平衡并尽可能同时提升全局搜索能力和局部寻优能力,这也是当下的研究热点。Wu 等[7]使用自适应开关的方式在迭代中进行选择以平衡莱维飞行进行全局探索及对数螺旋路径进行局部开发的两种模式,提出了自适应对数螺旋-莱维飞行萤火虫优化算法(ADaptive logarithmic spiral-Levy Improved Firefly Algorithm,ADIFA),取得了一定的成果,但在某些问题上表现不足。Wang 等[8]提出了基于性别差异的改进萤火虫算法(improved Firefly Algorithm based on Gender Difference,GDFA),其中,雄萤火虫通过随机选择和方向判断进行全局搜索,雌萤火虫通过局部搜索找到高质量的解,有效地平衡了算法的全局和局部寻优,算法引入的混沌搜索进一步提高了搜索能力。Yelghi 等[9]将潮汐力公式引入萤火虫算法框架,其灵活性为算法平衡全局和局部搜索提供了新的见解。刘振等[10]提出的混合萤火虫算法通过调节参数在算法迭代前期进行全局范围内的搜索,后期则聚焦于局部收敛区域;该算法提升种群多样性的方式是构造分布式协同进化种群框架,引入优良精英个体进行指导,采用两阶段混沌进化方式,提升了收敛精度,但仍然存在进化速度的缺陷。刘磊等[11]提出了基于精英个体划分的变步长萤火虫优化算法(Elite-individual-dipartition Dynamic Step Firefly Algorithm,EDSFA),对精英和非精英个体采用不同的步长调整策略,兼顾了算法在解搜索空间的全局搜索和局部开发能力并提升了种群的多样性,然而个体差异造成的收敛效果仍然存在不稳定性。

本文提出了一种引入莱维飞行、精英参与的交叉算子和精英反向学习机制多策略融合的改进萤火虫算法(LEEFA)。通过在基准函数上的实验结果表明,本文提出的改进萤火虫算法能够增强算法的全局搜索能力并且有效地避免算法陷入局部最优值和过早收敛,算法的收敛速度和精度得到了提升。

2 传统萤火虫算法

萤火虫算法通过模拟自然界中萤火虫的发光行为来寻找最优解。算法本身仅抽象化萤火虫的发光特性来搜索解空间区域,在这过程中不断向解空间内位置较优的萤火虫迁移,最终收敛到最优解。

萤火虫算法的关键在于萤火虫的亮度和吸引度,其中:萤火虫的亮度决定种群中每个个体的移动方向,吸引度决定其移动距离。在算法迭代过程中,萤火虫自身所在位置解的质量越好,亮度就越高;然而在每只萤火虫视野中所看见的其他萤火虫的亮度亦受到相对位置距离的影响,因此萤火虫之间相对距离越短相对亮度越高,即相对亮度与萤火虫个体之间的距离成反比。萤火虫种群通过亮度交换信息并通过吸引度移动寻觅最优解,每只个体对于其他萤火虫的吸引度和相对亮度有关且与距离成反比,即对每只萤火虫来说更容易受周围的亮度较高的萤火虫吸引而向其靠近,通过这种机制最终收敛到最优位置。

算法具体描述如下:假设有N只萤火虫,搜索空间的维度为D维,那么第i只萤火虫在D维空间中的初始位置可表示为Xi=[xi,1,xi,2,…,xi,n] 。

定义1第i只萤火虫的荧光亮度。

其中:f(Xi)表示第i只萤火虫对所在位置的目标适应度值。

定义2第i只萤火虫的相对亮度。

其中:γ表示光强吸引因子,其取值与区域面积有关,一般设置为常数;rij=|Xi-Xj|,表示第i只萤火虫与第j只萤火虫之间的空间距离的大小。

定义3萤火虫的吸引度。

其中β0表示最大吸引度因子。式(3)描述了最大亮度的萤火虫对其他萤火虫的吸引度随着距离的增大而减小。

定义4寻优过程位置更新。

其中:α为步长因子,rand为[0,1]上服从均匀分布的随机因子。对于某萤火虫个体i来说,若萤火虫个体j吸引了它,则采用式(4)进行更新,循环执行每个萤火虫个体。为了加大搜索域空间范围,防止算法陷入过早收敛,式(4)中加入了α·(rand-12)。

3 多策略融合的改进萤火虫算法

本文提出的改进萤火虫算法作出了以下改进:1)在传统萤火虫算法的寻优基础上添加了筛选机制,仅对能够引导某萤火虫个体趋向更优位置的移动进行保留,从而逐步提升解的质量;2)引入莱维飞行机制,增加种群多样性并提升种群解的质量;3)采用精英参与的交叉算子,使用精英个体进行交叉且在获得优于原有解的子代解后选择优良个体留在原有种群内;4)引入精英反向学习机制,在算法陷于局部最优区域时,提供反向解增加可能解的选择范围,并从中选择精英个体进行下一次迭代。通过以上改进,让算法朝着更好的进化方向进行,最终收敛到全局最优解。

3.1 筛选机制的萤火虫移动行为

在传统萤火虫算法中,荧光亮度较高的萤火虫个体一般情况下只对相对距离较小的萤火虫个体具有较强的吸引效果,使邻域内的萤火虫改变移动方向和距离,从而更趋向自己。然而,这种共同的吸引作用往往存在引导周围的萤火虫移动到解的质量不佳的位置上,容易导致传统萤火虫算法收敛精度不高且易陷入局部最优解而过早收敛的问题。因此,本文通过添加筛选机制保证进入下一次迭代的萤火虫个体都是改善后的优良个体。以求解极小值问题为例,萤火虫位置更新公式改进如下:

3.2 莱维飞行

莱维飞行是一种模拟自然界随机现象行为的行走方式,已经广泛被用于优化算法研究的改进策略中,例如与PSO 算法[12]、灰狼优化算法[13]、原子搜索算法[14]等结合的算法设计都在一定程度上提升了算法表现。莱维飞行特点在于其步长服从莱维稳定分布,是一个非高斯随机过程。

本文中符合莱维分布的随机步长通过式(6)进行计算:

其中μ和v服从正态分布:

其中σμ和σv定义如下:

其中:β的取值范围为[0,2],通常取β=32。此前的文献研究表明莱维飞行的搜索路径能够提升算法在全局搜索空间的搜索能力,扩大搜索范围,让算法更容易跳出局部极值点。Yang[15]在2010 年提出的莱维飞行萤火虫算法(Levy Flight Firefly Algorithm,LFFA)通过将莱维飞行引入到萤火虫算法中,增强了萤火虫算法的全局探索能力,且保留了部分原算法局部空间勘探能力。引入莱维飞行的萤火虫算法更新公式如下:

其中:式(4)中的α·(rand-12)随机步长由莱维分布生成的随机步长代替,故式(7)中的sign(rand-12)作用为给出一个随机方向;Levy表示由式(6)生成的随机步长,此时萤火虫的运动即为基于重尾概率分布的随机行走。Levy 随机步长相较于早先使用的随机步长有效提高了算法跳出局部最优解的概率,从而整体上提升算法全局搜索的能力及获得最优解的能力。数值实验结果表明LFFA 表现更优,具有更高的成功率和更少的计算时间。本文引入的莱维飞行机制正是基于以上改进算法,然而莱维飞行的引入会在提升算法全局搜索能力的同时,在算法迭代后期一定程度上削弱算法的局部寻优能力,即在需要更小区域搜索时算法仍可能处于全局搜索状态,导致收敛精度降低。

3.3 精英参与的交叉算子

为解决引入的莱维飞行机制导致的局部最优解欠佳问题,引入精英参与的交叉算子。对于群智能优化算法来说,种群中的精英个体具有重要的指引作用和寻找最优解的潜力,种群越趋向于迭代中产生的精英个体,越容易接近最优解,例如灰狼优化算法中的金字塔尖个体的作用;然而过度的趋同性同样也会导致算法停滞于局部最优解。考虑遗传算法中通过精英策略选择较优个体交叉并保留较优个体的策略,增加了种群解的多样性,提供了跳出局部最优解的可能,同时也保留了优良个体使得种群向着最优解的位置进化。考虑到精英个体的解的优势在于相较于非精英个体部分基因表达位置的效果更佳,使用精英个体参与交叉运算散播其优势基因片段相较于传统在迭代过程中仅保留精英个体直接应用于交叉算子,收敛速度将大幅提升。通过扩大含有精英个体的基因在种群中的比例,将更有可能获得一个产生最大限度提升解的质量的种群。鉴于此,本文提出了精英参与的交叉算子,将种群中的非精英个体与现有的最佳精英个体进行交叉,在获得的子代和父代中保留较优个体,替代原有非精英个体的萤火虫。该算子实现简易且效果显著,能够较快地更新萤火虫个体的位置,易获得相对更优解。算法具体描述如下。

设所求问题为求解极小值问题,种群中有N个萤火虫个体,则种群中的精英个体为,其定义为:

步骤4 通过将子代个体的基因型代入目标函数求解f(c1)和f(c2)。

步骤5 对比子代与父代函数值,选择较优个体进入种群替代原有非精英个体。

3.4 精英反向学习机制

Tizhoosh[16]在2005 年提出 并验证 了反向 学习机 制(Opposition-Based Learning,OBL)的扩展对原有算法的有效性,该方法指出反向解比当前解逼近最优解的概率高于50%。反向学习机制能够提升算法迭代过程中解的质量,其具体定义如下。

定义5反向解。设在D维搜索空间中,当前种群的某个个体 所在位 置的一 个可行解为=[x1,x2,…,xD],xk∈[ak,bk],(k=1,2,…,D),其反向解定义为其中是[0,1]的随机数。

在此基础上,为应对反向学习机制可能带来的部分解的质量不升反降的现象,精英反向学习机制被提出并用于优化算法的改进,诸多研究显示引入精英反向学习能够有效提升算法的搜索能力[17-19],提高种群解的多样性和质量。

设待优化问题为最小问题,适应度函数为f(X),若存在某个可行解X,其反向解为。

精英反向学习机制具体更新步骤如下。

步骤3 排序完成后,选取前N个个体作为下次迭代使用的新种群。

在传统萤火虫算法中,迭代一定次数后,萤火虫种群将会出现较为密集的状态,此时萤火虫的收敛速度将逐渐迟缓,甚至让算法陷入局部极值点。为应对此问题而引入的精英反向学习机制,通过构建反向解并保留精英个体的方法增加了种群的多样性,提高了存留解的质量,为算法提供了跳出局部最优解的可能性。

3.5 算法具体描述

萤火虫算法的有效性在于某萤火虫个体受到其他比自身亮度更高的萤火虫吸引而获得的多次一定程度上进行修正的移动方向和位移,这就有可能造成在初始阶段的迭代中,部分表现次优但距离更近的萤火虫个体会对某些个体的移动造成影响,导致收敛速度的降低。

基于以上问题的考量,引入相当于贪婪算法的筛选机制能够有效降低这种影响,但这种机制却有可能造成解的多样性,减少导致算法全局搜索能力降低而陷入局部最优值的后果。而已知莱维飞行机制的引入能够有效提升算法的全局搜索能力,因此在萤火虫添加筛选移动后通过莱维飞行的改进来扩大算法的搜索范围,弥补此前可能损失的潜在搜索范围的解。然而莱维飞行仍存在无法随着算法迭代次数的增加而自适应地降低精度的问题,局部搜索能力较差,具体表现为随着算法到达迭代后期,莱维飞行更新的个体无法再提升解的质量。此时考虑到精英个体的领导作用,使用精英参与的交叉算子更新个体,使得有更大的可能性获得相对优解。进一步考虑该算子,伴随着与精英个体相像或精英个体本身的个体在萤火虫群体中逐渐占优,可能会在迭代后期陷入局部最优解且无法跳出。因此设置阈值判断群体中若存在超过阈值限度比例的个体的更新都停滞时则认为有可能陷入了局部最优状态,此时应用精英反向学习机制进行更新,则更容易使算法突破局部最优状态,最终收敛到最优解。

算法具体步骤表述如下。

步骤3 通过目标函数值求解萤火虫个体的亮度,使用添加筛选机制的移动公式(5)移动各萤火虫位置。

步骤4 设置未能成功改善的萤火虫数目count=0,对每只萤火虫个体应用莱维飞行机制,应用式(7),若得到的个体未能改善解的质量,则执行步骤5;否则,转至执行步骤6。

步骤5 使用精英参与的交叉算子对萤火虫个体进行运算,应用式(8),用得到的较优子代个体更新该个体所在的位置和解,若得到的个体仍未能改善解的质量,则count+=1,且原萤火虫个体保持不变。

步骤6 判断count≥ethreshold·N,若满足则认为种群移动不活跃,有陷入局部最优值的可能,使用精英反向学习机制进行种群的更新;否则不进行操作。ethreshold代表未能获得更新的种群内个体数目占种群总体规模的比例阈值,一旦超过此数值,则进行精英反向学习机制的更新。

步骤7 重新根据目标函数进行计算,更新精英个体,判断是否满足迭代结束条件,若满足则输出f();否则,返回步骤3。

3.6 算法复杂度分析

时间复杂度是衡量算法运算效率的重要指标。设种群规模为N,问题维度为D,最大迭代次数为Titeration,计算适应度函数所需时间为f(D)。

步骤1~2 初始化阶段设置算法参数需要时间为x1,随机生成种群个体的位置需要时间为O(N×D),计算适应度函数值需要时间为O(N×f(D)),找到最优解个体并设置为精英个体需要时间为O(N),则此阶段时间复杂度应为O((D+f(D)+1)N+x1)。

步骤3 移动筛选阶段的筛选判断机制需要时间O(N),移动需要的总时间与传统萤火虫算法相同,即O(N2),则此阶段时间复杂度应为O(N2)。

步骤4~5 设对一只萤火虫进行莱维飞行操作需要的时间为l(D),执行一次精英交叉算子需要的时间为x2,此时,根据获得结果的差异,萤火虫可能的状态有三种:1)更新为莱维飞行的结果;2)拒绝莱维飞行结果,执行精英交叉算子并更新;3)拒绝莱维飞行和精英交叉算子结果。状态1)执行结束需要O(l(D)),状态2)和3)执行结束需要O(l(D) +x2),最好情况下所有萤火虫迭代过程中都只进入状态1),即此阶段需要O(l(D) ×N),最坏情况下所有萤火虫迭代过程中都进入状态2)或3),即此阶段需要O((l(D) +x2) ×N)。

步骤6 反向精英学习机制阶段判断是否执行步骤需要O(1)。根据判断结果,种群的状态有两种:1)执行精英反向学习策略,更新种群;2)不执行精英反向学习策略,进入下一步骤。执行反向精英学习机制共需要计算反向解、合并初始种群和反向解种群和更新种群3 个步骤,易知此3 个步骤的时间都取决于N的大小,故设置为g(N)。易知步骤4~5 的最好状况下一定进入步骤6 的最好状况,步骤4~5 的最坏状况下一定进入步骤6 的最坏状况,其他情况介于两者之间则最好情况下进入状态1),此阶段需要O(1),最坏情况下进入状态2),此阶段需要O(1 +g(N))。

步骤7 判断及输出需要的时间为常数时间x3,则时间复杂度为O(1)。

综上,LEEFA 的时间复杂度最好情况下为:

而该算法在最坏情况下为:

即最好 情况下O(Titeration×N2+q1(D) ×N),最坏情况下O(Titeration×N2+q2(D) ×N)(q1、q2为某关 于D的某函 数)。传统萤火虫算法的时间复杂度为O(Titeration×N2),LEEFA 相较于传统萤火虫算法增加了N数量级的复杂度。本文通过实验验证了所提算法实施的可能性,尽管一定程度上增加了复杂度但算法能够极快地收敛到精度合适的最优解,在实际应用中具有较大的价值。

4 仿真实验与结果分析

4.1 实验环境配置及测试函数

本文实验环境配置为Intel Core i7-6700 CPU @3.40 GHz 3.40 GHz,8.00 GB,Windows 7 旗舰版 64 位操作系统,软件环境为PyCharm 2018.2.4 Python 3.7(64-bit)。

为了验证算法的有效性,这一节将以求如表1 所示的基准测试函数[20]的最小值为例,通过计算机仿真来评价比较所提LEEFA 以及传统智能优化算法和其他改进萤火虫算法的性能,对比算法为:PSO 算法、遗传算法(Genetic Algorithm,GA)、人工蜂群算法(Artificial Bee Colony algorithm,ABC)、FA、LFFA、LMFA 和ADIFA。实验均选取种群规模为100,研究问题维度为30 维,最大迭代次数设置为1 500,函数区间设置参考表1。LEEFA 的参数设置由仿真实验进行设置,传统PSO算法和GA的参数遵循惯例设置,其他算法的参数设置均遵循相应文献,具体如表2 所示。其中,LEEFA 中α表示式(5)和式(7)中的步长因子,β0和γ分别代表基本萤火虫算法中的最大吸引度因子和光强吸引因子,ethreshold表示步骤6中用于判断算法是否陷入局部最优的阈值参数。

表1 基准测试函数Tab.1 Benchmark functions

表2 参数说明Tab.2 Parameter description

4.2 算法阈值参数选取

基于对LEEFA 的复杂度分析可知,参数对于LEEFA 的时间复杂度可能存在重要的影响:ethreshold值设置过大将导致算法在陷入局部最优解时无法及时跳出,降低收敛速度;ethreshold值设置过小则会导致ethreshold的作用失效,算法复杂度提升。然而以上对于算法的分析仅在算法初次到达接近最优解的地方才可能产生影响,由于LEEFA 能够极快地收敛到最优解附近,导致种群中存在较多接近最优解而较难通过更新策略提升解的质量的个体,因此随着迭代次数的增加ethreshold值将很容易被达到,且算法本身存在一定的随机性,以上分析的前期影响存在被抵消的可能。

鉴于此,首先需要通过实验确定ethreshold的数值设置及其对算法的影响。基于初步的实验观察发现,当种群中超过一半的个体都无法再获得更新时,算法已经处于停滞状态。为达到提前预测并避免陷入局部最优区域从而提升算法运行效率的目的,将阈值分别设置为0.05、0.1、0.15、0.2、0.25、0.3、0.35、0.4、0.45,而其他参数的值保持不变。在实验选择的基准测试函数上连续运行30 次取得函数全局最优解的平均值,不同参数的设置对于LEEFA 的影响如图1 所示,其中,横轴表示阈值参数的取值,纵轴表示函数连续运行找到的全局最优解均值的lg(函数值)。所选函数最优解均为0,图1 中可以看出算法在设置为不同值时获得的最优解平均值在基准测试函数上的表现相近,在部分函数如f1(x) 和f4(x)上存在波动,但从整体上来看,ethreshold的取值对算法的收敛精度影响较小。根据前文分析ethreshold的选择也在一定程度上影响算法的时间复杂度,因此经过综合考量实验结果和算法的时间复杂度,本文实验中将其设置为0.1。

图1 阈值参数的选择Fig.1 Threshold parameter selection

4.3 对比实验

为避免随机性带来的误差,将连续运行30 次所得函数全局最小值的平均值作为评价算法收敛性能的衡量指标,实验获得的结果展示在表3,其中表现最好的用粗体表示。

从表3 可以看出,LEEFA 在所有基准测试函数f1~f8上的表现都优于其他对比算法,从算法最终得到的最优值可以看出LEEFA 寻优能力优良,标准差则说明算法寻优的稳定性也较好。以f2为例,该函数存在多个局部极小值点,是典型的非线性多模态函数,通常被认为是优化算法很难处理的复杂多模态函数;而它的全局最小值为0,本文以10-4为误差的容忍度判定算法成功。可以看出LEEFA 能够成功地收敛到需要的精度,相比之下其他算法均无法跳出该函数的一些局部最优值的位置。对于较难优化的测试函数,LEEFA 都取得了较好的收敛结果,对比LEEFA 与传统FA 可以看出,LEEFA 相较于FA 获得了显而易见的提升效果。然而,LEEFA 在f2、f5上的最优值和最差值差距较大,算法仍有一些不稳定的情况出现。对比f6、f7上的实验结果,LEEFA 在独立运行的过程中,偶尔会取得无法达到收敛精度的解,在此类函数上表现仍有待提升。

表3 所提算法与其他改进算法的实验结果对比Tab.3 Experimental results comparison of the proposed algorithm and other improved algorithms

续表

为了更好地对比LEEFA 与其他算法的收敛能力,绘制了以上8 个算法在30 维寻优问题进行1 500 次迭代的收敛曲线,如图2 所示。为便于说明,图2 中横轴表示迭代次数,纵轴表示适应度值(lg)。

从图2 中可以看出,LEEFA 在运行过程中以极快的速度收敛,迅速到达最优解附近开始搜寻,并且能够收敛到最优解。如图2 所示的迭代曲线显示,对比算法大多在迭代次数为200 代时就陷于局部最优解,而LEEFA 引入的改进策略能够帮助算法跳出局部最优区域,获得更高收敛精度的最优解,显然LEEFA 相较于对比的传统群智能优化算法及改进的萤火虫算法表现更好,验证了提出的改进算法的有效性。

图2 基准测试函数上的收敛曲线对比Fig.2 Comparison of convergence curves on benchmark functions

5 结语

本文将莱维飞行机制引入传统的萤火虫算法中,提升算法的全局搜索能力;融合精英交叉算子,提升个体解的质量,保留优良个体;增加筛选机制,引导算法朝着更优的方向进化;引入精英反向学习机制,提升种群解的多样性,提升算法跳出局部最优的能力。随着进化过程的进行,精英个体逐渐占据重要地位并引导算法的迭代,算法生成差解的概率逐渐减小,从而提高了收敛性能。所提算法增强了萤火虫算法的全局寻优能力,提高了算法的进化速度,提高了收敛精度。计算机测试仿真结果表明,所提算法的性能优于传统群智能优化算法PSO、GA、ABC、FA 及改进的萤火虫算法如LFFA、LMFA 和ADIFA;然而所提算法在某些函数问题上仍存在进一步提升的空间,可能的原因是此类函数存在大量的局部极值点,存在一定的寻优难度。未来将针对提升算法的稳定性和时间复杂度进行研究工作。

猜你喜欢
莱维萤火虫全局
Open Basic Science Needed for Significant and Fundamental Discoveries
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
基于莱维飞行蜉蝣优化算法的光伏阵列最大功率点跟踪研究
苍蝇为什么难打
落子山东,意在全局
萤火虫
萤火虫
创意“入侵”
抱抱就不哭了