融合浓度平衡和菲克定律的新平衡优化器算法

2023-02-14 10:31张梦溪
计算机工程与应用 2023年3期
关键词:测试函数全局种群

张梦溪,马 良,刘 勇

上海理工大学 管理学院,上海 200093

近年来,优化求解问题越来越复杂,计算规模日益增大,同时许多问题还具有非线性、多极值等特点。牛顿法、梯度下降法等传统优化算法存在依赖梯度信息和求解速度慢等缺陷,已无法满足求解需求。而元启发式算法具有更好的求解能力,其结构简单、灵活性高和求解效率高,因此成为了求解复杂优化问题的有力工具。

元启发式算法根据其实现机理的不同,大致可以分为三类:基于遗传进化的算法、基于生物种群的算法和基于特定物理机制实现的算法[1]。基于遗传进化的算法有遗传算法(genetic algorithms,GA)[2];基于生物种群的算法通过模拟自然界中动植物的行为实现寻优,例如鲸鱼优化算法(whale optimization algorithm,WOA)[3]、麻雀搜索算法(sparrow search algorithm,SSA)[4]等;基于物理学原理所提出的算法有根据万有引力定律提出的引力搜索算法(gravitational search algorithm,GSA)[5]、基于多元宇宙理论的多元宇宙优化算法(multi-verse optimizer,MVO)[6]等。基于特定物理机制的算法从物理现象出发,有物理学原理做基础,具备良好的搜索效果。

平衡优化器算法(equilibrium optimizer,EO)是Faramarzi等人在2019年基于物理原理提出的一种新型启发式算法[7]。该算法将搜索种群以不同浓度的粒子表示,粒子的浓度代表优化问题的解。同时,算法提出了平衡池候选解的概念,每次寻优根据平衡池候选解的浓度更新粒子,最终达到浓度平衡的状态,即寻得最优解。EO算法具有算法参数少,易于理解和实现的特点。算法提出至今,已被应用到了电网设计[8]和路径规划[9]等诸多领域,是解决复杂问题的新工具。但是,EO算法在平衡池阶段,候选解完全根据适应度值大小进行选取,使得平衡池候选解存在一定的相似性,导致种群多样性降低,易陷入局部最优;同时,算法平衡全局搜索和局部开发能力的参数为固定值,可能出现寻优不稳定的现象;此外,粒子位置更新仅依靠浓度更新公式,使得算法局部搜索能力较强但全局搜索能力较弱,影响算法收敛速度和寻优精度。针对这些问题,国内外诸多学者相继对其进行了改进。Fan等人利用反向学习机制和新的浓度更新公式,提升了算法的求解精度[10]。刘成汉等人在禁忌搜索策略中引入振荡算子,使算法跳出局部最优[11]。Gupta等人利用高斯变异和新的种群划分和重构机制改进了EO算法[12]。Too等人利用一般学习的思想改进了平衡池阶段的缺陷[13]。Wunnava等人利用拉普拉斯分布的随机游动改进了候选解的质量,然后通过反向学习加速得到最优解[14]。Shankar等人利用对立学习的更新机制生成新的解空间[15]。Abdel-Basset等人提出了基于线性化简分集技术的新的学习机制,同时利用局部极小消去法增加了个体的多样性,优化了算法的性能[16]。Ahmed等人利用了自动学习机来寻找适合算法模型的参数值[17]。李守玉等人首先采用正弦池策略动态平衡算法的探索和开发能力,然后引入自适应优先引力策略动态平衡算法的收敛速度和方向[18]。

虽然以上学者的研究对EO算法的寻优能力有所提升,但在收敛速度、寻优精度、平衡局部搜索和全局开发能力等方面的优化潜力仍可以进一步挖掘。针对EO算法的不足,本文提出一种融合浓度平衡和菲克定律的新平衡优化器算法(NEO),引入了三种新颖有效的改进策略:首先,在平衡池阶段引入浓度平衡机制,将不同浓度的粒子划分为三个种群,不同浓度的粒子之间相互影响,提升种群间的信息交流能力,增强搜索种群的多样性;然后,引入自适应调整的幂函数自适应因子和指数自适应因子,使算法根据迭代次数动态调整参数,平衡局部搜索和全局开发能力;最后,从菲克定律得到启发,在粒子位置更新处引入扰动机制,改善浓度更新公式,加快收敛速度的同时提升算法寻优精度。本文通过求解24个基准测试函数,并将NEO算法与其他智能优化算法进行仿真实验对比来验证算法改进策略的有效性,实验结果表明NEO算法具有良好的优化性能。

1 平衡优化器算法介绍

1.1 种群初始化

平衡优化器算法首先在搜索空间中随机初始化种群。种群初始化的公式如下所示:

其中,Ci,k表示第k个粒子所在的位置,rk表示[0,1]间的随机向量,ub和lb表示解空间中的上界和下界,k的范围为[1,N],N表示种群的数量。

1.2 候选解和平衡池

在粒子初始化之后,粒子不断搜索迭代,并计算适应度值。该算法选取当前解中适应度值排名前四的粒子,作为候选解,并计算这四个粒子的平均值,进而构建平衡池。平衡池提高了粒子全局搜索和全局的能力,其表示如下:

其中,Cpool表示平衡池;Ceq1、Ceq2、Ceq3、Ceq4表示根据适应度值在当前迭代找到的最优粒子位置;Cave表示平衡了以上四个解的粒子位置。

在粒子搜索迭代的过程中,平衡池中的每个候选解都以相同的概率被随机选择以更新浓度,此过程可以表示为:

1.3 指数项

为平衡算法的全局探索和局部开发的能力,算法采用指数项F进行调整,其计算公式如下:

其中,a1和a2分别表示全局搜索和局部开发的权重系数,其值越大,对应的能力越强,通常,a1和a2分别取2和1;Iter表示当前的迭代次数;Maxiter表示算法最大迭代次数;λ表示[0,1]间的随机数。

1.4 生成速率

为进一步增强算法的局部开发能力,利用生成速率G来改进算法开发阶段,其数学表达式如下:

其中,GP为生成概率,用来平衡算法全局搜索和局部开发能力,当取值为0.5时,算法的探索和开发能力达到平衡;GCP为生成速率G的控制参数,由GP所决定;r1、r2和λ表示[0,1]间的随机数。

1.5 浓度更新公式

平衡优化器算法的标准浓度更新公式如下:

其中,V表示单位体积,通常为1。

2 融合浓度平衡和菲克定律的新平衡优化器算法(NEO)

相比其他元启发式算法,EO算法具有以下特征:EO算法的核心原理和内部结构比较简单,其全局搜索能力和局部开发能力主要由指数项F和生成速率G进行控制,位置更新通过浓度更新公式来完成,这使其具有很好的灵活性和适应性;此外,EO算法具有特殊的平衡池阶段,算法根据个体适应度的大小进行排序选取候选解,同时生成平均值共同构成平衡池,其目的在于提高算法的探索和开发能力。

但是,平衡池只依赖适应度值的大小选取个体会使候选解趋于相似,多样性降低,容易陷入局部最优,影响算法精度;指数项F中的参数a1和a2调节探索和开发能力,但参数a1和a2为常数,这使得算法不能根据迭代自适应调整探索和开发能力,导致算法迭代过程中出现寻优不稳定现象,甚至会影响算法寻优精度;EO算法中个体位置更新主要通过浓度更新公式,个体更新位置受到当前位置、平衡池候选解个体位置的影响,表明其局部开发能力较强但全局搜索能力相对来说有所不足,极易出现在局部最优值附近停滞的情况。针对以上问题,本文从三方面进行了改进。

2.1 浓度平衡机制

EO算法基于适应度值的大小,采用顺序选择法从总体中选出候选解,然后再对选择出来的候选解进行各种策略的搜索操作。因此,算法的寻优效果很大程度上取决于候选解的选择。而仅考虑适应度值选取候选解,所选择的个体很大概率落在相似区域,导致种群多样性降低,过早向局部收敛。

大量事实表明,一切物质分子都在无时无刻地做无规则运动,即布朗运动。分子通过布朗运动会从高浓度区域(或高化势)向低浓度区域(或低化势)进行转移,直到均匀分布,这一分子热运动现象被称为扩散现象[19]。由于容器中粒子浓度平衡过程中,不同区域不同浓度的粒子之间会相互影响,本文受分子扩散现象的启发,提出浓度平衡机制。首先,根据粒子位置适应度值的大小,由大到小,将粒子划分为3个种群:低浓度区域、中浓度区域和高浓度区域。然后,不同浓度区域之间的粒子相互影响扩散:低浓度区域受中高浓度区域的影响;中浓度区域粒子受高浓度区域和低浓度区域影响;高浓度区域的粒子则同时向中低浓度区域扩散。因此,为增强不同粒子位置之间的信息交流,在此提出不同浓度区域粒子浓度平衡机制。

2.1.1 低浓度区域粒子位置更新

根据反向学习的思想,为更好地体现低浓度区域粒子受高浓度区域粒子和中浓度区域粒子的影响,加强粒子间的信息交流,采用如下公式:

2.1.2 中等浓度区域粒子位置更新

为增强中等浓度的区域与其他区域之间的信息交流,实现对其他粒子附近解空间信息的挖掘,加强算法的局部寻优能力,在迭代过程中,中等浓度区域的粒子以一定的概率向周边扩散。此过程用如下公式表示:

其中,Cjworst、Cjmid和Cjbest分别表示当前迭代中,浓度最低、浓度中等和浓度最高粒子的位置;d3和d4分别表示[0,1]间的随机变量。

2.1.3 高等浓度区域粒子位置更新

由于高浓度区域的粒子代表着粒子在当前适应度值最小,因此,此区域的粒子更接近于全局最优解,此时维持高浓度区域的粒子位置不变。此过程用如下公式表示:

其中,Cjbest表示当前迭代中浓度最高粒子的位置。

在经过多次实验测试后发现,EO算法在迭代次数为1 000次时算法收敛效果较好。因此为验证浓度平衡机制对种群多样性的影响,本文选取表1中部分测试函数,在维度为2,种群数量为30,最大迭代次数为1 000时,分别选取迭代次数为100次和900次时查看算法种群的分布情况。将加入浓度平衡机制的改进算法与EO算法进行对比,绘制个体位置图,如图1所示。可以发现,在迭代次数为100次时,改进算法的种群多样性明显得到提升,种群分布较分散,EO算法的种群虽看起来在最优值附近,但由于纵坐标数量级较小,寻优精度距离理论最优值仍有较大差距,仍需要进一步寻优探索;在迭代次数为900次时,测试函数F3的纵坐标数量级与迭代100次时相差209,EO算法的搜索精度相比迭代次数100次时有所提升,但仍与理论最优值偏差较大,而此时改进算法收敛到了理论最优值附近。说明加入的浓度平衡机制改善了个体间信息交流缺乏的情况,中低浓度区域粒子每次迭代都会与最优个体进行信息交流,充分利用当前最优解信息,同时在一定程度上扩大了搜索空间,提高了种群多样性。

图1 个体多样性对比图Fig.1 Comparison chart of diversity

表1 测试函数Table 1 Test function

2.2 动态参数调整

在EO算法中,参数a1和a2用来调整全局搜索和局部开发,参数a1负责调整算法全局搜索能力,其值越大,全局探索能力越强,参数a2负责调整算法局部开发能力,其值越大,局部开发能力越强。但在EO算法中参数a1和a2为固定常数,这样可能导致算法不能根据迭代次数自适应分配探索与开发能力,可能会出现寻优不稳定现象,影响算法的寻优精度。因此,本文引入两种可调节的自适应因子改善算法,将算法迭代次数与参数相结合。利用指数自适应因子动态调整参数a1,利用幂函数自适应因子动态调整参数a2,使得算法根据迭代过程动态平衡探索和开发能力,提高算法稳定性和寻优精度。参数a1和a2的公式定义如下:

经过多次实验验证,λ取值为2.5时算法效果最好。如图2所示,在算法迭代初期,参数a1接近2.5,参数a2接近于0,此时算法倾向于全局搜索;随着迭代次数的增加,粒子浓度差减少,接近平衡,粒子转向局部的平衡,算法更专注于局部搜索。

图2 a1和a2参数变化曲线Fig.2 Parameter changes of a1 and a2

2.3 基于菲克定律的扰动机制

1855年德国人阿道夫·菲克(Adolf Fick)提出描述分子扩散规律的基本定律:在单位时间内通过垂直于扩散方向的单位截面积的扩散物质流量(称为扩散通量diffusion flux)与该截面处的浓度梯度(concentration gradient)成正比,也就是说,浓度梯度越大,扩散通量越大,这就是菲克定律[20]。其指出了在分子浓度差较大时,单位时间内的扩散通量越大,随着时间推移,容器内的浓度差逐渐减小,扩散通量变小。这说明在浓度平衡初期,容器中浓度差较高,高浓度区域粒子可以向全局扩散,随着浓度差逐渐减小,容器中浓度接近平衡,此时更专注于局部的浓度扩散。也就是说,迭代初期应加强算法全局搜索能力,全局搜索范围和强度更大时,寻优效果更好,随着迭代次数的增加,逐渐转向局部搜索,从更多的候选解中寻得最优解,提高解的精度。

在标准的EO算法中,算法在进行浓度更新后,计算当前解的适应度值,然后更新粒子位置,随后进入后续的循环,即所有候选解的位置都受当前位置的影响,这表明EO算法虽然有很强的局部开发能力,但是其全局搜索能力相对来说有所不足,随着迭代次数的增加,算法逐步趋于局部最优,而不是全局最优。而文献[21]中面对相似的问题采用扰动因子增强了算法寻优精度和收敛速度。因此,本文从菲克定律和文献[21]得到启发,在算法位置更新策略中引入扰动机制,利用扰动因子η根据算法迭代次数来动态改变粒子位置。算法在前期进行较大范围的全局搜索,随着算法迭代次数的增加,在算法后期,小范围的更新加强了算法的局部开发能力,提升解的精度,加快收敛速度。其公式定义如下:

其中,ξ为扰动系数,多次实验表明,其值为30时算法效果最好。加入了扰动因子的浓度更新公式如下所示:

2.4 算法步骤

本文提出的NEO算法具体步骤描述如下:

步骤1设置算法相关的参数,并初始化粒子种群位置。

步骤2进入主循环,计算个体适应度值并排序,选出平衡池候选解。

步骤3利用浓度平衡机制公式(12)~(14)更新平衡池候选解。

步骤4利用公式(15)、(16)分别计算动态参数a1和a2。

步骤5利用改进后的浓度更新公式(18)更新粒子位置。

步骤6判断是否满足停止条件,若满足则结束,否则返回步骤2。

步骤7输出最优解,结束程序。

2.5 时间复杂度分析

假设种群规模为N,空间维度为D,最大迭代次数为T。EO算法的时间复杂度主要由种群初始化、迭代寻优和浓度更新三部分组成。其中,种群初始化的时间复杂度为O(ND),迭代寻优的时间复杂度为O(ND),浓度更新的时间复杂度为O(N)。因此,根据时间复杂度分析,EO算法总的时间复杂度为:

NEO算法的改进主要由浓度平衡机制、动态参数和扰动机制组成。初始化阶段,NEO算法与EO算法的时间复杂度相同,为O(ND);迭代寻优阶段,设浓度平衡机制花费的时间为t1,计算动态参数a1和a2的时间为t2,因此迭代寻优的时间复杂度为O(ND)+t1+t2;浓度更新阶段,设计算扰动因子的时间为t3,故浓度更新的时间复杂度为t3×O(N)。因此,NEO算法最终的时间复杂度为:

综上所述,NEO算法与EO算法的时间复杂度一致,属于多项式时间算法,说明NEO算法并未牺牲空间来提升算法性能。

3 实验仿真与分析

为了验证本文所提出的三种改进策略的有效性,本文选取了国际上通用的24个基准测试函数进行仿真实验[22-23],包括高维单峰和高维多峰不同类型的测试函数。单峰测试函数是算法寻优精度和收敛速度的度量,而多峰测试函数则可以体现算法的全局搜索能力和避免陷入局部最优的能力。这些函数的函数名及表达式、最优值见表1。

将NEO算法与遗传算法(GA)[2]、粒子群算法(particle swarm optimization,PSO)[24]、鲸鱼优化算法(WOA)[3]、食肉植物算法(carnivorous plant algorithm,CPA)[25]、蜉蝣算法(mayfly algorithm,MA)[26]、平衡优化器算法(EO)[1]以及一种改进的平衡优化器算法(MDSGEO)[18]进行对比,同时,设置种群大小为30,迭代次数为50,维度为1 000,保证各个法的最大适应度评价次数相同。为使数据真实可信,仿真实验使用各个算法在所有测试函数上各独立运行20次,并记录平均值和标准差两个性能评价指标。

3.1 实验环境与参数设置

本文实验采用处理器为Intel®Core™i5-8250U CPU,8 GB运行内存,Windows 10操作系统,64位,仿真软件为Matlab 2017b。

算法参数设置如下:GA算法的交叉率为0.1,变异率为0.9;PSO算法的惯性权重为1,惯性权重阻尼比为0.99,个人学习系数为1.5,全局学习系数为2.0;GWO算法参数a从2递减到0;WOA算法参数a从2递减到0,参数b为1;CPA算法吸引率为0.8,成长率为2,生成率为1.8;MA算法父代和子代数量均为20,突变率为0.01;EO算法的a1为2,a2为1,GP为0.5;MDSGEO算法的a1为2,a2为1,GP为0.5。

3.2 仿真实验结果与分析

为了验证改进算法的有效性和可行性,本文利用平均值和标准差两个性能指标评估实验仿真结果。实验结果数据见表2,最优结果已加粗表示。

表2 1 000维函数测试数据Table 2 Test data of 1 000 dimensional function

由表2可知,NEO算法和MDSGEO算法的寻优结果优于其他对比算法,而本文所提出的NEO算法则寻优效果更好。

在高维测试函数上,无论是高维单峰测试函数还是高维多峰测试函数,NEO算法均具有明显的竞争优势,除函数F14和F20以外,NEO算法在两个性能评价指标上均取得了最好的结果0。值得注意的是,对于高维测试函数F14,虽然NEO算法的标准差稍差于CPA算法但是NEO算法的平均值明显优于CPA及其他对比算法,说明了NEO算法的寻优精度更优。而对于高维测试函数F20,显然WOA算法的性能最好,但相较于除WOA算法以外的其他对比算法,NEO算法的搜索效果仍较为良好。综合来看,本文提出的NEO算法具有更好的寻优精度。

为更加清晰直观地对比算法的寻优精度和收敛速度,本文选取了4个测试函数绘制包含算法迭代次数和适应度值的测试函数收敛曲线,如图3所示。

从图3的测试函数收敛曲线来看,NEO算法和MDSGEO算法均比其他对比算法具有更好的收敛速度和寻优精度,但是NEO算法寻优精度更好,收敛速度更快。NEO算法相较其他对比算法更具优势,其收敛曲线均在其他算法收敛曲线左下方,在同等迭代次数下,NEO算法的收敛精度优于其他算法,同时在同等收敛精度的情况下,NEO算法的迭代次数少于其他算法。

图3 部分函数收敛曲线Fig.3 Convergence curve of partial function

其中,从测试函数F18的收敛曲线来看,NEO算法的优势明显,WOA等算法在经过一定次数的迭代之后,则陷入局部最优,无法寻得更优解,而NEO算法则能避开此问题,说明浓度平衡机制更新了平衡池候选解,不同区域粒子进行学习交流,增加了种群多样性,避免个体趋同和陷入局部最优。对于测试函数F14,NEO算法和MDSGEO算法在同等寻优精度的情况下,NEO算法的收敛速度远快于MDSGEO算法,说明NEO算法加入的基于菲克定律的扰动机制加快了算法收敛速度。从F14和F9可以看出,NEO算法的收敛曲线更加平滑,表明加入的自适应参数根据算法迭代次数动态调整,动态平衡了算法探索和开发能力,寻优更稳定。而测试函数F2,NEO算法的寻优精度和收敛速度都远远优于MDSGEO等对比算法,同时NEO算法收敛曲线的斜率逐渐变大,说明在浓度更新公式中引入的扰动机制在前期进行大范围的搜索,专注于全局搜索,在后期加快了收敛,专注于局部搜索,提高了收敛速度和寻优精度。

以上两组实验对比验证了本文提出的三种改进策略都是有效的。可以看出,无论是高维单峰还是多峰测试函数,NEO算法均有更好的寻优能力和更快的收敛速度。

3.3 与其他最新改进算法对比分析

为更好地研究NEO算法的优化性能,将本文提出的NEO算法与融合随机反向学习的黏菌与算术混合优化算法HSMAAOA[27]、模糊SCA-AOA算法[28]以及改进Henry气体溶解度优化算法HHOHGSO[29]进行对比,选取部分测试函数,参数设置与3.1节保持一致,比较各个算法的寻优精度和收敛速度。实验结果如表3所示,最优结果已加粗表示。

表3 与其他改进算法的对比结果Table 3 Comparison results with other improved algorithms

由表3可知,除测试函数F14和F20以外,NEO算法的平均值和标准差均为0。对于测试函数F14,虽然NEO算法的标准差稍差,但其具有更好的平均值。说明了NEO算法具有出色的寻优精度。实验结果表明,相比其他最新改进算法,NEO算法对某些测试函数的求解具有一定的竞争力,综合来看,NEO算法具有不错的优化性能。

从图4的部分函数收敛曲线来看,除F20以外,NEO算法的收敛速度明显高于SCA-AOA、HSMAAOA和HHOHGSO。对于测试函数F4和F14,NEO算法在前期收敛速度较慢,后期收敛速度较快,说明加入自适应调整参数的NEO算法根据迭代自动调整参数,前期专注于全局搜索,后期转向局部开发。对于测试函数F18,NEO算法的收敛速度明显优于对比算法,说明引入的菲克定律扰动因子加快了收敛,同时取得了良好的寻优精度。函数F18同时说明了HSMAAOA等对比算法经过一定的迭代次数后会陷入局部最优,而浓度平衡机制增强了种群间的信息交流,避免了粒子向局部最优收敛,从而更好寻优。函数F14则说明在寻优精度一致时,NEO算法则具有更快的收敛速度。综上所述,NEO算法在大部分测试函数上具有不错的表现,算法具有良好的优化性能。

图4 部分函数收敛曲线Fig.4 Convergence curve of partial function

为了更加清楚地对比算法的收敛时间和效率,表4列出了EO、SCA-AOA、HSMAAOA、HHOHGSO和NEO在所有测试函数上的评价次数对比。设定所有函数的寻优精度为10-10,参数设置与3.1节保持一致,比较各个算法在同等寻优精度下的函数评价次数,最优结果已加粗表示,INF表示算法无法寻得指定的寻优精度。从表4可以看出,对于绝大部分的测试函数,NEO算法的函数评价次数明显优于其他算法。对于测试函数F1、F4、F5、F7,虽然NEO算法的函数评价次数不是最优,但是与其他算法最优的函数评价次数数量级相差不大。值得注意的是,NEO算法的评价次数远大于EO算法,说明本文所提出的改进策略是有效的。因此,本文提出的NEO算法是一种较好的优化算法。

表4 函数评价次数对比Table 4 Comparison of function evaluation times

3.4 Wilcoxon秩和检验

为避免算法的偶然性,进一步评估NEO算法的性能,在此进行显著性分析,运用Wilcoxon秩和检验的P值对比不同算法的差异,以确认不同算法是否在统计上存在显著不同。本次实验选取表1的基准测试函数,将NEO算法与GA、WOA、CPA、MA、EO、MDSGEO进行对比。参数设置与3.1节保持一致,计算每个算法的Wilcoxon秩和检验的P值,当P值小于5%时,说明两个算法的寻优效果有差异性,反之则没有。表5中的+、-和=分别表示NEO算法秩和统计结果优于、差于和等于当前对比算法,NaN表示在秩和检验中没有统计数据进行对比,Wilcoxon秩和检验结果见表5。

表5 Wilcoxon秩和检验的P值Table 5 P-value of Wilcoxon rank sum test

结果表明,除了没有数据对比的情况外,NEO算法相较于其他对比算法的P值基本上都小于5%,说明从统计学上来说,NEO算法相比于GA、WOA、CPA、MA、EO、MDSGEO算法具有更好的寻优能力,体现了NEO算法的鲁棒性。

综上所述,本节通过实验仿真与分析,对比了NEO算法与经典算法、其他改进EO算法及其他最新改进智能优化算法,分析了算法的寻优效果、收敛曲线、运算效率和Wilcoxon秩和检验,实验结果表明本文提出的NEO算法具有良好的寻优精度和更快的收敛速度。之所以如此,得益于在NEO算法的平衡池阶段,为避免只依靠适应度值选取候选解产生的相似问题,加入了浓度平衡机制,在高、中、低三种浓度区域的个体都进行不同程度的浓度融合,改变了粒子位置,增强了种群间的信息交流,同时丰富了种群多样性;其次改进了EO算法的重要参数,指数自适应因子a1和幂函数自适应因子a2动态平衡探索与开发能力,保证了探索与开发过程的稳定性;最后在粒子位置更新处引入基于菲克定律的扰动因子,扰动因子的引入改善了浓度更新公式,加快收敛速度的同时提高了算法的寻优精度。总之,NEO算法是性能不错的智能优化算法。

4 结束语

本文为了解决平衡优化器算法收敛速度慢、精度不够、开发和搜索阶段信息不平衡的问题,提出了融合浓度平衡和菲克定律的新平衡优化器算法。算法首先引入浓度平衡机制,提高算法种群间的信息交流能力;同时改进了算法参数,采用动态参数设计平衡全局搜索和局部开发能力;最后引入扰动机制,扰动更新粒子位置,提高算法的寻优精度和收敛速度。通过24个基准测试函数和Wilcoxon秩和统计检测进行实验仿真,结果表明,本文算法具有较好的收敛速度和寻优精度,有效避免了早熟现象的发生。考虑将NEO算法应用到应急车辆路径规划问题中作为下一步的研究方向。

猜你喜欢
测试函数全局种群
山西省发现刺五加种群分布
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
基于双种群CSO算法重构的含DG配网故障恢复
基于博弈机制的多目标粒子群优化算法
中华蜂种群急剧萎缩的生态人类学探讨
落子山东,意在全局
具有收缩因子的自适应鸽群算法用于函数优化问题