向海昀,李鴻鑫,符 曉,蘇小平
(1.西南石油大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,成都 610500;2.西南石油大學(xué) 網(wǎng)絡(luò)與信息化中心,成都 610500)
全局優(yōu)化問題存在于數(shù)學(xué)、醫(yī)學(xué)、經(jīng)濟(jì)、工程實(shí)踐等領(lǐng)域中。在實(shí)際問題中具有許多高維度、多極值、非線性等復(fù)雜全局優(yōu)化的情況。傳統(tǒng)優(yōu)化算法難以得到理想的優(yōu)化效果,而智能優(yōu)化算法則提供了優(yōu)化的解決方法。群體智能優(yōu)化算法搜索單元使用模擬的生物集體智能和社會智能進(jìn)行導(dǎo)航,是目前快速發(fā)展的一種智能技術(shù)[1-2]。典型的群體智能優(yōu)化算法有粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法[3]、遺傳算法(Genetic Algorithm,GA)[4]、哈里斯鷹優(yōu)化(Harris Hawks Optimization,HHO)算法[5]、正余弦 優(yōu)化算 法(SCA)[6]、鯨魚優(yōu) 化算法(Whale Optimization Algorithm,WOA)[7]等。
蜜獾算法(Honey Badger Algorithm,HBA)是HASHIM 等[8]提出的一種群體智能優(yōu)化算法,通過模擬蜜獾覓食行為進(jìn)行尋優(yōu),因其與其他算法仿真實(shí)驗(yàn)結(jié)果對比表現(xiàn)優(yōu)異,且算法結(jié)構(gòu)簡單,因此具有較好的研究價(jià)值。雖然HBA 已被證明在收斂速度和探索-開發(fā)平衡方面優(yōu)于模擬退火(Simulated Annealing,SA)算法、PSO 算法、蚱蜢優(yōu)化算法等,但是在解決高維復(fù)雜問題時(shí),其尋優(yōu)能力和穩(wěn)定性等仍需改進(jìn),可將其他策略與其相結(jié)合以提高算法性能。國內(nèi)外對HBA 算法在這些問題上的改進(jìn)研究較少。在對群體智能優(yōu)化算法改進(jìn)的領(lǐng)域中,研究人員常將隨機(jī)學(xué)習(xí)、反向?qū)W習(xí)、不同算法與所研究算法相結(jié)合,進(jìn)而提高原算法的尋優(yōu)性能。如董海等[9]提出一種結(jié)合差分進(jìn)化原則的蜜獾算法,增強(qiáng)算法的尋優(yōu)能力。劉琨等[10]在WOA 中引入精英反向?qū)W習(xí)策略初始化種群,以提高種群的質(zhì)量,利用縱橫交叉策略提高種群多樣性,防止算法陷入早熟。孟憲猛等[11]提出一種新的WOA,利用精英反向?qū)W習(xí)初始化種群,提高初始解的質(zhì)量,加入Lévy 飛行策略,精確搜索范圍,避免算法出現(xiàn)早熟。DENG[12]等將Lévy 飛行策略以及GA 中的算子與HBA 相結(jié)合,提高算法處理復(fù)雜工程問題時(shí)的尋優(yōu)能力。HAN等[13]提出將反向?qū)W習(xí)與混沌機(jī)制引入HBA,增強(qiáng)種群質(zhì)量,提高原算法的收斂速度。NASSEF 等[14]在HBA 中引入狩獵搜索策略進(jìn)而提高算法的尋優(yōu)能力,保持了勘探和開發(fā)階段平穩(wěn)過渡。LEI 等[15]提出螺旋搜索機(jī)制更新HBA 的勘探階段,從而提高算法全局搜索能力,引入準(zhǔn)余弦定律更新原算法中密度因子平衡不同階段的過渡,設(shè)計(jì)針孔成像策略,進(jìn)而提高種群多樣性。DüZENLI 等[16]利用高斯混沌映射處理HBA 中的關(guān)鍵隨機(jī)變量,提高算法搜索能力,加入對立學(xué)習(xí),使問題的搜索空間邊界根據(jù)對立學(xué)習(xí)中隨機(jī)和相反候選解的適應(yīng)度值而變化,避免算法陷入局部最優(yōu)。ALSHATHRI 等[17]將HBA 與二維Hénon 映射相結(jié)合,以提高算法的基本性能,引入基于量子的優(yōu)化技術(shù)用于提高算法搜索能力,平衡勘探和開發(fā)2 個(gè)階段的過渡。ABD ELAZIZ 等[18]在HBA 中引入Lévy 飛行策略,在醫(yī)學(xué)圖像領(lǐng)域加快特征選擇,有效平衡HBA 的不同尋優(yōu)階段。YASEAR等[19]在HBA 中加入反向?qū)W習(xí)機(jī)制,提高種群多樣性,用于解決電力消耗成本中的復(fù)雜問題。王梓辰等[20]提出一種自適應(yīng)動態(tài)WOA,引入自適應(yīng)慣性權(quán)重系數(shù)、非線性收斂因子,平衡全局與局部的過渡,引入廣義反向?qū)W習(xí)機(jī)制避免算法陷入早熟。研究人員提出一種基于混沌收斂因子和慣性權(quán)重的改進(jìn)WOA[21],利用混沌收斂因子和慣性權(quán)重更新算法尋優(yōu)路徑,對尋優(yōu)過程中最優(yōu)個(gè)體進(jìn)行多項(xiàng)式變異,避免算法陷入局部最優(yōu)。
針對HBA 算法存在的改進(jìn)空間,本文提出一種多策略改進(jìn)的蜜獾算法(MSHBA)。該算法在挖掘模式和蜂蜜模式不同尋優(yōu)路徑更新的基礎(chǔ)上引入限制反向?qū)W習(xí)機(jī)制,提高種群質(zhì)量,增強(qiáng)算法的尋優(yōu)性能,引入自適應(yīng)權(quán)重因子更新尋優(yōu)路徑,促進(jìn)不同搜索階段的平穩(wěn)過渡。提出一種新的饑餓搜索策略,進(jìn)一步增強(qiáng)算法跳出局部最優(yōu)的能力。
HBA 算法的模型是通過模擬蜜獾智能行為建立的,其通過模擬蜜獾捕食行為進(jìn)行尋優(yōu)。蜜獾種群大小為N,HBA 算法將種群在一定上下限范圍內(nèi)進(jìn)行隨機(jī)初始化,如式(1)所示:
其中:xi代表種群N中第i個(gè)蜜獾的位置;而uub,i和llb,i分別表示搜索區(qū)間的上界和下界;r1為[0,1]的隨機(jī)數(shù)。
蜜獾的捕食能力與第i只蜜獾的距離、獵物的集中強(qiáng)度和氣味強(qiáng)度有關(guān)。Ii是獵物的氣味強(qiáng)度。當(dāng)Ii增大時(shí),蜜獾速度隨之加快。Ii的具體定義如下:
其中:r2為[0,1]的隨機(jī)數(shù);S為獵物的集中強(qiáng)度;di表示獵物和第i只蜜獾之間的距離。
非線性密度因子α約束隨時(shí)間變化的尋優(yōu)路徑,使得算法演變過程更加穩(wěn)定。非線性密度因子α隨迭代次數(shù)減少,其定義如式(3)所示:
其中:tmax表示最大迭代次數(shù);C≥1(默認(rèn)值設(shè)為2)。
HBA 算法尋優(yōu)路徑分為挖掘模式和蜂蜜模式,這2 種模式具有不同的運(yùn)動軌跡。
1.4.1 挖掘模式
在挖掘模式中,蜜獾的行動軌跡類似心形,通過式(4)可以模擬行動路線軌跡:
其中:xnew代表個(gè)體的新位置;xprey代表獵物在環(huán)境中的最佳位置;β≥1(默認(rèn)值為6)反映蜜獾個(gè)體對于食物的獲取能力;F1作為搜索方向不斷改變的標(biāo)志;r3、r4和r5表示0~1 之間3 個(gè)隨機(jī)的取值。F1的定義如式(5)所示:
其中:r6屬于0~1 的隨機(jī)數(shù)。
蜜獾在挖掘模式中的搜索路徑主要受獵物的距離di、獵物的嗅覺強(qiáng)度Ii和非線性密度因子α的影響。
1.4.2 蜂蜜模式
在蜂蜜模式中,蜜獾改變尋優(yōu)路徑,跟隨蜂蜜向?qū)B到達(dá)目標(biāo)蜂巢,其路線軌跡的模擬如式(6)所示:
其中:r7為0~1 的隨機(jī)數(shù);α和F1由式(3)和式(5)確定。在該階段,蜜獾的尋優(yōu)路徑與獵物和第i只蜜獾之間的距離di、獵物的最佳位置xprey以及α有關(guān),蜜獾在xprey附近進(jìn)行探索。
在實(shí)驗(yàn)中發(fā)現(xiàn)原HBA 算法在解決高維復(fù)雜問題中存在收斂速度慢、難以有效尋優(yōu)等問題。通過分析發(fā)現(xiàn),非線性密度因子α隨著迭代次數(shù)增加而減少,在迭代中期,當(dāng)α的系數(shù)C默認(rèn)為2 時(shí),α將降為1,密度因子較低影響全局尋優(yōu)能力,算法容易陷入早熟。
為解決以上問題,本文通過加入限制反向?qū)W習(xí)機(jī)制以增強(qiáng)種群質(zhì)量、多樣性,加入自適應(yīng)權(quán)重因子以平衡全局和局部搜索,提升算法尋優(yōu)性能、穩(wěn)定性,加入饑餓搜索策略,增強(qiáng)算法搜索能力。本文基于以上對HBA 算法的改進(jìn),提出一種多策略改進(jìn)的蜜獾算法。
在蜜獾算法中,蜜獾個(gè)體以獵物的氣味強(qiáng)度以及獵物距離和隨時(shí)間變化的非線性密度因子α為導(dǎo)向,通過迭代不斷尋找最優(yōu)解,但是當(dāng)最優(yōu)解為非全局最優(yōu)解時(shí),算法尋優(yōu)結(jié)果錯(cuò)誤使得算法陷入早熟。針對算法早熟問題,李安東等[22]將精英反向?qū)W習(xí)策略加入到優(yōu)化算法中,提高種群質(zhì)量。通過比較原解與反向?qū)W習(xí)生成的反向解,選擇更優(yōu)個(gè)體繼續(xù)加入種群,使種群范圍得到擴(kuò)大[23]。本文在挖掘模式和蜂蜜模式不同路徑更新的基礎(chǔ)上引入限制反向?qū)W習(xí)機(jī)制,在算法迭代時(shí),對當(dāng)前的種群個(gè)體進(jìn)行限制反向?qū)W習(xí),生成新的限制反向解,提升解的質(zhì)量,增加種群多樣性,加快算法收斂速度。限制反向?qū)W習(xí)機(jī)制表達(dá)式如式(7)所示:
限制反向?qū)W習(xí)機(jī)制相比于反向?qū)W習(xí),解的上下限隨迭代次數(shù)變化且限制了反向解越過邊界。相比反向?qū)W習(xí)機(jī)制,限制反向?qū)W習(xí)機(jī)制進(jìn)一步優(yōu)化種群質(zhì)量,使得在增加種群多樣性的基礎(chǔ)上,加快了算法的收斂速度。
在粒子群算法中,慣性權(quán)重是其中重要的參數(shù)之一,當(dāng)慣性權(quán)重較小時(shí),算法搜索范圍更精細(xì),當(dāng)慣性權(quán)重較大時(shí),算法搜索范圍更大[24]。考慮到捕獵過程中獵物目標(biāo)對蜜獾位置更新的影響以及自適應(yīng)權(quán)重因子可有效平衡算法在不同階段的搜索能力,本文提出一種自適應(yīng)權(quán)重因子,如式(8)所示:
其中:t為當(dāng)前迭代次數(shù);tmax為最大迭代數(shù)。
引入自適應(yīng)權(quán)重因子,HBA 中挖掘模式和蜂蜜模式搜索路線的式(4)和式(6)分別更新為式(9)和式(10):
ω隨著迭代次數(shù)的增加,其值呈非線性增加。在算法迭代初期自適應(yīng)權(quán)重因子的值較小,目標(biāo)位置模糊,對原蜜獾算法中挖掘模式和蜂蜜模式搜索路線的更新影響不大;在算法迭代的中后期,目標(biāo)逐漸清晰,此時(shí)自適應(yīng)權(quán)重因子的值隨迭代次數(shù)的增加逐漸變大,目標(biāo)對蜜獾個(gè)體的吸引更強(qiáng),自適應(yīng)權(quán)重因子增強(qiáng)了局部開發(fā)的能力,使得蜜獾能夠在算法迭代的中后期更快地找到目標(biāo)解。加入自適應(yīng)權(quán)重因子能夠促進(jìn)算法全局和局部搜索平穩(wěn)過渡,提升算法尋優(yōu)性能和穩(wěn)定性。
在蜂蜜搜索階段,蜜獾在目前發(fā)現(xiàn)的獵物位置xprey附近進(jìn)行搜索。在算法迭代的中后期,算法可能出現(xiàn)早熟情況,由哈里斯鷹優(yōu)化算法中的逃逸能量理論得到啟發(fā),本文提出一種新的饑餓搜索策略。在算法尋優(yōu)過程中,當(dāng)蜜獾表現(xiàn)出能量較低、適應(yīng)度較差時(shí),蜜獾處于饑餓狀態(tài),通過改變蜜獾的尋優(yōu)路徑增強(qiáng)搜索能力,從而避免算法陷入局部最優(yōu)。在蜂蜜模式中,當(dāng)蜜獾種群數(shù)量迭代超過1/2 時(shí),引入饑餓搜索策略對原蜜獾尋優(yōu)路徑進(jìn)行改變。
饑餓搜索策略表達(dá)式如下:
其中:xworse表示全局最差的位置;xi為當(dāng)前種群個(gè)體的位置。
饑餓搜索策略基于全局最差位置對原搜索路徑進(jìn)行改進(jìn),在蜜獾處于饑餓狀態(tài)時(shí),使其在原搜索路徑的基礎(chǔ)上實(shí)現(xiàn)更廣泛的搜索,增強(qiáng)跳出局部最優(yōu)的能力。
綜上所述,MSHBA 執(zhí)行步驟采用偽代碼表述,如算法1 所示。
算法1MSHBA 算法
本文分 別選取PSO[3]、GA[4]、HHO[5]、SCA[6]、WOA[7]以及HBA、MSHBA 進(jìn)行仿真實(shí)驗(yàn)分析。為直接對比各算法性能,本文將所選取各算法的最大迭代次數(shù)均設(shè)為500,種群數(shù)量均設(shè)為30,算法維度分別為30、200、500,算法具體參數(shù)如表1 所示。
表1 算法仿真實(shí)驗(yàn)參數(shù)Table 1 Simulation experiment parameters of algorithms
為測試本文所提的MSHBA 與原HBA、WOA 等算法的性能差異,本文選用9 個(gè)測試函數(shù)進(jìn)行仿真對比實(shí)驗(yàn),其中F1~F4為單峰函數(shù),F(xiàn)5~F7為不定維多峰函數(shù),F(xiàn)8~F9為固定維多峰函數(shù)。該實(shí)驗(yàn)采用標(biāo)準(zhǔn)差值(Std)、平均值(Mean)和最優(yōu)值(Best)作為評價(jià)指標(biāo)[25],進(jìn)而分析各算法的性能差別。具體測試函數(shù)信息如表2 所示。
表2 測試函數(shù)及具體信息Table 2 Test functions and specific information
本文使用MATLAB 仿真軟件對每個(gè)函數(shù)在不同算法的應(yīng)用下進(jìn)行30 次實(shí)驗(yàn),得出與各算法對應(yīng)不同函數(shù)評價(jià)指標(biāo)的結(jié)果,如表3所示,加粗表示最優(yōu)數(shù)據(jù)。所測試算法在各函數(shù)200 維度上的收斂曲線如圖1 所示。
圖1 在維度為200 時(shí)各算法的收斂曲線Fig.1 Convergence curves of each algorithms at dimension 200
表3 MSHBA 與對比算法在不同函數(shù)和維度上的優(yōu)化性能指標(biāo)Table 3 Optimization performance indicators of MSHBA and comparison algorithms on different functions and dimensions
從同一維度測試函數(shù)F1~F4的仿真結(jié)果可以看出,MSHBA 在算法的收斂精度和穩(wěn)定性上都表現(xiàn)出比PSO、GA、HHO、SCA、WOA 以及HBA 更好的性能。在F1中,僅有MSHBA 取得了理論最優(yōu)值,雖然HBA 同樣表現(xiàn)出良好的穩(wěn)定性,但在尋優(yōu)精度上明顯不足,MSHBA 改進(jìn)了其尋優(yōu)性能。在F2~F4測試結(jié)果中,MSHBA 在所測算法中的各評價(jià)指標(biāo)均達(dá)到了最佳,相比HBA 和WOA 等算法提高了多個(gè)數(shù)量級,說明MSHBA 具有更優(yōu)的穩(wěn)定性和尋優(yōu)能力。在F5、F6和F7測試結(jié)果 中,所 測HHO、HBA、MSHBA 算法尋優(yōu)能力差異不大,均表現(xiàn)出了相對其他測試算法更優(yōu)的穩(wěn)定性。特別是在F6測試結(jié)果中,所測算法在尋優(yōu)時(shí)都沒能找到全局最優(yōu),但是從收斂精度分析,HBA、MSHBA、HHO 均表現(xiàn)出遠(yuǎn)優(yōu)于其他測試算法的收斂精度。在F8測試結(jié)果中,HHO、HBA、MSHBA 均表現(xiàn)出優(yōu)異的尋優(yōu)能力,就穩(wěn)定性而言,MSHBA 對比原HBA 算法有較大的提升,平均值最接近表現(xiàn)最好的HHO。在F9測試結(jié)果中,多個(gè)測試算法均達(dá)到最優(yōu)值,MSHBA 對原HBA算法穩(wěn)定性有了更好的優(yōu)化。
在維度為30~500 的變化過程中,所測試算法的尋優(yōu)性能均有所下降,在單峰測試函數(shù)F1~F4測試結(jié)果中,即使算法維度達(dá)到500,MSHBA 依然表現(xiàn)出最優(yōu)的尋優(yōu)能力和穩(wěn)定性。在不定維多峰函數(shù)測試結(jié)果中,F(xiàn)5和F7測試結(jié)果表示,隨著維度增大,MSHBA 與HBA、HHO 依然可以得到全局最優(yōu)解。在F6中,SCA 等算法隨著維度增加,尋優(yōu)性能有所下降,MSHBA 則依然可以保持較優(yōu)的尋優(yōu)性能。但是所測算法均未得出最優(yōu)解,MSHBA 相較于HBA表現(xiàn)更優(yōu)的穩(wěn)定性。
本文基于HBA 提出3 種不同的改進(jìn)策略,分別為限制反向?qū)W習(xí)機(jī)制、自適應(yīng)權(quán)重因子、饑餓搜索策略。為研究3 種單一策略以及混合策略對原HBA 尋優(yōu)性能的影響,本文基于5 種算法對上述9 個(gè)測試函數(shù)進(jìn)行仿真實(shí)驗(yàn)分析。將HBA、MSHBA 與只采用限制反向?qū)W習(xí)機(jī)制的HBA(記作HBA-1)、只采用自適應(yīng)權(quán)重因子的HBA(記作HBA-2)、只采用饑餓搜索策略的HBA(記作HBA-3)進(jìn)行對比,5 種算法參數(shù)設(shè)置與表1 中HBA 參數(shù)設(shè)置相同,5 種算法在測試函數(shù)維度為30 時(shí)的尋優(yōu)性能結(jié)果如表4 所示。
表4 在維度為30 時(shí)不同算法性能對比Table 4 Performance comparison among different algorithms at dimension 30
從表4 可以看出,MSHBA 對HBA 尋優(yōu)性能的改進(jìn)比單一策略的改進(jìn)效果更明顯,對比原HBA,所有策略都能對其進(jìn)行有效改進(jìn),其中HBA-3 改進(jìn)效果略差,HBA-1和HBA-2對HBA 均有較優(yōu)的改進(jìn)效果。
綜上所述,MSHBA 在單峰函數(shù)性能測試中,表現(xiàn)出最佳的收斂精度和穩(wěn)定性。在不定維多峰函數(shù)性能測試中,MSHBA 同樣具有較優(yōu)的尋優(yōu)性能。在固定維多峰函數(shù)性能測試中,MSHBA 提升了原HBA 的算法穩(wěn)定性。對比單一改進(jìn)策略,MSHBA表現(xiàn)出更佳的性能。
針對工程設(shè)計(jì)與應(yīng)用領(lǐng)域中常出現(xiàn)數(shù)值約束問題,傳統(tǒng)的尋優(yōu)方法(如梯度下降法)效率低、極易陷入局部最優(yōu),且難以解決更高維以及非線性的數(shù)值優(yōu)化問題。本文將MSHBA 算法用于機(jī)械設(shè)計(jì)問題的優(yōu)化,進(jìn)而對算法的可行性做進(jìn)一步檢驗(yàn)[26]。本文主要優(yōu)化的機(jī)械設(shè)計(jì)問題是活塞桿設(shè)計(jì)問題。將粒子群優(yōu)化算法、鯨魚優(yōu)化算法、遺傳算法、正余弦優(yōu)化算法、蜜獾算法以及MSHBA 應(yīng)用于活塞桿設(shè)計(jì)問題優(yōu)化,并進(jìn)行仿真實(shí)驗(yàn)。各算法具體參數(shù)如表1 所示,種群數(shù)量均為50,最大迭代次數(shù)均為1 000,每個(gè)算法獨(dú)立運(yùn)行30 次后取平均值。
優(yōu)化活塞桿設(shè)計(jì)問題的主要目的是在活塞桿從0°提升至45°時(shí),通過最小化油量定位活塞部件H、B、D和X,如圖2所示。
圖2 活塞桿結(jié)構(gòu)問題Fig.2 Structure problem of piston rod
該活塞桿設(shè)計(jì)的數(shù)學(xué)模型如下:
這些不等式約束考慮了力平衡、杠桿的最大彎矩、最小活塞行程、幾何條件等。表5 所示為MSHBA 和其他測試算法獲得的最佳解決方案,據(jù)此可知,MSHBA 獲得的函數(shù)最優(yōu)解[H,B,D,X]=[0.05,2.05,4.09,119.95],f(H,B,D,X)=8.45,表 明MSHBA 獲得最小油量,對比原算法其性能提高了88%。圖3 所示為測試算法求解活塞桿設(shè)計(jì)問題的收斂曲線,證明MSHBA 能夠快速找到活塞桿設(shè)計(jì)難題的最佳解決方案。
圖3 測試算法求解活塞桿設(shè)計(jì)問題的收斂曲線Fig.3 Convergence curves of testing algorithms for piston rod design problem
表5 活塞桿設(shè)計(jì)問題中各算法的優(yōu)化結(jié)果對比Table 5 Comparison of optimization results of various algorithms in piston rod design problem
針對蜜獾算法在解決高維復(fù)雜問題時(shí)存在收斂精度低、穩(wěn)定性較差的問題,本文提出一種多策略改進(jìn)的蜜獾算法。該算法引入限制反向?qū)W習(xí)機(jī)制,提高種群質(zhì)量與多樣性及算法尋優(yōu)性能;引入自適應(yīng)權(quán)重因子,協(xié)調(diào)全局搜索和局部開發(fā),提升算法穩(wěn)定性;設(shè)計(jì)一種新的饑餓搜索策略,防止算法陷入局部最優(yōu)。為驗(yàn)證本文提出的多策略改進(jìn)算法的先進(jìn)性,與經(jīng)典智能優(yōu)化算法、新型智能優(yōu)化算法以及原HBA 進(jìn)行比較,通過對不同算法不同維度在9 個(gè)測試函數(shù)上進(jìn)行實(shí)驗(yàn),以及將多策略改進(jìn)的蜜獾算法應(yīng)用于機(jī)械設(shè)計(jì)優(yōu)化問題,實(shí)驗(yàn)結(jié)果表明,本文所提算法在原始HBA 算法的基礎(chǔ)上,提高了穩(wěn)定性、收斂速度和收斂精度,可用于解決極復(fù)雜的高維問題,具有良好的應(yīng)用價(jià)值。下一步將結(jié)合其他優(yōu)化算法進(jìn)行性能優(yōu)化,并將MSHBA 應(yīng)用于組合優(yōu)化和圖像分割,例如車間調(diào)度、多級閾值分割等任務(wù)。