基于改进蝴蝶优化算法的工程应用

2023-10-30 04:32陈学财
现代计算机 2023年16期
关键词:测试函数正弦桁架

储 敏,李 宣,陈学财

(贵州师范大学教育学院,贵阳 550025)

0 引言

近些年来,人们希望通过模拟大自然生物种群为了生存而相互配合协作的特性,各种群智能优化算法(intelligence optimization algorithm)被设计出来。例如粒子群优化算法(PSO)[1]、灰狼算法(GWO)[2]、海洋捕食者算法(MPA)[3]等。蝴蝶优化算法(butterfly optimization algorithm,BOA)[4]由 Arora 等[5]于 2017 年提出,其具有参数少、结构简单等优点,并且已经解决了无线传感器网络族首选择、图像分割[6]等问题。为了提高算法对高维优化问题的处理能力,李彦苍等[7]融合最优领域扰动和反向学习策略的蝴蝶优化算法,但其精度也有待提升;Arora 等[8]将莱维飞行策略引入,但却降低了算法的群体多样性,使其易陷入局部最优。

上述等人的改进虽然在某些方面改进了算法性能,但是在求解高维问题时依旧存在很大的提升空间。本文提出了一种融合折射反向学习和黄金正弦指引机制的蝴蝶优化算法,加入折射反向学习,可以提升算法的收敛速度和全局探索能力,再对蝴蝶个体感官系数自适应化使算法的局部开发能力进一步增强。随后使用10 个典型测试函数和一个工程算例进行仿真实验,结果表明,改进的蝴蝶优化算法在大多数函数上取得更好解的同时,收敛速度也得到了显著提升。

1 蝴蝶优化算法

蝴蝶优化算法是模拟蝴蝶觅食和交配行为的优化方法,其中每只蝴蝶都有属于自身的香味,散发出来以便其它蝴蝶能够嗅到,起到一种相互吸引的作用。香味的浓度可用如下公式表示:

式中:fi为蝴蝶的香味感知量;c为感官模态,理论上可以取[0,∞);I为刺激强度;a为基于香味吸收程度的幂指数,通常取[0,1]。

然后算法将会使每只蝴蝶有概率性地进入到两个关键步骤,即全局搜索阶段和局部搜索阶段,搜索过程可分别用式(2)和(3)表示:

2 改进的蝴蝶优化算法

2.1 折射反向学习方法

折射反向学习(refracted opposition-based learning,ROBL)[9]是在反向学习的基础上对其反向过程进行的一种改进,具有很好的全局搜索能力,可以避免种群在算法前期迅速聚集而导致其种群多样性降低的问题。其二维原理如图1所示。

图1 折射反向学习示意图

在图1中,X轴P的搜索空间是[a,b],对应一个维度的解空间,l,l*是点P在搜索空间上的入射光线和折射光线,其对应的入射角和折射角分别为α,β。由此可知折射率n即为sinα/cosβ,O点是搜索区间[a,b] 的中点,只需要设定透镜的缩放系数k=l/l*,根据折射原理就可得到P点与其折射反向学习后的P*点的关系式:

当我们所研究的问题维度增加时,可将式(4)推广到下式来计算粒子折射反向学习过后的新位置:

式中:xi,j表示第i个粒子在第j维的值,表示xi,j经过折射反向学习后形成的解,aj、bj分别表示当前种群第j维的最大值和最小值。

2.2 黄金正弦指引机制

黄金正弦算法(golden sine algorithm,Gold-SA)是Tanyildizi 提出的新算法,主要依据单位圆和正弦函数的定义逻辑,可以用单位圆上的正弦值与搜索代理空间融合进行寻优,具有参数少、易实现等特点。其原理如图2所示。

图2 正弦三角函数与单位圆的关系原理图

其中:A是振幅,ω是角频率,单位为rads,m为时间,单位为s。正弦的角频率ω和幅值A随迭代次数的变化而变化。

Gold-SA 与其它算法融合可以为算法提供更快的收敛速度。其目的是缩小搜索范围,加强算法的局部搜索能力,其黄金分割系数如下式:

式中:a1,b1为黄金分割搜索初始值,一般取a1=π,b1=-π;h为常数,通常取h=(-1)/2。

蝴蝶优化算法后期局部迭代能力变差,难以跳出局部最优解,将局部迭代更新后蝴蝶位置按照式(7)指引到新的位置,并与之前该蝴蝶的适应度值进行比较,留下较好的位置和解

式中:Dt是第t次迭代中第j个蝴蝶的位置,r3,r4为随机数,范围可取:r3∈[0,2π],r4∈ [0,π]。

2.3 自适应度变化

感官形态系数c可以取[0,∞]范围内的任意值。但是,为了与改进后的算法相适应,经多次实验后发现,将其改为随迭代次数减小更能平衡全局和局部搜索。感觉模态c可表示为

其中:Ct+1是t+1代时的感觉模态,Ct是t代时的感觉模态,Tmax是最大迭代次数。

2.4 ORGGAABBOOAA实现流程

综上所述,改进的蝴蝶优化算法(ORGABOA)的具体优化流程如图3所示。

图3 改进的蝴蝶优化算法流程

3 仿真实验与分析

3.1 基准测试函数

为验证本文ORGABOA 的有效性,选择了三种算法和只加黄金分割的蝴蝶优化算法进行比较分析,分别是:BOA、GWO、MPA、GABOA。折射反向学习策略中k=10000,其它算法中的各项参数设置均与原论文一致。此外,为了保证公平性,实验中种群大小统一为30,最大迭代次数为500。同时为了降低算法的随机性和偶然性,算法在每个测试函数上都进行30 次独立实验。取四个基准测试函数对改进算法进行验证,测试函数见表1。

表1 基准测试函数

3.2 实验结果的分析

由表2可以看出,本文提出的ORGABOA 对所选的单峰测试函数均达到了函数的理论最优值,尤其是标准差体现出来的稳定性非常好,说明改进算法在求解单峰的问题上有很好的寻优能力,求解精度也很理想。此外,ORGAMPA对复杂的多峰函数也展示出非常好的寻优性能,尤其是F4,F6 达到理论最优解的同时又拥有非常好的平均值和标准差,说明改进算法的局部开发能力有了极大的提升,而F5 的结果也可以看出算法的性能提升也是比较明显的。从平均值和标准差的结果也能看出ORGAMPA 相比其他算法具有更好的稳定性和鲁棒性。

表2 基准测试函数实验结果

根据实验数据,绘出函数迭代图像,由图4可以更加形象地看出,ORGAMPA 收敛速度和寻优精度比其他算法都要好,曲线下降的速度非常快,同时也保证了算法的抗早熟能力。

图4 函数迭代收敛曲线

4 IBOA在三杆桁架设计问题中的应用

三杆桁架设计问题[10]目的是使三杆的体积最轻,并且也要使每根构件的应力满足要求,其模型如图5所示,该问题的数学表达式如下:

图5 三杆桁架模型

式 中 :0 ≤A1,A2≤1,L=100 cm,P=2 kN/cm2,σ=2 kN/cm2

ORGABOA和原算法对该问题求解的最优解见表3,结果表明,ORGABOA 比原算法的结果更好,最优变量为=[0.78868428 0.40822241],相应的最优体积为263.89584301。两种算法对三杆桁架的优化迭代收敛曲线见图6。

表3 三杆桁架设计问题的比较结果

图6 三杆桁架体积的收敛曲线

5 结语

本文对传统的蝴蝶优化算法易造成收敛速度慢、种群多样性较差等问题,提出了一种基于折射反向学习以及自适应化的改进蝴蝶优化算法。通过在算法中引入折射反向学习,再依据蝴蝶个体感官系数自适应化策略,平衡算法的局部开发和全局搜索能力的同时也有利于提高算法的种群多样性。同时实验测试结果表明改进后的算法具有更好的收敛速度和寻优精度,对典型的工程设计问题的测试进一步验证了改进方法的功能性。接下来的研究重点是希望将该改进算法应用在实际的大型工程和社会实践中。

猜你喜欢
测试函数正弦桁架
例说正弦定理的七大应用
桁架式吸泥机改造
正弦、余弦定理的应用
摆臂式复合桁架机器人的开发
“美”在二倍角正弦公式中的应用
Loader轴在双机桁架机械手上的应用
具有收缩因子的自适应鸽群算法用于函数优化问题
带势函数的双调和不等式组的整体解的不存在性
约束二进制二次规划测试函数的一个构造方法
矮寨特大悬索桥钢桁架安装