孫清洋,廖佐禹,郭子妤
(1.燕山大學機械工程學院,河北 秦皇島 066000;2.燕山大學理學院,河北 秦皇島 066000;3.燕山大學車輛與能源學院,河北 秦皇島 066000)
早期解決優化問題時,一般使用數學或者數值的方法,求導得到最終解。然而,隨著維數的增加,搜索空間也隨之加大,陷入局部最優的情況經常發生,數值法常常不能求得最終的全局解[1-2]。因此,智能算法受到一些研究人員的關注,其中的群體智能算法利用群體優勢,在沒有集中控制、不需要額外復雜的數學計算的情況下,通過較為簡單的信息交互和迭代更新就可以得到優質的全局解,并且還具有更好的穩健性、靈活性。本文通過對國內外論文的研究,了解群體智能算法的起源和研究現狀,并進一步學習了蟻群算法、粒子群算法等經典算法,以及麻雀算法、蜉蝣算法等較新的算法[3-4]。
本文基于MATLAB建模追蹤逃逸問題,提出一種改進的鯨魚優化算法——“大藍鯊”算法。改進方法如下:首先,利用混沌映射的原理,實現能自主寫入鯊魚圍繞獵物的角度且能從任意點開始包圍獵物;其次,獵物在不斷尋找最優逃竄位置,可以利用蒙特卡洛原理模擬周圍點,選出最優的點進行位置替換;最后,當鯊魚與獵物的距離小于R時,鯊魚則會徑直逼近獵物(見圖1),從而實現運算效率的提升。

圖1 鯊魚徑直逼近獵物的范圍示意圖
“大藍鯊”算法的基本框架見第126頁圖2。

圖2 “大藍鯊”算法的基本框架
“大藍鯊”算法的最佳捕獵路徑原理和鯨魚優化算法的核心移動公式原理相似,二者的主要區別在于:“大藍鯊”算法能自主寫入圍繞獵物游動的角度,并從任意點去包圍獵物的軌跡。而原來的鯨魚優化算法中由于獵物位置在搜索空間中是不斷移動的,因此只能將當前獵物位置距離設為接近最佳位置距離,雖然這種辦法易于實現,但是面對大面積尋優時,耗費時間較長。
因此,應通過鯊魚來尋找獵物,采用鯊魚環繞獵物的方式進行捕獵。為了讓獵物在固定范圍內移動,因此采用逐步縮小距離的方式尋找最佳捕獵時機。圖3為最佳捕獵時機關系示意圖。

圖3 最佳捕獵時機關系示意圖
L2與L1滿足的關系式為

式中:L1為鯊魚初始位置距獵物的距離;L2為鯊魚能夠直接捕捉獵物的距離;l為鯊魚以獵物位置為中心環繞移動的圈數。
第126頁圖4為鯊魚捕獵模擬路徑。如圖4-a和4-b所示,經過式(1)的運算之后,能夠發現鯊魚不光可以逆時針包圍獵物,也可以順時針包圍獵物。

圖4 鯊魚捕獵模擬路徑
獵物在發現鯊魚后,會尋找四周最佳的逃竄位置。圖5為獵物的最大行動范圍示意圖,其中虛線圈為獵物最大行動范圍,小圓點為獵物探索的周圍位置。通過計算,獵物將移動至其中一個小圓點作為躲避點。

圖5 獵物的最大行動范圍示意圖
圖6為獵物的最佳逃跑方向示意圖。如圖6所示,將該算法應用于牧犬趕羊問題[5],在不考慮轉身時間的前提下,獵物的最佳逃跑方向應當與此刻鯊魚的速度方向垂直。

圖6 獵物的最佳逃跑方向示意圖
當獵物位置更新時,“大藍鯊”算法會根據蒙特卡洛原理模擬周圍1 000個點,選出最優的點進行位置替換,其獵物位置更新程序代碼如下。
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%表示隨著追捕,獵物可逃竄的范圍越來越小

為了保證“大藍鯊”算法的準確度,參考“聰明的狼”算法[5-6]的思想,選擇增加獵物的急躁系數。急躁系數原理如下:獵物與鯊魚的距離越遠,該系數就越小,獵物移動的范圍就越小。為了盡可能地讓鯊魚多去移動,在鯊魚逼近獵物時,獵物的可移動范圍也會增加,躍出局部最優的概率變大。
在程序實現方面,由于鯊魚移動公式的圖形是環形(螺線形)的,在大區間尋優問題上,結果存在局部最優的可能性很大。為了降低出現局部最優的概率,采用歐幾里得距離增加獵物的可移動范圍,公式方程組為

式中:d為計算后的歐幾里得距離;best為獵物的局部最優位置;x為獵物的當前位置;z為獵物的移動范圍;M、c為系數向量。
鯊魚的移動需要增加自適應系數。一般來說,如果個體移動距離過遠,那么就很容易忽略掉最優點;如果個體移動速度過慢,那么又會影響到算法的整體效率,特別是大區間尋優問題。面對大區間尋優問題,只有種群密度大,才能達到更好的效果;或者種群密度不變,降低移動速度且增加迭代次數,其效果是一樣的,即種群密度越大,越容易找到最優位置,增加移動速度。
綜合考慮,當最優距離較遠時,個體分布密度較小,應給予一定的速度限制;當最優距離較近時,應給予一定的速度獎勵。見式(3),對于“大藍鯊”算法而言,控制位移速度的參數主要是最大環繞圈數,對最大環繞圈數的調節機制公式為

式中:k'為調節后的最大環繞圈數;k為原來的最大環繞圈數。
“大藍鯊”算法的位置更新公式為

式中:y為“大藍鯊”算法更新后的位置;rand為隨機數;θ'為更新后的圍繞捕獵角度;θ0為初始的圍繞捕獵角度。
圖7為“大藍鯊”算法的迭代結果。如圖7所示,經過13次迭代后,找到最優解,其圍捕趨勢符合環形圍捕。在第13次迭代時,鯊魚與獵物重合,說明精度較高,系統效率高。

圖7 “大藍鯊”算法的迭代結果
對于高維度的大區間復雜函數尋優問題,直接套用MATLAB數據包測試該算法的尋優能力。圖8高維度尋優問題的迭代結果。如圖8所示,20次內最優值趨于平穩,可見“大藍鯊”算法在高維度尋優問題的中的尋優能力較好。但是,由于位移公式的影響,很難達到高精度的尋優。

圖8 高維度尋優問題的迭代結果
本文系統地闡述了“大藍鯊”算法的基本原理,并通過實驗證明了該算法的能力。通過采用三維包圍軌跡、蒙特卡洛原理進行位置替換,引入最大圈調節機制,解決了收斂速度慢及容易陷入局部最優等缺陷。實驗結果表明,“大藍鯊”算法的尋優能力較好,但由于位移公式的影響,很難達到高精度的尋優。該算法可以在諸如網絡安全協調防御技術、人工神經網絡結構優化、電力調度、金融預測、混沌系統等領域廣泛應用。