APP下载

海鸥算法的改进及其在工程设计优化问题 中的应用

2022-12-22杨韬戴健

数据与计算发展前沿 2022年6期
关键词:测试函数海鸥学习策略

杨韬, 戴健

辽宁工程技术大学,工商管理学院,辽宁 葫芦岛 125100

引 言

智能优化算法在解决复杂优化的问题上有着不俗的表现,如灰狼优化算法[1]、麻雀优化算法[2]、蝗虫优化算法[3]、粒子群优化算法[4]、鲸鱼优化算 法[5]、蚁狮优化算法[6]、海鸥优化算法[7]等。海鸥优化算法是Dhiman和Kumar在2019年提出的新型群智能优化算法,与传统PSO和GA算法相比,其结构简单、易于实现,参数的调整也很简便,这些优点使其受到广泛应用。然而海鸥优化算法仍然存在收敛速度慢、易陷入局部最优的缺陷,导致其多样性较差。

目前相关专家关于群智能优化算法的研究主要分为两个方面:一是种群初始化方面,毛清华[8]、陈忠云[9]等用Logistics混沌映射对种群初始化,尹德鑫[10]用Fuch混沌映射对种群初始化,肖亚宁[11]用Tent混沌映射对种群初始化,马驰等[12]用Tent混沌映射与对立学习策略融合的方式对种群初始化。二是种群搜索寻优方面,Cao Y[13]、秦维娜[14]等通过加入Levy飞行机制增加搜索的随机性,Chen X通过引入非线性搜索控制公式[15]提高算法的搜索速度和精度。

受上述文献的启发,在加入莱维飞行机制的基础上,首先融合Fuch混沌映射[16]与精英反向学习策略[11,17]对海鸥种群初始化,提高种群质量,其次根据余弦函数改进自身行为特征参数A,将线性搜索非线性化,并将改进的海鸥算法与原先算法和其他智能优化算法在9个测试函数和3个工程设计优化问题上进行性能对比。

1 海鸥算法

海鸥优化算法[7,18-19]启发于海鸥的迁徙和攻击行为。为了避免碰撞,各海鸥初始位置不同,在这一机制中,海鸥试图朝着最佳生存方向移动,以确定最优方案。

1.1 海鸥的迁徙模式

海鸥群体需要在避免和其他海鸥碰撞、向最佳的邻居飞行和移动到最佳位置的前提下进行迁徙:

(1)避免碰撞

由式(1)所示,变量A避免了海鸥与其它相邻海鸥的碰撞,并确定自身新的位置:

式(1)中,Cs为避免碰撞的新位置,t为迭代次数,

PS(t)为海鸥的当前位置。A是海鸥在搜索空间中进行全局搜索时代表了其自身行为的特征参数,具体表述如下:

式(2)中,Maxiteration为最大迭代次数,fc为控制变量的频率,fc值一般为2。

(2)其他邻居经验

海鸥中的候选个体会朝最佳邻居的方向移动探索优值。

式(3)中,Bs表示海鸥中的最优候选位置,参数B为随机参数,用来权衡算法的探索和利用,Pbs(t)为海鸥个体向最优位置移动。

式(4)中,R为[0,1]之间的随机数。

(3)移动到最佳位置搜索代理

更新步骤具体表述如下:

式(5)中,DS表示海鸥个体搜索位置CS和全局最佳搜索位置BS之间的距离。

1.2 海鸥的攻击模式

海鸥捕猎时,呈螺旋状移动,通过不断改变攻击的角度和速度改变螺旋的半径,其飞行的高度可通过翅膀和体重维持。具体运动行为表述如下:

式(6)中,r为海鸥在进行螺旋运动时的半径,a是定义的一个随机角度,具体范围是[0,2π],u和v是定值,一般情况下均取1。

式(7)中,PS(t)为海鸥的攻击位置,并更新其它海鸥搜索位置。

2 改进的海鸥算法

2.1 加入混沌精英反向学习策略

(1)Fuch映射

海鸥优化算法的初始种群存在分布不均匀的问题,导致其相关性能不稳定。混沌映射可利用其非线性、普适性、随机性、遍历性和规律性的优点增强种群多样性和全局搜索能力。Fuch映射[10,16]在混沌特性、遍历性和规律性等方面比传统的Logistic映射和Tent映射更加优越,具体表述如下(xn不为0):

式(8)中xn不为0,n为当前迭代次数。

(2)精英反向学习策略

精英反向学习策略[11,17]为反向学习策略的改进版,其利用精英个体和反向种群使种群多样性加强,搜索空间扩大。设Xij=(Xi,1,Xi,2,...Xi,d)为海鸥种群中的精英个体,d为优化问题的空间维度,精英反向解可表示为:

式(9)中,i为种群个体,h为[0,1]上的动态系数,aj和bj为动态边界,分别为Xij第j维个体的最小、最大值。当超出边界范围时,则对其进行重置,具体表述如下:

(3)混沌精英反向学习策略

受文献[12]启发,将Fuch映射与精英反向学习策略进行融合,根据适应度大小对个体进行排序,择优选取形成新的初始化种群,进而提高初始化种群质量。具体表述如下:

式(11)中,ki为Fuch映射中的xn,⊗为逐项乘法运算符号,为融合Fuch映射的精英反向解。融合过后,用Fuch混沌均匀变化的优势来动态压缩原先初始种群的分布范围,让种群更加均匀化。

2.2 改进自身行为特征参数A

针对海鸥算法全局搜索线性化的问题,提出了一种非线性搜索方法[8,14-15]。通过引入余弦函数,将原先线性变化的参数A能够非线性地变化,能够在海鸥搜索过程中提高算法的速度和精度。

式(12)中,t为迭代次数,Maxiteration为最大迭代次数。

改进的参数A呈非线性变化[8,14],在迭代前期参数A变化的幅度较小、减小的速度较慢,有效地扩大了海鸥的搜索范围;在迭代后期,参数A变化幅度较大、减小的速度较快,从而提高了算法的收敛速度。改进前后参数A的对比图如图1所示。

图1 改进前后参数A的对比图Fig.1 Comparison diagram of parameter A before and after improvement

2.3 加入莱维飞行

莱维飞行对于海鸥算法易陷入局部最优的问题有一定的改进,它是通过随机游走机制去正确控制局部搜索[13-14,20],具体表述如下:

式(13-15)中,0<θ<=2,E、F~N(0, σ2),Γ(x)是Gamma函数,α表示步长,θ=1.5。

在计算莱维飞行的步长[21]时,可根据目标函数的实际情况自行调整参数k,在测试函数实验分析中,测试函数为f6时,k取0.01,I-SOA(Improved-Seagull Optimization Algorithm)的性能优势更为明显,测试函数为f1-f5、f7-f9时,k取0.1,I-SOA的性能优势更为明显。因此,I-SOA在面对不同类型的问题时可通过灵活调整k值去发挥自身最大的性能优势。具体表述如下:(测试f6时k取0.01,其余均取0.1)

增加莱维飞行后,海鸥群体的更新位置公式为:

2.4 改进海鸥算法的执行步骤

(1)运用Fuch混沌精英反向学习策略对海鸥种群进行初始化。

(2)设置算法的相关参数:种群数量、最大迭代次数和参数A中的fc值等。

(3)计算海鸥群体的初始适应度值,互相比较后保留最佳适应度值和最佳位置。

(4)根据式(12)更新A。

(5)计算海鸥新的位置并检查是否越界。

(6)计算更新位置后的海鸥个体适应度值,并与步骤(3)的最佳适应度值进行比较,再次更新。

(7)算法是否达到最大迭代次数,如果是,则运行停止;如果否,则跳转至步骤(4)继续运行。

2.5 时间复杂度计算

标准SOA算法的时间复杂度主要包括3个部分:初始化种群O(1),计算初始适应度值O(N),迭代计算最终适应度值 O(NT)。综上,SOA算法的时间复杂度为O(NT)。(N为种群数量,T为最大迭代次数)

I-SOA算法的时间复杂度主要包括:初始化种群O(1),计算初始适应度值O(N),加入混沌精英反向学习策略O(NT),改进自身行为的特征参数O(NT),加入莱维飞行O(NT),迭代计算最终适应度值 O(NT)。综上,I-SOA算法的时间复杂度为O(NT)。

由以上可知,标准SOA算法和I-SOA算法的时间复杂度相同,I-SOA算法的改进并不会降低算法的运行效率。

3 测试函数实验分析

3.1 测试函数

选取9个典型的测试函数进行性能对比。9个测试函数中有单模态的基准测试函数和多模态的基准测试函数,能够比较全面地检验算法的寻优性能和收敛速度,具体表述如表1所示。

表1 测试函数Table 1 Test function

3.2 算法测试分析

将I-SOA算法与标准SOA、PSO和GA算法进行对比实验。种群规模为50,T=500。海鸥算法中A的起始值为2;粒子群算法Vmax为6,ω为0.6,c1和c2均为2;GA算法p1=0.7,p2=0.3。实验重复30次,并以30次最优解的最优值、最差值、平均值和标准差作为算法性能评价指标。最优值、最差值和平均值评价指标能够反映各算法寻优的收敛情况和寻优精度。(最优值为30次最优解中最接近于函数最优解的值,最差值反之,平均值为30次最优解的算术平均值)。标准差评价指标能够反映算法寻优的稳定性。(标准差为方差的算术平方根,方差为30次最优解与其平均值差的平方的平均数)。具体结果如表2所示。

由表2的最优值和平均值可知,I-SOA算法在f1-f9九个基准测试函数中表现非常优异。在f1-f5单模态函数中,I-SOA算法求解的函数值远优于另外三种算法,尤其在求解函数f1时,I-SOA算法比标准SOA算法提升了至少30个数量级,求解函数f2时,提升了20个数量级以上,求解函数f3和f4时,提升了8个数量级以上。对于多模态函数f6-f9而言,I-SOA算法在求解函数f7和f9时,均求得函数的理论最优值,求解函数f8时,I-SOA算法比标准SOA算法提升了10个数量级以上,虽然求解函数f6时I-SOA算法没有体现出过大的优势,但总体而言还是优于其他三种标准算法。而表2中对4种算法的最差值进行对比时,I-SOA算法的优势更为明显,其在9个基准测试函数中的最差值均为最小值。将四种算法对9个测试函数求解30次最优解的标准差进行比较,除了I-SOA算法在函数f6上表现略差以外,在其余的8个测试函数中,标准差均比另外三种标准算法小,说明了I-SOA算法的稳定性较强,不易陷入局部最优。

表2 各算法优化结果对比Table 2 Comparison of optimization results of various algorithms

综上所述,I-SOA算法的各方面性能均优于其他三种算法。

图6 f2收敛曲线对比Fig.6 Comparison of f2 convergence curves

图7 f3收敛曲线对比Fig.7 Comparison of f3 convergence curves

图8 f4收敛曲线对比Fig.8 Comparison of f4 convergence curves

图11 f7收敛曲线对比Fig.11 Comparison of f7 convergence curves

图12 f8收敛曲线对比Fig.12 Comparison of f8 convergence curves

图2-图4为加入单个策略优化的I-SOA1、I-SOA2、I-SOA3与SOA在 多 模 态 函 数Schwefel p2.26中的求解表现。因海鸥优化算法多样性较差和篇幅所限,仅选取多模态函数Schwefel p2.26作为测试函数对仅加入混沌精英反向学习策略的I-SOA1和SOA进行测试对比,收敛曲线对比图如图2所示(种群规模为50,T=500,与以下两个改进点测试对比参数相同),I-SOA1的收敛速度和寻优精度均优于SOA,证实了加入混沌精英反向学习策略的有效性。仅改进参数A的I-SOA2和SOA在多模态函数Schwefel p2.26的测试收敛曲线对比图如图3所示,I-SOA2的收敛速度和寻优精度均优于SOA,证实了改进参数A的有效性。仅加入莱维飞行的I-SOA3和SOA在多模态函数Schwefel p2.26的测试收敛曲线对比图如图4所示,I-SOA3的寻优精度明显优于SOA,跳出了局部最优的困境,证实了加入莱维飞行的有效性(k取0.01)。

图2 I-SOA1和SOA收敛曲线对比图Fig.2 Comparison of I-SOA1 and SOA convergence curves

图3 I-SOA2和SOA收敛曲线对比图Fig.3 Comparison of I-SOA2 and SOA convergence curves

图4 I-SOA3和SOA收敛曲线对比图Fig.4 Comparison of I-SOA3 and SOA convergence curves

图5-图9为I-SOA、SOA、PSO和GA算法在单模态函数中的求解表现。从图中可知,I-SOA算法在函数f1-f5中收敛曲线向x轴下降的速度更快和幅度更大,这意味着I-SOA算法在这5个测试函数中寻求最优解的精度更高。而另外3种标准算法的迭代曲线较为平缓,甚至出现停滞现象,寻优精度也因此变得很差,尤其是f1-f4的收敛曲线对比图,其与I-SOA算法形成鲜明的对比。I-SOA算法在单模态函数中的求解表现说明了融合Fuch混沌映射和精英反向学习策略来初始化种群增加了海鸥种群的多样性,从而提高了种群的质量,加快了算法的收敛速度。而引入余弦函数改进参数A,使线性搜索非线性化,从而改变海鸥步长,进一步提高了收敛速度,寻优精度也得到一定的提升。

图5 f1收敛曲线对比Fig.5 Comparison of f1 convergence curves

图9 f5收敛曲线对比Fig.9 Comparison of f5 convergence curves

图10-图13为I-SOA、SOA、PSO和GA算法在多模态函数中的求解表现,从这4张图中可清晰看出I-SOA算法的优越性,其收敛曲线下降的速度明显快于其他三种标准算法,而寻优精度也远胜于其他三种算法,尤其在求解f7和f9时,I-SOA算法在迭代次数200左右均已收敛并求出了理论最优值。I-SOA算法在多模态函数的求解表现进一步说明了融合Fuch混沌映射和精英反向学习策略的有效性,算法的收敛速度得到有效提高,改进的参数A也在多模态函数的测试中体现了自身的优势,加快了收敛速度并提高了寻优精度。而在求解多模态函数时,标准SOA算法表现较弱,莱维飞行机制的引入进一步优化了海鸥算法,扩大了海鸥搜索解的范围,摆脱了容易陷入局部最优的困境,从而求得最优解。

图10 f6收敛曲线对比Fig.10 Comparison of f6 convergence curves

图13 f9收敛曲线对比Fig.13 Comparison of f9 convergence curves

综上所述,I-SOA1、I-SOA2、I-SOA3算法在多模态函数Schwefel p2.26的收敛曲线对比图中,其求解表现证实了加入单个策略优化的有效性。I-SOA算法在f1-f9的收敛曲线对比图中,其收敛曲线的下降速度比标准SOA、PSO和GA算法更快,在面对易陷入局部最优导致寻优精度低的缺陷时,能够跳出局部最优获得全局最优解。通过多种性能的对比证实了I-SOA算法的优势更为明显。

4 I-SOA算法在工程设计优化问题中的应用

压力容器设计优化问题、三杆桁架设计优化问题和拉力弹簧设计优化问题为非线性规划问题中的不等式约束问题,群智能优化算法在解决这类问题时有一定的优势,不过仍然存在最优解质量较低、问题适应性较弱和寻优稳定性较差的缺陷,因此将I-SOA算法用来求解3个工程设计优化问题,观察其寻优的精度、面对不同工程设计优化问题的求解能力和寻求最优解的稳定性能够进一步验证I-SOA算法的有效性和优越性。

4.1 压力容器设计优化问题

在压力容器设计[22-23]优化问题中,主要目的是使压力容器的总成本最低,其总成本主要包括材料、成型和焊接成本。压力容器的结构示意图如图14所示,其有4个优化变量:压力容器筒体的厚度(TS)、头部半球的厚度(Th)、半球体的内部半径(R)、不考虑头部半球的圆柱筒体的长度L。令{TS、Th、R、L}为{x1、x2、x3、x4},x各维度的取值范围和压力容器设计的目标函数及不等式约束条件如下所示。

图14 压力容器结构示意图Fig.14 Structural diagram of pressure vessel

x1、x2的取值范围为[0,100];x3、x4的取值范围为[10,200]。

目标函数为:

不等式约束条件为:

用标准SOA算法和I-SOA算法分别求解压力容器设计问题(种群规模为200、迭代次数为2000,fc为2,与以下两个工程设计问题参数相同),各自独立运行50次,并以50次寻优结果的最优值、平均值、最差值和标准差作为算法性能评价指标,具体数值如表3所示。将标准SOA算法、I-SOA算法和文 献[22]中列出的19种算法的最优值进行比较,具体数值如表4所示。

表3 SOA算法和I-SOA算法求解压力容器设计问题的寻优结果对照表Table 3 Comparison of optimization results of SOA algorithm and I-SOA algorithm for solving pressure vessel design problem

表4 与文献[22]中其他算法求解压力容器设计问题的最优值比较Table 4 Comparison with the optimal values of other algorithms in literature [22] for solving pressure vessel design problem

由表3中的寻优结果和图15的收敛曲线可清晰的看出I-SOA算法在各个方面均优于SOA算法。表4为21种智能优化算法在压力容器设计问题上求得的最优值,I-SOA算法除了微逊于4类灰狼算法外(相差0.0232%以下),比其余的16种算法都要优越。表3和表4表明了I-SOA算法求解压力容器设计问题的优越性。

图15 SOA和I-SOA求解压力容器设计问题的收敛曲线Fig.15 Convergence curves of SOA and I-SOA for solving pressure vessel design problem

4.2 三杆桁架设计优化问题

在三杆桁架设计[22-23]的问题中,主要目的是使三杆桁架的体积最小,其设计示意图如图16所示。因三杆桁架中杆x1和x3横截面积相同,所以只需选取x1、x2两个杆的横截面积作为优化变量。σ为三杆桁架在每个桁架构件上受到的应力。x1和x2的取值范围、目标函数和不等式约束条件如下所示。

图16 三杆桁架结构示意图Fig.16 Schematic diagram of three bar truss structure

x1、x2的取值范围为[0,1]。

目标函数为:

不等式约束条件为:

目标函数中L=100cm,不等式约束条件中P= 2kN/cm2,σ=2kN/cm2。

用标准SOA算法和I-SOA算法分别求解三杆桁架设计问题,各自独立运行50次,并以50次寻优结果的最优值、平均值、最差值和标准差作为算法性能评价指标,具体数值如表5所示。将标准SOA算法、I-SOA算法和文献[22]中列出的17种算法的最优值进行比较,具体数值如表6所示。

表5 SOA算法和I-SOA算法求解三杆桁架设计问题的寻优结果对照表Table 5 Comparison of optimization results of SOA algorithm and I-SOA algorithm for solving three bar truss design problem

表6 与文献[22]中其他算法求解三杆桁架设计问题的最优值比较Table 6 Comparison with the optimal values of other algorithms in literature [22] for solving three bar truss design problem

由表5中的寻优结果与图17中的收敛曲线可知,I-SOA算法在求解三杆桁架设计的问题上虽然优势不明显,但相比于比SOA算法依旧有微弱的优势。表6为SOA、I-SOA算法与文献[22]中其他17种算法的最优值进行比较,在三杆桁架设计的问题上,群智能优化算法的表现都很不错,I-SOA算法求解的最优值在19种算法中位居前列,占据微弱的优势。表5、表6表明了I-SOA算法在求解三杆桁架设计问题时有一定的优越性。

图17 SOA和I-SOA求解三杆桁架设计问题的收敛曲线Fig.17 Convergence curves of SOA and I-SOA for solving three bar truss design problem

4.3 拉力弹簧设计优化问题

在拉力弹簧的设计[24]问题中,在满足最小挠度、剪应力和振动频率等约束的条件下使拉力弹簧的质量最小,其结构示意图如图18所示。设计变量主要有3个,分别是弹簧线圈的直径d(x1)、弹簧圈平均直径D(x2)、有效绕圈的数量P(x3)。x1-x3的取值范围、目标函数和不等式约束条件如下所示。

图18 拉力弹簧结构示意图Fig.18 Structural diagram of tension spring

x1的取值范围为[0.25,1.30];x2的取值范围为[0.05,2.00];x3的取值范围为[2.00,15.00]。

目标函数为:

不等式约束条件为:

用标准SOA算法和I-SOA算法分别求解拉力弹簧设计问题,各自独立运行30次,并将30次寻优结果的最优值、平均值、最差值和标准差与文献[24] 4种算法进行对比,具体数值如表7所示。

表7 与文献[24]中其他算法求解拉力弹簧设计问题寻优结果对照表Table 7 Comparison of optimization results of other algorithms in literature [24] for solving tension spring design problem

由表7的寻优结果可知,I-SOA算法在求解拉力弹簧设计问题上优势明显,其在与SOA算法和文献[24]中其余4种算法的寻优结果对比时,最优值最小,平均值和最差值仅次于CDE算法,标准差较CDE、AATM、IFA算法稍显弱势。综合而言,I-SOA算法的性能优势最大。由图19可知,相比于标准SOA算法,I-SOA算法在求解拉力弹簧问题上收敛速度更快,寻优结果更好。表7、图19表明了I-SOA算法在求解拉力弹簧设计问题上有较好的性能,占据一定的优势。

图19 SOA和I-SOA求解拉力弹簧设计问题的收敛曲线Fig.19 Convergence curve of SOA and I-SOA for solving tension spring design problem

以上3种工程设计优化问题的测试结果、文献对比结果和收敛曲线对比图显示出SOA算法收敛速度慢和易陷入局部最优的问题,导致其寻优精度较差。I-SOA算法相比SOA算法寻优性能较好且收敛速度快,能够跳出局部最优从而找到更优解,并且相比于其他智能优化算法,I-SOA算法在3个不同的工程设计优化问题中均有不错的表现,体现了I-SOA算法的普适性和寻优稳定性更好。I-SOA算法在工程设计优化问题中的表现体现了算法改进的有效性和优越性,也进一步说明了I-SOA算法在工程设计领域中有较强的应用价值。

5 结束语

针对海鸥算法收敛速度慢和易陷入局部最优等问题,提出了一种融合Fuch混沌精英反向学习策略和余弦函数的莱维飞行海鸥算法。并将改进的海鸥算法与标准SOA、PSO和GA算法在9个基准测试函数和3个工程设计优化问题上进行性能对比,得出以下结论:

(1)改进的海鸥算法无论在寻求最优解还是收敛速度上均有明显的提升,说明了改进的有效性。首先Fuch混沌精英反向学习策略提高了种群的质量,其次引入余弦函数对参数A进行改进提高了算法的收敛速度和全局寻优能力,最后莱维飞行机制的加入使算法能够跳出局部最优。

(2)I-SOA算法在9个基准测试函数中收敛速度、寻优精度和跳出局部最优的能力均比标准SOA、PSO和GA算法优越,证明了I-SOA算法改进的有效性。

(3)I-SOA算法在3个工程设计优化问题中,寻优精度和跳出局部最优的能力较强,面对不同的工程设计优化问题均能求得更优质的解,体现了I-SOA算法的问题适应性和求解稳定性更优,证明了I-SOA算法改进的有效性。

在之后的研究中,会继续完善I-SOA算法,并将I-SOA算法应用到更广泛的实际问题中去,提高I-SOA算法的应用价值。

利益冲突声明

所有作者声明不存在利益冲突关系。

猜你喜欢

测试函数海鸥学习策略
霸道海鸥谁能治
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
应用型本科层次大学生网络在线学习策略及实践
“海鸥”展翅 “美好”起飞
基于博弈机制的多目标粒子群优化算法
具有收缩因子的自适应鸽群算法用于函数优化问题
多媒体教学条件下学习策略剖析
幂的运算对学习策略及生活方式的启示
自主学习策略在写作教学中的应用