韩毅 徐梓斌 张亮 邓丽丽 基金项目:国家自然科学基金青年基金,71301147 摘 要:近年来,随着人工智能的发展,越来越多的学者致力于新型智能优化算法的设计和开发。2019年,文献[1]提出了一种受自然界海鸥启发的新颖全局优化算法——海鸥优化算法(Seagull Optimization Algorithm, SOA)。与其他智能优化算法类似,海鸥优化算法也是基于种群的算法,模拟了海鸥群体的迁徙和攻击行为。 关键词:海鸥;迁徙;人工智能;攻击行为 一、生物特性 海鸥是遍布全球的海鸟,海鸥种类繁多且大小和身长各不相同。海鸥是杂食动物,吃昆虫、鱼、爬行动物、两栖动物和蚯蚓等。大多数海鸥的身体覆盖着白色的羽毛,经常用面包屑来吸引鱼群,用脚发出雨水落下的声音来吸引藏在地下的蚯蚓。海鸥可以喝淡水和盐水,通过眼睛上方的一对特殊腺体,将盐从它们的体内排出。海鸥以群居式生活,利用智慧来寻找和攻击猎物。海鸥最重要特征是迁徙和攻击行为,迁徙是动物从一个地方到另一个地方根据季节更替而移动,寻找最丰富的食物来源以便获取足够能量。在迁移期间,动物成群結队地出行。迁徙时每只海鸥的所在位置不同,以避免相互碰撞。在一个群体中,海鸥可以朝着最佳位置的方向前进,改变自身所在的位置。海鸥经常会攻击候鸟,在进攻时海鸥群体做出螺旋形的运动形态(图1)。 图 1 海鸥迁徙和攻击方式示意图[1] (一)海鸥优化算法(SOA) 1.迁徙(全局搜索) 在迁移过程中,算法模拟海鸥群如何从一个位置移动到另一个位置。在这个阶段,海鸥应该满足三个条件: 避免碰撞:为了避免与邻居(其他海鸥)碰撞,算法采用附加变量A计算海鸥的新位置。 Cs(t)=A×Ps(t) (1) Cs(t)表示不与其他海鸥存在位置冲突的新位置,Ps(t)表示海鸥当前位置,t表示当前迭代,A表示海鸥在给定搜索空间中的运动行为。 A=fc-(t×(fc/Maxiteration)) (2) fc可以控制变量A的频率,它的值从2线性降低到0。 最佳位置方向:在避免了与其他海鸥的位置重合之后,海鸥会向最佳位置所在的方向移动。 Ms(t)=B×(Pbs(t)-Ps(t)) (3) Ms(t)表示最佳位置所在的方向,B是负责平衡全局和局部搜索的随机数。 B=2×A2×rd (4) rd是[0,1]范围内的随机数。 靠近最佳位置:海鸥移动到不与其他海鸥相撞的位置后,就向着最佳位置的所在方向进行移动,到达新的位置。 Ds(t)=Cs(t)+Ms(t) (5) Ds(t)是海鸥的新位置。 2.攻击(局部搜索) 海鸥在迁徙过程中可以不断改变攻击角度和速度,它们用翅膀和重量保持高度。当攻击猎物时,它们就在空中进行螺旋形状运动。x、y和z平面中的运动行为描述如下: x=r×cos(θ) (6) y=r×sin(θ) (7) z=r×θ (8) r=u×eθv (9) 其中r是每个螺旋的半径,θ是[0,2π]范围内的随机角度值。u和v是螺旋形状的相关常数,e是自然对数的底数。海鸥的攻击位置由公式(5-9)计算得到。 Ps(t)=Ds(t)×x×y×z+Pbs(t) (10) Ps(t)是海鸥的攻击位置。 (二)海鸥优化算法计算步骤 1.主程序框架 (1)海鸥种群Ps初始化,参数A、B和MAXiteration (2)设置fc=2, u=1, v=1 (3)While (t <最大迭代次数) (4){ 计算适应值(Ps) /*使用计算适应度函数计算每只海鸥的适应度值*/ (5)rd取随机值(0,1) (6)θ取随机值(0,2π) (7)r=u×eθv (8)使用等式(1-5)计算Ds (9)使用等式(6-10)计算海鸥新位置Ps (10)更新最佳海鸥位置和适应值,t=t+1; (11) } (12)输出最佳海鸥位置和适应值,结束程序 2.计算适应值(Ps)过程 (1)for i=1 to n (2){ (3)计算每只海鸥适应值 (4)} (5)更新最佳海鸥位置和适应值 (6)输出最佳海鸥适应值 (7)结束 3.更新最佳海鸥位置和适应值过程 (1)for i=1 to n (2){ (3)如果海鸥(i)的适应值小于Best值 (4){ 用海鸥(i)的适应值替代Best值 (5)用海鸥(i)的位置替代Best的位置 (6)} (7)} (8)输出Best值和位置 (9)结束程序 二、海鸥优化算法在滚动轴承设计问题中的应用[1] 这个问题的目的是最大化滚动元件轴承的动态承载能力,如图2所示。有10个决策变量,如节径(Dm)、小球直径(Db)、球数量(Z)、内滚道曲率系数(fi)和外滚道曲率系数(fo)、KDmin、KDmax、ε、e和ζ。 (11) s.t. g1(z)=-Z+1≤0 (12) g2(z)=2Db-KDmin(D-d)≥0 (13) g3(z)=KDmin(D-d)-2Db≥0 (14) g4(z)=ζBw-Db≤0 (15) g5(z)=Dm-0.5(D+d)≥0 (16) g6(z)=(0.5+e)(D+d)-Dm≥0 (17) g7(z)=0.5(D-Dm-Db)-εDb≥0 (18) g8(z)=fi≥0.515 (19) g9(z)=f0≥0.515 (20) 此處,x=[{(D-d)/2-3(T/4)}2+{D/2-T/4-Db}2-{d/2+T/4}2] ,y=2{(D-d)/2-3(T/4)}{D/2- T/4-Db} ,fc=37.91[1+{1.04()1.72()0.41}10/3]-0.3×[][]0.41. φ0=2π-2cos-1() ,γ= ,fi= ,f0= ,T=D-d-2Db ,D=160 ,d=90 ,Bw=30 ,ri=r0=11.033 ,0.5(D+d)≤Dm≤0.6(D+d) ,0.515≤fiandf0≤0.6 ,4≤Z≤50 ,0.15(D-d)≤Db≤0.45(D-d) ,0.4≤KDmin≤0.5 ,0.6≤KDmax≤0.7 ,0.3≤ε≤0.4 ,0.02≤e≤0.1 ,0.6≤ζ≤0.85 。 根据比较结果看,SOA优于粒子群算法、花斑鬣狗算法、重力搜索算法、多元宇宙算法、粒子群算法、遗传算法、差分进化算法、正弦-余弦算法和萤火虫算法。 结束语 本文介绍了2019年发表的新型智能优化算法——海鸥优化算法,算法的主要算子是模拟全局搜索的海鸥迁徙算子和模拟局部搜索的海鸥攻击算子。海鸥算法的提出,为工程优化和人工智能领域提供了新的优化工具。虽然海鸥算法的模型相对简洁,但与其他优化算法相比,海鸥算法在实际问题求解中还是体现出了一定的优势。 参考文献: [1] Dhiman G,Kumar V. Seagull optimization algorithm: Theory and its applications for large-scale industrial engineering problems [J]. Knowlege-based Systems, 2019,165:169-196.