向海昀,李鴻鑫,符 曉,蘇小平
(1.西南石油大學 計算機科學學院,成都 610500;2.西南石油大學 網絡與信息化中心,成都 610500)
全局優化問題存在于數學、醫學、經濟、工程實踐等領域中。在實際問題中具有許多高維度、多極值、非線性等復雜全局優化的情況。傳統優化算法難以得到理想的優化效果,而智能優化算法則提供了優化的解決方法。群體智能優化算法搜索單元使用模擬的生物集體智能和社會智能進行導航,是目前快速發展的一種智能技術[1-2]。典型的群體智能優化算法有粒子群優化(Particle Swarm Optimization,PSO)算法[3]、遺傳算法(Genetic Algorithm,GA)[4]、哈里斯鷹優化(Harris Hawks Optimization,HHO)算法[5]、正余弦 優化算 法(SCA)[6]、鯨魚優 化算法(Whale Optimization Algorithm,WOA)[7]等。
蜜獾算法(Honey Badger Algorithm,HBA)是HASHIM 等[8]提出的一種群體智能優化算法,通過模擬蜜獾覓食行為進行尋優,因其與其他算法仿真實驗結果對比表現優異,且算法結構簡單,因此具有較好的研究價值。雖然HBA 已被證明在收斂速度和探索-開發平衡方面優于模擬退火(Simulated Annealing,SA)算法、PSO 算法、蚱蜢優化算法等,但是在解決高維復雜問題時,其尋優能力和穩定性等仍需改進,可將其他策略與其相結合以提高算法性能。國內外對HBA 算法在這些問題上的改進研究較少。在對群體智能優化算法改進的領域中,研究人員常將隨機學習、反向學習、不同算法與所研究算法相結合,進而提高原算法的尋優性能。如董海等[9]提出一種結合差分進化原則的蜜獾算法,增強算法的尋優能力。劉琨等[10]在WOA 中引入精英反向學習策略初始化種群,以提高種群的質量,利用縱橫交叉策略提高種群多樣性,防止算法陷入早熟。孟憲猛等[11]提出一種新的WOA,利用精英反向學習初始化種群,提高初始解的質量,加入Lévy 飛行策略,精確搜索范圍,避免算法出現早熟。DENG[12]等將Lévy 飛行策略以及GA 中的算子與HBA 相結合,提高算法處理復雜工程問題時的尋優能力。HAN等[13]提出將反向學習與混沌機制引入HBA,增強種群質量,提高原算法的收斂速度。NASSEF 等[14]在HBA 中引入狩獵搜索策略進而提高算法的尋優能力,保持了勘探和開發階段平穩過渡。LEI 等[15]提出螺旋搜索機制更新HBA 的勘探階段,從而提高算法全局搜索能力,引入準余弦定律更新原算法中密度因子平衡不同階段的過渡,設計針孔成像策略,進而提高種群多樣性。DüZENLI 等[16]利用高斯混沌映射處理HBA 中的關鍵隨機變量,提高算法搜索能力,加入對立學習,使問題的搜索空間邊界根據對立學習中隨機和相反候選解的適應度值而變化,避免算法陷入局部最優。ALSHATHRI 等[17]將HBA 與二維Hénon 映射相結合,以提高算法的基本性能,引入基于量子的優化技術用于提高算法搜索能力,平衡勘探和開發2 個階段的過渡。ABD ELAZIZ 等[18]在HBA 中引入Lévy 飛行策略,在醫學圖像領域加快特征選擇,有效平衡HBA 的不同尋優階段。YASEAR等[19]在HBA 中加入反向學習機制,提高種群多樣性,用于解決電力消耗成本中的復雜問題。王梓辰等[20]提出一種自適應動態WOA,引入自適應慣性權重系數、非線性收斂因子,平衡全局與局部的過渡,引入廣義反向學習機制避免算法陷入早熟。研究人員提出一種基于混沌收斂因子和慣性權重的改進WOA[21],利用混沌收斂因子和慣性權重更新算法尋優路徑,對尋優過程中最優個體進行多項式變異,避免算法陷入局部最優。
針對HBA 算法存在的改進空間,本文提出一種多策略改進的蜜獾算法(MSHBA)。該算法在挖掘模式和蜂蜜模式不同尋優路徑更新的基礎上引入限制反向學習機制,提高種群質量,增強算法的尋優性能,引入自適應權重因子更新尋優路徑,促進不同搜索階段的平穩過渡。提出一種新的饑餓搜索策略,進一步增強算法跳出局部最優的能力。
HBA 算法的模型是通過模擬蜜獾智能行為建立的,其通過模擬蜜獾捕食行為進行尋優。蜜獾種群大小為N,HBA 算法將種群在一定上下限范圍內進行隨機初始化,如式(1)所示:
其中:xi代表種群N中第i個蜜獾的位置;而uub,i和llb,i分別表示搜索區間的上界和下界;r1為[0,1]的隨機數。
蜜獾的捕食能力與第i只蜜獾的距離、獵物的集中強度和氣味強度有關。Ii是獵物的氣味強度。當Ii增大時,蜜獾速度隨之加快。Ii的具體定義如下:
其中:r2為[0,1]的隨機數;S為獵物的集中強度;di表示獵物和第i只蜜獾之間的距離。
非線性密度因子α約束隨時間變化的尋優路徑,使得算法演變過程更加穩定。非線性密度因子α隨迭代次數減少,其定義如式(3)所示:
其中:tmax表示最大迭代次數;C≥1(默認值設為2)。
HBA 算法尋優路徑分為挖掘模式和蜂蜜模式,這2 種模式具有不同的運動軌跡。
1.4.1 挖掘模式
在挖掘模式中,蜜獾的行動軌跡類似心形,通過式(4)可以模擬行動路線軌跡:
其中:xnew代表個體的新位置;xprey代表獵物在環境中的最佳位置;β≥1(默認值為6)反映蜜獾個體對于食物的獲取能力;F1作為搜索方向不斷改變的標志;r3、r4和r5表示0~1 之間3 個隨機的取值。F1的定義如式(5)所示:
其中:r6屬于0~1 的隨機數。
蜜獾在挖掘模式中的搜索路徑主要受獵物的距離di、獵物的嗅覺強度Ii和非線性密度因子α的影響。
1.4.2 蜂蜜模式
在蜂蜜模式中,蜜獾改變尋優路徑,跟隨蜂蜜向導鳥到達目標蜂巢,其路線軌跡的模擬如式(6)所示:
其中:r7為0~1 的隨機數;α和F1由式(3)和式(5)確定。在該階段,蜜獾的尋優路徑與獵物和第i只蜜獾之間的距離di、獵物的最佳位置xprey以及α有關,蜜獾在xprey附近進行探索。
在實驗中發現原HBA 算法在解決高維復雜問題中存在收斂速度慢、難以有效尋優等問題。通過分析發現,非線性密度因子α隨著迭代次數增加而減少,在迭代中期,當α的系數C默認為2 時,α將降為1,密度因子較低影響全局尋優能力,算法容易陷入早熟。
為解決以上問題,本文通過加入限制反向學習機制以增強種群質量、多樣性,加入自適應權重因子以平衡全局和局部搜索,提升算法尋優性能、穩定性,加入饑餓搜索策略,增強算法搜索能力。本文基于以上對HBA 算法的改進,提出一種多策略改進的蜜獾算法。
在蜜獾算法中,蜜獾個體以獵物的氣味強度以及獵物距離和隨時間變化的非線性密度因子α為導向,通過迭代不斷尋找最優解,但是當最優解為非全局最優解時,算法尋優結果錯誤使得算法陷入早熟。針對算法早熟問題,李安東等[22]將精英反向學習策略加入到優化算法中,提高種群質量。通過比較原解與反向學習生成的反向解,選擇更優個體繼續加入種群,使種群范圍得到擴大[23]。本文在挖掘模式和蜂蜜模式不同路徑更新的基礎上引入限制反向學習機制,在算法迭代時,對當前的種群個體進行限制反向學習,生成新的限制反向解,提升解的質量,增加種群多樣性,加快算法收斂速度。限制反向學習機制表達式如式(7)所示:
限制反向學習機制相比于反向學習,解的上下限隨迭代次數變化且限制了反向解越過邊界。相比反向學習機制,限制反向學習機制進一步優化種群質量,使得在增加種群多樣性的基礎上,加快了算法的收斂速度。
在粒子群算法中,慣性權重是其中重要的參數之一,當慣性權重較小時,算法搜索范圍更精細,當慣性權重較大時,算法搜索范圍更大[24]。考慮到捕獵過程中獵物目標對蜜獾位置更新的影響以及自適應權重因子可有效平衡算法在不同階段的搜索能力,本文提出一種自適應權重因子,如式(8)所示:
其中:t為當前迭代次數;tmax為最大迭代數。
引入自適應權重因子,HBA 中挖掘模式和蜂蜜模式搜索路線的式(4)和式(6)分別更新為式(9)和式(10):
ω隨著迭代次數的增加,其值呈非線性增加。在算法迭代初期自適應權重因子的值較小,目標位置模糊,對原蜜獾算法中挖掘模式和蜂蜜模式搜索路線的更新影響不大;在算法迭代的中后期,目標逐漸清晰,此時自適應權重因子的值隨迭代次數的增加逐漸變大,目標對蜜獾個體的吸引更強,自適應權重因子增強了局部開發的能力,使得蜜獾能夠在算法迭代的中后期更快地找到目標解。加入自適應權重因子能夠促進算法全局和局部搜索平穩過渡,提升算法尋優性能和穩定性。
在蜂蜜搜索階段,蜜獾在目前發現的獵物位置xprey附近進行搜索。在算法迭代的中后期,算法可能出現早熟情況,由哈里斯鷹優化算法中的逃逸能量理論得到啟發,本文提出一種新的饑餓搜索策略。在算法尋優過程中,當蜜獾表現出能量較低、適應度較差時,蜜獾處于饑餓狀態,通過改變蜜獾的尋優路徑增強搜索能力,從而避免算法陷入局部最優。在蜂蜜模式中,當蜜獾種群數量迭代超過1/2 時,引入饑餓搜索策略對原蜜獾尋優路徑進行改變。
饑餓搜索策略表達式如下:
其中:xworse表示全局最差的位置;xi為當前種群個體的位置。
饑餓搜索策略基于全局最差位置對原搜索路徑進行改進,在蜜獾處于饑餓狀態時,使其在原搜索路徑的基礎上實現更廣泛的搜索,增強跳出局部最優的能力。
綜上所述,MSHBA 執行步驟采用偽代碼表述,如算法1 所示。
算法1MSHBA 算法
本文分 別選取PSO[3]、GA[4]、HHO[5]、SCA[6]、WOA[7]以及HBA、MSHBA 進行仿真實驗分析。為直接對比各算法性能,本文將所選取各算法的最大迭代次數均設為500,種群數量均設為30,算法維度分別為30、200、500,算法具體參數如表1 所示。

表1 算法仿真實驗參數Table 1 Simulation experiment parameters of algorithms
為測試本文所提的MSHBA 與原HBA、WOA 等算法的性能差異,本文選用9 個測試函數進行仿真對比實驗,其中F1~F4為單峰函數,F5~F7為不定維多峰函數,F8~F9為固定維多峰函數。該實驗采用標準差值(Std)、平均值(Mean)和最優值(Best)作為評價指標[25],進而分析各算法的性能差別。具體測試函數信息如表2 所示。

表2 測試函數及具體信息Table 2 Test functions and specific information
本文使用MATLAB 仿真軟件對每個函數在不同算法的應用下進行30 次實驗,得出與各算法對應不同函數評價指標的結果,如表3所示,加粗表示最優數據。所測試算法在各函數200 維度上的收斂曲線如圖1 所示。

圖1 在維度為200 時各算法的收斂曲線Fig.1 Convergence curves of each algorithms at dimension 200

表3 MSHBA 與對比算法在不同函數和維度上的優化性能指標Table 3 Optimization performance indicators of MSHBA and comparison algorithms on different functions and dimensions
從同一維度測試函數F1~F4的仿真結果可以看出,MSHBA 在算法的收斂精度和穩定性上都表現出比PSO、GA、HHO、SCA、WOA 以及HBA 更好的性能。在F1中,僅有MSHBA 取得了理論最優值,雖然HBA 同樣表現出良好的穩定性,但在尋優精度上明顯不足,MSHBA 改進了其尋優性能。在F2~F4測試結果中,MSHBA 在所測算法中的各評價指標均達到了最佳,相比HBA 和WOA 等算法提高了多個數量級,說明MSHBA 具有更優的穩定性和尋優能力。在F5、F6和F7測試結果 中,所 測HHO、HBA、MSHBA 算法尋優能力差異不大,均表現出了相對其他測試算法更優的穩定性。特別是在F6測試結果中,所測算法在尋優時都沒能找到全局最優,但是從收斂精度分析,HBA、MSHBA、HHO 均表現出遠優于其他測試算法的收斂精度。在F8測試結果中,HHO、HBA、MSHBA 均表現出優異的尋優能力,就穩定性而言,MSHBA 對比原HBA 算法有較大的提升,平均值最接近表現最好的HHO。在F9測試結果中,多個測試算法均達到最優值,MSHBA 對原HBA算法穩定性有了更好的優化。
在維度為30~500 的變化過程中,所測試算法的尋優性能均有所下降,在單峰測試函數F1~F4測試結果中,即使算法維度達到500,MSHBA 依然表現出最優的尋優能力和穩定性。在不定維多峰函數測試結果中,F5和F7測試結果表示,隨著維度增大,MSHBA 與HBA、HHO 依然可以得到全局最優解。在F6中,SCA 等算法隨著維度增加,尋優性能有所下降,MSHBA 則依然可以保持較優的尋優性能。但是所測算法均未得出最優解,MSHBA 相較于HBA表現更優的穩定性。
本文基于HBA 提出3 種不同的改進策略,分別為限制反向學習機制、自適應權重因子、饑餓搜索策略。為研究3 種單一策略以及混合策略對原HBA 尋優性能的影響,本文基于5 種算法對上述9 個測試函數進行仿真實驗分析。將HBA、MSHBA 與只采用限制反向學習機制的HBA(記作HBA-1)、只采用自適應權重因子的HBA(記作HBA-2)、只采用饑餓搜索策略的HBA(記作HBA-3)進行對比,5 種算法參數設置與表1 中HBA 參數設置相同,5 種算法在測試函數維度為30 時的尋優性能結果如表4 所示。

表4 在維度為30 時不同算法性能對比Table 4 Performance comparison among different algorithms at dimension 30
從表4 可以看出,MSHBA 對HBA 尋優性能的改進比單一策略的改進效果更明顯,對比原HBA,所有策略都能對其進行有效改進,其中HBA-3 改進效果略差,HBA-1和HBA-2對HBA 均有較優的改進效果。
綜上所述,MSHBA 在單峰函數性能測試中,表現出最佳的收斂精度和穩定性。在不定維多峰函數性能測試中,MSHBA 同樣具有較優的尋優性能。在固定維多峰函數性能測試中,MSHBA 提升了原HBA 的算法穩定性。對比單一改進策略,MSHBA表現出更佳的性能。
針對工程設計與應用領域中常出現數值約束問題,傳統的尋優方法(如梯度下降法)效率低、極易陷入局部最優,且難以解決更高維以及非線性的數值優化問題。本文將MSHBA 算法用于機械設計問題的優化,進而對算法的可行性做進一步檢驗[26]。本文主要優化的機械設計問題是活塞桿設計問題。將粒子群優化算法、鯨魚優化算法、遺傳算法、正余弦優化算法、蜜獾算法以及MSHBA 應用于活塞桿設計問題優化,并進行仿真實驗。各算法具體參數如表1 所示,種群數量均為50,最大迭代次數均為1 000,每個算法獨立運行30 次后取平均值。
優化活塞桿設計問題的主要目的是在活塞桿從0°提升至45°時,通過最小化油量定位活塞部件H、B、D和X,如圖2所示。

圖2 活塞桿結構問題Fig.2 Structure problem of piston rod
該活塞桿設計的數學模型如下:
這些不等式約束考慮了力平衡、杠桿的最大彎矩、最小活塞行程、幾何條件等。表5 所示為MSHBA 和其他測試算法獲得的最佳解決方案,據此可知,MSHBA 獲得的函數最優解[H,B,D,X]=[0.05,2.05,4.09,119.95],f(H,B,D,X)=8.45,表 明MSHBA 獲得最小油量,對比原算法其性能提高了88%。圖3 所示為測試算法求解活塞桿設計問題的收斂曲線,證明MSHBA 能夠快速找到活塞桿設計難題的最佳解決方案。

圖3 測試算法求解活塞桿設計問題的收斂曲線Fig.3 Convergence curves of testing algorithms for piston rod design problem

表5 活塞桿設計問題中各算法的優化結果對比Table 5 Comparison of optimization results of various algorithms in piston rod design problem
針對蜜獾算法在解決高維復雜問題時存在收斂精度低、穩定性較差的問題,本文提出一種多策略改進的蜜獾算法。該算法引入限制反向學習機制,提高種群質量與多樣性及算法尋優性能;引入自適應權重因子,協調全局搜索和局部開發,提升算法穩定性;設計一種新的饑餓搜索策略,防止算法陷入局部最優。為驗證本文提出的多策略改進算法的先進性,與經典智能優化算法、新型智能優化算法以及原HBA 進行比較,通過對不同算法不同維度在9 個測試函數上進行實驗,以及將多策略改進的蜜獾算法應用于機械設計優化問題,實驗結果表明,本文所提算法在原始HBA 算法的基礎上,提高了穩定性、收斂速度和收斂精度,可用于解決極復雜的高維問題,具有良好的應用價值。下一步將結合其他優化算法進行性能優化,并將MSHBA 應用于組合優化和圖像分割,例如車間調度、多級閾值分割等任務。