第二十一章 基於鷹棲息(eagle perching)的無模型優化

在這裏插入圖片描述

獲取更多資訊,趕快關注上面的公衆號吧!

第二十一章 基於鷹棲息(eagle perching)的無模型優化

  今天介紹一種新穎的優化算法—鷹棲息優化(eagle perching optimizer,EPO)[1],該算法模仿了老鷹棲息的天性,由Ameer Tamoor Khan和Shuai Li於2018年提出的,這篇文章也是李老師推薦給我學習的。總體感覺該算法原理簡單,實現容易,參數較少,性能較優。

21.1 靈感

  鷹是許多大型食肉鳥類的統稱,它們屬於鷹科,也是食肉動物。它們的捕獵方式很獨特,它們會飛到可能很高的地方,然後開始定位獵物。獵物一旦被跟蹤,它們就俯衝下去捕獲獵物。老鷹居住在高處,通常是高樹、峭壁和大山上。它們有着天生的算法可以幫助追蹤最高的地方,首先老鷹先高高地飛向空中,觀察地面並採樣一些點,在這些採樣點中尋找最高位置,然後它們下降到那個點,隨着越來越靠近,它們會再次進行採樣,進一步明確最高點位置。就是通過這樣迭代執行該過程並進行微調以尋找駐留的最高位置。圖1展示了它們內置的棲息算法的本質。
在這裏插入圖片描述

圖1 老鷹棲息的天性。(a)老鷹在搜索空間中盤旋。(b)老鷹進行採樣並在其中尋找最高點。(c)老鷹到達採樣點。(d)老鷹進一步對搜索空間採樣,不過此時空間很小,同樣尋找最高點。(e~h)老鷹遵循相同的模式,直至到達最高點。

  EPO就是利用了這種特性,然後用於獲得最優解。在該算法中會有一羣老鷹各自尋找最佳的駐留高度,然後再從所有的老鷹中尋找最優解。

21.2 EPO數學表達

  老鷹通過一種簡單但獨特的方式探索地形,在高空飛行時,它通過取樣幾個點來觀察四周,然後向最高點移動,到達最高點後,它再次掃視四周,重複同樣的過程,這種重複的過程使鷹能夠到達最高點。當老鷹飛向高空俯瞰地面時,由於視野較爲開闊,可以看到整體地貌,這實際上爲探索的過程,當老鷹飛向採樣點時,又會在其周圍尋找是否還有更高的點,這就是利用的過程。在函數優化時,可以利用這種思想,先全局搜索再局部利用,從而達到較好的優化,而從探索到利用的轉換是隨機優化算法的關鍵所在,EPO算法通過以下實現這種轉換:

lscale=lscaleeta(1) l_{\text {scale}}=l_{\text {scale}} * \text {eta}\tag {1}

  其中lscale是縮放變量(scaling variable),該值隨着迭代的進行會不斷降低,使得算法由探索轉向利用。eta是一收縮常量,滿足0<eta<1,其可以根據最終值分辨率計算得到:

eta=(reslscale)1/ts(2) e t a=\left(\frac{r e s}{l_{s c a l e}}\right)^{1 / t_{s}}\tag {2}

  其中ts是最大迭代次數,res爲分辨率範圍參數,滿足0<res<lscale以將eta限制在0到1之間。注意如果eta>1,那麼就無法實現從探索到利用的目標,因爲隨着算法的運行,探索的空間會越來越大。

  爲了實現更快的優化,文中採用了一羣老鷹協同進行空間搜索。

在這裏插入圖片描述
  其中n表示粒子(老鷹)數量,m爲決策空間維度。

  爲了理解粒子(老鷹)在搜索空間中的移動,考慮一個位於x位置的粒子,它可以自由地、隨機地向所有可能的方向移動。在每次迭代時,在當前位置增加一項ΔX(隨機值),即X+ΔX,則有:

X=X+ΔX(4) X=X+\Delta X\tag {4}
其中
在這裏插入圖片描述

  R∈(0,1)表示隨機值,對於X的每一個元素有

Xi,j=Xi,j+ΔXi,j(6) X_{i, j}=X_{i, j}+\Delta X_{i, j}\tag {6}
  其中i代表第i個粒子,j代表當前位置的第j維。

  羣體中的每一隻老鷹通過下式評估採樣點的高度:

Yi,j=f(Xi,j)(7) Y_{i, j}=f\left(X_{i, j}\right)\tag {7}

  對於最小化函數,爲了尋找最小的Ymin,定義兩個變量YBest和XBest,其進化過程如下:

在這裏插入圖片描述

  但在原文中式(8)應該是寫錯了。
在這裏插入圖片描述

圖2 原文中的錯誤

21.3 EPO算法

  通過以上數學描述,可以給出如下的EPO的僞代碼。

procedure
	初始化所有變量
	for <最大迭代次數 do
		根據式(5)計算ΔX
		根據式(4)計算X
		for <總粒子個數> do
			根據式(7)評估Y
		end for
		根據式(7)評估Ymin
		通過式(8)比較Ymin
		if 式(8)滿足 then
			執行式(9)和(10)
			根據式(1)重新評估lscale
		end if
	end for
end procedure

21.4 改進的EPO

  爲了加速EPO的收斂,文中還對eta的計算進行了一點改進,每次迭代時,eta按下式進行計算:

eta=etamaxtetamaxetamints(11) e t a=e t a_{\max }-t * \frac{e t a_{\max }-e t a_{\min }}{t_{s}}\tag {11}

  其中etamax和etamin分別代表eta的最大值(初始值)和最小值(最終值),該eta可以使得從探索向利用的轉換更賤快速和有效。文中還給出了具有可變eta的改進EPO算法。

procedure
	初始化所有變量
	for <最大迭代次數 do
		根據式(5)計算ΔX
		根據式(4)計算X
		for <總粒子個數> do
			根據式(7)評估Y
		end for
		根據式(7)評估Ymin
		通過式(8)比較Ymin
		if 式(8)滿足 then
			執行式(9)和(10)
			根據式(1)重新評估lscale
			根據式(11)計算eta
		end if
	end for
end procedure

  另一個改進在於,根據式(7)評估完所有粒子的值後,又根據式(12)對解按照從優到劣的順序進行排序,從中選擇n個最好的解,並將這些解對應的座標存於式(14)中的數組中,再對數組中的元素進行平均(式(15)),得到的結果用於根據式(7)計算函數值。這個改進的意義在於,通過平均值Xavg而不是單個最優Xbest,進一步擴大算法範圍。

Ysort=[Ybest1Ybest2Ybest3Ybest4Yworst](12) Y_{\text {sort}}=\left[Y_{\text {best}_{1}} \quad Y_{\text {best}_{2}} \quad Y_{\text {best}_{3}} \quad Y_{\text {best}_{4}} \quad \ldots Y_{\text {worst}}\right]\tag {12}

Ysort=[Ybest1Ybest2Ybest3Ybest4Ybestn](13) Y_{\text {sort}}=\left[Y_{\text {best}_{1}} \quad Y_{\text {best}_{2}} \quad Y_{\text {best}_{3}} \quad Y_{\text {best}_{4}} \ldots Y_{\text {best}_{n}}\right]\tag {13}

Xsort=[Xbest1Xbest2Xbest3Xbest4Xbestn](14) X_{\text {sort}}=\left[X_{\text {best}_{1}} \quad X_{\text {best}_{2}} \quad X_{\text {best}_{3}} \quad X_{\text {best}_{4}} \ldots X_{\text {best}_{n}}\right]\tag {14}

Xavg=Xbest1+Xbest2+Xbest3+Xbestnn(15) X_{a v g}=\frac{X_{b e s t_{1}}+X_{b e s t_{2}}+X_{b e s t_{3}} \ldots+X_{b e s t_{n}}}{n}\tag {15}

  文中在單峯函數和多峯函數上比較了兩種算法的性能,結論是改進的EPO在精度和標準差上更優。

21.5 算法對比與應用

  文中比較了EPO與其他元啓發式算法(蟻獅優化-ALO、蜻蜓優化-DA、粒子羣-PSO、遺傳算法-GA、花朵授粉算法-FPA、物質狀態搜索算法-SMA、布穀鳥搜索-CS、蝙蝠算法-BA和螢火蟲算法-FA)的性能,結果表明在單峯和多峯函數上都能得到很高的精度。
在這裏插入圖片描述

圖3 單峯案例結果

在這裏插入圖片描述

圖4 多峯案例結果

  在約束優化中,主要用EPO解決了懸臂樑設計問題、三杆桁架設計問題和齒輪系設計問題。
在這裏插入圖片描述

圖5 懸臂樑設計問題

在這裏插入圖片描述

圖6 三杆桁架設計問題

在這裏插入圖片描述

圖7 齒輪系設計問題

21.6 結論

  其實論文中還給出了EPO算法的收斂性證明,以及一些關鍵參數對算法性能的影響,這裏我沒有詳細地講述,感興趣的讀者可以點擊“閱讀全文”查看原文。我說說一下自己的感受吧,論文中主要採用了一種從探索到利用的控制策略,是一個由粗調到細調的過程,但是有一點論文中沒有指出,參數lscale到底是如何控制變量的取值空間的,是影響ΔX嗎還是什麼,相關公式和算法中都沒有提及,最後的驗證部分本質上還都是數值優化問題,這與算法對比部分有點重複,個人感覺如果可以解決一些組合優化問題就更好了。

參考文獻

  1. Tamoor Khan, A., et al. Model-Free Optimization Using Eagle Perching Optimizer. arXiv e-prints, 2018.
發佈了42 篇原創文章 · 獲贊 56 · 訪問量 5803
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章