李汶娟,李 廣,聶志剛
(甘肅農(nóng)業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院,甘肅 蘭州 730070)
阿奎拉鷹算法(Aquila Optimizer,AO)是由Abualigah,Yousri等人[1]于2021年提出的一種模擬阿奎拉鷹捕獵行為的新的元啟發(fā)式優(yōu)化算法。阿奎拉鷹通過在四種狩獵方式間巧妙變換來快速捕獲獵物。因?yàn)榉N群的全局搜索隨機(jī)性強(qiáng)、探索廣度大,所以該算法具有較強(qiáng)的全局搜索能力和較快的收斂速度;但該算法在全局與局部探索的條件固定,探索與開發(fā)之間不平衡,導(dǎo)致局部搜索能力較弱,且容易陷入局部最優(yōu)。針對(duì)AO的不足,眾多學(xué)者使用多種策略對(duì)該算法進(jìn)行改進(jìn)。Akyol等人[2]提出了一種新的混合阿奎拉鷹-切線搜索算法(Aquila Optimizer-Tangent Search Algorithm,AO-TSA),即在全局搜索階段使用AO,在局部開發(fā)階段使用TSA的局部最小逃逸策略,從而避免陷入局部最優(yōu)。張玉軍等人[3]提出一種將算術(shù)優(yōu)化算法(Arithmetic Optimization Algorithm,AOA)與阿奎拉鷹優(yōu)化算法混合的新方法(Arithmetic Optimization Algorithm-Aquila Optimizer,AOAOA),通過改進(jìn)逃逸能量參數(shù),讓更多個(gè)體在迭代后期進(jìn)行全局搜索,并在減速器設(shè)計(jì)等工程問題中取得不錯(cuò)的效果。賈鶴鳴等人[4]將阿奎拉鷹算法與哈里斯鷹算法結(jié)合提出新的混合算法,新算法的收斂速度和優(yōu)化精度明顯改善。Akyol、張玉軍、賈鶴鳴等人都是將AO算法與另一種算法混合起來使用,改變了AO算法原有的結(jié)構(gòu),同時(shí)可能造成新算法在尋優(yōu)過程中的時(shí)間復(fù)雜度增加。通過對(duì)AO算法求解過程的分析,該文提出了一種多項(xiàng)式變異和自適應(yīng)權(quán)重優(yōu)化的阿奎拉鷹算法(Polynomial Variance and Adaptive Weight Optimization for Aquila Algorithm,MAO),改進(jìn)策略均是在AO算法原始結(jié)構(gòu)上進(jìn)行改進(jìn)優(yōu)化。通過Tent混沌映射[5]初始化種群,增加種群的多樣性;引入動(dòng)態(tài)轉(zhuǎn)換概率策略用于更好地平衡全局搜索和局部開發(fā);在全局搜索期間引入多項(xiàng)式變異擾動(dòng)策略對(duì)全局最優(yōu)值進(jìn)行擾動(dòng),增加了解的多樣性;在局部開發(fā)階段引入自適應(yīng)權(quán)重策略可以動(dòng)態(tài)調(diào)整最優(yōu)值權(quán)重,加快算法收斂速度。最后采用CEC2017中的9個(gè)基準(zhǔn)測(cè)試函數(shù)和2個(gè)工程優(yōu)化問題對(duì)改進(jìn)后的算法進(jìn)行尋優(yōu)性能驗(yàn)證。擬解決AO算法在局部搜索方面能力較弱,容易陷入局部最優(yōu)的問題,為智能優(yōu)化算法的應(yīng)用提出新的方向。
1.1.1 探索階段
阿奎拉鷹使用全局飛行探索和輪廓飛行與短滑行攻擊策略全局搜索獵物,設(shè)置隨機(jī)數(shù)r1使兩種策略隨機(jī)切換,其取值為[0,1]。
(1)全局飛行探索。
阿奎拉鷹通常先高空飛行,便于搜尋獵物位置,其位置更新遵循下述表達(dá):

(1)
(2)

(2)輪廓飛行與短滑行攻擊。
當(dāng)在高空發(fā)現(xiàn)獵物后,阿奎拉鷹會(huì)在獵物上空盤旋,準(zhǔn)備著陸攻擊。
X(t+1)=Xbest(t)×LF(D)+
XR(t)+(y-x)×r3
(3)
其中,XR(t)代表種群的隨機(jī)位置,D代表問題的維度,r3代表[0,1]的隨機(jī)數(shù),LF(D)代表萊維飛行函數(shù),公式如下:
(4)
(5)
其中,s為固定常數(shù)0.01,μ與v為[0,1]的隨機(jī)數(shù),β為固定常數(shù)1.5。
y=R×cosθ
(6)
x=R×sinθ
(7)
R=R1+U×D1
(8)
(9)
其中,y與x表示以螺旋形式搜索的過程,R1表示固定的搜索周期,一般在[1,20]之間取值。U為固定常數(shù)0.005 65,D1是1到搜索空間維度之間的整數(shù),ω為固定常數(shù)0.005。
1.1.2 開發(fā)階段
(1)低空俯沖狩獵。
阿奎拉鷹已完成全局搜索,確定獵物大致位置,開始進(jìn)行低空狩獵,數(shù)學(xué)模型如下:
(10)
其中,UB為種群搜索上界,LB為種群搜索下界,α和δ均為值為0.1的適應(yīng)參數(shù),r5和r6均為[0,1]的隨機(jī)數(shù)。
(2)地面近距離攻擊。
阿奎拉鷹進(jìn)行低空游走,準(zhǔn)備著陸攻擊獵物。數(shù)學(xué)模型如下:
X(t+1)=QF×Xbest(t)-(G1×X(t)×r7)-G2×LF(D)+r8×G1
(11)
(12)
G1=2×r10-1
(13)
(14)
其中,QF(t)是用來平衡算法搜索策略的質(zhì)量函數(shù),G1代表獵物逃逸軌跡,G2代表鷹群空中的飛行斜率,r7~r10均為[0,1]的隨機(jī)數(shù)。
第一,采用Tent混沌映射來初始化種群,增加了種群的多樣性。混沌運(yùn)動(dòng)可以根據(jù)自身遍歷所有狀態(tài),而不會(huì)在一定范圍內(nèi)重復(fù)這些狀態(tài)。所以,采用Tent混沌映射策略使種群分布更均勻。
第二,引入動(dòng)態(tài)轉(zhuǎn)換概率策略用于更好地平衡全局搜索和局部開發(fā),動(dòng)態(tài)轉(zhuǎn)換概率的引入打破了原有根據(jù)固定迭代次數(shù)劃分全局探索與局部開發(fā)。
第三,在全局搜索期間引入多項(xiàng)式變異擾動(dòng)策略對(duì)全局最優(yōu)值進(jìn)行擾動(dòng),增加了解的多樣性。
最后,在局部開發(fā)階段引入自適應(yīng)權(quán)重策略可以動(dòng)態(tài)調(diào)整最優(yōu)值權(quán)重,加快算法收斂速度。
種群的多樣性是影響算法效率的關(guān)鍵因素之一?;煦缢阉鞯氖褂帽葻o序隨機(jī)搜索更有優(yōu)勢(shì)。基本的AO算法在搜索空間中隨機(jī)生成初始化種群,導(dǎo)致種群多樣性不足,影響算法尋優(yōu)效率。改進(jìn)后的算法采用了Tent混沌映射初始化種群,增加了種群多樣性。Tent混沌映射的公式如下:
(15)
其中,k代表映射次數(shù),Zk代表第k次映射的函數(shù)值。
(16)
其中,t為當(dāng)前迭代次數(shù),T為總迭代次數(shù)。當(dāng)P>r時(shí)(r為[0,1]的隨機(jī)數(shù)),采用全局飛行探索和輪廓飛行與短滑行攻擊策略進(jìn)行全局搜索,反之,采用低空俯沖狩獵和地面近距離攻擊策略進(jìn)行局部開發(fā)。
采用多項(xiàng)式變異算子對(duì)全局最優(yōu)位置進(jìn)行擾動(dòng),擴(kuò)大搜索廣度,增加了種群多樣性,有利于算法跳出局部最優(yōu),加快收斂速度。其公式如下:

(17)
(18)
λ=
(19)
其中,λ為多項(xiàng)式變異算子,可根據(jù)[0,1]的隨機(jī)數(shù)rand隨機(jī)切換策略,使變異方式多樣,μ,ω為[0,1]的隨機(jī)數(shù)。將公式3改為公式20:
X(t+1)=Xbest(t)×LF(D)×λ+XR(t)-rand×(y-x)
(20)
慣性權(quán)重因子是很重要的一個(gè)參數(shù),慣性權(quán)重較大時(shí),算法的全局搜索能力較強(qiáng),慣性權(quán)重較小時(shí),局部搜索能力較強(qiáng)[6]。在基礎(chǔ)AO的局部開發(fā)過程中,采用平衡搜索策略的函數(shù)QF平衡最優(yōu)位置在尋優(yōu)過程中所占比重,引入ω后,隨著迭代次數(shù)的增加,ω逐步趨近于1,即Xbest(t)在局部開發(fā)過程中所占比重增大,有利于算法后期快速收斂。

(21)
其中,t為當(dāng)前迭代次數(shù),T為總迭代次數(shù),將公式11改為公式22:
X(t+1)=ω×Xbest(t)-(G1×X(t)×r7)-G2×LF(D)+r8×G1
(22)
步驟1:初始化參數(shù)。設(shè)置種群數(shù)量規(guī)模N、搜索維度D、最大迭代次數(shù)T、上界(UB)、下界(LB)、動(dòng)態(tài)轉(zhuǎn)換概率P。
步驟2:采用Tent混動(dòng)映射對(duì)初始化種群重新更新,生成N×D大小的矩陣。
步驟3:計(jì)算每只阿奎拉鷹的自適應(yīng)度,保存最優(yōu)位置Xbest。
步驟4:生成隨機(jī)數(shù)r1,當(dāng)P>r1,進(jìn)行全局飛行探索和輪廓飛行與短滑行攻擊策略,生成隨機(jī)數(shù)r2,若r2<0.5,采用全局飛行探索策略,反之,采用輪廓飛行與短滑行攻擊策略,并在該策略中添加多項(xiàng)式變異算子對(duì)最優(yōu)位置進(jìn)行擾動(dòng)。
步驟5:當(dāng)P≤r1,進(jìn)行低空俯沖狩獵和地面近距離攻擊策略,生成隨機(jī)數(shù)r3,若r3<0.5,采用低空俯沖狩獵策略,反之,采用地面近距離攻擊策略,并在該策略中添加自適應(yīng)權(quán)重因子,加快算法的收斂速度。
步驟6:判斷算法是否達(dá)到最大迭代次數(shù),若達(dá)到,結(jié)束循環(huán),輸出全局最優(yōu)解,若未達(dá)到,返回步驟3繼續(xù)迭代。
MAO算法流程如圖1所示。

圖1 MAO算法流程
設(shè)阿奎拉鷹群體規(guī)模為N,最大迭代次數(shù)為T,維度為D,標(biāo)準(zhǔn)AO算法的時(shí)間復(fù)雜度為O(N·(T·D+1))[7],根據(jù)MAO算法流程的描述和時(shí)間復(fù)雜度O的運(yùn)算規(guī)則,初始化計(jì)算復(fù)雜度為O(N),引入多項(xiàng)式變異擾動(dòng)策略對(duì)全局位置進(jìn)行更新的時(shí)間復(fù)雜度為O(T·D·N),以及引入慣性權(quán)重因子對(duì)局部位置更新的時(shí)間復(fù)雜度為O(T·D·N)。綜上所述,MAO的時(shí)間復(fù)雜度為O(N·(T·D+1)),與基本AO相比沒有增加計(jì)算量。
實(shí)驗(yàn)環(huán)境為:操作系統(tǒng)Windows10,CPU為Intel(R)Core(TM)i7-8550U CPU@1.80 GHz 1.99 GHz,內(nèi)存為4 GB,仿真實(shí)驗(yàn)軟件為Matlab2016a。通過AO基本算法及四種較新穎的優(yōu)化算法(哈里斯鷹算法(Harris Hawks Optimization,HHO)[8]、灰狼優(yōu)化算法(Grey Wolf Optimization,GWO)[9]、鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA)[10]、海鷗算法(Seagull Optimization Algorithm,SOA)[11])與改進(jìn)后的MAO算法進(jìn)行實(shí)驗(yàn)對(duì)比。為了實(shí)驗(yàn)的公平性、客觀性,所有算法的初始種群規(guī)模設(shè)置為30,迭代次數(shù)設(shè)為500。選用CEC2017中的9個(gè)經(jīng)典測(cè)試函數(shù)[12]進(jìn)行仿真對(duì)比實(shí)驗(yàn)來分析改進(jìn)MAO算法的有效性。
表1為MAO算法與其余五種算法的仿真實(shí)驗(yàn)數(shù)據(jù),在實(shí)驗(yàn)中所有算法均固定參數(shù)(維度D=30,種群數(shù)量N=30,最大迭代次數(shù)T=500)。從表1中的最小值可清晰看出每種算法的收斂精度,提出的MAO算法在測(cè)試函數(shù)f1~f3,f5,f6均取得最好的尋優(yōu)精度(以上5個(gè)測(cè)試函數(shù)最小值分別為4.68E-182,1.27E-170,1.64E-105,8.50E-08,1.01E-07,其值均小于其余算法的最小值),在4個(gè)測(cè)試函數(shù)f4,f7~f9上與其余較優(yōu)的算法達(dá)到相同尋優(yōu)精度。其中,f1~f3為單峰函數(shù),f4~f6為多峰函數(shù),f7~f9為固定維多峰函數(shù),MAO算法均能取得最好的尋優(yōu)精度。綜上分析,改進(jìn)的MAO算法相比于基礎(chǔ)的AO算法以及HHO,GWO,WOA,SOA,可以達(dá)到更好的收斂精度與尋優(yōu)性能。
將表1中的仿真實(shí)驗(yàn)數(shù)據(jù)繪制為圖2中的收斂曲線。從圖2中可直觀看出,每種算法的收斂性能(除3個(gè)測(cè)試函數(shù)f7~f9外,其余函數(shù)值均對(duì)表1中的數(shù)據(jù)取自然對(duì)數(shù))。在5個(gè)測(cè)試函數(shù)f1~f3,f5,f6中MAO算法收斂性能明顯優(yōu)于基礎(chǔ)AO算法。通過表1與圖2對(duì)比,在f1上,MAO與AO相比提高了38個(gè)數(shù)量級(jí);在f2上,MAO與AO相比提高了21個(gè)數(shù)量級(jí);在f3上,MAO與AO相比提高了26個(gè)數(shù)量級(jí),并且有更強(qiáng)的局部搜索能力,由此得出結(jié)論,MAO在單峰函數(shù)上表現(xiàn)優(yōu)秀,收斂效果提升明顯。在f5上,MAO與AO相比提高了3個(gè)數(shù)量級(jí);在f6上,MAO與AO相比提高了2個(gè)數(shù)量級(jí);在f6的收斂曲線中,MAO在迭代過程中出現(xiàn)多個(gè)拐點(diǎn),證明MAO在收斂過程中易跳出局部最優(yōu)。綜上分析,MAO算法在收斂速度和收斂精度上都明顯優(yōu)于基礎(chǔ)AO算法。

圖2 CEC2017測(cè)試函數(shù)收斂曲線
為了驗(yàn)證改進(jìn)的MAO算法的有效性,將其應(yīng)用在兩個(gè)工程優(yōu)化問題中(包含三桿桁架設(shè)計(jì)優(yōu)化問題[13]、懸臂梁設(shè)計(jì)優(yōu)化問題[14])。機(jī)械優(yōu)化設(shè)計(jì)問題[15]主要通過選取設(shè)計(jì)變量、目標(biāo)函數(shù)、約束條件建成數(shù)學(xué)模型,對(duì)于這一類問題的數(shù)學(xué)模型,一般可表達(dá)為如下約束優(yōu)化問題:
(23)
式中,x為設(shè)計(jì)變量,x=(x1,x2,…,xn)∈Rn,f(x)為目標(biāo)函數(shù);gp為第p個(gè)不等式約束;hm為第m個(gè)等式約束;xub和xlb分別為設(shè)計(jì)變量的上下界。
目前,對(duì)于求解機(jī)械優(yōu)化中的無約束優(yōu)化問題,較為主流的處理方案是罰函數(shù)法[16]。罰函數(shù)方法是在目標(biāo)函數(shù)中加入一個(gè)懲罰函數(shù)將約束問題轉(zhuǎn)換成一個(gè)無約束問題[17]。罰函數(shù)的表達(dá)式為:
F(x)=f(x)+λ[h2(x)+min{0,g(x)}2]
(24)
式中,F(x)為懲罰函數(shù),f(x)為優(yōu)化問題的原始目標(biāo)函數(shù),λ為懲罰因子,h2(x)和min{0,g(x)}2分別為與等式相關(guān)的懲罰項(xiàng)和與不等式相關(guān)的懲罰項(xiàng)[18]。懲罰因子λ的取值對(duì)算法具有重要影響,當(dāng)λ取值過大時(shí),容易導(dǎo)致算法早熟收斂,難以搜索到最優(yōu)解;當(dāng)λ取值過小時(shí),無法達(dá)到預(yù)期的懲罰效果,λ取值是通過大量實(shí)驗(yàn)確定的[19]。
三桿桁架設(shè)計(jì)優(yōu)化的目標(biāo)是通過調(diào)整三桿桁架橫截面積的大小來尋優(yōu)的三桿桁架體積。三桿桁架優(yōu)化問題具有1個(gè)非線性的適應(yīng)度函數(shù)、3個(gè)不等式約束條件,2個(gè)決策優(yōu)化變量。其優(yōu)化目標(biāo)函數(shù)表達(dá)式如公式25所示:
0≤xi≤1,i=1,2
l=100 cm,p=2KN/cm2,σ=2KN/cm2
(25)
式中,f(x)代表三桿桁架最優(yōu)體積,變量l為撓度,p為屈曲,σ為桁架構(gòu)件的應(yīng)力約束,x1和x2為評(píng)估最佳橫截面積的兩側(cè)桁桿架長(zhǎng)度。
表2中將MAO等六種算法應(yīng)用于該問題的優(yōu)化中,f(x)的值越小說明三桿桁架體積越小,優(yōu)化效果越好。如表2所示,MAO算法求解三桿桁架最優(yōu)體積為263.913 5,在所有對(duì)比算法求解三桿桁架最優(yōu)體積中最小。故MAO算法在三桿桁架工程優(yōu)化問題中性能優(yōu)于基礎(chǔ)的AO算法及其余四種算法。

表2 三桿桁架優(yōu)化問題中不同算法性能比較
懸臂梁包括5個(gè)截面為方形的空心單元。每個(gè)單元由一個(gè)變量定義,而厚度是恒定的,因此共有5個(gè)結(jié)構(gòu)參數(shù),即5個(gè)決策變量。懸臂梁設(shè)計(jì)優(yōu)化的目標(biāo)是使其矩形截面的質(zhì)量越小越好,約束條件是滿足一個(gè)垂直位移約束。其優(yōu)化目標(biāo)函數(shù)表達(dá)式如公式26所示:
0.01≤xi≤100,i=1,2,…,5
(26)
式中,f(x)代表懸臂梁矩形截面的最優(yōu)質(zhì)量,xi代表不同單元的懸臂梁高度或?qū)挾取?/p>
將MAO等六種算法應(yīng)用于該問題的優(yōu)化中,如表3所示,MAO算法求解懸臂梁矩形截面最優(yōu)質(zhì)量為1.341 2,優(yōu)于AO,WAO,HHO,SOA算法求取的最優(yōu)解,略差于GWO算法求取的最優(yōu)解。

表3 懸臂梁優(yōu)化問題中不同算法性能比較
改進(jìn)的MAO算法在懸臂梁應(yīng)用問題上的優(yōu)化效果均優(yōu)于AO,HHO,WOA,SOA四種算法,略差于GWO算法;但在三桿桁架設(shè)計(jì)工程應(yīng)用問題上效果優(yōu)于該文選用的五種對(duì)比算法。綜上說明,改進(jìn)的MAO算法在尋優(yōu)性能上優(yōu)于基礎(chǔ)AO算法,驗(yàn)證了MAO算法改進(jìn)的有效性與實(shí)用性。
針對(duì)阿奎拉鷹優(yōu)化算法局部搜索能力較弱的問題,提出一種多項(xiàng)式變異和自適應(yīng)權(quán)重優(yōu)化的阿奎拉鷹算法,在初始化種群時(shí)使用Tent混沌映射策略,均勻種群位置;在全局搜索過程中增加多項(xiàng)式變異擾動(dòng),降低算法陷入局部最優(yōu)的可能性;在局部開發(fā)過程中,采用自適應(yīng)權(quán)重因子,加快局部收斂速度尋得最優(yōu)解;在平衡全局搜索和局部開發(fā)時(shí)采用動(dòng)態(tài)切換概率,增加尋優(yōu)靈活性。
基于以上改進(jìn)策略提升了算法的尋優(yōu)性能,選用九個(gè)測(cè)試函數(shù)和兩類工程優(yōu)化問題,通過與基礎(chǔ)AO算法和四種較新的算法對(duì)比,驗(yàn)證了改進(jìn)的MAO算法的有效性。未來將繼續(xù)深入研究該算法的優(yōu)化改進(jìn)方案,將改進(jìn)算法應(yīng)用到更多的領(lǐng)域中。