?

基于鄰域重心反向學習的混合樽海鞘群蝴蝶優化算法

2023-03-24 13:25向君幸吳永紅
計算機應用 2023年3期
關鍵詞:鄰域全局蝴蝶

向君幸,吳永紅

(武漢理工大學 理學院,武漢 430070)

0 引言

自然界中的許多生物系統具有高效率和魯棒性,基于這些關鍵特性,學者們提出了不同的元啟發式算法。元啟發式算法是一種提高啟發式技術性能的隨機優化技術,具有簡單、靈活、無衍生機制和避免局部最優等優點。種群方法近年來發展迅速,包含了著名的算法如粒子群優化算法[1]和人工蟻群算法[2],也有新穎的算法如人工蜂群算法[3]和灰狼優化[4]。鑒于元啟發式算法的優越性能,學者已成功將它們用于解決各個領域的優化問題,例如疾病診斷、查詢優化、特征選擇、股票預測和文本挖掘等應用。

研究發現,蝴蝶利用味覺精準地尋找到食物和同伴,并且能精確區分不同氣味與強度。根據這樣的特性,Arora等[5]構建了蝴蝶優化算法(Butterfly Optimization Algorithm,BOA)。相較于現有算法,BOA 具有操作簡單、參數少、穩定性好的優點,并且能夠很好地解決實際問題。但是在處理高維問題時,BOA 仍存在以下缺點:1)易陷入局部最優解、收斂速度較慢;2)全局和局部搜索的范圍相同,只使用了非常有限的特征,沒有充分利用各種特征;3)切換概率沒有隨著搜尋過程進行調整,導致BOA 偏離全局最優解。

為改進BOA,已有研究結合BOA 與其他方法進行優化。如:Arora等[6-7]提出二進制蝴蝶優化算法、二值蝴蝶優化算法和混沌蝴蝶優化算法,拓展了BOA 的適用領域;Singh等[8]通過增設自適應參數,提出了自適應蝴蝶優化算法等。

上述研究雖然通過不同方式改進了BOA 的性能,但也都是改進BOA 中的某個更新策略,并未有效地改進全局和局部尋優的盲目性。針對原BOA 收斂精度低和易陷入局部最優等問題,本文提出一種基于鄰域重心反向學習的混合樽海鞘群蝴蝶優化算法(Hybrid Salp Swarm and Butterfly Optimization Algorithm,HSSBOA)。合理結合BOA 與樽海鞘群算法(Salp Swarm Algorithm,SSA)[9],使兩種算法各自處理全局和局部階段,有效防止落入局部最優解。同時引入鄰域重心反向學習,能夠更好地幫助算法在鄰域內進行搜索,提高了算法的精度。引入的動態切換概率平衡了局部搜索和全局搜索的比重,能夠更加靈活地區分切換概率與產生的隨機數的大小,使當前搜索階段有了一個更合理的設定,大幅提升算法尋優能力。在10 個標準測試函數上的測試結果表明,HSSBOA 具有更高的收斂精度、收斂速度和穩定性,消融實驗也驗證了各項改進方法均為正向作用。最后通過選取兩個工程設計的實際問題驗證了HSSBOA 的應用性能,驗證了HSSBOA 可用于解決實際問題。

1 蝴蝶優化算法

蝴蝶有獨特的活動方式和運動軌跡。研究發現,蝴蝶利用嗅覺、視覺、味覺、觸覺和聽覺尋找食物和伙伴,并且可以通過氣味準確定位它們的來源。根據蝴蝶的特性,Arora等[5]構建了BOA,BOA 分為以下兩種情形。

1)當蝴蝶從搜索空間中最好的蝴蝶那里嗅到香氣時,便飛向最好的蝴蝶,這就是BOA 的全局搜索階段,表示如下:

其中為第i只蝴蝶第t次迭代的位置;g*為當前最優解。

2)當蝴蝶無法在搜索空間中檢測到其他蝴蝶的氣味時,它會隨機飛行進行搜尋,此階段為局部搜索階段,表示如下:

式(1)、(2)中r為[0,1]中的一個隨機數,它和切換概率p的大小關系決定當前進入全局搜索階段還是局部搜索階段。式(1)、(2)中的fi是氣味感知量,由蝴蝶的感覺模態、刺激強度組成,根據模態的冪指數計算得到:

文獻[5]中對BOA 的參數進行了大量的模擬實驗,因此將c設為0.01;將a設為[0.1,0.3];Ii是由目標問題(函數)計算得到的適應值。

蝴蝶通過以上構建的模型,逐步完成搜索,最終精確地尋找到氣味的位置,也就是問題的最優解。

BOA 具體的步驟為:

步驟1 初始化感觀模態c、冪指數a、切換概率p,并產生數量為n的蝴蝶

步驟2在下由f()得到Ii。

步驟3 通過式(3)找到最優的蝴蝶。

步驟4 從[0,1]中生成一個隨機數r。

步驟5當r<p時,通過式(1)向最優解移動;否則通過式(2)向最優解移動。

步驟6 返回步驟4,直至遍歷所有種群。

步驟7 更新a的值。

步驟8 返回步驟4,直至達到最大迭代數。

2 基于鄰域重心反向學習的HSSBOA

為解決BOA 易陷入局部最優解和收斂速度較慢的問題,本文從兩個方面改進BOA:首先,結合BOA 與SSA,防止落入局部最優解;其次,引入動態切換概率平衡局部搜索和全局搜索的比重,更加靈活地區分切換概率與產生的隨機數的大小,提升算法尋優的性能。

2.1 樽海鞘群算法及其改進

樽海鞘是一種生存于深海的海洋生物,身體呈透明的桶狀,它的組織與運動方式與水母相似。通常樽海鞘以集群行動,從而通過快速協調變化和覓食實現更好的運動。Mirjalili等[9]研究了樽海鞘群的運動方式,并提出了SSA。

SSA 將種群分為領導者和追隨者。領導者是種群中前段的個體,其他個體則視為追隨者。領導者的更新公式為:

其中:t是當前迭代數;Maxiter是最大迭代數。

追隨者的更新公式為:

其中:i≥2;代表第j維的追隨者。

然而,在SSA 中,跟隨者跟蹤前一個個體以更新位置。這種盲目運動使解的分布過于有限,嚴重影響了算法的優化能力。本文使用自適應慣性權重提高算法的研究和開發能力。算法中的追隨者更新方法如下:

其中:w(t)是第1 次迭代t的慣性權重,w(t)隨迭代過程自適應地減小。

從式(7)可以看出,隨著w(t)的減小,追隨者的運動范圍越來越小。在下一迭代步驟中,追隨者在最后一次迭代位置的指導下執行局部優化。該策略在一定程度上提高了算法的優化能力,但是它只考慮對先行追隨者行動的負面影響,忽略了先前個體的積極影響。該策略會進一步削弱先前個體的影響力,使先前個體失去更好的身體地位。

因此,本文提出自適應權重的改良方法。此方法與慣性權重的初始值和最終值以及當前迭代次數有關:當迭代次數為0,此時慣性權重為初始值;隨著迭代次數的增加,慣性權重按一定比例變??;直到迭代次數最大時,慣性權重達到最終值。具體的更新公式為:

其中:ws和wf分別為慣性權重的初始值和最終值。慣性權重w(t)的取值應滿足以下條件:

1)在迭代過程中,追隨者當前位置和前個體位置應始終保持更新;

2)慣性權重在迭代過程中應起積極作用。

由條件1)可知:

由條件2)可知:

因此,慣性權重的取值范圍應滿足(0,0.5]。經過多次模擬可知,若將wf設置得過小,會導致迭代過程中慣性權重減小過快,不利于算法尋優。因此,將ws和wf分別取0.5 和0.1 的擬合結果最優。圖1 給出了w(t)的迭代過程變化。

圖1 權重迭代過程Fig.1 Iteration process of weight

2.2 鄰域重心反向學習

反向學習是Tizhoosh[10]提出的數學模型,主要思想是通過綜合評價當前解和反向解以選擇一個更優解。

為了考慮更多的種群間的信息,Rahnamayan等[11]提出了重心反向點。種群的重心M定義為:

則整體中的某一點的反向點為:

為進一步拓展反向搜索的范圍,提升搜尋的效率和精度,文獻[12]中提出了鄰域重心反向解:

其中:mi是個體i在鄰域內個體的數目;k為搜索因子,是[0,1]內均勻分布的隨機數。

所以可將鄰域重心反向學習運用到BOA 中,將通過鄰域重心反向學習得到的新解與BOA 運行后得到的解進行對比,計算公式如下:

2.3 高斯擾動

在BOA 中,個體和全局最優位置在搜索過程中會互相吸引。種群中的個體將在個體最優位置和迄今為止所有個體找到的全局最優位置之間波動。然而,當全局最優個體陷入局部最優時,其他個體會朝著全局最優個體的方向飛行,因此,在搜尋過程中會很容易陷入停滯,即陷入局部最優。

由于BOA 不能避免局部最優解,因此采用高斯擾動以提高全局搜索能力并探索搜索空間??紤]到全局和個體最佳位置的鄰近區域,可以擴展它們固定位置的搜索空間,有助于整個蜂群飛到更好的位置。這種方式可以通過對全局最佳位置的高斯擾動實現。高斯分布的一維概率為:

高斯分布函數在當前位置附近產生擾動,更容易避開局部最優解,并削弱極限點的約束力。利用高斯擾動可以增加種群的多樣性,提高全局搜索最優值的能力;利用高斯分布函數還可以縮短變異蝴蝶在鄰域內的搜索時間;同時,利用擾動兩端的突變效應,加入高斯擾動可對全局搜索進行優化。因此,改進后的BOA 具有很好的全局尋優能力。

根據以上分析,擾動項的取值應在0 附近,所以將μ的值取為0。σ可以隨迭代步驟的進行而自適應:在迭代初期,為了能廣泛地搜索最優解,σ的值應相對較大;隨著迭代的進行,σ的值應該逐漸減小,才能搜尋較小范圍內的最優解。所以σ的迭代公式為:

其中:σmax=2;σmin=1;tmax為最大迭代次數??蓪⑹剑?)改為:

2.4 動態切換概率

在BOA 中,局部和全局搜索用常量切換概率p∈[0,1]控制。一個合理的搜索過程應在算法前期進行較大范圍的全局搜索,迅速定位搜索空間中全局最優解的范圍。因此引入動態切換概率平衡局部和全局搜索的比重,實現更好的尋優策略。

迭代初期搜尋到的蝴蝶是最優解的概率較低,隨著迭代的進行,搜尋結果是最優解的概率增加,即迭代次數和切換概率成正比。為了在初期使兩個搜索階段的可能性相等,將初始切換概率設置為0.5,將最終切換概率設置為0.8,能夠讓最后一次迭代有大概率搜索到全局最優的蝴蝶。因此可以構建一個p與t的線性函數,動態切換概率p如下:

2.5 算法參數設置

HSSBOA 中所有的參數如表1 所示。

表1 HSSBOA中的參數Tab.1 Parameters in HSSBOA

2.6 算法步驟

HSSBOA 的具體步驟如下:

步驟1 輸入初始化感覺模態c、冪指數a、切換概率p、參數c2和c3,并產生數量為n的蝴蝶

步驟2在下由f()得到Ii。

步驟3 通過式(3)計算個體的氣味,并找到最優個體。

步驟4從[0,1]中生成隨機數r,計算c1與切換概率pt。

步驟5當r<pt時,通過式(18)向最優解移動;否則通過式(7)向最優解移動。

步驟6 返回步驟4,直至遍歷所有種群。

步驟7 更新a、pt、c1的值。

步驟8 生成隨機數k,按式(12)計算出M,并通過式(15)進行迭代。如果新解的適應度值比原解更好,則用新解代替原來的解,否則保留原解。

步驟9 返回步驟4,直至達到最大迭代數。

2.7 算法的流程

設置算法的種群規模為N,最大迭代次數為Maxiter,維數為d。根據HSSBOA 的時間復雜度的運算規則,初始化種群的時間復雜度為O(N·d),整個搜尋最優解的時間復雜度為O(N·d),利用SSA 對搜索位置進行更新的時間復雜度為O(d),故HSSBOA 總時間復雜度為O(N·d·Maxiter)??梢奌SSBOA 與BOA 的時間復雜度相同,并未增加算法的負擔。

3 仿真實驗與結果分析

3.1 仿真實驗環境

實驗環境為:操作系統macOS 12.0,CPU 為Intel Core i5,主頻2.3 GHz,內存8 GB,仿真軟件為Matlab 2021b。

3.2 實驗的初始參數設置

本文選 取BOA[5]、SSA[9]、鯨魚優 化算法(Whale Optimization Algorithm,WOA)[13]、哈里斯 鷹算法(Harris Hawks Optimization,HHO)[14]作為HSSBOA 的比較對象。所有算法的迭代次數均設為500,種群數設為30,其他算法的參數與相應文獻中的設定保持一致。

3.3 檢測函數

表2 列出了本文選取的標準檢測函數,其中:F1~F5為單峰檢測函數;F6~F10為多峰檢測函數。

表2 標準檢測函數相關描述Tab.2 Description of benchmark functions

3.4 實驗結果及分析

本文從收斂精度、收斂速度以及穩定性三個方面將HSSBOA 與BOA、SSA、HHO 和WOA 進行對比。在實驗中,為了減小統計誤差并使結果具有統計意義,每個函數獨立重復30 次。實驗結果如表3 中“30 維”列所示。

單峰函數只有1 個全局最優值,能夠評估算法的開發能力。對于單峰函數F1~F5,HSSBOA 的平均值(mean)和標準偏差(std)都優于對比算法,在所有的單峰函數問題中都能達到理論最優值。所以,HSSBOA 在單峰函數方面具有絕對優勢。BOA 和SSA 無法獲得理論最優值,HHO 和WOA 則是繼HSSBOA 之后最有效的算法。相較于BOA,HSSBOA 的結果更優,表明它有效地提高了BOA 的開發能力。HSSBOA 的高性能歸功于在局部搜索階段結合了SSA,因此能有效地避免陷入局部最優。

與單峰函數不同,多峰函數在搜索空間中具有多個局部最優解,可用于評估算法的探測能力??梢钥闯?,對于多峰函數F6~F10,HSSBOA 的結果最有效并且極具競爭力,可以達到F6~F9的理論最佳值;HHO在F7~F8上達到了理論最優值,其他算法的性能從高到低依次為WOA、SSA、BOA。因此,在所有標準函數中,HSSBOA 始終是最佳的算法,表明HSSBOA在收斂精度方面具有絕對優勢。

此外,還對HSSBOA 在高維數據中的性能進行了研究。將函數維度增加到500,其他參數保持不變,每個算法同樣重復運行30 次。如表3 中“500 維”列所示,HSSBOA 在高維度的F1~F2以及F5~F9達到了理論最優。雖然HSSBOA在F3上的性能下降,但變化可以忽略不計。根據無免費午餐(No Free Lunch,NFL)定理[15],沒有任何算法可以解決所有優化問題,因此該結果可以接受。HHO 在高維方面不如HSSBOA,高維數據的精度均有不同程度的降低,特別是在F6和F9上有較大幅度的減小。WOA 和HHO 的精度也有顯著降低。在高維度情況下,HSSBOA 整體的精度也都優于HHO 和WOA。因此,HSSBOA 的穩定性優于HHO 和WOA。

表3 標準檢測函數上的實驗結果Tab.3 Experimental results on benchmark functions

如圖2 所示,HSSBOA對F7、F8和F10的收斂十分顯著,最多只需要150 次迭代就可以收斂到最佳值。隨著F1、F3和F7迭代次數的增加,HSSBOA 的收斂速度加快。雖然在F3、F4、F7和F8中HHO 的收斂速度更快,但是隨著迭代過程進行,HSSBOA 能夠收斂到更精確的解。在F7、F8和F10中HHO 和WOA 也能收斂到與HSSBOA 相同的解,但是可以明顯看出HSSBOA 收斂的迭代次數比前兩種算法要更少,因為HSSBOA 的動態切換概率加快了搜索過程。對HSSBOA 和BOA 進行進一步比較可以看出,HSSBOA 得到的擬合值更準確,并且在迭代過程中具有更快的收斂速度。這說明本文的改進方法能有效提高BOA 的收斂性能。因此,在收斂速度方面,HSSBOA 比BOA、HHO、SSA 和WOA 更具競爭力。

圖2 收斂速度對比Fig.2 Comparison of convergence speed

3.5 Wilcoxon秩和檢驗

本文還進行了t檢驗。表4 給出了該雙尾檢驗每個函數的t值和p值,HSSBOA 和另外算法之間的顯著性水平為0.05。表5 總結了HSSBOA 和另外算法之間t檢驗的結果。從表5 可看出,相較于BOA、SSA,HSSBOA 在所有函數上的表現明顯更優;相較于HHO、WOA,HSSBOA 在絕大部分函數上的表現更好,除了在部分函數(F7、F8、F10)上性能表現相同。因此,HSSBOA 總體上優于BOA、SSA、HHO 和WOA,擁有更高的性能。

表4 HSSBOA與其他算法的t檢驗比較Tab.4 Comparison of t test between HSSBOA and other algorithms

表5 t檢驗對比結果Tab.5 Comparison results of t-test

3.6 MAD排序

為了更好地評估HSSBOA 與4 種元啟發式算法的勘探能力和收斂精度,采用平均絕對誤差(Mean Absolute Error,MAE)進行排序。MAE 是一個反映算法最優值和理論最優值差距的有效統計指標,計算公式為:

其中:mi為算法取得的最優解的平均值;oi為相應的基準測試函數的理論最優值;Nf為基準測試函數個數。

各算法的MAE 排序如表6 所示??梢钥闯?,HSSBOA 具有最小的MAE,表明了HSSBOA 的優越性。

表6 HSSBOA與其他算法的MAE排序Tab.6 MAE ranking of HSSBOA and other algorithms

3.7 消融實驗

為進一步驗證HSSBOA 各項改進的作用和有效性,以本文所用的10 個標準檢測函數為例進行消融實驗,分別計算HSSBOA、HSSBOA 去除改 進SSA(記 為“HSSBOA改進SSA”)、HSSBOA 去除鄰域重心反向學習(記為“HSSBOA鄰域重心反向學習”)、HSSBOA 去除高斯擾動(記為“HSSBOA高斯擾動”)和HSSBOA 去除動態切換概率(記為“HSSBOA動態切換概率”)的MAE。具體結果如表7 所示。

表7 消融實驗的結果對比Tab.7 Comparison of ablation experimental results

通過表7 可知,將本文的4 項改進分別去除后,MAE 都有不同程度增加,說明改進的內容對算法都是正向作用。其中,改進SSA 對算法的影響最大,其次是鄰域重心反向學習、動態切換概率、高斯擾動。表7 表明了HSSBOA 各項改進的合理性和有效性。

4 實際問題應用

將SSBOA 將用于測試兩個工程設計問題:彈簧設計和焊接梁設計。以上數學問題可視為無約束優化問題,相對容易求解。然而,約束優化問題對于元啟發式算法來說是一個挑戰。因此,本文選擇了幾個具有代表性的多約束工程設計問題來評估HSSBOA 的性能。約束問題通常用罰函數來解決,本文采用死亡罰函數[16]來解決這些問題。

4.1 彈簧設計

此問題在于設置鋼絲直徑d、平均線圈直徑D和移動線圈數N的值,最小化彈簧的重量,示意圖如圖3 所示??紤]x=(x1,x2,x3)=(d,D,N),約束公式如下:

圖3 彈簧示意圖Fig.3 Schematic diagram of spring

其中:0.05 ≤x1≤2.00;0.25 ≤x2≤1.30;2.00 ≤x3≤15.00。

數學方法和元啟發式算法都能夠解決該問題。將HSSBOA 的仿真結果與其他元啟發式算法以及數學方法(數學優化[17]和約束校正[18])進行比較。如表8 所示,HSSBOA結果優于所有對比方法。

表8 各方法求解彈簧設計問題結果的比較Tab.8 Result comparison of solving spring design problem by different methods

4.2 壓力容器設計

該問題的目標是使壓力容器的重量最小化,如圖4 所示。需要設置殼體厚度Ts、封頭厚度Th、內徑R、圓柱形截面長度L的值??紤]x=(x1,x2,x3,x4)=(Ts,Th,R,L),約 束公式如下:

圖4 壓力容器示意圖Fig.4 Schematic diagram of pressure vessel

其中:0 ≤x1≤99;0 ≤x2≤99;10 ≤x3≤200;10 ≤x4≤200。

將優化結果與群智能算法和數學方法(拉格朗日乘數[19]和分支界[20])進行比較,如表9 所示??梢钥闯鯤SSBOA優于所有其他方法。

表9 不同方法求解壓力容器設計問題結果的比較Tab.9 Result comparison of solving pressure vessel design problem by different methods

以上兩個經典工程問題的結果表明,HSSBOA 在解決復雜和非線性問題方面具有很高的性能,可以避免局部最優,并找到有效的適應度。這些復雜問題的成功解決表明HSSBOA 具有強大的搜尋能力以及良好的收斂性能,說明HSSBOA 可以解決實際問題。

5 結語

本文提出了一種改進的蝴蝶優化算法HSSBOA,結合蝴蝶優化算法與改進的樽海鞘群算法,兩種算法各自處理全局和局部階段,能夠有效防止落入局部最優中。同時還引入了鄰域中心反向學習、高斯擾動和動態切換概率,平衡了局部搜索和全局搜索的比重,能夠更加靈活地區分切換概率與產生的隨機數的大小,提升算法尋優的性能。對10 個標準測試函數進行了仿真實驗,從收斂精度、收斂速度、Wilcoxon 秩和檢驗、MAE 排序、高維度數據五個方面進行了分析。結果表明相較于其他群智能算法,HSSBOA 具有較好的尋優性能、較快的收斂速度以及較高的穩定性。消融實驗證明了改進方法均為正向作用。此外,本文還通過兩個經典工程問題驗證了HSSBOA 在實際應用中的良好性能。接下來的研究方向是拓展HSSBOA 在特征選擇中的應用。

猜你喜歡
鄰域全局蝴蝶
Cahn-Hilliard-Brinkman系統的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
稀疏圖平方圖的染色數上界
落子山東,意在全局
基于鄰域競賽的多目標優化算法
為了蝴蝶
關于-型鄰域空間
捉蝴蝶
捉蝴蝶
新思路:牽一發動全局
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合