摘要:針對(duì)原始蜣螂優(yōu)化算法(dung beetle optimizer, DBO)容易陷入局部最優(yōu),收斂精度不夠等問(wèn)題,提出一種混合策略改進(jìn)的蜣螂優(yōu)化算法(TDBO)。運(yùn)用Tent 混沌映射策略初始化種群,使得初始蜣螂的位置分布更加均勻,提高種群的多樣性;在蜣螂繁衍階段使用自適應(yīng)慣性權(quán)重,提升尋優(yōu)能力;在蜣螂偷竊行為公式中引入萊維飛行,提高算法的搜索能力,使算法跳出局部最優(yōu),平橫搜索多樣性與收斂準(zhǔn)確性之間的關(guān)系。在9 個(gè)測(cè)試函數(shù)上分別與基礎(chǔ)DBO 算法、4 種對(duì)比算法以及單一策略改進(jìn)的DBO 算法進(jìn)行比較,并通過(guò)Wilcoxon 秩和檢驗(yàn)驗(yàn)證TDBO 算法的性能。結(jié)果證明,TDBO 算法在多個(gè)函數(shù)上速度和精度優(yōu)于對(duì)比算法,并具有顯著性差異。通過(guò)基準(zhǔn)函數(shù)的測(cè)試、Wilcoxon 秩和檢驗(yàn),以及3 個(gè)工程優(yōu)化問(wèn)題的驗(yàn)證,TDBO 算法具有較優(yōu)的收斂精度和速度。
關(guān)鍵詞:蜣螂優(yōu)化算法;Tent 混沌映射;自適應(yīng)慣性權(quán)重;萊維飛行
中圖分類號(hào):TP 301 文獻(xiàn)標(biāo)志碼:A
蜣螂優(yōu)化算法(dung beetle optimizer,DBO)[1]作為2022 年提出的一種新型元啟發(fā)算法,其靈感來(lái)源于蜣螂的滾球、跳舞、覓食、偷竊和繁殖行為。與灰狼優(yōu)化算法( GWO) [2]、鯨魚(yú)優(yōu)化算法(WOA)[3] 等其他學(xué)習(xí)算法相比,DBO 算法在基準(zhǔn)函數(shù)上具有更強(qiáng)的優(yōu)化能力和更快的效率。但是,DBO 算法和大部分智能算法一樣,在后期迭代中,很容易陷入局部最優(yōu)。為了進(jìn)一步提升DBO算法的性能,本文對(duì)該算法進(jìn)行了研究改進(jìn)。
對(duì)于類似的元啟發(fā)式算法,已經(jīng)有很多學(xué)者對(duì)各種算法的精度、速度和魯棒性等進(jìn)行優(yōu)化改進(jìn)。王娟等[4] 使用Tent 混沌映射增加了算法種群的多樣性,有效提高了海鷗算法的求解精度和速度;Wang 等[5] 在螢火蟲(chóng)算法(FA)中引入慣性權(quán)重,平衡了FA 的收斂速度和局部尋優(yōu)能力,提升了算法的精度和速度;趙青杰等[6]應(yīng)用動(dòng)態(tài)自適應(yīng)慣性權(quán)重有效提升了算法局部和全局搜索能力;李陽(yáng)等[7] 在算法中引入萊維飛行策略,擴(kuò)大了種群的搜索范圍,一定程度上優(yōu)化了算法的性能;鄔貴昌等[8] 在麻雀算法中也使用了萊維飛行策略,有效提升了算法的尋優(yōu)精度和穩(wěn)定性。
本文針對(duì)DBO 算法的精度和收斂速度進(jìn)行了優(yōu)化改進(jìn),提出了混合策略改進(jìn)的蜣螂優(yōu)化算法(TDBO),從3 個(gè)方面對(duì)DBO 算法作出改進(jìn):采用Tent 混沌映射策略使初始蜣螂種群在搜索空間中分布得更加均勻,以此增加種群多樣性;引入自適應(yīng)慣性權(quán)重改進(jìn)蜣螂繁衍公式,提升算法尋優(yōu)能力;在蜣螂偷竊行為公式中引入萊維飛行,產(chǎn)生隨機(jī)步長(zhǎng),為解增加一個(gè)擾動(dòng)量,提高算法的搜索能力,使算法跳出局部最優(yōu)。通過(guò)上述3 方面的改進(jìn),在基于9 個(gè)經(jīng)典基準(zhǔn)測(cè)試函數(shù)上進(jìn)行測(cè)試, 且進(jìn)行Wilcoxon 秩和檢驗(yàn),并通過(guò)3 個(gè)工程優(yōu)化問(wèn)題的驗(yàn)證。實(shí)驗(yàn)結(jié)果證明了TDBO 算法在性能上的優(yōu)越性。
1 蜣螂優(yōu)化算法介紹
蜣螂優(yōu)化算法是基于蜣螂的滾球、跳舞、覓食、偷竊和繁殖行為而提出的一種元啟發(fā)式算法,主要包括蜣螂滾球、覓食、繁衍、偷竊4 個(gè)優(yōu)化過(guò)程。
1.1 蜣螂滾球
a. 無(wú)障礙模式。
當(dāng)蜣螂前行無(wú)障礙時(shí),蜣螂在滾動(dòng)過(guò)程中通過(guò)太陽(yáng)來(lái)導(dǎo)航,以保持糞球在直線上滾動(dòng)。滾球蜣螂的位置更新如式(1) 所示。
式中:t表示當(dāng)前迭代次數(shù);xti表示第t次迭代時(shí)第 i只蜣螂的位置信息;k∈(0,0.2]是一·個(gè)常數(shù)量,表 示偏轉(zhuǎn)系數(shù),本文取0.1; b是屬于(0,1)的常數(shù) 值,本文取0.3;α是自然系數(shù),取1或-1,當(dāng) α取1時(shí)表示無(wú)偏差,取-1時(shí)表示偏離原來(lái)方 向,α的具體取值根據(jù)概率方法確定,用來(lái)模擬復(fù) 雜的環(huán)境;xw表示全局最差位置;Δx是蜣螂當(dāng)前 位置與全局最差位置的絕對(duì)距離,用以模擬光強(qiáng) 度變化,越大表示光源越弱,該參數(shù)可以提升算 法搜索的性能,盡可能地使算法探索整個(gè)空間。
b. 跳舞。
當(dāng)蜣螂遇到障礙物而無(wú)法前進(jìn)時(shí),它會(huì)通過(guò)跳舞來(lái)重新定向自己,以獲得新的路線。因此,蜣螂的位置更新如式(2)所示。
2.3 萊維飛行
萊維飛行[12] 是通過(guò)隨機(jī)交替大、小步長(zhǎng)使得算法跳出局部最優(yōu)的方法。由上述偷竊蜣螂的更新公式可以發(fā)現(xiàn),其搜索步長(zhǎng)是固定的,因此算法可能會(huì)陷入局部最優(yōu)的情況。引入萊維飛行后可以避免搜索空間的逐步縮小,使算法跳出局部最優(yōu)解。改進(jìn)后的蜣螂偷竊位置更新函數(shù)如式(10)所示。
式中:y符合萊維分布。
因?yàn)槿R維飛行過(guò)程的復(fù)雜性, 所以使用Mantegna算法模擬其過(guò)程[13], y步長(zhǎng)大小的公式如下:
式中,Γ為Gamma函數(shù),參數(shù)β= 1.5。
2.4 算法流程
a. 算法參數(shù)初始化,如:種群數(shù)量,空間維度和最大迭代次數(shù)等;
b. 種群初始化,通過(guò)式(6)的tent 混沌映射,得到初始化蜣螂位置;
c. 計(jì)算種群的適應(yīng)度值,獲得最優(yōu)個(gè)體;
d. 通過(guò)式(1)或(2)更新滾球蜣螂的位置;通過(guò)式(9)更新繁衍蜣螂的位置;通過(guò)式(4)更新覓食蜣螂的位置; 通過(guò)式( 10) 更新偷竊蜣螂的位置;
e. 更新蜣螂種群信息,找出并保存適應(yīng)度最優(yōu)的蜣螂位置;
f. 當(dāng)滿足迭代條件時(shí),輸出算法最優(yōu)結(jié)果,否則繼續(xù)進(jìn)行從d~f的流程。
2.5 時(shí)間復(fù)雜度分析
假設(shè)DBO算法的種群大小為N,空間維度為 M,那么該算法的初始化時(shí)間復(fù)雜度為O(1),計(jì) 算適應(yīng)度為〇(N),總的迭代過(guò)程的復(fù)雜度為 O(NM),DBO算法總的時(shí)間復(fù)雜度為
O(1)+O(N)+O(NM) = O(NM)
在TDBO 算法中,Tent 混沌映射的初始化時(shí)間復(fù)雜度為O(NM),計(jì)算適應(yīng)度為 O(N),萊維飛行和自適應(yīng)慣性權(quán)重對(duì)位置更新的時(shí)間復(fù)雜度分別為O(NM) ,總的迭代過(guò)程的復(fù)雜度為O(NM),TDBO 算法總的時(shí)間復(fù)雜度為
O(NM)+O(N)+O(NM)+O(NM)+O(NM) = O(NM)
綜上所述,TDBO 算法的時(shí)間復(fù)雜度并沒(méi)有提升。
3 實(shí)驗(yàn)結(jié)果分析
本文將從以下3 個(gè)部分進(jìn)行實(shí)驗(yàn)驗(yàn)證:a. 將TDBO 算法與GWO 算法、麻雀搜索算法(SSA)[14]、WOA 算法、北方蒼鷹優(yōu)化算法(NGO)[15] 和DBO算法這5 個(gè)基本元啟發(fā)式算法進(jìn)行對(duì)比, 驗(yàn)證TDBO 算法的尋優(yōu)能力和魯棒性; b. 將TDBO 算法與單獨(dú)策略改進(jìn)型的DBO 算法進(jìn)行比較,驗(yàn)證不同改進(jìn)策略的有效性; c. 采用Wilcoxon 秩和檢驗(yàn)的方法驗(yàn)證TDBO 算法與對(duì)比算法的差異性。
如表1 所示,本文選取了多個(gè)常用的基準(zhǔn)測(cè)試函數(shù)。其中,F(xiàn)1~F5 為多維單峰值函數(shù),F(xiàn)6 和F7 為多峰函數(shù),F(xiàn)8 和F9 為固定維度多峰函數(shù)。為了避免實(shí)驗(yàn)的隨機(jī)性,算法的最大迭代次數(shù)設(shè)置為500,種群規(guī)模大小均設(shè)為30,每個(gè)算法依據(jù)相應(yīng)的參考文獻(xiàn)設(shè)置其他的參數(shù)。
3.1 與其他基準(zhǔn)算法進(jìn)行對(duì)比
為了驗(yàn)證改進(jìn)后DBO 算法的收斂性以及穩(wěn)定性, 將本文提出的TDBO 算法與WOA, GWO,SSA,NGO,DBO 算法在9 個(gè)基準(zhǔn)測(cè)試函數(shù)上進(jìn)行對(duì)比實(shí)驗(yàn)。
各個(gè)算法在上述函數(shù)上都獨(dú)立運(yùn)行30 次,避免一次運(yùn)行結(jié)果的偶然性。每個(gè)算法所得數(shù)據(jù)的平均值和標(biāo)準(zhǔn)差如表2 所示。
從表2 可以看出, 在多維單峰值函數(shù)F1~F5 中,TDBO 函數(shù)的性能遠(yuǎn)優(yōu)于其他對(duì)比函數(shù),并且除了F4 函數(shù),其他均達(dá)到了理論最優(yōu)值。在多峰函數(shù)F6~F7 中,TDBO 算法也展現(xiàn)了不錯(cuò)的性能,均達(dá)到了理論最優(yōu)值。其中的F6 和F7 函數(shù),SSA 和NGO 算法也都達(dá)到理論最優(yōu),無(wú)法比較TDBO 算法與這兩者的性能,但是相對(duì)于未改進(jìn)的初始DBO 算法,TDBO 算法的性能均有較大提升。在固定多峰值函數(shù)F8 和F9 中,TDBO算法相較于基礎(chǔ)DBO 算法均有所改善,但是在F8 函數(shù)中,無(wú)法比較與SSA 算法的性能;在F9 函數(shù)中,性能不及NGO 算法和SSA 算法。
3.2 算法收斂曲線對(duì)比分析
本文給出了算法在上述測(cè)試函數(shù)上的曲線收斂圖,用來(lái)直觀地比較TDBO 算法和對(duì)比算法的收斂速度。
由圖1 可知,在多維單峰值函數(shù)F1~F5 和多峰值函數(shù)F6~F7 中,TDBO 算法的收斂速度和精度明顯高于其他對(duì)比算法。說(shuō)明TDBO 算法具有較好的性能并且可以跳出局部極值點(diǎn),收斂到最優(yōu)值。在固定多峰函數(shù)F8 上,TDBO 算法相對(duì)于對(duì)比算法也展現(xiàn)出了極快的收斂速度。雖然在F9 上精度和速度略低于NGO 算法和SSA 算法,但是相對(duì)于未改進(jìn)的DBO 算法,TDBO 算法的精度和速度均有所提升。
3.3 消融實(shí)驗(yàn)
通過(guò)將TDBO 算法與基于Tent 映射改進(jìn)的DBO1 算法、融合萊維飛行的DBO2 算法和融合自適應(yīng)慣性權(quán)重的DBO3 算法在9 個(gè)測(cè)試函數(shù)中作性能比較,進(jìn)一步研究單個(gè)改進(jìn)策略的有效性,實(shí)驗(yàn)結(jié)果見(jiàn)表3。
由表3 可知,在函數(shù)F1~F4 和F8 中TDBO 算法的性能均優(yōu)于單一策略改進(jìn)的DBO 算法和基本DBO 算法。在函數(shù)F5 中,TDBO 算法尋優(yōu)精度和DBO2 算法相同,在F6 中,TDBO 算法的精度和DBO2, DBO3 算法相同,都達(dá)到了理論最優(yōu)值。在F7 中,TDBO,DBO1 和DBO2 算法均到達(dá)最優(yōu)值。在F9 中,DBO2 算法展現(xiàn)出了最優(yōu)的性能。在所有的函數(shù)中,單一策略改進(jìn)的DBO 算法和多策略改進(jìn)的TDBO 算法均優(yōu)于基本DBO 算法。由此可知,經(jīng)過(guò)3 種改進(jìn)策略的TDBO 算法,尋優(yōu)精度和魯棒性明顯優(yōu)于單一策略改進(jìn)的算法,能夠有效彌補(bǔ)單一策略的不足,從而最大限度地提升基本DBO 算法的性能。
3.4 Wilcoxon 秩和檢驗(yàn)
為了驗(yàn)證TDBO 算法相較于對(duì)比算法的優(yōu)越性,運(yùn)用Wilcoxon 秩和檢驗(yàn)[16] 的方法來(lái)進(jìn)行驗(yàn)證,顯著性水平p設(shè)置為5%。將算法對(duì)立運(yùn)行的30 次結(jié)果進(jìn)行統(tǒng)計(jì)檢驗(yàn),當(dāng)p值小于5% 的情況下,說(shuō)明兩種算法顯著性明顯,否則兩種算法之間的性能相差不大。當(dāng)TDBO 算法與對(duì)比算法得到的實(shí)驗(yàn)數(shù)據(jù)相差不大時(shí),說(shuō)明兩個(gè)算法之間性能相當(dāng),則Wilcoxon 秩和檢驗(yàn)的結(jié)果表示為NaN。
由表4 可知, TDBO 算法和GWO 算法在F9上性能顯著性差異不明顯;和SSA 算法在測(cè)試函數(shù)F6~ F8 上性能相當(dāng); 和WOA 算法在F6 和F9 上性能沒(méi)有顯著性差異;和NGO 算法在函數(shù)F6~F7 上性能相當(dāng),和DBO 算法在F6,F(xiàn)7 和F9上性能沒(méi)有顯著性差異。除此之外,其余值均小于5%??傮w看來(lái),本文提出的TDBO 算法相較于其他對(duì)比算法具有顯著性差異。
4 工程優(yōu)化問(wèn)題應(yīng)用
4.1 壓力容器設(shè)計(jì)問(wèn)題描述
壓力容器設(shè)計(jì)問(wèn)題是在4 個(gè)約束條件下使得總成本最小。它包括4 個(gè)變量,分別為殼體厚度x1、封頭厚度x2、殼體半徑 x3以及圓柱形截面長(zhǎng)度,其具體數(shù)學(xué)模型如下所示。
目標(biāo)函數(shù):
如表5 所示,在壓力容器設(shè)計(jì)問(wèn)題優(yōu)化中,TDBO 算法求解出的最優(yōu)值是6 種算法之中最小的,說(shuō)明TDBO 算法在求解該工程設(shè)計(jì)問(wèn)題時(shí)具有較好的性能。
4.2 懸臂梁設(shè)計(jì)問(wèn)題描述
懸臂梁設(shè)計(jì)問(wèn)題是在滿足開(kāi)口端垂直位移上限的條件下使得懸臂梁的重量最小化。x1,x2,x3, x4, x5分別表示5 個(gè)空心方塊的長(zhǎng)度,具體數(shù)學(xué)模型如下所示。
目標(biāo)函數(shù):
min f (x) = 0.06224(x1 + x2 + x3 + x4 + x5)
約束條件:
如表6 所示,TDBO 算法的最優(yōu)值以較小的優(yōu)勢(shì)達(dá)到最小。相較于初始DBO 算法,尋優(yōu)結(jié)果得到了較好的改善。
4.3 工字鋼設(shè)計(jì)問(wèn)題描述
工字鋼結(jié)構(gòu)設(shè)計(jì)問(wèn)題是通過(guò)調(diào)整其長(zhǎng)和高以及兩個(gè)厚度來(lái)達(dá)到最小的垂直撓度。其具體數(shù)學(xué)模型如下所示。
目標(biāo)函數(shù):
如表7 所示,除了GWO 算法和WOA 算法的最優(yōu)值稍差之外,其余4 個(gè)算法達(dá)到了相同的最優(yōu)值。以此得出,改進(jìn)后的TDBO 算法并未降低初始DBO 算法的性能。
5 結(jié) 論
根據(jù)DBO 算法易陷入局部最優(yōu),可能存在收斂精度不夠的問(wèn)題。本文依據(jù)Tent 映射策略、自適應(yīng)慣性群權(quán)重和萊維飛行策略,提出一種混合策略改進(jìn)的蜣螂優(yōu)化算法(TDBO),從而有效提高了算法的搜索能力,使算法較容易跳出局部最優(yōu),更好地平衡搜索多樣性與收斂準(zhǔn)確性之間的關(guān)系。在9 個(gè)基準(zhǔn)測(cè)試函數(shù)上進(jìn)行實(shí)驗(yàn),并與GWO,SSA, WOA, NGO 和DBO 算法進(jìn)行對(duì)比得出,TDBO 算法的收斂速度、精度和魯棒性都表現(xiàn)較好,且通過(guò)秩和檢驗(yàn)證明了TDBO算法與其他算法具有差異性。最后,在3 個(gè)工程優(yōu)化問(wèn)題中,TDBO 算法也取得了不錯(cuò)的效果。當(dāng)然,算法的改進(jìn)策略不局限于本文所提出的幾種方法。未來(lái)的研究,一方面會(huì)嘗試更多的改進(jìn)策略,另一方面也會(huì)把TDBO算法用于解決實(shí)際問(wèn)題,如深度神經(jīng)網(wǎng)絡(luò)的超參數(shù)優(yōu)化、路徑優(yōu)化等。
參考文獻(xiàn):
[1] XUE J K, SHEN B. Dung beetle optimizer: a new metaheuristic algorithm for global optimization[J]. The Journal of Supercomputing, 2023, 79(7): 7305-7336.
[2] MIRJALILI S, MIRJALILI S M, LEWIS A. Grey wolf optimizer[J]. Advances in Engineering Software, 2014, 69: 46-61.
[3] MIRJALILI S, LEWIS A. The whale optimization algorithm[J]. Advances in Engineering Software, 2016, 95: 51-67.
[4] 王娟,秦江濤.混沌映射與f-分布變異策略改進(jìn)的海鷗優(yōu) 化算法[J].計(jì)算機(jī)應(yīng)用研究,2022,39(1):170-176,182.
[5] WANG W C, XU L, CHAU K W, et al. Yin-Yang firefly algorithm based on dimensionally Cauchy mutation[J]. Expert Systems with Applications, 2020, 150: 113216.
[6] 趙青杰,李捷,于俊洋,等.基于動(dòng)態(tài)自適應(yīng)權(quán)重和柯西 變異的蝙蝠優(yōu)化算法[J].計(jì)算機(jī)科學(xué),2019, 46(S1): 89-92.
[7] 李陽(yáng),李維剛,趙云濤,等.基于萊維飛行和隨機(jī)游動(dòng)策 略的灰狼算法[J].計(jì)算機(jī)科學(xué),2020, 47(8): 291-296.
[8] 鄔貴昌,韋文山,李尚平,等.基于混沌的多策略優(yōu)化麻 雀算法及應(yīng)用[J].微電子學(xué)與計(jì)算機(jī),2022, 39(12): 21-30.
[9] 岳龍飛,楊任農(nóng),張一杰,等.Tent混沌和模擬退火改進(jìn) 的飛蛾撲火優(yōu)化算法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2019, 51(5): 146-154.
[10] 丁容,高建瓴,張倩.融合自適應(yīng)慣性權(quán)重和柯西變異的 禿鷹搜索算法[J].小型微型計(jì)算機(jī)系統(tǒng),2023, 44(5): 910-915.
[11] 黨婷婷,林丹.含有動(dòng)態(tài)自適應(yīng)慣性權(quán)重的蜘蛛猴優(yōu)化 算法[J].計(jì)算機(jī)工程與應(yīng)用,2019, 55(14): 40-47.
[12] NASRI D, MOKEDDEM D. Optimisation of multiobjective problems using an efficient Levy flight grasshopper algorithm[J]. International Journal of High Performance Systems Architecture, 2022, 11(1): 26-35.
[13] 張嚴(yán),秦亮曦.基于Levy飛行策略的改進(jìn)樽海鞘群算法 [J].計(jì)算機(jī)科學(xué),2020, 47(7): 154-160.
[14] 薛建凱.一種新型的群智能優(yōu)化技術(shù)的研究與應(yīng)用 —麻雀搜索算法[D].上海:東華大學(xué),2020.
[15] DEHGHANI M, HUBALOVSKY S, TROJOVSKY P. Northern goshawk optimization: a new swarm-based algorithm for solving optimization problems[J]. IEEE Access, 2021, 9: 162059-162080.
[16] WILCOXON F. Individual comparisons by ranking methods[J]. Biometrics Bulletin, 1945, 1(6): 80-83.
(編輯:丁紅藝)
基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(72174121,71774111);上海市2022 年度“科技創(chuàng)新行動(dòng)計(jì)劃”軟科學(xué)研究項(xiàng)目(22692112600);上海市自然科學(xué)基金資助項(xiàng)目(21ZR1444100)