若干新型群智能优化算法的对比研究

2020-11-18 09:14李雅丽王淑琴陈倩茹王小钢
计算机工程与应用 2020年22期
关键词:测试函数灰狼搜索算法

李雅丽,王淑琴,陈倩茹,王小钢

天津师范大学 计算机与信息工程学院,天津300387

1 引言

在大自然中,一些生物群体在进化过程中形成了自己独特的行为和生存方式,人们会从这种现象得到启发,提出很多能够解决实际优化问题的新思路。群体智能优化算法是一种基于概率的随机搜索进化算法,主要模拟了昆虫、兽群、鸟群和鱼群的群体行为,这些群体的主要行为就是觅食,它们会按照某种合作方式去寻找食物,然后不断交流食物信息,从而能更快速地找到更多食物,研究这些群体行为并抽象出一种算法就是群体智能算法。群智能算法是一种基于生物群体行为规律的计算技术,用来解决分布式问题,主要应用于组合优化、图像处理、数据挖掘等领域。1989 年Beni 和Wang 在Swarm Intelligence[1]这篇文章中第一次提出了“群体智能”这个概念。图1所示为群体智能优化算法在2010年之前的发展过程,而1991年提出的蚁群算法[2-4]和1994年提出的粒子群优化算法[5]可谓是群智能优化算法的开山鼻祖。蚁群算法是一种基于种群启发式随机搜索算法,它模拟自然界中蚂蚁觅食行为,蚂蚁走过后的路径上会留下信息素,信息素越强吸引的蚂蚁就会越多,蚂蚁会大概率地选择信息素比较强的路径去走,最终找到最短路径。粒子群优化算法是一种基于群体智能的全局随机搜索算法,源于鸟群觅食行为,用粒子来模拟鸟类个体,通过鸟类个体之间的协作和信息的共享去寻找最优解。

图1 2010年前的群智能优化算法发展过程

群智能算法具有以下特点:群体中相互合作的个体是分布的;没有中心控制,具备鲁棒性;可通过个体之间的通信进行合作,具有可扩充性;个体能力简单,实现方便[6]。尽管群智能算法的理论还不成熟,但它已成为有别于传统人工智能的一种新方法,并成为人工智能领域的研究热点。

本文选择了2010年至今比较有代表性的六种新的群智能优化算法进行研究分析,分别是2010 年的蝙蝠算法、2014 年的灰狼优化算法、2015 年的蜻蜓算法、2016 年的鲸鱼优化算法、2017 年的蝗虫优化算法和2020年的麻雀搜索算法,并对比测试它们的优化效果,最后对群智能优化算法未来的研究发展进行总结和展望。

2 相关算法描述

2.1 蝙蝠算法

蝙蝠算法[7]是2010 年由Yang Xin-She 提出的一种基于群体智能的算法,是受微型蝙蝠回声定位的启发[8],在回声定位的帮助下,蝙蝠可以测量物体的大小和距离,并用于导航和觅食,通过蝙蝠的这一特性理想化来制定的算法。

蝙蝠算法的大致流程:每个蝙蝠在位置xi上以速度vi随机飞行,当蝙蝠发现猎物时,它会改变频率f、响度Ai和脉冲发射率r 来选择最优解,直到目标停止。

蝙蝠算法的改进策略有三类[9]:第一类是改进算法的基本公式,如针对蝙蝠算法早熟收敛、容易陷入局部最优的特点,提出一种新的自适应惯性权值蝙蝠算法[10](Adaptive Inertia Weight Bat Algorithm with Sugeno-Function Fuzzy Search,ASF-BA),引入自适应惯性权值,将标准BA的随机搜索方法换成超函数模糊搜索,基于差分进化算法的改进蝙蝠算法[11-12](Bat Algorithm Based on Differential Evolution Algorithm,DEBA)通过交叉变异更新速度提高了收敛速度。第二类是多种群策略,如改进小生境蝙蝠算法[13](Improved Niche Bat Algorithm,INBA)对种群规模进行了调整,随机扰动的自适应蝙蝠算法[14](Adaptive Bat Algorithm for Random Perturbation,RWBA)增加了速度权重,改善了速度的更新方式,这两种都增加了种群的多样性,提高了算法的搜索效率。第三类是加入混沌模型策略,如基于混沌的蝙蝠算法[15-17](Chaos-based Bat Algorithm,CBA)使用新的频率、响度、频度更新方式,提高了全局寻优性能。

蝙蝠算法运用到了很多领域:Dao 等人[18]使用并行蝙蝠算法来解决车间调度问题;Osaba 等人[19]使用离散蝙蝠算法解决了药物废物收集、分配的车辆路径问题;Cheruku等人[20]结合了粗糙集特征选择和优化的蝙蝠算法,用于糖尿病检测大数据的分析;Nakamura 等人[21]使用二进制蝙蝠算法解决了分类和特征选择问题;Goyal等人[22]使用蝙蝠算法评估节点定位的精度。

2.2 灰狼优化算法

灰狼优化算法是2014 年由Mirjalili 等人[23]提出来的一种群智能优化算法。该算法的灵感来源于灰狼的捕食行为。

灰狼优化算法大致分为五个步骤:社会等级分层、包围猎物、狩猎、攻击猎物、搜寻猎物[24]。灰狼内部严格遵守社会支配等级关系,在灰狼搜索所需猎物的时候,会慢慢接近猎物,然后包围猎物。灰狼一般会先识别猎物然后将其包围,在每次迭代的过程中,保留当前最好的三只灰狼,根据它们的位置信息更新其余的搜索代理的位置。当猎物不再移动时,灰狼会通过攻击来捕捉猎物。

灰狼优化算法改进算法有四类:第一类是对初始种群的改进,如基于复数值编码的灰狼优化算法[25](Complex-Valued Encoding Grey Wolf Optimization,CGWO)运用复值编码避免算法陷入局部最优;基于神经网络的改进灰狼优化算法[26](Improved Modified Grey Wolf Optimization Algorithm Based Hybrid Technique,SNN-IMGWOA)把灰狼种群分为三组,提高了算法的收敛速度。第二类是对搜索机制进行改进,如基于进化种群动态的灰狼优化算法[27](Evolutionary Population Dynamics-Grey Wolf Optimization,GWO-EPD)引入了进化种群动态算子(EPD),很好地解决了最优停滞问题。第三类是对参数的改进,基于灰狼优化的混合参数多分类孪生支持向量机[28](Mixed Parameter Multi-Classification Twin Support Vector Machine Based on Grey Wolf Optimizer,GWO-MP-MTWSVM)运用混合参数的多分类孪生支持向量机,快速找到各子分类器的最优参数,并提升了算法的准确率;改进的灰狼优化算法[29](Modified GWO,mGWO)使用了指数函数来衰减控制参数a,它们都有效地平衡了探索能力和开发能力。第四类是设计混合算法,如混合灰狼优化算法和精英反对学习算法(Hybrid Grey Wolf Optimizer Using Elite Opposition,EOGWO)[30]将精英反对学习策略和单纯形法引入到GWO中,针对灰狼优化算法求解精度低、后期收敛速度慢、易陷入局部最优的特点,提出了一种改进精英个体重选策略的灰狼优化算法[31](Elite Weight Choice Grey Wolf Optimization,EGWO),该算法引进两种策略,分别是非线性收敛因子调整策略和精英个体重选策略。

灰狼优化算法的主要应用有:Ahmed 等人[32]将GWO 与监督人工神经网络分类器结合,实现增强大脑磁共振图像的分类精度;Yao 等人[33]将GWO 用于求解复杂作业车间调度问题。

2.3 蜻蜓算法

蜻蜓算法[34]是2015 年由Mirjalili 提出的群智能优化方法,主要灵感来源于自然界中蜻蜓的静态和动态群居行为,主要通过建立模型去分析蜻蜓在进行导航、寻找食物和避免敌人时的社会行为。

蜻蜓算法的大致流程:初始化蜻蜓种群和向量ΔXi,计算所有蜻蜓的目标值,更新其食物来源和天敌,更新五种因素的权重并计算五种因素,然后更新邻近半径,如果一只蜻蜓至少有一个相邻的蜻蜓更新速度矢量,则更新速度矢量,否则更新位置矢量。最后根据检查变量的边界纠正新位置,退出算法。

蜻蜓算法改进算法有两类:第一类为改进算法机制,如针对原始蜻蜓算法易陷入局部最优,导致全局搜索能力较差,以及蜻蜓算法后期种群缺乏多样性易出现停滞现象等问题,提出量子行为和差分进化融合策略下的改进蜻蜓算法[35](Improved Dragonfly Algorithm Based on Quantum-Behavior and Differential Evolution,QDEDA);基于精英反向学习的逐维改进蜻蜓算法[36](Elite Opposition Learning-based Dimension by Dimension Improved Dragonfly Algorithm,EDDA)利用精英反向学习策略初始化种群,增强种群多样性,提高了搜索效率。第二类是设计混合算法,如改进的多目标蜻蜓优化算法[37](Improved Multi-Objective Dragonfly Optimization Algorithm,IMODA)引入混合变异算子,提高了种群的多样性,降低了陷入全局最优的可能性。

蜻蜓算法的主要应用有:Sambandam等人[38]提出一种自适应蜻蜓算法用于解决图像多级分割问题;Wang等人[39]提出一种改进的蜻蜓算法用于特征选择中。

2.4 鲸鱼优化算法

鲸鱼优化算法[40]是2016 年由Mirjalili 等人提出的新的受自然启发的优化算法。该算法模拟了座头鲸的社会行为,突出特点是采用随机或最佳搜索代理来模拟座头鲸特殊的捕猎行为,并引入了气泡网狩猎策略。

鲸鱼优化算法的大致流程:首先,随机初始化一组解,搜索代理根据目前为止随机选择的搜索代理的最优解更新位置,将a 的参数由2迭代地降到0,从而由探索到利用,当|A|>1 时选择随机搜索代理,当|A|<1 时选择最优解更新搜索代理位置。然后,根据p 的值,在圆或者螺旋轨迹中随机选择。最后,满足终止条件退出算法。

鲸鱼优化算法改进算法有两类:第一类为改进算法机制,如改进的鲸鱼优化算法[41](Improved Whale Optimization Algorithm,IWOA)通过准反向学习方法来初始化种群,提高了种群的多样性;改进的鲸鱼优化算法(Modified Whale Optimization Algorithm,MWOA)[42]在鲸鱼搜索围捕猎物阶段,引入线性收敛因子,增强了全局搜索能力。第二类为设计混合算法,如针对鲸鱼优化算法存在收敛精度低和收敛速度慢的问题,提出基于混沌权重和精英引导的先进鲸鱼优化算法(Advanced Whale Optimization Algorithm,AWOA)[43],引入精英个体引导机制和在算法后期引入混沌动态权重因子。

鲸鱼优化算法的应用有:Aziz等人[44]提出鲸鱼优化算法和飞蛾火焰优化算法相结合用于确定图像分割的多级阈值中;Wang 等人[45]提出一种基于粗糙集的改进鲸鱼算法用于特征选择中。

2.5 蝗虫优化算法

蝗虫优化算法[46]是2017 年由Saremi 等人提出的一种新型群智能优化算法,该算法源自于大自然中蝗虫群体的捕食行为的模拟。

蝗虫优化算法的大致流程:首先,需要初始化蝗虫的位置、参数和迭代的最大次数,然后计算出每个蝗虫的适应度值,找出其中最好的适应度值并保存相应的蝗虫到;其次,将参数c 和蝗虫位置循环更新并计算每个蝗虫的适应度值,保存每次迭代最好的适应度值并更新;最后,判断迭代次数是否达到条件,若是则退出循环并返回全局最优解。

蝗虫优化算法改进算法有两类:第一类是多种群策略,如基于多策略融合的混合多目标蝗虫优化算法[47](Hybrid Multi-Objective Grasshopper Optimization Algorithm,HMOGOA),利用Halton序列建立初始种群,提高了种群的多样性。第二类是改进算法机制,基于Levy飞行的改进蝗虫优化算法[48](Improved Grasshopper Optimization Algorithm Based on Levy Flight,LBGOA)引入基于Levy 飞行的局部搜索机制来增强算法的随机性,并引入随机跳出策略来避免陷入局部最优;针对蝗虫优化算法收敛速度慢、易陷入局部最优等问题,提出一种基于非线性权重和柯西变异的蝗虫优化算法(Grasshopper Optimization Algorithm with Nonlinear Weight and Cauchy Mutation,CWG-GOA)[49],使用佳点集初始化种群,均匀种群分布,然后将线性权重改进为非线性权重,同时对最优个体采用柯西变异,增加跳出局部最优能力。

蝗虫优化算法的应用有:Xin 等[50]提出基于蝗虫优化算法的自适应参数来分析旋转机械振动信号;Ewees等人[51]提出基于精英反向学习的蝗虫优化算法用于求优化函数;Aljarah等人[52]提出了利用蝗虫优化算法同时进行特征选择和支持向量机优化。

2.6 麻雀搜索算法

麻雀搜索算法[53]是2020年由Xue和Shen提出的一种最新的群体优化算法,主要依据的是麻雀的觅食行为和反捕食行为。

麻雀搜索算法的大致流程:首先,初始化麻雀种群数并定义它的相关参数值,输出当前麻雀的全局最优位置和全局最优适应度值,当前迭代次数小于最大迭代次数时,对适应度值进行排序,找出当前最好和最差的个体。根据觅食规则,发现者进行位置的更新。加入者则通过围绕在发现者周围获取食物或者从发现者的食物中获取食物,也可以通过争夺获取食物,并更新其位置。当群体的一些麻雀感知到危险后,也会进行相应位置的更新。

2.7 各算法性能特点比较

蝙蝠算法、灰狼优化算法、鲸鱼优化算法这三种算法参数较少,算法的准确性和计算效率较高。蝙蝠算法的参数α 和γ 影响着算法的性能,α 和γ 的取值大小可有效地改善算法收敛速度和搜索精度。灰狼优化算法只有两个主要参数需要调整(a和C),其中存在能够自适应调整的收敛因子以及信息反馈机制,能够在局部寻优与全局搜索之间实现平衡,因此在对问题的求解精度和收敛速度方面都有良好的性能。鲸鱼优化算法参数a 控制了算法的收敛性,由于a 由2 递减到0,使算法的搜索范围越来越小,从而加速了算法的收敛。

蝙蝠算法、灰狼优化算法、蝗虫优化算法的寻优性能主要取决于个体之间的互相作用和影响。蝙蝠算法是依靠蝙蝠个体之间的相互协作、相互影响;灰狼优化算法狼群主要依据与α、β 和δ 的距离来判断与猎物之间的距离;蝗虫优化算法是根据蝗虫的当前位置,在所有其他蝗虫的作用下,朝向全局最优的位置前进。这种算法性质限制了其很难在局部最优解邻域附近找到全局最优解,种群内部的个体没有变异机制,一旦搜索到局部最优值将会陷入其中,并影响其他个体向其靠拢,造成算法早熟收敛,同时也会令种群的多样性大大降低,导致全局极值收敛性差。

蜻蜓算法、鲸鱼优化算法、麻雀搜索算法将群体行为的所有可能因素都考虑在内,使其能够快速地在最优值附近收敛,具有良好的全局寻优能力和稳定性。但是蜻蜓算法收敛速度慢,原因是在蜻蜓算法演化的过程中,没有保留历史较优的个体作为下一次迭代的参考值,仅仅只是依赖五种主要行为和步长进行位置更新,迫使演化过程需要经过更多次迭代才能收敛到某个解,减缓了蜻蜓算法收敛速度。

3 实验与性能分析

3.1 实验环境及参数设置

为了对以上六种群智能优化算法进行比较,本文使用22 个优化文献中[54-56]的标准基准测试函数进行比较实验,这些函数模拟了实际搜索空间的不同困难。函数的详细信息见表1、表2 和表3。表1 为单模态测试函数,表2为多模态测试函数,表3为固定维数的多模态基准函数。为了更有说服力,在所有的情况下,对每个测试函数进行30次独立实验,最大迭代次数为1 000,种群大小设置为100。各种算法具体所选取的参数均为原始论文所选参数,如表4所示。

表1 单模态测试函数

表2 多模态测试函数

表3 固定维数的多模态基准函数

所有实验的集成开发环境为Matlab_R2017b。操作系统为macOS10.15.4。

3.2 实验结果及分析

首先,分别测试单模态、多模态测试函数上六种算法的收敛速度。图2 为在单模态基准函数上的实验结果,由于是单峰的,只有一个全局最优值,可以评估所研究算法的开发能力。这些算法在优化测试函数时主要表现出三种不同的收敛行为:第一种行为是,收敛速度随着迭代次数的增加而加快,这种行为在麻雀搜索算法F1、F2、F3、F4和灰狼优化算法F1、F2中表现明显,这是由于算法提出的自适应机制帮助在迭代的初始步骤中,寻找搜索空间有希望的区域并更快地收敛到最优;第二种行为是,只有在最后的迭代中才收敛到最优,这种行为在麻雀搜索算法F6,蝗虫优化算法F5、F6、F7中表现明显,这是因为在迭代的初始阶段并没有找到一个好的探测方案,所以算法不断探测搜索空间,寻找好的解决方案向它们收敛;最后一种是迭代初始时就快速收敛,在灰狼优化算法F1、F4、F5、F6、F7,鲸鱼优化算法F5、F7和麻雀优化算法F5、F7表现比较明显。

图3 为多模态测试函数上的结果。多模态函数包含很多局部最优解,这些局部最优解的数量随着问题的大小成指数式增长,比较适合评估算法的探测能力。可以看出,F9的麻雀搜索算法、鲸鱼优化算法和灰狼优化算法,以及F11的麻雀搜索算法、鲸鱼优化算法在优化测试函数中表现出第一种收敛行为;F8的蝙蝠算法、麻雀搜索算法、鲸鱼优化算法,F10、F12、F13的麻雀搜索算法、灰狼优化算法、鲸鱼优化算法,以及F11的灰狼优化算法明显表现出第三种收敛行为。

表4 算法控制参数的初始值

蝙蝠算法、蜻蜓算法、蝗虫优化算法在处理单模态测试函数和多模态测试函数时都会存在一定程度的早熟收敛,解的精度也不高。灰狼优化算法、鲸鱼优化算法在处理单模态测试函数时会存在早熟收敛,灰狼优化算法在处理多模态测试函数F8、F9、F10,鲸鱼优化算法在处理多模态测试函数F9、F10、F11时,性能表现较好,说明这两种算法全局搜索能力较好。麻雀搜索算法处理单模态测试函数时,性能表现优越,其最优解和平均解都比其余五种算法要高,且后期收敛速度加快,因单模态测试函数在搜索区间只有一个最值,它能体现算法局部开发和收敛的能力,在处理多模态测试函数时,其收敛速度也远高于其他算法,所以麻雀搜索算法相比其他算法更具有高性能的全局搜索能力,它能发现搜索空间中更有意义的区域。

图2 六种算法在单模态测试函数上的收敛特性

图3 六种算法在多模态测试函数上的收敛特性

从图2和图3可以看出蝙蝠算法的收敛曲线处于停滞,基本停止寻优且无法跳出局部极值,跳出极值的能力差。这是因为蝙蝠算法的搜索算子具有很强的随机性,新解的位置大幅偏离全局最优,从而使新解的适应值较差,开发中对最优值的扰动越来越小,很容易产生聚集现象而陷入局部极值[57]。当蝙蝠受到某部分最优解的约束后会暴露它缺乏个体变异机制,而且超级蝙蝠很有可能吸引其他蝙蝠快速向其聚集,从而导致种群多样性显著下降[58]。从图3可以看到灰狼优化算法在迭代600次之后收敛速度会变慢。这是因为在迭代初始阶段存在突变,并且随着迭代的进行,突变逐渐减小,这种行为可以保证最终收敛到搜索空间中的一个点[59]。灰狼优化算法的收敛曲线在迭代600次之前收敛速度较快,跳出极值的能力较好。这是因为该算法中有一个表示狼所在位置对猎物影响的随机权重C,这有助于算法更随机地表现并支持探索,同时可在优化过程中避免陷入局部最优,C 是[0,2]之间的随机值,C 的随机性使算法可以跳出局部极值[60]。灰狼优化算法是智能算法中唯一基于种群等级制度的算法,尽管提出时间比蜻蜓算法和蝗虫算法都要早,但是该算法模型简单,在开发和探测这两个阶段有较强的平衡性,而灰狼的社会等级制度可以使算法在迭代过程中保存迄今为止获得的最佳解决方案,收敛效果要优于蜻蜓算法和蝗虫优化算法,但是由于狼群主要依据α、β 和δ 狼的距离来判断与猎物之间的距离,导致后期的收敛速度变慢。个体分布的离散程度,通常来说,蜻蜓个体之间分布得越分散,蜻蜓群体的多样性就越高。反之,蜻蜓个体分布越聚集,蜻蜓群体的多样性就越低。在演化过程中,倘若产生雷同的蜻蜓个体,使用随机算子去形成合理的新个体并以此取代雷同的蜻蜓个体。组合策略能有效提高蜻蜓群体的多样性,因为组合策略中计算了扰动向量,使每代优秀蜻蜓个体的位置发生扰动,同时也增强了跳出局部最优解的能力。为了保证蜻蜓算法的收敛性,避免过早收敛,采用多精英位置组合策略,使优秀的蜻蜓个体不会在原地停留,而是不断扰动位置使其继续寻优。鲸鱼优化算法收敛性很强,在第35代左右就已经完全收敛,算法局部搜索能力较强,因为算法的收敛性是由参数a 控制的,由于原始论文使a 从2递减到0,算法的搜索范围越来越小,从而加速了算法的收敛。但鲸鱼优化算法并没有跳出局部最优的操作,若快速收敛,则很可能陷入局部最优。随着算法的迭代进化,鲸鱼将逐渐向适应度较优的个体聚集,从而使得种群分布收缩,多样性减小,导致算法很容易陷入局部最优。鲸鱼优化算法运行过程中,种群多样性会逐渐降低,种群个体将聚集在搜索空间的一个或几个特定位置,使得算法可能出现早熟收敛现象[61]。蝗虫优化算法的收敛曲线处于停滞,基本停止寻优且无法跳出局部极值,跳出极值的能力差,参数C 采用的是自适应减小策略,但在算法初期减小过快会使算法前期勘探不足,导致算法不能搜索到全局最优,在算法后期减小太慢使算法后期开发不足,导致算法不能跳出局部最优[62]。蝗虫优化算法对搜索个体进行位置更新时,搜索个体的位置更新不仅受到当前位置、目标位置的影响,而且受其他搜索个体位置的影响。在给定初始种群后,搜索个体会向目标位置收敛,且在收敛过程中根据交互力的影响不断进行位置的调整,并最终使得蝗群较为均匀地分布在目标位置附近。这种与其他搜索个体的独特交互方式,是其有别于其他算法的显著特征,可以使算法具备较好的局部开发能力。但是,这一显著特征也导致了基本蝗虫优化算法种群多样性下降快、全局搜索能力不足的缺陷,进而导致算法陷入局部最优,收敛精度不足。因此,有必要引入能够增强其全局寻优能力及种群多样性的方法进行改进,以克服算法容易陷入局部最优的缺陷[63]。麻雀搜索算法局部搜索能力极强,收敛速度很快,但各个麻雀收敛于当前最优解的方式是直接跳跃到当前最优解附近,而不是像粒子群优化算法那样向最优解移动,这种机制导致了麻雀搜索算法容易陷入局部最优,且全局搜索能力较差。

为了更全面地比较各种算法的性能,计算了这六种算法在所有函数上30次独立运行后的均值、标准差、最优值、最差值,实验结果如表5 和表6 所示。其中std 列表示标准差,opt列表示最优值,所有算法在每个测试函数上获得的结果中最好的加粗显示。在相同的标准测试函数下,均值代表算法的收敛精度,标准差代表算法的稳定性,显然,均值和标准差越小,算法避免局部解和确定全局最优解的能力就越强。从表5可以看到,在单模态和双模态测试函数上麻雀搜索算法在12个测试函数上能够成功地找到一个优秀的解,其中在6个函数上获得了全局最优值,而灰狼优化算法、鲸鱼优化算法、蜻蜓算法、蝙蝠算法和蝗虫优化算法成功找到一个优秀的解(全局最优值)的函数个数分别为10(2)、11(2)、9(1)、5(0)、9(0)。在多模态测试函数上,麻雀搜索算法在9个测试函数上都成功地找到一个优秀的解,其中在3个函数上获得了全局最优值,而蜻蜓算法、鲸鱼优化算法和蝗虫优化算法在8 个函数上获得一个优秀的解,在3个函数上获得了全局最优值。灰狼优化算法在8 个函数上获得一个优秀的解,其中在2个函数上获得了全局最优值。但蝙蝠算法仅在5 个函数上获得一个优秀的解,其中在1个函数上获得了全局最优值。这说明麻雀搜索算法比其他五种算法有良好的全局搜索能力,次之是鲸鱼优化算法和灰狼优化算法。从表6可以看出,麻雀搜索算法在20 个测试函数上获得了最小的均值,收敛精度性能好,在19 个测试函数上获得了最小的标准差,说明可以稳定地聚集在全局最优点附近。而灰狼优化算法、鲸鱼优化算法、蜻蜓算法、蝙蝠算法和蝗虫优化算法获得最小均值(标准差)的测试函数个数分别为3(1)、1(3)、2(2)、2(0)、4(1)。这说明麻雀搜索算法的稳定性和收敛精度远领先于其他五种算法,各个算法定性分析结果如表7所示。

表5 六种算法最优值与最差值实验结果比较

表6 六种算法平均值与标准差实验结果比较

使用7 个优化文献中的标准基准测试函数对前五种智能优化算法的改进算法ASF-BA、EGWO、QDEDA、IWOA和CWG-GOA做了比较实验,计算了这五种算法在部分测试函数上30次独立运行后的均值、标准差,实验结果如表8所示。ASF-BA在处理F1~F4和F9~F11时,求解精度略高于BA,在标准差方面,稳定性略有提高。该算法通过分散搜索方式和种群的抽样分布,改善了搜索过程,通过确定相关阈值和基于黄金分割的生成阈值,提高了算法的有效性。此外,将OBA 与标准BA集成,提高了算法的收敛速度和全局最优解,OBA可以实现显著的收敛速度和准确性,算法将随机局部搜索策略替换为超函数模糊搜索策略。这种能量改善了蝙蝠最初的搜寻方法,增强了算法的全局搜索能力,提高了算法稳定性。EGWO 算法在处理F1、F3、F4时,GWO的求解精度高于EGWO,处理F2、F9、F10、F11时,求解精度优于GWO,对函数F2、F9的求解精度优于另外四种对比算法。在标准差方面,处理F1、F2、F3、F4时,GWO比较稳定,对函数F9、F10、F11的稳定性较优,F9、F10达到了最优值0,优于其他四种对比算法。由于非线性收敛因子在迭代前期衰减速率较慢,可扩大搜索范围,保证种群多样性以适应于全局搜索,迭代后期衰减速率较快,可提高求解效率以适应于局部精准搜索,改进的灰狼优化在处理多模态测试函数时,具有更高的求解精度和更好的全局寻优性能,但对单模态测试函数效果并不明显。QDEDA在处理F1~F4和F9~F11时,求解精度明显优于DA,对函数F1、F3、F10的求解精度优于另外四种对比算法,因为QDEDA融合的差分进化寻优策略,在每次迭代结束后对当前最优解进行一次交叉和变异,随后进行选择操作,如果求得适应度更好的解,则替换当前最优解,否则继续下一次迭代,以此引导蜻蜓优化算法向最优解方向搜索,所以增强了信息交流,提高了原始DA 的收敛速度和收敛精度。在标准差方面,在处理F1~F4和F9~F11时,比DA稳定,鲁棒性较强,对F1、F3、F9、F10都达到了最优值0,优于其他四种对比算法。QDEDA 融合的量子行为位置更新机制,既提高了种群多样性,又避免陷入早熟,始终朝着最优解的方向寻优。IWOA在处理F1~F4和F9~F11时,求解精度明显优于WOA,因为在算法后期引入混沌动态权重因子,利用其随机性、遍历性等优点动态调整惯性权重,使鲸鱼个体能在猎物周围进行更加精细、彻底的搜索,提高了收敛精度。在标准差方面,在处理所有所选测试函数中,都达到了理想最优值0,这是由于AWOA加入了精英个体引导机制,及时引导鲸鱼朝猎物位置搜索,增强了算法的全局搜索能力,提高了算法稳定性。CWG-GOA 在处理F1~F4和F9~F11时,求解精度均优于GOA,这是由于算法在迭代中添加柯西变异操作,变异后的蝗虫可以增加种群多样性,有助于算法跳出局部最优,寻找到新的最优解,提高了收敛精度。在标准差方面,在处理F1~F4和F9~F11时,因为基本蝗虫算法采用随机初始化的方式来生成初始种群,种群初始的优劣会影响到后期算法寻优效率,随机初始化方式并不能保证初始种群的均匀性和多样性。由于佳点集取点的偏差小于随机取点的偏差,采用佳点集来初始化种群保证了初始种群的多样性,增强了算法的全局搜索能力,提高了算法的稳定性。从表6可以看出,IWOA算法在4个测试函数上获得了最小的均值,收敛精度性能最好,在7 个测试函数上获得了最小的标准差,说明可以稳定地聚集在全局最优点附近。QDEDA算法在3个测试函数上获得了最小的均值,在4个测试函数上获得了最小的标准差,而EGWO、ASF-BA、CWG-GOA 获得最小均值(标准差)的测试函数个数分别为2(2)、0(0)、0(0),这说明IWOA 算法相比于其他四种算法的稳定性和收敛精度最好,其次是QDEDA算法。

表7 各种算法性能特点定性分析

表8 五种算法的改进算法在平均值与标准差实验结果比较

3.3 总结

本文对2010年以来提出的较典型的新型群智能优化算法的相关研究进行了综述,并对这些算法进行了实验对比分析。从实验结果综合对比来看,2020年提出的麻雀搜索算法各方面的性能都远超其他五种优化算法,是很有潜力的。其次是2016年的鲸鱼优化算法和2014年的灰狼优化算法,性能最差的是蝙蝠算法。

分析可知,群体智能各种算法在结构、研究内容、计算方法等方面都很相似,它们都有相同的理论框架模式,如图4所示。除此之外,它们还有一些共同点:群个体之间相对独立;有多个粒子代表每种智能体;个体通过规则进行位置的变化来探索解空间;每个算法都加入随机数,使勘探更全面。分析六种典型群智能算法可以看出,各种算法之间的最大不同为算法的更新规则,大致分为两类:一类是根据模拟群居生物的步长进行更新,比如灰狼优化算法、蜻蜓算法、蝗虫优化算法;另一类是根据各自算法机理设置更新规则进行更新,如蝙蝠算法、鲸鱼优化算法和麻雀搜索算法。从这六种群智能算法的对比实验来看,第二类的效果要优于第一类。

图4 群体智能优化算法统一框架模式图

4 群智能优化算法的发展趋势

群智能优化算法的主要思想是模仿自然界一些生物种群的现象,将各种现象的关键指标量化,形成数学模型用于优化。群智能优化的特点是寻找全局最优而非局部最优,它每次的解都不同,时间比较长,在模型很多的情况下,使用群智能优化算法能真正地体现它的优势。随着这一领域研究的深入,越来越多的生物种群的特性被抽象出来用于群智能算法中。从实验中也可以看出,新的算法在算法机制上也趋于完善,算法的性能也更好,但是大多数算法还是会发生早熟现象,即便是优化性能最好的麻雀搜索算法也会陷入局部最优解,未来需要设计出更优性能的群智能算法来避免这一问题。

本文探讨了算法的收敛性能,但是对于收敛性和稳定性理论并不完善,还需要更强的数学模型和理论进行支撑[64]。在未来研究中,一方面可以结合多种算法,对其优点进行结合,提出更高效的算法,注重根据各自算法机理设置更新规则;另一方面注重观察高等生物群体的行为而获得灵感。

5 结束语

本文讨论了2010年以来提出的比较典型的六种群智能算法,并用实验从收敛速度和精度、稳定性等角度对比了这些算法的优化性能,并总结了群智能优化算法的相同点、不同点和统一框架。发现最新的根据各自算法机理设置更新规则的麻雀搜索算法、鲸鱼优化算法的性能较为突出。群智能算法经过近30 年的研究与发展,在理论上已经非常完善,具有鲁棒性、自组织性、灵活性等优点,并在近年来被广泛应用于混沌系统[65]、金融预测、图像检索、特征选择等各个领域。目前的群智能算法处于快速发展时期,新思想也在不断出现,但大部分的研究还在模拟低等生物种群。群智能优化算法是人工智能研究领域的一个重要分支,未来的群智能算法将在大部分科学和工程领域都有很广泛的应用前景,是今后计算机研究发展的一个重要方向。

猜你喜欢
测试函数灰狼搜索算法
一种基于分层前探回溯搜索算法的合环回路拓扑分析方法
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
改进的非结构化对等网络动态搜索算法
改进的和声搜索算法求解凸二次规划及线性规划
灰狼和山羊
基于博弈机制的多目标粒子群优化算法
谷谷鸡和小灰狼
灰狼的大大喷嚏
具有收缩因子的自适应鸽群算法用于函数优化问题