APP下载

融合多策略的改进黏菌算法及工程应用

2024-02-21李梦真莫愿斌

计算机技术与发展 2024年2期
关键词:黏菌测试函数复杂度

李梦真,莫愿斌

(广西民族大学 人工智能学院,广西 南宁 530006)

0 引 言

近年来,随着科学技术的不断发展,计算复杂性的增强,优化问题在现阶段受到广泛关注,利用元启发式算法求解多种复杂优化问题也是当下研究的热点。常见的元启发式算法有粒子群算法(Particle Swarm Optimization,PSO)[1]、布谷鸟算法(Cuckoo Search,CS)[2]、差分进化算法(Differential Evolution,DE)[3]、灰狼优化算法(Grey Wolf Optimizer,GWO)[4]、鲸鱼优化算法(Whale Optimization Algorithm,WOA)[5]、海鸥优化算法(Seagull Optimization Algorithm,SOA)[6]、麻雀优化算法(Sparrow Search Algorithm,SSA)[7]、阿基米德优化算法(Archimedes Optimization Algorithm,AOA)[8]、斑点鬣狗优化算法(Spotted Hyena Optimization,SHO)[9]等等。

黏菌算法是2020年Li等人[10]根据黏菌个体振荡捕食行为提出的,建立了由黏菌行为模式启发的数学模型,实验证明该算法具有良好的寻优能力,并广泛应用于解决优化问题;文献[11]提出了一种基于成败历史存档的融合龙格库塔黏菌算法,改进后算法的求解精度和鲁棒性更具竞争力;文献[12]利用精英反向学习和二次插值提升算法全局寻优性能、收敛精度及局部开发能力,帮助算法跳出局部极值;文献[13]提出了一种融合精英策略的SMA,在有固定频率约束的桁架结构尺寸优化问题中取得较好结果。该文提出的融合多策略的改进黏菌算法包含三个改进策略,能针对原算法存在的缺点进行整合性提升。首先,采用Sine映射初始化种群,提高种群多样性;其次,引入自适应变异t分布策略,改进原算法容易陷入局部最优的缺点;最后,引入黄金正弦机制来改进算法在迭代后期收敛速度慢、收敛精度低的问题。通过基准测试函数及CEC2021测试函数对改进后的黏菌算法进行性能测试,测试结果明显优于其他对比算法,然后将其应用于工程应用问题,GTSMA都取得了理想的结果。

1 黏菌算法

黏菌算法生物背景新颖,结构清晰,主要利用黏菌觅食的潜力与特性来解决复杂的优化问题。黏菌觅食的潜力最初体现在路径规划中,该算法主要模拟黏菌靠近食物、包围食物和获得食物三个阶段。首先,黏菌根据空气中的气味浓度去接近食物,黏菌个体会根据公式1的规则进行更新移动:

(1)

其中,X表示黏菌的当前位置,LB与UB表示搜索范围的上下边界,XA与XB表示从所有黏菌个体中随机挑选的两个个体,Vb是介于[-a,a]的参数,迭代次数越多,Vb的值越趋于0,Vc从1-0呈线性变化,t表示黏菌个体当前的迭代次数,权重参数W表示黏菌的质量,Xb(t)表示第t次迭代适应度最优的个体位置,r表示[0,1]区间的随机值,其中控制变量p和参数a的函数表达式如式2、式3:

p=tanh|S(i)-DF|

(2)

(3)

其中,S(i)代表黏菌个体X的适应度,而DF表示最佳适应度值,tmax代表个体更新的最大迭代次数。而W的表达式如式4:

W(smellIndex)=

(4)

其中,condition表示适应度排在前一半的个体,other表示余下的种群个体,r表示[0,1]区间内的随机值,bF和wF分别表示当前种群中的最好和最差适应度值。

2 融合多策略的改进黏菌算法

2.1 Sine混沌映射

丰富的初始种群,对于算法的收敛速度和寻优精度都十分重要。黏菌在初期的位置具有随机性和不确定性,可能会出现种群分布不均匀,容易陷入局部最优。而混沌序列可以用来解决上述问题[14]。常见的混沌映射有logistic映射、kent映射等,该文采用Sine混沌映射,选取式5产生的初始变量值利用式6映射到黏菌个体上,产生多样性较好的初始种群。

Yi+1=ρsin(πi)

(5)

(6)

其中,Yi∈[-1,1]为混沌序列;i=1,2,…,N表示种群规模;ρ为控制参数;Ud和Ld分别为黏菌个体在第d维的上限和下限。

2.2 自适应t分布变异策略

t分布最早被命名为“Student’s distribution”,高斯分布(Gaussian Distribution,GD)和柯西分布(Cauchy Distribution,CD)是t分布的两个特殊边界分布,该策略融合了高斯分布和柯西分布的优点,初期参数t取较小值,符合柯西分布;迭代进行到中后期时,t取值就会变大,t分布无限接近高斯分布。具体的黏菌位置更新方式如式7:

X(t+1)=

(7)

其中,ts是以SMA迭代次数为自由度的t分布,随着S增加,t也会增加,t分布由开始的柯西分布逐渐转变为高斯分布。

2.3 黄金正弦策略

黄金正弦算法(golden Sine Algorithm,goldenSA)[15]是引用黄金分割系数加入正弦函数设计来提升寻优性能的一种新型智能算法。算法开始时通过随机生成N个个体来更新初始空间,在个体位置更新过程中,利用黄金分割系数来缩小个体的搜索空间。其位置更新公式如下:

(8)

3 GTSMA优化算法

3.1 算法流程

针对基本SMA的缺点,该文提出融合多策略的改进黏菌算法(GTSMA)。首先,引入Sine混沌映射提高迭代初期种群的多样性;其次,随着迭代次数的增加,自适应t分布变异策略中自由度参数t取值也会随之变大,可以增加算法跳出局部最优的概率;最后与黄金正弦算法相结合。在算法迭代后期利用黄金分割系数对整个过程进行优化,改进算法在迭代后期收敛精度较低的问题。GTSMA流程如图1所示。

图1 算法流程

3.2 算法的时间复杂度分析

设黏菌种群规模为N,问题维度为D,最大迭代次数为T,目标函数复杂度为Oobj。则GTSMA在Sine混沌映射初始化种群阶段的时间复杂度为O(N×M),适应度值评估和排序的复杂度为O(T×N×(1+logN)),权重参数W更新时间复杂度为O(T),迭代后期融合黄金正弦更新最优位置的时间复杂度为O(T×M),最后阶段位置更新的时间复杂度为O(T×N×M)。综上所述,GTSMA的时间复杂度为O(T×N×(M+Oobj+1+logN))。

4 实验仿真与结果分析

4.1 实验环境

所有实验代码均在Matlab R2018a上运行,以保证公平的比较。

4.2 基准测试函数

选取单峰、多峰函数等不同类型的基准测试函数对GTSMA进行测试来验证GTSMA的性能,函数的维数、范围和理论最优值如表1所示。

表1 基准测试函数

4.3 GTSMA与其他算法对比

论文通过对WOA,PSO,GWO,CS,SMA,GTSMA分别在6个测试函数独立运行30次的结果进行对比来检验文中改进策略是否有效,运行结果见表2。

表2 所有比较算法的运行结果

由表2数据可知,针对不同类型的函数,GTSMA的综合性能最强。对于函数f3,f5,f6,GTSMA的三项指标均优于原始SMA。由图2可以更直观看出GTSMA效果更理想。对于函数f1,f2, 其他比较算法收敛精度较低,GTSMA相对于原始SMA收敛到最优值所需迭代次数更少。对于函数f4,算法迭代初期该函数的收敛曲线下降明显、收敛速度快。对于函数f5,GTSMA只需五十多次迭代即可获得理论上最优值。对于f3,f6,从图中可以看出函数拐点次数明显增多,说明该算法不仅能够快速收敛,而且还能在后期的迭代过程中快速逃离局部最优,提高了算法的勘探能力。

(a)f1比较算法收敛曲线 (b)f2比较算法收敛曲线 (c)f3比较算法收敛曲线

4.4 CEC2021测试集实验分析

在CEC2021测试集上与其他同类型算法进行对比,检验GTSMA的综合性能,CEC2021测试函数见表3。

表3 CEC2021测试集

将GTSMA与标准SMA,SOA,WOA,DE以及GWO进行对比。实验参数取种群规模为N=30,维度d=30,最大迭代次数为500。表4展示了算法在运行过程中取得的最优平均值和标准差。由表4中算法的运行结果可知,GTSMA在10个测试函数中平均值和标准偏差均为0,根据上述实验结果分析,GTSMA相比同类算法优势更大。

表4 所有比较算法CEC2021测试集实验结果

5 GTSMA在工程优化问题的应用

拉压弹簧设计问题作为优化工程应用问题中的经典案例,结构模型如图3所示,它的目标是在满足一定约束条件下令弹簧质量f(x)最小。该问题主要包括弹簧金属丝直径D(x1)、弹簧圈平均直径D(x2)以及弹簧的有效圈数N(x3)三个设计变量以及最小挠度、剪切应力、振荡频率以及外径限制四个不等式约束。其数学模型如式9所示。

图3 压力弹簧模型

约束条件为:

(9)

其中,变量x1,x2,x3的取值范围如下:

0.05≤x1≤2,0.25≤x2≤1.3,2≤x3≤15

用GTSMA和标准SMA求解拉压弹簧设计问题,并与WOA[5],SSA[7],AOA[8],混沌粒子群算法(Chaos particle swarm optimization algorithm,CPSO)[16]取得的最优值进行对比。为确保数据的准确性,用于比较算法的数据均取自于对应的参考文献。其中对比结果如表5所示。

表5 拉压弹簧设计问题优化结果

从表5的数据可知,在拉压弹簧设计问题寻优结果中,GTSMA的寻优结果为0.012 66,结果均优于其他四种优化算法。因此,GTSMA的寻优能力更强,可以有效地处理拉压弹簧工程问题。

6 结束语

在原始SMA的基础上,提出了一种融合多策略的改进黏菌算法,迭代初期在种群初始化过程中引入Sine混沌序列提高种群多样性;然后引入自适应t分布策略避免黏菌个体陷入局部最优;最后融合黄金正弦算法思想更新个体位置,提高算法的收敛精度及运行速度。在基准测试函数、CEC2021测试集以及实际工程设计优化问题上均取得了满意效果,表明了GTSMA的可操作性和适用性。今后的工作将继续研究改进的优化策略,提高该算法的运行速度并将其应用到更复杂的优化问题中。

猜你喜欢

黏菌测试函数复杂度
黏糊糊的生命
黏菌观察记
养群黏菌当宠物
黏菌一点不简单
一种低复杂度的惯性/GNSS矢量深组合方法
求图上广探树的时间复杂度
具有收缩因子的自适应鸽群算法用于函数优化问题
带势函数的双调和不等式组的整体解的不存在性
某雷达导51 头中心控制软件圈复杂度分析与改进
约束二进制二次规划测试函数的一个构造方法