賈鶴鳴,劉宇翔,劉慶鑫,王 爽,鄭 榮
1.三明學院 信息工程學院,福建 三明365004
2.福州大學 物理與信息工程學院,福州350108
3.海南大學 計算機科學與技術學院,海口570228
隨著科技的不斷創新發展,近年來不同領域的工程問題產生了諸多優化求解的需求,而如牛頓法、梯度下降法等傳統優化方法已經無法滿足實際需求。因此,通過模仿生物或物理現象而提出的元啟發式算法不斷涌現,元啟發式算法概念和框架簡單,無需梯度更新信息,常見的算法有:粒子群優化算法(particle swarm optimization,PSO)、樽海鞘群優化算法(salp swarm algorithm,SSA)、黏菌優化算法(slime mould algorithm,SMA)、算術優化算法(arithmetic optimization algorithm,AOA)、灰狼優化算法(grey wolf optimization,GWO)、鯨魚優化算法(whale optimization algorithm,WOA)、哈里斯鷹優化算法(Harris hawks optimization,HHO)等,但無免費午餐(no-free-lunch,NFL)理論證明不存在一種優化算法能解決所有的工程問題,每種已存在的優化算法都存在其優勢與不足。因此,基于混合模式和融合改進策略對傳統優化算法進行升級是迫切且必要的。
SMA 是由Li 等人于2020 年提出的一種模擬黏菌在覓食過程中的行為和形態變化的新型群體智能優化算法,其靈感啟發來源于模擬多頭絨泡菌的覓食行為和形態變化,利用權值的變化模擬覓食過程中黏菌本體產生的正反饋和負反饋過程,進而產生三種階段覓食形態。該算法具有一定的收斂精度和較好的穩定性,因此已被廣泛應用于優化應用領域。Kouadri 等人提出利用SMA 優化算法研究優化潮流控制變量,以此探索發電機燃油成本和損耗最小化的問題。Zhao 等人提出將SMA 與HHO 算法相混合,利用多復合選擇機制提高算法的選擇性和隨機性,提高個體位置更新的隨機性和算法求解的效率。Sun 等人提出融合布朗運動和錦標賽機制對傳統SMA 策略進行改進,并且結合自適應爬山法進一步提升了算法的搜索進度。上述改進策略在不同程度上提高了原算法的尋優性能,但上述文獻多為復合策略的疊加或兩種混合算法的簡單結合,未考慮改進策略并結合混合模式來提高SMA 的算法性能。AOA 算法是在2021 年由Abualigah 等人提出的基于四則混合運算思想設計的元啟發式優化算法,該算法利用數學中的乘除運算提高位置更新的全局分散性,利用加減運算提高位置更新在局部區域的精確性,由于該算法提出的時間較短,需對其進行進一步改進和完善,以適應更多領域工程問題的優化求解。
本文基于SMA 和AOA 的優勢和不足,將兩種算法結合,同時引入隨機反向學習策略,提出了一種性能優越的黏菌與算術混合優化算法。該混合算法結合了SMA 與AOA 的尋優特性,有效增強了算法的尋優性能和避免局部最優能力,提升了收斂速度與收斂精度,并通過標準測試函數和工程問題的測試驗證了所提混合算法的有效性和工程適用性。
黏菌優化算法是根據黏菌的覓食行為得到的一種優化算法。黏菌在覓食過程中發現食物時,會有振蕩收縮的特性。同時,在多個食物源之間會形成粗細不一的靜脈網絡,并且靜脈網絡的粗細與食物源的質量有關。此外,黏菌在獲取食物源時,仍會有一定的概率對未知區域進行搜索。
黏菌根據空氣中的氣味接近食物,靜脈接觸到的食物濃度越高,內部生物振蕩器產生的波越強,細胞質流動得越快,靜脈越粗,其位置更新公式為:

其中,為0 到1 之間的隨機數,X()表示目前適應度最優的個體位置,()與()為兩個隨機個體位置,為[-,]之間的隨機數,是從1 到0 線性遞減的參數,代表黏菌的權重系數,代表當前迭代次數。
控制參數、參數與權重系數的更新公式如下:

其中,參數根據當前個體適應度值和最優值進行計算,∈1,2,…,,為種群規模,()代表當前個體適應度值,為當前取得的最佳適應度值。為均勻分布于0 到1 之間的隨機數,是最大迭代次數。condition 表示種群中適應度排在前一半個體,others 表示剩下的個體,代表當前迭代獲取的最佳適應度值,代表當前迭代最差適應度值。()為適應度值序列(求極小值問題為遞增序列)。
盡管黏菌找到了更好的食物源,它們仍會分離部分個體探索其他領域試圖尋找更高質量的食物源。因此SMA 整體更新位置的公式為:

式中,與為上下界;為均勻分布在0 到1之間的隨機數;代表值為0.03 的常量。
算術優化算法是一種根據算術操作符的分布特性來實現全局尋優的元啟發式優化算法。算法分為三部分,通過數學優化器加速函數選擇優化策略,乘法策略與除法策略進行全局搜索,提高解的分散性,增強算法的全局尋優與克服早熟收斂能力,實現全局探索尋優。開發階段利用加法策略與減法策略降低解的分散性,有利于種群在局部范圍內充分開發,加強算法的局部尋優能力。
AOA 通過數學優化器加速函數(math optimizer accelerated,MOA)選擇搜索階段,當>時,AOA 進行全局探索;當<時,AOA 進入局部開發階段。

其中,代表0 到1 之間的隨機數,與分別是加速函數的最小值和最大值,為0.2 和1.0。
AOA 通過乘法運算與除法運算實現全局搜索,當<0.5 時,執行除法搜索策略;當>0.5 時,執行乘法搜索策略,其位置更新公式如下:

其中,∈[0,1],是調整搜索過程的控制參數,值為0.499,為極小值,數學優化器概率(math optimizer probability,MOP)曲線如圖1 所示,計算公式如下:

圖1 數學優化器概率曲線圖Fig.1 Curve of math optimizer probability

式中,是敏感參數,定義了迭代過程中的局部開發精度,取值為5。
AOA 利用加法運算與減法運算實現局部開發,位置更新公式如下:

其中,為0 到1 之間的隨機數。
反向學習策略(opposition-based learning,OBL)是Tizhoosh于2005 年提出的群智能領域中的一種改進策略,其思想是:在種群尋優的過程中,根據當前解產生一個反向解,比較當前解與反向解的目標函數值,擇優進入下一次迭代。
反向解定義:存在維坐標系內一點,同時滿足∈[,],則反向解計算公式如下:


由于反向學習策略生成的反向解與當前解距離為一定值,缺乏隨機性,無法有效增強搜索空間內種群多樣性。因此,Long 等人提出了改進的隨機反向學習策略(random opposition-based learning,ROBL),進一步增強種群多樣性,提高種群避免局部最優的能力(如圖2),計算公式如下:


圖2 任意解與它的隨機反向解Fig.2 Arbitrary solution and its randomly opposite solution
如前所述,SMA 會根據適應度值調整不同的搜索模式,適應度較差的黏菌進行全局搜索,和的協同作用也使黏菌不止向最優位置收縮,同時會分離出一部分有機物向其他領域探索,并且的振蕩作用也增加了全局探索的可能性。此外,當隨機數小于時,黏菌進行隨機初始化。因此,SMA 的多重探索機制使該算法具有強大的全局尋優能力。但在迭代后期,的振蕩作用大幅減弱,使算法不能有效跳出局部最優,且SMA 利用參數實現收縮機制,為1 到0 線性遞減的參數,用于描述黏菌與檢測到的食物濃度的反饋關系,但這種機制較薄弱,容易陷入局部最優。AOA 借助乘除算子帶來的高分布性實現位置更新,隨迭代次數的增加從0.7 線性遞減至0,并且遞減幅度逐漸減小,能夠針對最優位置進行放縮,提高后期尋優隨機性,提高黏菌算法避免局部最優能力。因此,本文將SMA 和AOA 進行了有機融合,提出一種新的混合算法(hybrid algorithm of slime mould algorithm and arithmetic optimization algorithm based on random opposition-based learning,HSMAAOA)。混合算法分別保留了SMA 與AOA 的優勢特性,首先保留了SMA 根據值進行隨機初始化的部分,當<時,黏菌分離出部分個體探索其他食物源,隨后根據隨機數與值選擇黏菌的位置更新方式,當<時,通過式(6)進行位置更新,否則通過乘除算子(式(8))進行位置更新。最后利用ROBL 策略產生一個隨機反向位置,使用貪婪策略選出表現最優的個體進入下一次迭代,引導黏菌更好地向最優個體位置進化,增強算法跳出局部最優的能力,使得算法獲得更好的收斂速度。綜上所述,HSMAAOA 偽代碼如下,具體實現流程如圖3 所示。

圖3 HSMAAOA 算法流程Fig.3 Flowchart of HSMAAOA

HSMAAOA 算法主要由種群初始化、種群位置更新以及隨機反向解組成,假設種群規模、維度、最大迭代次數,則HSMAAOA 初始階段時間復雜度為(×),計算個體適應度為(),迭代過程中利用SMA 全局探索與AOA 乘除算子進行位置更新,并通過ROBL生成隨機反向解,復雜度為(2×××),更新最優解的時間復雜度為(1) 。綜上所述,HSMAAOA 運算復雜度為(2×××)。
本文實驗環境采用IntelCorei7-4720HQ CPU,主頻為2.60 GHz,內存12 GB,操作系統為64 位Windows10的電腦。編程語言為Matlab,版本R2020b。使用23 個標準測試函數對HSMAAOA 進行性能測試。在這些測試函數中,1~7 為單峰測試函數,只有一個全局最優解,用于檢驗算法的局部開發能力與收斂速度。8~13 為多峰測試函數,具有多個局部最優值和一個全局最優值,可驗證算法的全局搜索能力與跳出局部最優的能力。14~23 是固定維多峰測試函數,檢驗算法平衡探索與開發能力之間的性能。利用三種不同類型的測試函數,可充分驗證算法的尋優性能。
為了更好地驗證HSMAAOA 算法性能,選取了7種算法進行對比:SMA、AOA、HHO、WOA、SSA、GWO 和PSO。這些算法被證實具有良好的尋優性能。為了更準確地驗證所提算法與對比算法的優劣性,設定種群規模=30,空間維度=30,最大迭代次數500 次,各算法獨立運行30 次,算法中相關參數設置如表1 所示。選取平均值、標準差與Wilcoxon 秩和檢驗作為評價指標。其中,平均值和標準差越小,則證明算法的性能越佳。

表1 各算法參數設置Table 1 Setting of each algorithm parameters
HSMAAOA 及其對比算法的適應度平均值與標準差見表2,Mean 代表平均適應度值,Std 為標準差,加粗的實驗數據為最佳結果。在求解1~7 單峰測試函數中,HSMAAOA 能夠在1~4 測試中達到理論最優值,方差最小。對于5,HSMAAOA 雖然沒有收斂到全局最優值,但求解精度僅次于HHO 與SMA,位居第三。在6 中,尋優能力僅次于HHO,且超過其他算法。對于7,HSMAAOA 能夠達到全局最優值,且方差最小。由此可知,HSMAAOA 在局部開發階段引入乘除算子更新公式與隨機反向學習帶來優越的開發能力,提高算法收斂精度,且具有一定的穩定性。在多峰測試函數中,HSMAAOA 也能取得不錯的效果。對于8、9、11,HSMAAOA達到理論最優值,對于12、13,算法效果僅次于HHO,超過了原始SMA 算法與AOA 算法。在10中,HSMAAOA 與SMA、AOA 和HHO 均達到了全局最優值。從中可知,HSMAAOA 的探索能力和避免局部最優能力均強于原始SMA 和AOA 算法,僅有個別測試函數效果弱于HHO,但整體的效果仍是最優。在固定維度多峰測試函數中,對于14、17、21 與22,HSMAAOA 平均適應度極度靠近理論最優值,方差最小。在15 中,效果不及HHO。針對16、18、23 測試函數,HSMAAOA 能夠達到理論最優值。對于19,雖然達到了全局最優值,但標準差不如SSA。對于20,HSMAAOA 平均值與PSO 相同,次于GWO,標準差不及SSA,但超越了其余算法。對于大多數固定維度多峰測試函數,HSMAAOA 的統計結果都是最優,結合測試函數的復雜性,證實了HSMAAOA 在避免早熟收斂方面具有優秀的性能,且平衡探索階段和局部階段的能力得到了增強。

表2 各算法標準函數測試結果Table 2 Test results of benchmark functions of each algorithm
為了更直觀地展示各算法的收斂速度及跳出局部最優能力,圖4 為部分測試函數的收斂曲線。對于1 和3 函數,PSO、SSA、WOA、GWO 收斂精度較低,HHO、AOA 收斂效果稍強于上述算法,SMA 收斂精度高,但收斂速度過慢,迭代450 次后才能達到理論最優值,而HSMAAOA 從迭代開始收斂曲線明顯下降且收斂速度快,僅需要80 次迭代即可達到理論最優值,收斂速度快。對于5 函數,HSMAAOA 雖然沒有收斂到全局最優值,但能快速跳出局部最優值,并且收斂精度更接近全局最小值,證明了此算法引入AOA 位置更新公式與隨機反向學習策略所帶來卓越的跳出局部最優能力。對于多峰測試函數8和10,HSMAAOA 收斂速度快于SMA 與AOA,在迭代初期達到全局最優解,體現出優秀的全局探索能力。對于固定維多峰測試函數(15、20 與23),HSMAAOA 出現多次分界點,停滯的次數少于其他算法,證明了算法的探索與開發能力得到較好的平衡。

圖4 各種算法收斂曲線Fig.4 Convergence curves of various algorithms
僅通過平均值與方差無法精確分析每次運行的結果,因此本文采用Wilcoxon 秩和檢驗來驗證整體結果的顯著性差別。秩和檢驗在5%的顯著性水平下進行,當<0.05 時,可以證明兩種算法性能存在顯著差異,否則說明兩種算法的尋優性能相差不大。因此,本文將8 種算法作為樣本,各算法獨立求解30次,種群規模=30,空間維度=30 的環境下求解23 個標準測試函數來判斷HSMAAOA 所得結果與7種對比算法所得結果的顯著性區別。Wilcoxon 統計檢驗值結果如表3 所示,因為算法無法與自身對比,故表中不再列出HSMAAOA 的值。表中N/A表示數據無效,即實驗樣本數據相同,算法性能相當,當值小于0.05 時,說明兩種對比算法具有顯著性差異。
由表3 可知,大部分值均小于5%,表明算法HSMAAOA 與其余7 種對比算法之間存在顯著性差異。對于函數9 與11,HSMAAOA 與對比算法之間的顯著性差異不明顯,算法的性能相當。
通過分析表2、表3 以及圖4,可以得出結論:融合隨機反向學習策略的黏菌與算術混合優化算法(HSMAAOA)全局與局部能力均得到加強,優于原始SMA、AOA 及其他5 種優化算法,表現出更優秀的收斂精度、收斂速度以及穩定性。

表3 各算法Wilcoxon 秩和檢驗結果Table 3 Wilcoxon rank sum test results of each algorithm
為了驗證HSMAAOA 算法在解決工程問題上的性能與可行性,選用焊接梁設計問題與壓力容器問題進行測試。在本次實驗中,設置種群規模=30,維度=30,最大迭代次數=500。
該問題的目標是使焊接梁設計的總成本最小化。如圖5 所示,需要優化的變量有4 個:焊縫寬度,連接梁厚度,連接梁長度與梁高度。該問題的目標函數、自變量范圍和約束條件如下所示:

圖5 焊接梁設計問題Fig.5 Welded beam design problem

表4 列出了HSMAAOA 與對比算法求解焊接梁設計問題實驗結果,其中加粗表示較好結果。可以看出,SMAAOA 在=0.202 6,=3.319 7,=9.034 5,=0.205 8 處得到的最小代價為1.699 9,不僅優于原始SMA 與AOA 算法,且小于其余對比算法,說明本文算法對于求解這類工程問題具有良好的性能。

表4 各算法應用焊接梁設計問題優化結果Table 4 Optimization results of each algorithm applied to welded beam design problem
壓力容器設計問題是一個常用的工程設計問題。如圖6 所示,該問題試圖使圓柱形壓力容器的總成本最小化,以滿足壓力要求。需要優化4 個變量:容器壁厚度T、頂蓋壁厚度T、內徑、容器管身長度。目標函數、自變量范圍和約束條件如下所示:


圖6 壓力容器設計問題Fig.6 Pressure vessel design problem
表5 統計了8 種算法在求解壓力容器問題時得到的實驗數據。可以看出8 種算法均能求出較好值,但HSMAAOA 算法求解出的最優值仍是最小結果,表現出對壓力容器設計問題優良可信的求解能力。

表5 各算法應用壓力容器設計問題優化結果Table 5 Optimization results of each algorithm applied to pressure vessel design problem
通過對上述兩種著名工程設計問題的測試,可以看出基本SMA 與AOA 算法因自身機制局限性導致容易陷入局部最優值,而本文算法HSMAAOA 混合了SMA 與AOA 的優勢特性,結合隨機反向學習策略提高了算法的尋優性能。在求解工程優化設計問題能夠找到更優的解,充分說明了HSMAAOA 在處理不同復雜程度工程設計問題具有較好的應用潛力,能夠提供優秀的解決方案。
本文充分綜合考慮SMA 和AOA 兩種優化算法的優勢和不足,提出了一種新型黏菌與算術混合優化算法。HSMAAOA 融合兩種算法的全局搜索策略,極大地提高了算法的隨機性和全局搜索能力,有效避免了局部最優停滯。引入ROBL 策略有效增強種群多樣性,提高算法避免早熟收斂能力,保持較快的收斂速度。HSMAAOA 有效地增強并平衡了全局探索和局部開發過程,23 個標準函數測試結果表明,不論對于單峰函數還是多峰函數,均具有更佳的收斂速度和精度。最后選擇驗證的兩個工程設計問題測試表明,HSMAAOA 可用于解決實際問題并具有良好的工程應用前景。本文僅是對兩種新近提出的優化算法混合改進的嘗試,未來將進一步融合不同的改進策略,并結合實際工程的解決需求,以期改進出更為有效的智能優化算法。