孫清洋,廖佐禹,郭子妤
(1.燕山大學(xué)機械工程學(xué)院,河北 秦皇島 066000;2.燕山大學(xué)理學(xué)院,河北 秦皇島 066000;3.燕山大學(xué)車輛與能源學(xué)院,河北 秦皇島 066000)
早期解決優(yōu)化問題時,一般使用數(shù)學(xué)或者數(shù)值的方法,求導(dǎo)得到最終解。然而,隨著維數(shù)的增加,搜索空間也隨之加大,陷入局部最優(yōu)的情況經(jīng)常發(fā)生,數(shù)值法常常不能求得最終的全局解[1-2]。因此,智能算法受到一些研究人員的關(guān)注,其中的群體智能算法利用群體優(yōu)勢,在沒有集中控制、不需要額外復(fù)雜的數(shù)學(xué)計算的情況下,通過較為簡單的信息交互和迭代更新就可以得到優(yōu)質(zhì)的全局解,并且還具有更好的穩(wěn)健性、靈活性。本文通過對國內(nèi)外論文的研究,了解群體智能算法的起源和研究現(xiàn)狀,并進一步學(xué)習(xí)了蟻群算法、粒子群算法等經(jīng)典算法,以及麻雀算法、蜉蝣算法等較新的算法[3-4]。
本文基于MATLAB建模追蹤逃逸問題,提出一種改進的鯨魚優(yōu)化算法——“大藍(lán)鯊”算法。改進方法如下:首先,利用混沌映射的原理,實現(xiàn)能自主寫入鯊魚圍繞獵物的角度且能從任意點開始包圍獵物;其次,獵物在不斷尋找最優(yōu)逃竄位置,可以利用蒙特卡洛原理模擬周圍點,選出最優(yōu)的點進行位置替換;最后,當(dāng)鯊魚與獵物的距離小于R時,鯊魚則會徑直逼近獵物(見圖1),從而實現(xiàn)運算效率的提升。
圖1 鯊魚徑直逼近獵物的范圍示意圖
“大藍(lán)鯊”算法的基本框架見第126頁圖2。
圖2 “大藍(lán)鯊”算法的基本框架
“大藍(lán)鯊”算法的最佳捕獵路徑原理和鯨魚優(yōu)化算法的核心移動公式原理相似,二者的主要區(qū)別在于:“大藍(lán)鯊”算法能自主寫入圍繞獵物游動的角度,并從任意點去包圍獵物的軌跡。而原來的鯨魚優(yōu)化算法中由于獵物位置在搜索空間中是不斷移動的,因此只能將當(dāng)前獵物位置距離設(shè)為接近最佳位置距離,雖然這種辦法易于實現(xiàn),但是面對大面積尋優(yōu)時,耗費時間較長。
因此,應(yīng)通過鯊魚來尋找獵物,采用鯊魚環(huán)繞獵物的方式進行捕獵。為了讓獵物在固定范圍內(nèi)移動,因此采用逐步縮小距離的方式尋找最佳捕獵時機。圖3為最佳捕獵時機關(guān)系示意圖。
圖3 最佳捕獵時機關(guān)系示意圖
L2與L1滿足的關(guān)系式為
式中:L1為鯊魚初始位置距獵物的距離;L2為鯊魚能夠直接捕捉獵物的距離;l為鯊魚以獵物位置為中心環(huán)繞移動的圈數(shù)。
第126頁圖4為鯊魚捕獵模擬路徑。如圖4-a和4-b所示,經(jīng)過式(1)的運算之后,能夠發(fā)現(xiàn)鯊魚不光可以逆時針包圍獵物,也可以順時針包圍獵物。
圖4 鯊魚捕獵模擬路徑
獵物在發(fā)現(xiàn)鯊魚后,會尋找四周最佳的逃竄位置。圖5為獵物的最大行動范圍示意圖,其中虛線圈為獵物最大行動范圍,小圓點為獵物探索的周圍位置。通過計算,獵物將移動至其中一個小圓點作為躲避點。
圖5 獵物的最大行動范圍示意圖
圖6為獵物的最佳逃跑方向示意圖。如圖6所示,將該算法應(yīng)用于牧犬趕羊問題[5],在不考慮轉(zhuǎn)身時間的前提下,獵物的最佳逃跑方向應(yīng)當(dāng)與此刻鯊魚的速度方向垂直。
圖6 獵物的最佳逃跑方向示意圖
當(dāng)獵物位置更新時,“大藍(lán)鯊”算法會根據(jù)蒙特卡洛原理模擬周圍1 000個點,選出最優(yōu)的點進行位置替換,其獵物位置更新程序代碼如下。
for ii=1:det;%獵物躲避,蒙特卡洛原理模擬周圍1000次,并選擇最佳的點作為下一逃跑點
dx=[dx;bestx+Mc.*z.*((det-ii)/det).*rand(1,n).*[(-1)^randi([1,2]),(-1)^randi([1,2])]];%(det-ii)/det%表示隨著追捕,獵物可逃竄的范圍越來越小
為了保證“大藍(lán)鯊”算法的準(zhǔn)確度,參考“聰明的狼”算法[5-6]的思想,選擇增加獵物的急躁系數(shù)。急躁系數(shù)原理如下:獵物與鯊魚的距離越遠(yuǎn),該系數(shù)就越小,獵物移動的范圍就越小。為了盡可能地讓鯊魚多去移動,在鯊魚逼近獵物時,獵物的可移動范圍也會增加,躍出局部最優(yōu)的概率變大。
在程序?qū)崿F(xiàn)方面,由于鯊魚移動公式的圖形是環(huán)形(螺線形)的,在大區(qū)間尋優(yōu)問題上,結(jié)果存在局部最優(yōu)的可能性很大。為了降低出現(xiàn)局部最優(yōu)的概率,采用歐幾里得距離增加獵物的可移動范圍,公式方程組為
式中:d為計算后的歐幾里得距離;best為獵物的局部最優(yōu)位置;x為獵物的當(dāng)前位置;z為獵物的移動范圍;M、c為系數(shù)向量。
鯊魚的移動需要增加自適應(yīng)系數(shù)。一般來說,如果個體移動距離過遠(yuǎn),那么就很容易忽略掉最優(yōu)點;如果個體移動速度過慢,那么又會影響到算法的整體效率,特別是大區(qū)間尋優(yōu)問題。面對大區(qū)間尋優(yōu)問題,只有種群密度大,才能達(dá)到更好的效果;或者種群密度不變,降低移動速度且增加迭代次數(shù),其效果是一樣的,即種群密度越大,越容易找到最優(yōu)位置,增加移動速度。
綜合考慮,當(dāng)最優(yōu)距離較遠(yuǎn)時,個體分布密度較小,應(yīng)給予一定的速度限制;當(dāng)最優(yōu)距離較近時,應(yīng)給予一定的速度獎勵。見式(3),對于“大藍(lán)鯊”算法而言,控制位移速度的參數(shù)主要是最大環(huán)繞圈數(shù),對最大環(huán)繞圈數(shù)的調(diào)節(jié)機制公式為
式中:k'為調(diào)節(jié)后的最大環(huán)繞圈數(shù);k為原來的最大環(huán)繞圈數(shù)。
“大藍(lán)鯊”算法的位置更新公式為
式中:y為“大藍(lán)鯊”算法更新后的位置;rand為隨機數(shù);θ'為更新后的圍繞捕獵角度;θ0為初始的圍繞捕獵角度。
圖7為“大藍(lán)鯊”算法的迭代結(jié)果。如圖7所示,經(jīng)過13次迭代后,找到最優(yōu)解,其圍捕趨勢符合環(huán)形圍捕。在第13次迭代時,鯊魚與獵物重合,說明精度較高,系統(tǒng)效率高。
圖7 “大藍(lán)鯊”算法的迭代結(jié)果
對于高維度的大區(qū)間復(fù)雜函數(shù)尋優(yōu)問題,直接套用MATLAB數(shù)據(jù)包測試該算法的尋優(yōu)能力。圖8高維度尋優(yōu)問題的迭代結(jié)果。如圖8所示,20次內(nèi)最優(yōu)值趨于平穩(wěn),可見“大藍(lán)鯊”算法在高維度尋優(yōu)問題的中的尋優(yōu)能力較好。但是,由于位移公式的影響,很難達(dá)到高精度的尋優(yōu)。
圖8 高維度尋優(yōu)問題的迭代結(jié)果
本文系統(tǒng)地闡述了“大藍(lán)鯊”算法的基本原理,并通過實驗證明了該算法的能力。通過采用三維包圍軌跡、蒙特卡洛原理進行位置替換,引入最大圈調(diào)節(jié)機制,解決了收斂速度慢及容易陷入局部最優(yōu)等缺陷。實驗結(jié)果表明,“大藍(lán)鯊”算法的尋優(yōu)能力較好,但由于位移公式的影響,很難達(dá)到高精度的尋優(yōu)。該算法可以在諸如網(wǎng)絡(luò)安全協(xié)調(diào)防御技術(shù)、人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化、電力調(diào)度、金融預(yù)測、混沌系統(tǒng)等領(lǐng)域廣泛應(yīng)用。