智能優化算法:蟻獅優化算法

智能優化算法:蟻獅優化算法-附代碼

@[toc]
摘要:蟻獅優化(Ant Lion Optimizer,ALO)算法是Mirjalili于2015提出的一種新型元啟發式群智能算法[1]。由于引入了隨機游走、輪盤賭策略及精英策略,使得 ALO 算法成為一種種群多樣、尋優性能強、調節參數少、易于實現的搜索技術。

1.算法原理

ALO 算法核心思想是模擬蟻獅捕獵螞蟻的狩獵機制以實現全局尋優。蟻獅在捕獵前會在在沙質土中利用其巨大的下顎挖出一個漏斗狀的陷阱,并藏在陷阱底部等待獵物到來。一旦隨機游走的螞蟻落入陷阱時,蟻獅迅速將其捕食,隨后重新修繕陷阱等待下一次捕獵。ALO 算法通過數值模擬實現螞蟻和蟻獅之間的相互作用將問題優化:引入螞蟻的隨機游走實現全局搜索,通過輪盤賭策略和精英策略保證種群的多樣性和算法的尋優性能。蟻獅相當于優化問題的解,通過獵捕高適應度的螞蟻實現對近似最優解的更新和保存。

1.1 螞蟻的隨機游走

螞蟻在自然界中隨機游走尋找食物的過程可以看作各搜索代理搜尋可行域的過程。隨機游走的過程在數學上可以表示為:
X(t)=[0,cussum(2r(t_{1})-1),...,cussum(2r(t_{n})-1)]\tag{1}
式中:X(t)為螞蟻隨機游走的步數集;cumsum 為計算累加和;t 為隨機游走的步數(本文取最大迭代次數);r(t)為一個隨機函數,定義為
r(t)=\begin{cases} 1,rand>0.5\\0,rand\leq0.5\end{cases} \tag{2}
式中:rand為[0,1]的隨機數。

由于可行域存在邊界,不能直接用式(1)更新螞蟻的位置。為確保螞蟻在可行域范圍內隨機游走,需根據式(3)對其進行歸一化
X_{i}^{t}=\frac {(X_{i}^{t}-a_{i})*(d_{i}^{t}-c_{i}^{t})}{(b_{i}-a_{i})}+c_{i}t\tag{3}
式中: a_{i} 為第i 維變量隨機游走的最小值; b_{i}為第i 維變量隨機游走的最大值;c_{t}^{i}為第i維變量再第t次迭代的最小值;d_{i}^{t}為第 i 維變量在第t 次迭代最大值。

1.2蟻獅對螞蟻隨機游走的影響

蟻獅制造的陷阱會影響螞蟻隨機游走的路線,為對此假設進行數學建模,提出
\begin{cases} c_{i}^{t}=Al_{i}^{t} + C^{t}\\d_{i}^{t}=Al_{j}^{t}-d^{t}\end{cases}\tag{4}
式中: c^{t}為所有變量在第t 次迭代的最小值; d^{t}為所有變量在第 t 次迭代的最大值; Al_{j}^{t} 為被選定的第j 只蟻獅在第 t 次迭代的位置。

1.3自適應機制

通過輪盤賭策略選擇某只螞蟻具體被哪只蟻獅捕食,每只螞蟻只能被一只蟻獅捕食,而適應度越高的蟻獅捕獲螞蟻的概率越大。另外,螞蟻一旦落入蟻獅制造的陷阱,蟻獅就會向陷阱邊緣拋沙以防止螞蟻逃脫。此時,螞蟻隨機游走的范圍將急劇縮小。通過下列方程模擬這種現象
c^{t}=\frac {c^{t}}{I},d^{t}=\frac {d^{t}}{I}\tag{5}

I=\begin{cases}1,t\leq0.1T\\10^{v}*\frac{t}{T},t>0.1T \end{cases}\tag{6}

式中: I 為比例系數;T為最大迭代次數; v 為一個隨著迭代次數增大而變化的數。當螞蟻的適應度值比蟻獅小時,則認為蟻獅將其捕獲,此時蟻獅會根據螞蟻的位置來更新位置
Al_{j}^{t}=Ant_{i}^{t},if\quad f(Ant_{i}^{t})<f(Al_{j}^{t}) \tag{7}
式中: Ant_{i}^{t} 為第i只螞蟻在第t次迭代的位置; f 為適應度函數。

1.4 精英策略

每次迭代后,選擇適應度最好的蟻獅作為精英蟻獅。第t只螞蟻在第t +1次迭代的位置由式(8)確定
Ant_{i}^{t+1}=\frac {R_{A}^{t}(l)+R_{E}^{t}(l)}{2}\tag{8}
式中: R_{A}^{t}(l)為螞蟻在一只由輪盤賭在第 t 次迭代選擇到的蟻獅周圍隨機游走第 l 步產生的值; R_{E}^{t}(l)為螞蟻在第t代的精英蟻獅周圍隨機游走第l步產生的值。l為螞蟻隨機游走步數內的任何值。

2.算法步驟

(1)數據初始化。確定螞蟻和蟻獅的數量以及變量維數,在可行域內隨機初始化它們的位置,并計算相應的適應度值。

(2)確定精英蟻獅。選擇初始化后蟻獅種群中適應度最好的作為精英蟻獅。

(3)通過輪盤賭為每只螞蟻選擇一只蟻獅,根據蟻獅位置更新 c_{t},d_{t},c_{i}^{t},d_{i}^{t} 的值,并使該螞蟻按照式(1)、式(3)在蟻獅及精英蟻獅附近隨機游走,最后按式(8)取平均值作為螞蟻的位置。

(4) 每次迭代后重新計算螞蟻和蟻獅適應度值,根據螞蟻的位置和適應度更新蟻獅位置,適應度最好的位置為新精英蟻獅的位置。

(5)判斷是否到達最大迭代次數,若到達則輸出結果并結束迭代,否則重復步驟 (3)

3.算法結果

在這里插入圖片描述

4.參考文獻

[1]Seyedali Mirjalili. The Ant Lion Optimizer[J]. Advances in Engineering Software,2015,83.

[2]陳承濱,余嶺,潘楚東,陳澤鵬.基于蟻獅優化算法與跡稀疏正則化的結構損傷識別[J].振動與沖擊,2019,38(16):71-76+99.

5.Matlab代碼

https://mianbaoduo.com/o/bread/Z5iUk5c=

文獻復現:優選策略的自適應蟻獅優化算法(PSALO)
[1]劉景森,霍宇,李煜.優選策略的自適應蟻獅優化算法[J].模式識別與人工智能,2020,33(02):121-132.

文獻復現:基于柯西變異的蟻獅優化算法(CALO)
[1]于建芳,劉升,韓斐斐,肖子雅.基于柯西變異的蟻獅優化算法[J].微電子學與計算機,2019,36(06):45-49+54.

文獻復現:融合萊維飛行與黃金正弦的蟻獅優化算法(LEALO)
[1]于建芳,劉升,王俊杰,魯曉藝.融合萊維飛行與黃金正弦的蟻獅優化算法[J].計算機應用研究,2020,37(08):2349-2353.

文獻復現:具有隨機分形自適應搜索策略的蟻獅優化算法(SFSALO)
[1]趙克新,黃長強,王淵.具有隨機分形自適應搜索策略的蟻獅優化算法[J].火力與指揮控制,2019,44(02):41-45+49.

文獻復現:精英反向學習帶擾動因子的混沌蟻獅算法(EOPCALO)
[1]王茜,何慶,林杰,楊榮瑩.精英反向學習帶擾動因子的混沌蟻獅算法[J].智能計算機與應用,2020,10(08):51-57.

文獻復現:具有自適應邊界與最優引導的萊維飛行蟻獅優化算法(ABLALO)
[1]王若安,周越文,韓博,李劍峰,劉強.具有自適應邊界與最優引導的萊維飛行蟻獅優化算法[J].微電子學與計算機,2018,35(09):20-25+31.

文獻復現:具有 Levy 變異和精英自適應競爭機制的蟻獅優化算法(LEALO)
[1]景坤雷,趙小國,張新雨,劉丁.具有Levy變異和精英自適應競爭機制的蟻獅優化算法[J].智能系統學報,2018,13(02):236-242.

6.python代碼

https://mianbaoduo.com/o/bread/YZaXmp5p

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容