韓毅 徐梓斌 張亮 鄧麗麗


基金項目:國家自然科學基金青年基金,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.