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

(1)
(2)

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

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

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

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

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

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

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