韓毅 徐梓斌 張亮 鄧麗麗
基金項(xiàng)目:國家自然科學(xué)基金青年基金,71301147
摘 要:近年來,隨著人工智能的發(fā)展,越來越多的學(xué)者致力于新型智能優(yōu)化算法的設(shè)計(jì)和開發(fā)。2019年,文獻(xiàn)[1]提出了一種受自然界海鷗啟發(fā)的新穎全局優(yōu)化算法——海鷗優(yōu)化算法(Seagull Optimization Algorithm, SOA)。與其他智能優(yōu)化算法類似,海鷗優(yōu)化算法也是基于種群的算法,模擬了海鷗群體的遷徙和攻擊行為。
關(guān)鍵詞:海鷗;遷徙;人工智能;攻擊行為
一、生物特性
海鷗是遍布全球的海鳥,海鷗種類繁多且大小和身長各不相同。海鷗是雜食動物,吃昆蟲、魚、爬行動物、兩棲動物和蚯蚓等。大多數(shù)海鷗的身體覆蓋著白色的羽毛,經(jīng)常用面包屑來吸引魚群,用腳發(fā)出雨水落下的聲音來吸引藏在地下的蚯蚓。海鷗可以喝淡水和鹽水,通過眼睛上方的一對特殊腺體,將鹽從它們的體內(nèi)排出。海鷗以群居式生活,利用智慧來尋找和攻擊獵物。海鷗最重要特征是遷徙和攻擊行為,遷徙是動物從一個地方到另一個地方根據(jù)季節(jié)更替而移動,尋找最豐富的食物來源以便獲取足夠能量。在遷移期間,動物成群結(jié)隊(duì)地出行。遷徙時每只海鷗的所在位置不同,以避免相互碰撞。在一個群體中,海鷗可以朝著最佳位置的方向前進(jìn),改變自身所在的位置。海鷗經(jīng)常會攻擊候鳥,在進(jìn)攻時海鷗群體做出螺旋形的運(yùn)動形態(tài)(圖1)。
圖 1 海鷗遷徙和攻擊方式示意圖[1]
(一)海鷗優(yōu)化算法(SOA)
1.遷徙(全局搜索)
在遷移過程中,算法模擬海鷗群如何從一個位置移動到另一個位置。在這個階段,海鷗應(yīng)該滿足三個條件:
避免碰撞:為了避免與鄰居(其他海鷗)碰撞,算法采用附加變量A計(jì)算海鷗的新位置。
Cs(t)=A×Ps(t)? ? ? ? ? ? ?(1)
Cs(t)表示不與其他海鷗存在位置沖突的新位置,Ps(t)表示海鷗當(dāng)前位置,t表示當(dāng)前迭代,A表示海鷗在給定搜索空間中的運(yùn)動行為。
A=fc-(t×(fc/Maxiteration))? ? ? (2)
fc可以控制變量A的頻率,它的值從2線性降低到0。
最佳位置方向:在避免了與其他海鷗的位置重合之后,海鷗會向最佳位置所在的方向移動。
Ms(t)=B×(Pbs(t)-Ps(t))? ? ? (3)
Ms(t)表示最佳位置所在的方向,B是負(fù)責(zé)平衡全局和局部搜索的隨機(jī)數(shù)。
B=2×A2×rd? ? ? ? ? ? ? ?(4)
rd是[0,1]范圍內(nèi)的隨機(jī)數(shù)。
靠近最佳位置:海鷗移動到不與其他海鷗相撞的位置后,就向著最佳位置的所在方向進(jìn)行移動,到達(dá)新的位置。
Ds(t)=Cs(t)+Ms(t)? ? ? ? (5)
Ds(t)是海鷗的新位置。
2.攻擊(局部搜索)
海鷗在遷徙過程中可以不斷改變攻擊角度和速度,它們用翅膀和重量保持高度。當(dāng)攻擊獵物時,它們就在空中進(jìn)行螺旋形狀運(yùn)動。x、y和z平面中的運(yùn)動行為描述如下:
x=r×cos(θ)? ? ? ? ? (6)
y=r×sin(θ)? ? ? ? ? (7)
z=r×θ? ? ? ? ? ? ? ? ? ? ? ? ? ?(8)
r=u×eθv? ? ? ? ? ? ? ? ? ? ? ? ? (9)
其中r是每個螺旋的半徑,θ是[0,2π]范圍內(nèi)的隨機(jī)角度值。u和v是螺旋形狀的相關(guān)常數(shù),e是自然對數(shù)的底數(shù)。海鷗的攻擊位置由公式(5-9)計(jì)算得到。
Ps(t)=Ds(t)×x×y×z+Pbs(t)? ? ? ? ? ?(10)
Ps(t)是海鷗的攻擊位置。
(二)海鷗優(yōu)化算法計(jì)算步驟
1.主程序框架
(1)海鷗種群Ps初始化,參數(shù)A、B和MAXiteration
(2)設(shè)置fc=2, u=1, v=1
(3)While (t <最大迭代次數(shù))
(4){ 計(jì)算適應(yīng)值(Ps)? /*使用計(jì)算適應(yīng)度函數(shù)計(jì)算每只海鷗的適應(yīng)度值*/
(5)rd取隨機(jī)值(0,1)
(6)θ取隨機(jī)值(0,2π)
(7)r=u×eθv
(8)使用等式(1-5)計(jì)算Ds
(9)使用等式(6-10)計(jì)算海鷗新位置Ps
(10)更新最佳海鷗位置和適應(yīng)值,t=t+1;
(11) }
(12)輸出最佳海鷗位置和適應(yīng)值,結(jié)束程序
2.計(jì)算適應(yīng)值(Ps)過程
(1)for i=1 to n
(2){
(3)計(jì)算每只海鷗適應(yīng)值
(4)}
(5)更新最佳海鷗位置和適應(yīng)值
(6)輸出最佳海鷗適應(yīng)值
(7)結(jié)束
3.更新最佳海鷗位置和適應(yīng)值過程
(1)for i=1 to n
(2){
(3)如果海鷗(i)的適應(yīng)值小于Best值
(4){ 用海鷗(i)的適應(yīng)值替代Best值
(5)用海鷗(i)的位置替代Best的位置
(6)}
(7)}
(8)輸出Best值和位置
(9)結(jié)束程序
二、海鷗優(yōu)化算法在滾動軸承設(shè)計(jì)問題中的應(yīng)用[1]
這個問題的目的是最大化滾動元件軸承的動態(tài)承載能力,如圖2所示。有10個決策變量,如節(jié)徑(Dm)、小球直徑(Db)、球數(shù)量(Z)、內(nèi)滾道曲率系數(shù)(fi)和外滾道曲率系數(shù)(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 。
根據(jù)比較結(jié)果看,SOA優(yōu)于粒子群算法、花斑鬣狗算法、重力搜索算法、多元宇宙算法、粒子群算法、遺傳算法、差分進(jìn)化算法、正弦-余弦算法和螢火蟲算法。
結(jié)束語
本文介紹了2019年發(fā)表的新型智能優(yōu)化算法——海鷗優(yōu)化算法,算法的主要算子是模擬全局搜索的海鷗遷徙算子和模擬局部搜索的海鷗攻擊算子。海鷗算法的提出,為工程優(yōu)化和人工智能領(lǐng)域提供了新的優(yōu)化工具。雖然海鷗算法的模型相對簡潔,但與其他優(yōu)化算法相比,海鷗算法在實(shí)際問題求解中還是體現(xiàn)出了一定的優(yōu)勢。
參考文獻(xiàn):
[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.