向君幸,吳永紅
(武漢理工大學(xué) 理學(xué)院,武漢 430070)
自然界中的許多生物系統(tǒng)具有高效率和魯棒性,基于這些關(guān)鍵特性,學(xué)者們提出了不同的元啟發(fā)式算法。元啟發(fā)式算法是一種提高啟發(fā)式技術(shù)性能的隨機(jī)優(yōu)化技術(shù),具有簡(jiǎn)單、靈活、無衍生機(jī)制和避免局部最優(yōu)等優(yōu)點(diǎn)。種群方法近年來發(fā)展迅速,包含了著名的算法如粒子群優(yōu)化算法[1]和人工蟻群算法[2],也有新穎的算法如人工蜂群算法[3]和灰狼優(yōu)化[4]。鑒于元啟發(fā)式算法的優(yōu)越性能,學(xué)者已成功將它們用于解決各個(gè)領(lǐng)域的優(yōu)化問題,例如疾病診斷、查詢優(yōu)化、特征選擇、股票預(yù)測(cè)和文本挖掘等應(yīng)用。
研究發(fā)現(xiàn),蝴蝶利用味覺精準(zhǔn)地尋找到食物和同伴,并且能精確區(qū)分不同氣味與強(qiáng)度。根據(jù)這樣的特性,Arora等[5]構(gòu)建了蝴蝶優(yōu)化算法(Butterfly Optimization Algorithm,BOA)。相較于現(xiàn)有算法,BOA 具有操作簡(jiǎn)單、參數(shù)少、穩(wěn)定性好的優(yōu)點(diǎn),并且能夠很好地解決實(shí)際問題。但是在處理高維問題時(shí),BOA 仍存在以下缺點(diǎn):1)易陷入局部最優(yōu)解、收斂速度較慢;2)全局和局部搜索的范圍相同,只使用了非常有限的特征,沒有充分利用各種特征;3)切換概率沒有隨著搜尋過程進(jìn)行調(diào)整,導(dǎo)致BOA 偏離全局最優(yōu)解。
為改進(jìn)BOA,已有研究結(jié)合BOA 與其他方法進(jìn)行優(yōu)化。如:Arora等[6-7]提出二進(jìn)制蝴蝶優(yōu)化算法、二值蝴蝶優(yōu)化算法和混沌蝴蝶優(yōu)化算法,拓展了BOA 的適用領(lǐng)域;Singh等[8]通過增設(shè)自適應(yīng)參數(shù),提出了自適應(yīng)蝴蝶優(yōu)化算法等。
上述研究雖然通過不同方式改進(jìn)了BOA 的性能,但也都是改進(jìn)BOA 中的某個(gè)更新策略,并未有效地改進(jìn)全局和局部尋優(yōu)的盲目性。針對(duì)原BOA 收斂精度低和易陷入局部最優(yōu)等問題,本文提出一種基于鄰域重心反向?qū)W習(xí)的混合樽海鞘群蝴蝶優(yōu)化算法(Hybrid Salp Swarm and Butterfly Optimization Algorithm,HSSBOA)。合理結(jié)合BOA 與樽海鞘群算法(Salp Swarm Algorithm,SSA)[9],使兩種算法各自處理全局和局部階段,有效防止落入局部最優(yōu)解。同時(shí)引入鄰域重心反向?qū)W習(xí),能夠更好地幫助算法在鄰域內(nèi)進(jìn)行搜索,提高了算法的精度。引入的動(dòng)態(tài)切換概率平衡了局部搜索和全局搜索的比重,能夠更加靈活地區(qū)分切換概率與產(chǎn)生的隨機(jī)數(shù)的大小,使當(dāng)前搜索階段有了一個(gè)更合理的設(shè)定,大幅提升算法尋優(yōu)能力。在10 個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)上的測(cè)試結(jié)果表明,HSSBOA 具有更高的收斂精度、收斂速度和穩(wěn)定性,消融實(shí)驗(yàn)也驗(yàn)證了各項(xiàng)改進(jìn)方法均為正向作用。最后通過選取兩個(gè)工程設(shè)計(jì)的實(shí)際問題驗(yàn)證了HSSBOA 的應(yīng)用性能,驗(yàn)證了HSSBOA 可用于解決實(shí)際問題。
蝴蝶有獨(dú)特的活動(dòng)方式和運(yùn)動(dòng)軌跡。研究發(fā)現(xiàn),蝴蝶利用嗅覺、視覺、味覺、觸覺和聽覺尋找食物和伙伴,并且可以通過氣味準(zhǔn)確定位它們的來源。根據(jù)蝴蝶的特性,Arora等[5]構(gòu)建了BOA,BOA 分為以下兩種情形。
1)當(dāng)蝴蝶從搜索空間中最好的蝴蝶那里嗅到香氣時(shí),便飛向最好的蝴蝶,這就是BOA 的全局搜索階段,表示如下:
其中為第i只蝴蝶第t次迭代的位置;g*為當(dāng)前最優(yōu)解。
2)當(dāng)蝴蝶無法在搜索空間中檢測(cè)到其他蝴蝶的氣味時(shí),它會(huì)隨機(jī)飛行進(jìn)行搜尋,此階段為局部搜索階段,表示如下:
式(1)、(2)中r為[0,1]中的一個(gè)隨機(jī)數(shù),它和切換概率p的大小關(guān)系決定當(dāng)前進(jìn)入全局搜索階段還是局部搜索階段。式(1)、(2)中的fi是氣味感知量,由蝴蝶的感覺模態(tài)、刺激強(qiáng)度組成,根據(jù)模態(tài)的冪指數(shù)計(jì)算得到:
文獻(xiàn)[5]中對(duì)BOA 的參數(shù)進(jìn)行了大量的模擬實(shí)驗(yàn),因此將c設(shè)為0.01;將a設(shè)為[0.1,0.3];Ii是由目標(biāo)問題(函數(shù))計(jì)算得到的適應(yīng)值。
蝴蝶通過以上構(gòu)建的模型,逐步完成搜索,最終精確地尋找到氣味的位置,也就是問題的最優(yōu)解。
BOA 具體的步驟為:
步驟1 初始化感觀模態(tài)c、冪指數(shù)a、切換概率p,并產(chǎn)生數(shù)量為n的蝴蝶
步驟2在下由f()得到Ii。
步驟3 通過式(3)找到最優(yōu)的蝴蝶。
步驟4 從[0,1]中生成一個(gè)隨機(jī)數(shù)r。
步驟5當(dāng)r<p時(shí),通過式(1)向最優(yōu)解移動(dòng);否則通過式(2)向最優(yōu)解移動(dòng)。
步驟6 返回步驟4,直至遍歷所有種群。
步驟7 更新a的值。
步驟8 返回步驟4,直至達(dá)到最大迭代數(shù)。
為解決BOA 易陷入局部最優(yōu)解和收斂速度較慢的問題,本文從兩個(gè)方面改進(jìn)BOA:首先,結(jié)合BOA 與SSA,防止落入局部最優(yōu)解;其次,引入動(dòng)態(tài)切換概率平衡局部搜索和全局搜索的比重,更加靈活地區(qū)分切換概率與產(chǎn)生的隨機(jī)數(shù)的大小,提升算法尋優(yōu)的性能。
樽海鞘是一種生存于深海的海洋生物,身體呈透明的桶狀,它的組織與運(yùn)動(dòng)方式與水母相似。通常樽海鞘以集群行動(dòng),從而通過快速協(xié)調(diào)變化和覓食實(shí)現(xiàn)更好的運(yùn)動(dòng)。Mirjalili等[9]研究了樽海鞘群的運(yùn)動(dòng)方式,并提出了SSA。
SSA 將種群分為領(lǐng)導(dǎo)者和追隨者。領(lǐng)導(dǎo)者是種群中前段的個(gè)體,其他個(gè)體則視為追隨者。領(lǐng)導(dǎo)者的更新公式為:
其中:t是當(dāng)前迭代數(shù);Maxiter是最大迭代數(shù)。
追隨者的更新公式為:
其中:i≥2;代表第j維的追隨者。
然而,在SSA 中,跟隨者跟蹤前一個(gè)個(gè)體以更新位置。這種盲目運(yùn)動(dòng)使解的分布過于有限,嚴(yán)重影響了算法的優(yōu)化能力。本文使用自適應(yīng)慣性權(quán)重提高算法的研究和開發(fā)能力。算法中的追隨者更新方法如下:
其中:w(t)是第1 次迭代t的慣性權(quán)重,w(t)隨迭代過程自適應(yīng)地減小。
從式(7)可以看出,隨著w(t)的減小,追隨者的運(yùn)動(dòng)范圍越來越小。在下一迭代步驟中,追隨者在最后一次迭代位置的指導(dǎo)下執(zhí)行局部?jī)?yōu)化。該策略在一定程度上提高了算法的優(yōu)化能力,但是它只考慮對(duì)先行追隨者行動(dòng)的負(fù)面影響,忽略了先前個(gè)體的積極影響。該策略會(huì)進(jìn)一步削弱先前個(gè)體的影響力,使先前個(gè)體失去更好的身體地位。
因此,本文提出自適應(yīng)權(quán)重的改良方法。此方法與慣性權(quán)重的初始值和最終值以及當(dāng)前迭代次數(shù)有關(guān):當(dāng)?shù)螖?shù)為0,此時(shí)慣性權(quán)重為初始值;隨著迭代次數(shù)的增加,慣性權(quán)重按一定比例變??;直到迭代次數(shù)最大時(shí),慣性權(quán)重達(dá)到最終值。具體的更新公式為:
其中:ws和wf分別為慣性權(quán)重的初始值和最終值。慣性權(quán)重w(t)的取值應(yīng)滿足以下條件:
1)在迭代過程中,追隨者當(dāng)前位置和前個(gè)體位置應(yīng)始終保持更新;
2)慣性權(quán)重在迭代過程中應(yīng)起積極作用。
由條件1)可知:
由條件2)可知:
因此,慣性權(quán)重的取值范圍應(yīng)滿足(0,0.5]。經(jīng)過多次模擬可知,若將wf設(shè)置得過小,會(huì)導(dǎo)致迭代過程中慣性權(quán)重減小過快,不利于算法尋優(yōu)。因此,將ws和wf分別取0.5 和0.1 的擬合結(jié)果最優(yōu)。圖1 給出了w(t)的迭代過程變化。
圖1 權(quán)重迭代過程Fig.1 Iteration process of weight
反向?qū)W習(xí)是Tizhoosh[10]提出的數(shù)學(xué)模型,主要思想是通過綜合評(píng)價(jià)當(dāng)前解和反向解以選擇一個(gè)更優(yōu)解。
為了考慮更多的種群間的信息,Rahnamayan等[11]提出了重心反向點(diǎn)。種群的重心M定義為:
則整體中的某一點(diǎn)的反向點(diǎn)為:
為進(jìn)一步拓展反向搜索的范圍,提升搜尋的效率和精度,文獻(xiàn)[12]中提出了鄰域重心反向解:
其中:mi是個(gè)體i在鄰域內(nèi)個(gè)體的數(shù)目;k為搜索因子,是[0,1]內(nèi)均勻分布的隨機(jī)數(shù)。
所以可將鄰域重心反向?qū)W習(xí)運(yùn)用到BOA 中,將通過鄰域重心反向?qū)W習(xí)得到的新解與BOA 運(yùn)行后得到的解進(jìn)行對(duì)比,計(jì)算公式如下:
在BOA 中,個(gè)體和全局最優(yōu)位置在搜索過程中會(huì)互相吸引。種群中的個(gè)體將在個(gè)體最優(yōu)位置和迄今為止所有個(gè)體找到的全局最優(yōu)位置之間波動(dòng)。然而,當(dāng)全局最優(yōu)個(gè)體陷入局部最優(yōu)時(shí),其他個(gè)體會(huì)朝著全局最優(yōu)個(gè)體的方向飛行,因此,在搜尋過程中會(huì)很容易陷入停滯,即陷入局部最優(yōu)。
由于BOA 不能避免局部最優(yōu)解,因此采用高斯擾動(dòng)以提高全局搜索能力并探索搜索空間??紤]到全局和個(gè)體最佳位置的鄰近區(qū)域,可以擴(kuò)展它們固定位置的搜索空間,有助于整個(gè)蜂群飛到更好的位置。這種方式可以通過對(duì)全局最佳位置的高斯擾動(dòng)實(shí)現(xiàn)。高斯分布的一維概率為:
高斯分布函數(shù)在當(dāng)前位置附近產(chǎn)生擾動(dòng),更容易避開局部最優(yōu)解,并削弱極限點(diǎn)的約束力。利用高斯擾動(dòng)可以增加種群的多樣性,提高全局搜索最優(yōu)值的能力;利用高斯分布函數(shù)還可以縮短變異蝴蝶在鄰域內(nèi)的搜索時(shí)間;同時(shí),利用擾動(dòng)兩端的突變效應(yīng),加入高斯擾動(dòng)可對(duì)全局搜索進(jìn)行優(yōu)化。因此,改進(jìn)后的BOA 具有很好的全局尋優(yōu)能力。
根據(jù)以上分析,擾動(dòng)項(xiàng)的取值應(yīng)在0 附近,所以將μ的值取為0。σ可以隨迭代步驟的進(jìn)行而自適應(yīng):在迭代初期,為了能廣泛地搜索最優(yōu)解,σ的值應(yīng)相對(duì)較大;隨著迭代的進(jìn)行,σ的值應(yīng)該逐漸減小,才能搜尋較小范圍內(nèi)的最優(yōu)解。所以σ的迭代公式為:
其中:σmax=2;σmin=1;tmax為最大迭代次數(shù)??蓪⑹剑?)改為:
在BOA 中,局部和全局搜索用常量切換概率p∈[0,1]控制。一個(gè)合理的搜索過程應(yīng)在算法前期進(jìn)行較大范圍的全局搜索,迅速定位搜索空間中全局最優(yōu)解的范圍。因此引入動(dòng)態(tài)切換概率平衡局部和全局搜索的比重,實(shí)現(xiàn)更好的尋優(yōu)策略。
迭代初期搜尋到的蝴蝶是最優(yōu)解的概率較低,隨著迭代的進(jìn)行,搜尋結(jié)果是最優(yōu)解的概率增加,即迭代次數(shù)和切換概率成正比。為了在初期使兩個(gè)搜索階段的可能性相等,將初始切換概率設(shè)置為0.5,將最終切換概率設(shè)置為0.8,能夠讓最后一次迭代有大概率搜索到全局最優(yōu)的蝴蝶。因此可以構(gòu)建一個(gè)p與t的線性函數(shù),動(dòng)態(tài)切換概率p如下:
HSSBOA 中所有的參數(shù)如表1 所示。
表1 HSSBOA中的參數(shù)Tab.1 Parameters in HSSBOA
HSSBOA 的具體步驟如下:
步驟1 輸入初始化感覺模態(tài)c、冪指數(shù)a、切換概率p、參數(shù)c2和c3,并產(chǎn)生數(shù)量為n的蝴蝶
步驟2在下由f()得到Ii。
步驟3 通過式(3)計(jì)算個(gè)體的氣味,并找到最優(yōu)個(gè)體。
步驟4從[0,1]中生成隨機(jī)數(shù)r,計(jì)算c1與切換概率pt。
步驟5當(dāng)r<pt時(shí),通過式(18)向最優(yōu)解移動(dòng);否則通過式(7)向最優(yōu)解移動(dòng)。
步驟6 返回步驟4,直至遍歷所有種群。
步驟7 更新a、pt、c1的值。
步驟8 生成隨機(jī)數(shù)k,按式(12)計(jì)算出M,并通過式(15)進(jìn)行迭代。如果新解的適應(yīng)度值比原解更好,則用新解代替原來的解,否則保留原解。
步驟9 返回步驟4,直至達(dá)到最大迭代數(shù)。
設(shè)置算法的種群規(guī)模為N,最大迭代次數(shù)為Maxiter,維數(shù)為d。根據(jù)HSSBOA 的時(shí)間復(fù)雜度的運(yùn)算規(guī)則,初始化種群的時(shí)間復(fù)雜度為O(N·d),整個(gè)搜尋最優(yōu)解的時(shí)間復(fù)雜度為O(N·d),利用SSA 對(duì)搜索位置進(jìn)行更新的時(shí)間復(fù)雜度為O(d),故HSSBOA 總時(shí)間復(fù)雜度為O(N·d·Maxiter)。可見HSSBOA 與BOA 的時(shí)間復(fù)雜度相同,并未增加算法的負(fù)擔(dān)。
實(shí)驗(yàn)環(huán)境為:操作系統(tǒng)macOS 12.0,CPU 為Intel Core i5,主頻2.3 GHz,內(nèi)存8 GB,仿真軟件為Matlab 2021b。
本文選 取BOA[5]、SSA[9]、鯨魚優(yōu) 化算法(Whale Optimization Algorithm,WOA)[13]、哈里斯 鷹算法(Harris Hawks Optimization,HHO)[14]作為HSSBOA 的比較對(duì)象。所有算法的迭代次數(shù)均設(shè)為500,種群數(shù)設(shè)為30,其他算法的參數(shù)與相應(yīng)文獻(xiàn)中的設(shè)定保持一致。
表2 列出了本文選取的標(biāo)準(zhǔn)檢測(cè)函數(shù),其中:F1~F5為單峰檢測(cè)函數(shù);F6~F10為多峰檢測(cè)函數(shù)。
表2 標(biāo)準(zhǔn)檢測(cè)函數(shù)相關(guān)描述Tab.2 Description of benchmark functions
本文從收斂精度、收斂速度以及穩(wěn)定性三個(gè)方面將HSSBOA 與BOA、SSA、HHO 和WOA 進(jìn)行對(duì)比。在實(shí)驗(yàn)中,為了減小統(tǒng)計(jì)誤差并使結(jié)果具有統(tǒng)計(jì)意義,每個(gè)函數(shù)獨(dú)立重復(fù)30 次。實(shí)驗(yàn)結(jié)果如表3 中“30 維”列所示。
單峰函數(shù)只有1 個(gè)全局最優(yōu)值,能夠評(píng)估算法的開發(fā)能力。對(duì)于單峰函數(shù)F1~F5,HSSBOA 的平均值(mean)和標(biāo)準(zhǔn)偏差(std)都優(yōu)于對(duì)比算法,在所有的單峰函數(shù)問題中都能達(dá)到理論最優(yōu)值。所以,HSSBOA 在單峰函數(shù)方面具有絕對(duì)優(yōu)勢(shì)。BOA 和SSA 無法獲得理論最優(yōu)值,HHO 和WOA 則是繼HSSBOA 之后最有效的算法。相較于BOA,HSSBOA 的結(jié)果更優(yōu),表明它有效地提高了BOA 的開發(fā)能力。HSSBOA 的高性能歸功于在局部搜索階段結(jié)合了SSA,因此能有效地避免陷入局部最優(yōu)。
與單峰函數(shù)不同,多峰函數(shù)在搜索空間中具有多個(gè)局部最優(yōu)解,可用于評(píng)估算法的探測(cè)能力??梢钥闯?,對(duì)于多峰函數(shù)F6~F10,HSSBOA 的結(jié)果最有效并且極具競(jìng)爭(zhēng)力,可以達(dá)到F6~F9的理論最佳值;HHO在F7~F8上達(dá)到了理論最優(yōu)值,其他算法的性能從高到低依次為WOA、SSA、BOA。因此,在所有標(biāo)準(zhǔn)函數(shù)中,HSSBOA 始終是最佳的算法,表明HSSBOA在收斂精度方面具有絕對(duì)優(yōu)勢(shì)。
此外,還對(duì)HSSBOA 在高維數(shù)據(jù)中的性能進(jìn)行了研究。將函數(shù)維度增加到500,其他參數(shù)保持不變,每個(gè)算法同樣重復(fù)運(yùn)行30 次。如表3 中“500 維”列所示,HSSBOA 在高維度的F1~F2以及F5~F9達(dá)到了理論最優(yōu)。雖然HSSBOA在F3上的性能下降,但變化可以忽略不計(jì)。根據(jù)無免費(fèi)午餐(No Free Lunch,NFL)定理[15],沒有任何算法可以解決所有優(yōu)化問題,因此該結(jié)果可以接受。HHO 在高維方面不如HSSBOA,高維數(shù)據(jù)的精度均有不同程度的降低,特別是在F6和F9上有較大幅度的減小。WOA 和HHO 的精度也有顯著降低。在高維度情況下,HSSBOA 整體的精度也都優(yōu)于HHO 和WOA。因此,HSSBOA 的穩(wěn)定性優(yōu)于HHO 和WOA。
表3 標(biāo)準(zhǔn)檢測(cè)函數(shù)上的實(shí)驗(yàn)結(jié)果Tab.3 Experimental results on benchmark functions
如圖2 所示,HSSBOA對(duì)F7、F8和F10的收斂十分顯著,最多只需要150 次迭代就可以收斂到最佳值。隨著F1、F3和F7迭代次數(shù)的增加,HSSBOA 的收斂速度加快。雖然在F3、F4、F7和F8中HHO 的收斂速度更快,但是隨著迭代過程進(jìn)行,HSSBOA 能夠收斂到更精確的解。在F7、F8和F10中HHO 和WOA 也能收斂到與HSSBOA 相同的解,但是可以明顯看出HSSBOA 收斂的迭代次數(shù)比前兩種算法要更少,因?yàn)镠SSBOA 的動(dòng)態(tài)切換概率加快了搜索過程。對(duì)HSSBOA 和BOA 進(jìn)行進(jìn)一步比較可以看出,HSSBOA 得到的擬合值更準(zhǔn)確,并且在迭代過程中具有更快的收斂速度。這說明本文的改進(jìn)方法能有效提高BOA 的收斂性能。因此,在收斂速度方面,HSSBOA 比BOA、HHO、SSA 和WOA 更具競(jìng)爭(zhēng)力。
圖2 收斂速度對(duì)比Fig.2 Comparison of convergence speed
本文還進(jìn)行了t檢驗(yàn)。表4 給出了該雙尾檢驗(yàn)每個(gè)函數(shù)的t值和p值,HSSBOA 和另外算法之間的顯著性水平為0.05。表5 總結(jié)了HSSBOA 和另外算法之間t檢驗(yàn)的結(jié)果。從表5 可看出,相較于BOA、SSA,HSSBOA 在所有函數(shù)上的表現(xiàn)明顯更優(yōu);相較于HHO、WOA,HSSBOA 在絕大部分函數(shù)上的表現(xiàn)更好,除了在部分函數(shù)(F7、F8、F10)上性能表現(xiàn)相同。因此,HSSBOA 總體上優(yōu)于BOA、SSA、HHO 和WOA,擁有更高的性能。
表4 HSSBOA與其他算法的t檢驗(yàn)比較Tab.4 Comparison of t test between HSSBOA and other algorithms
表5 t檢驗(yàn)對(duì)比結(jié)果Tab.5 Comparison results of t-test
為了更好地評(píng)估HSSBOA 與4 種元啟發(fā)式算法的勘探能力和收斂精度,采用平均絕對(duì)誤差(Mean Absolute Error,MAE)進(jìn)行排序。MAE 是一個(gè)反映算法最優(yōu)值和理論最優(yōu)值差距的有效統(tǒng)計(jì)指標(biāo),計(jì)算公式為:
其中:mi為算法取得的最優(yōu)解的平均值;oi為相應(yīng)的基準(zhǔn)測(cè)試函數(shù)的理論最優(yōu)值;Nf為基準(zhǔn)測(cè)試函數(shù)個(gè)數(shù)。
各算法的MAE 排序如表6 所示??梢钥闯?,HSSBOA 具有最小的MAE,表明了HSSBOA 的優(yōu)越性。
表6 HSSBOA與其他算法的MAE排序Tab.6 MAE ranking of HSSBOA and other algorithms
為進(jìn)一步驗(yàn)證HSSBOA 各項(xiàng)改進(jìn)的作用和有效性,以本文所用的10 個(gè)標(biāo)準(zhǔn)檢測(cè)函數(shù)為例進(jìn)行消融實(shí)驗(yàn),分別計(jì)算HSSBOA、HSSBOA 去除改 進(jìn)SSA(記 為“HSSBOA改進(jìn)SSA”)、HSSBOA 去除鄰域重心反向?qū)W習(xí)(記為“HSSBOA鄰域重心反向?qū)W習(xí)”)、HSSBOA 去除高斯擾動(dòng)(記為“HSSBOA高斯擾動(dòng)”)和HSSBOA 去除動(dòng)態(tài)切換概率(記為“HSSBOA動(dòng)態(tài)切換概率”)的MAE。具體結(jié)果如表7 所示。
表7 消融實(shí)驗(yàn)的結(jié)果對(duì)比Tab.7 Comparison of ablation experimental results
通過表7 可知,將本文的4 項(xiàng)改進(jìn)分別去除后,MAE 都有不同程度增加,說明改進(jìn)的內(nèi)容對(duì)算法都是正向作用。其中,改進(jìn)SSA 對(duì)算法的影響最大,其次是鄰域重心反向?qū)W習(xí)、動(dòng)態(tài)切換概率、高斯擾動(dòng)。表7 表明了HSSBOA 各項(xiàng)改進(jìn)的合理性和有效性。
將SSBOA 將用于測(cè)試兩個(gè)工程設(shè)計(jì)問題:彈簧設(shè)計(jì)和焊接梁設(shè)計(jì)。以上數(shù)學(xué)問題可視為無約束優(yōu)化問題,相對(duì)容易求解。然而,約束優(yōu)化問題對(duì)于元啟發(fā)式算法來說是一個(gè)挑戰(zhàn)。因此,本文選擇了幾個(gè)具有代表性的多約束工程設(shè)計(jì)問題來評(píng)估HSSBOA 的性能。約束問題通常用罰函數(shù)來解決,本文采用死亡罰函數(shù)[16]來解決這些問題。
此問題在于設(shè)置鋼絲直徑d、平均線圈直徑D和移動(dòng)線圈數(shù)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。
數(shù)學(xué)方法和元啟發(fā)式算法都能夠解決該問題。將HSSBOA 的仿真結(jié)果與其他元啟發(fā)式算法以及數(shù)學(xué)方法(數(shù)學(xué)優(yōu)化[17]和約束校正[18])進(jìn)行比較。如表8 所示,HSSBOA結(jié)果優(yōu)于所有對(duì)比方法。
表8 各方法求解彈簧設(shè)計(jì)問題結(jié)果的比較Tab.8 Result comparison of solving spring design problem by different methods
該問題的目標(biāo)是使壓力容器的重量最小化,如圖4 所示。需要設(shè)置殼體厚度Ts、封頭厚度Th、內(nèi)徑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。
將優(yōu)化結(jié)果與群智能算法和數(shù)學(xué)方法(拉格朗日乘數(shù)[19]和分支界[20])進(jìn)行比較,如表9 所示。可以看出HSSBOA優(yōu)于所有其他方法。
表9 不同方法求解壓力容器設(shè)計(jì)問題結(jié)果的比較Tab.9 Result comparison of solving pressure vessel design problem by different methods
以上兩個(gè)經(jīng)典工程問題的結(jié)果表明,HSSBOA 在解決復(fù)雜和非線性問題方面具有很高的性能,可以避免局部最優(yōu),并找到有效的適應(yīng)度。這些復(fù)雜問題的成功解決表明HSSBOA 具有強(qiáng)大的搜尋能力以及良好的收斂性能,說明HSSBOA 可以解決實(shí)際問題。
本文提出了一種改進(jìn)的蝴蝶優(yōu)化算法HSSBOA,結(jié)合蝴蝶優(yōu)化算法與改進(jìn)的樽海鞘群算法,兩種算法各自處理全局和局部階段,能夠有效防止落入局部最優(yōu)中。同時(shí)還引入了鄰域中心反向?qū)W習(xí)、高斯擾動(dòng)和動(dòng)態(tài)切換概率,平衡了局部搜索和全局搜索的比重,能夠更加靈活地區(qū)分切換概率與產(chǎn)生的隨機(jī)數(shù)的大小,提升算法尋優(yōu)的性能。對(duì)10 個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行了仿真實(shí)驗(yàn),從收斂精度、收斂速度、Wilcoxon 秩和檢驗(yàn)、MAE 排序、高維度數(shù)據(jù)五個(gè)方面進(jìn)行了分析。結(jié)果表明相較于其他群智能算法,HSSBOA 具有較好的尋優(yōu)性能、較快的收斂速度以及較高的穩(wěn)定性。消融實(shí)驗(yàn)證明了改進(jìn)方法均為正向作用。此外,本文還通過兩個(gè)經(jīng)典工程問題驗(yàn)證了HSSBOA 在實(shí)際應(yīng)用中的良好性能。接下來的研究方向是拓展HSSBOA 在特征選擇中的應(yīng)用。