李守玉,何 慶,杜逆索
1.貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽(yáng)550025
2.貴州大學(xué) 貴州省大數(shù)據(jù)產(chǎn)業(yè)發(fā)展應(yīng)用研究院,貴陽(yáng)550025
蝴蝶優(yōu)化算法(Butterfly Optimization Algorithm,BOA)[1]是由Arora和Singh兩位學(xué)者于2019年提出的一種基于全局優(yōu)化的新型蝴蝶算法。盡管BOA算法提出的時(shí)間短,但其展現(xiàn)出的優(yōu)勢(shì)不僅與較成熟的粒子群算法(Particle Swarm Optimization,PSO)[2]、遺傳算法(Genetic Algorithm,GA)[3]有一定可比性,與新型的元啟發(fā)式算法,如樽海鞘算法(Slap Swarm Algorithm,SSA)[4]、鯨魚(yú)算法(Whale Optimization Algorithm,WOA)[5]、正弦余弦算法(Sine Cosine Algorithm,SCA)[6]及蟻獅算法(Ant Lion Optimizer,ALO)[7]也具有可比性。同時(shí),蝴蝶優(yōu)化算法也被應(yīng)用于一些工程領(lǐng)域。
BOA算法根據(jù)仿生學(xué)原理得來(lái),其原理簡(jiǎn)單,參數(shù)少,易于實(shí)現(xiàn),但也存在尋優(yōu)精度低、收斂速度慢以及易陷入局部最優(yōu)等問(wèn)題。因此,許多學(xué)者不斷對(duì)BOA 算法進(jìn)行改進(jìn)。文獻(xiàn)[8]在BOA 算法的基礎(chǔ)上,引入學(xué)習(xí)自動(dòng)機(jī),通過(guò)矯正蝴蝶的行為來(lái)提高平衡全局搜索和局部搜索的能力。文獻(xiàn)[9]引入混沌映射來(lái)提高算法的收斂速度和跳出局部最優(yōu)的能力,但其尋優(yōu)精度依然不高。文獻(xiàn)[10]提出一種自適應(yīng)的蝶形優(yōu)化算法,通過(guò)改變感官模態(tài)的方式獲得比原始算法更好的效果。文獻(xiàn)[11]通過(guò)將BOA 和ABC 兩種算法的優(yōu)點(diǎn)結(jié)合使用來(lái)達(dá)到探索與開(kāi)發(fā)平衡的目的。文獻(xiàn)[12]將交叉熵方法引入到BOA 算法中,利用協(xié)同進(jìn)化技術(shù)增強(qiáng)算法的全局搜索能力,避免算法陷入局部最優(yōu)。盡管對(duì)BOA 的尋優(yōu)能力有所提升,但在平衡全局搜索和局部搜索能力、容易陷入局部最優(yōu)、收斂速度慢等方面仍需要大量的深入研究。
本文針對(duì)BOA 算法所存在的問(wèn)題進(jìn)行改進(jìn),提出了分段權(quán)重和變異反向?qū)W習(xí)的蝴蝶優(yōu)化算法(Piecewise Weight and Mutation opposition-based learning Butterfly Optimization Algorithm,PWMBOA)。首先,為了降低蝴蝶盲目跟隨飛行,采用飛行引領(lǐng)策略矯正蝴蝶自身飛行;其次,采用分段權(quán)重的思想增強(qiáng)算法的全局搜索和局部開(kāi)發(fā)的能力;最后,對(duì)位置更新進(jìn)行干擾,增加種群多樣性和提高收斂速度。通過(guò)實(shí)驗(yàn)仿真來(lái)驗(yàn)證所提算法的魯棒性和有效性,實(shí)驗(yàn)結(jié)果表明PWMBOA算法不僅能提高尋優(yōu)精度,也能加快算法的收斂速度。
蝴蝶優(yōu)化算法(BOA)的尋優(yōu)原理如下:蝴蝶通過(guò)嗅覺(jué)感知空氣中其他蝴蝶所散發(fā)的香味強(qiáng)弱來(lái)矯正自身飛行路線(xiàn),并向著食物源或?qū)ふ遗渑家苿?dòng),進(jìn)而實(shí)現(xiàn)蝴蝶位置更新,通過(guò)建立適當(dāng)?shù)臄?shù)學(xué)關(guān)系將蝴蝶個(gè)體映射為搜索空間的點(diǎn);通過(guò)數(shù)學(xué)模型模擬蝴蝶個(gè)體之間的信息交互;尋找食物源或?qū)ふ遗渑紴閷?yōu)過(guò)程;蝴蝶位置為搜索空間中的解;蝴蝶位置不斷變化為尋找最優(yōu)解的求解過(guò)程;蝴蝶所散發(fā)的香味為適應(yīng)度。蝴蝶尋優(yōu)過(guò)程中,考慮到香味受距離、風(fēng)速、溫度、濕度等影響,當(dāng)蝴蝶能從空氣中感知到其他蝴蝶散發(fā)的香味時(shí),向香味最強(qiáng)的蝴蝶飛去,執(zhí)行全局搜索;當(dāng)不能感知到其他蝴蝶所散發(fā)的香味時(shí),蝴蝶隨機(jī)飛行,執(zhí)行局部搜索。因此用轉(zhuǎn)換概率P來(lái)控制蝴蝶在全局搜索和局部搜索之間進(jìn)行切換。
BOA算法中,香味強(qiáng)度與適應(yīng)度相關(guān),當(dāng)蝴蝶位置變化時(shí),適應(yīng)度也會(huì)隨之變化。香味是物理刺激強(qiáng)度的函數(shù),公式如下:
其中,f為香味強(qiáng)弱;c是感覺(jué)模態(tài);I是物理刺激強(qiáng)度;a是與模態(tài)有關(guān)的冪指數(shù),它說(shuō)明香味的吸收變化。a和c的取值范圍是(0,1)。
全局搜索,蝴蝶向最優(yōu)解g*移動(dòng),公式如下:
局部搜索,公式如下:
算法1 BOA算法
BOA 算法中,蝴蝶是通過(guò)香味傳播構(gòu)建的社會(huì)信息共享網(wǎng)絡(luò)來(lái)交互彼此信息用于尋找食物源。尋優(yōu)過(guò)程中,蝴蝶個(gè)體具有盲目跟隨性,具體表現(xiàn)為蝴蝶個(gè)體之間信息交互頻率低,可能向某個(gè)局部最優(yōu)個(gè)體所在方向飛行,導(dǎo)致算法陷入局部最優(yōu)。針對(duì)BOA 算法存在蝴蝶個(gè)體盲目飛行的現(xiàn)象,利用當(dāng)前蝴蝶與最優(yōu)蝴蝶之間的香味強(qiáng)弱引領(lǐng)種群的尋優(yōu)方向,進(jìn)而增強(qiáng)種群跳出局部最優(yōu)的能力。在種群尋優(yōu)過(guò)程中,計(jì)算兩者之間適應(yīng)度并比較適應(yīng)度值大小,然后確定當(dāng)前蝴蝶的飛行模式,即若當(dāng)前蝴蝶個(gè)體適應(yīng)度值小于最優(yōu)蝴蝶適應(yīng)度值,種群受當(dāng)前蝴蝶吸引較大;反之,受最優(yōu)蝴蝶影響較大,再利用約束引領(lǐng)蝴蝶個(gè)體的飛行方向,避免種群陷入局部最優(yōu)。飛行引領(lǐng)策略數(shù)學(xué)表達(dá)式:
由BOA 算法的位置更新公式可知,蝴蝶的位置更新由蝴蝶之間信息交互以及食物源決定,因此,BOA具有較強(qiáng)的局部開(kāi)發(fā)能力,但全局搜索的能力明顯不足,這也是導(dǎo)致BOA 尋優(yōu)精度不高、收斂速度慢的主要原因。為了更好地改善BOA 存在的缺陷,提高算法的性能,本節(jié)采用分段的思想對(duì)算法進(jìn)行處理。受文獻(xiàn)[13]的非線(xiàn)性分段平衡全局與局部搜索能力的啟發(fā),蝴蝶個(gè)體的尋優(yōu)能力與種群的尋優(yōu)能力通過(guò)分段權(quán)重更好地結(jié)合,確保蝴蝶個(gè)體在種群空間中進(jìn)行廣泛搜索,更好地克服BOA存在的缺點(diǎn)。具體改進(jìn)如下:
搜索前半段,蝴蝶個(gè)體需要具備較強(qiáng)全局搜索的能力,確保算法能在搜索空間中進(jìn)行廣泛尋優(yōu)。因此,蝴蝶個(gè)體在下一次迭代中需要較大且穩(wěn)定的權(quán)重進(jìn)行全局尋優(yōu),采用指數(shù)與對(duì)數(shù)結(jié)合權(quán)重不僅保證權(quán)重變化范圍穩(wěn)定,也能實(shí)現(xiàn)自適應(yīng)調(diào)整,同時(shí)增強(qiáng)種群跳出局部最優(yōu)和提高尋優(yōu)精度的能力,公式如下:
搜索后半段,蝴蝶個(gè)體需要具備較強(qiáng)的局部搜索能力,才能保證種群進(jìn)行更好的尋優(yōu)。因此,蝴蝶個(gè)體需要一個(gè)穩(wěn)定較小的權(quán)重幫助種群進(jìn)行深度挖掘,采用指數(shù)型權(quán)重,隨著迭代的進(jìn)行自適應(yīng)調(diào)小權(quán)重,從而實(shí)現(xiàn)種群的深度挖掘,公式如下:
其中,c(t)為分段權(quán)重,a=1/2,γ是(0,1]的調(diào)節(jié)因子。搜索前半段c(t)的取值范圍是(0,1),搜索后半段c(t)取值范圍是[-1,1)。
最終的位置更新公式,全局搜索公式如下:
局部搜索如下:
BOA 算法中,蝴蝶位置更新主要是每次迭代后的位置變化,重新計(jì)算位置的適應(yīng)度,并與之前位置的適應(yīng)度進(jìn)行比較,擇優(yōu)進(jìn)入下一次迭代,沒(méi)有對(duì)蝴蝶位置進(jìn)行干擾更新,導(dǎo)致算法迭代后期種群多樣性減少,進(jìn)而使得算法陷入局部最優(yōu)。因此,受GA中變異概率思想的啟發(fā),結(jié)合反向?qū)W習(xí)策略對(duì)蝴蝶位置進(jìn)行干擾更新,增加種群多樣性,避免算法陷入局部最優(yōu)。
反向?qū)W習(xí)(Opposition-Based Learning,OBL)是Tizhoosh[14]于2005年提出的數(shù)學(xué)方法,其本質(zhì)原理是通過(guò)估計(jì)和比較可行解及其反向解,選擇最好的解進(jìn)入下一次迭代。
反向點(diǎn)定義:若p(x1,x1,…,xn)是n維坐標(biāo)系中的一個(gè)點(diǎn),x1,x1,…,xn∈?,同時(shí)滿(mǎn)足xi∈[ai,bi],則反向點(diǎn)完全由坐標(biāo)確定。
其中,R3是服從(0,1)均勻分布1×dim的隨機(jī)矩陣;b2是(0,1)之間的隨機(jī)數(shù);pr是變異概率,范圍是(0.01,0.10),經(jīng)測(cè)試pr=0.08 算法性能最好;lbi、ubi是搜索空間的下邊界和上邊界;代表第i只蝴蝶在dim維搜索空間中的位置,表示第i只經(jīng)過(guò)變異反向?qū)W習(xí)得到新位置的蝴蝶。當(dāng)b2≤pr時(shí),通過(guò)隨機(jī)反向?qū)W習(xí)擴(kuò)大算法的搜索范圍;當(dāng)b2>pr時(shí),通過(guò)一般反向?qū)W習(xí)擴(kuò)大搜索范圍,同時(shí)相對(duì)于固定的邊界,動(dòng)態(tài)變化的lbi、ubi對(duì)于算法尋優(yōu)更有利。
雖然變異反向?qū)W習(xí)策略產(chǎn)生的新解一定程度上增強(qiáng)算法跳出局部最優(yōu)的能力,但是不能保證產(chǎn)生的新解一定優(yōu)于原位置的解,因此經(jīng)過(guò)變異反向?qū)W習(xí)之后,需要比較新舊位置的適應(yīng)度大小,使用貪心策略將最好的位置進(jìn)入下一次迭代。數(shù)學(xué)表達(dá)如下:
基于這種動(dòng)態(tài)比較的策略可以促進(jìn)算法向著目標(biāo)位置方向進(jìn)化,使得算法獲得更好的收斂速度。
PWMBOA算法根據(jù)2.1~2.3節(jié)的改進(jìn)策略,首先利用飛行引領(lǐng)策略加強(qiáng)蝴蝶個(gè)體之間的信息交互,矯正飛行方向,降低陷入局部最優(yōu)的可能性;然后根據(jù)式(9)、(10)提高全局勘探和局部開(kāi)采能力,更新蝴蝶位置;最后根據(jù)式(12)、(13)對(duì)蝴蝶位置進(jìn)行擾動(dòng),豐富種群多樣性以及加快算法收斂。本文所提PWMBOA 算法步驟如算法2所示。
算法2 PWMBOA算法
時(shí)間復(fù)雜度反映了算法的運(yùn)行效率。若種群規(guī)模為N,優(yōu)化問(wèn)題維度為D,則標(biāo)準(zhǔn)BOA 的時(shí)間復(fù)雜度由參數(shù)初始化所需O(1),計(jì)算函數(shù)適應(yīng)度所需O(N),迭代過(guò)程中種群復(fù)雜O(ND)構(gòu)成,因此標(biāo)準(zhǔn)BOA總的時(shí)間復(fù)雜度為:
同理,PWMBOA 參數(shù)初始化和計(jì)算函數(shù)適應(yīng)度同標(biāo)準(zhǔn)BOA一樣,迭代過(guò)程中,飛行引領(lǐng)階段所需O(ND),分段權(quán)重階段所需O(ND),變異反向?qū)W習(xí)階段所需O(ND),因此PWMBOA總的時(shí)間復(fù)雜度為:
基于上述分析,PWMBOA 與標(biāo)準(zhǔn)BOA 相比,時(shí)間復(fù)雜度并未增加。兩種算法的時(shí)間復(fù)雜度主要由種群規(guī)模和優(yōu)化問(wèn)題的維度決定,由此可判定PWMBOA對(duì)最終的時(shí)間復(fù)雜度未產(chǎn)生負(fù)面影響。
四個(gè)標(biāo)準(zhǔn)分別賦予4、3、2、1的分值,一張問(wèn)卷滿(mǎn)分為40分。家長(zhǎng)與幼兒對(duì)該活動(dòng)的評(píng)價(jià)總分為3192分,平均分為37.55分,在滿(mǎn)分為40分的情況下,家長(zhǎng)與幼兒的總體評(píng)分很高。
實(shí)驗(yàn)環(huán)境為Windows7,64位操作系統(tǒng),CPU為Intel Core i5-6500H,主頻3.2 GHz,內(nèi)存8 GB,算法基于MATLAB2014b,使用M語(yǔ)言編寫(xiě)。
為了測(cè)試PWMBOA算法的魯棒性和有效性,引用9 個(gè)具有不同特征的基準(zhǔn)測(cè)試函數(shù),如表1 所示。為保證對(duì)比的公平性,算法基本參數(shù)設(shè)置相同:種群規(guī)模為30,測(cè)試函數(shù)維數(shù)30/50/200,最大迭代次數(shù)1 000。OBOA與PWMBOA的pr=0.08,其余改進(jìn)的BOA與基本BOA保持一致。
表1 測(cè)試函數(shù)Table 1 Test functions
在維數(shù)30的條件下,將PWMBOA與基本BOA在9個(gè)測(cè)試函數(shù)上進(jìn)行求解,并讓每個(gè)算法獨(dú)立運(yùn)行30次,同時(shí)用5個(gè)性能指標(biāo)來(lái)評(píng)估實(shí)驗(yàn)結(jié)果,如表2所示。
表2 PWMBOA與BOA結(jié)果對(duì)比Table 2 Comparison of results of PWMBOA and BOA
算法的尋優(yōu)質(zhì)量由最優(yōu)值和最差值反映,從表2數(shù)據(jù)可知,對(duì)于F1~F3、F5、F7~F9 求解時(shí),改進(jìn)算法PWMBOA 均能尋到理論最優(yōu)值0;對(duì)于F4 求解時(shí),雖然PWMBOA 沒(méi)有尋到理論最優(yōu)值0,但與BOA 相比最優(yōu)值提高了3個(gè)數(shù)量級(jí)。對(duì)于F6 求解時(shí),PWMBOA沒(méi)有尋到最優(yōu)解,但與基本BOA相比尋優(yōu)精度提高了4個(gè)數(shù)量級(jí),能夠?qū)さ礁鼉?yōu)的結(jié)果。
從平均值和標(biāo)準(zhǔn)差的角度分析,標(biāo)準(zhǔn)差反映算法的穩(wěn)定性,平均值反映算法的收斂速度。對(duì)F4 求解時(shí),PWMBOA尋優(yōu)精度更高且尋優(yōu)結(jié)果更穩(wěn)定。對(duì)于F6,與BOA 相比,PWMBOA 的標(biāo)準(zhǔn)差為0,說(shuō)明在求解F6時(shí),獲得高精度的結(jié)果并非偶然。另外,從平均耗時(shí)的角度考慮,同BOA 相比,PWMBOA 平均耗時(shí)要長(zhǎng)。主要因?yàn)镻WMBOA 算法中引入的策略需要進(jìn)行指數(shù)對(duì)數(shù)計(jì)算,同時(shí)多次計(jì)算適應(yīng)度并進(jìn)行對(duì)比,所以計(jì)算耗時(shí)相比BOA 增加了,相比尋優(yōu)結(jié)果的精度和尋優(yōu)結(jié)果的穩(wěn)定性,這樣的耗時(shí)是能夠接受的。
綜上分析,對(duì)于9 個(gè)測(cè)試函數(shù)進(jìn)行綜合尋優(yōu)時(shí),PWMBOA 算法的性能得到了很大的改進(jìn),具體表現(xiàn)在PWMBOA 能夠獲得更高的尋優(yōu)精度,算法的收斂速度也得到了提升,與BOA相比具備更強(qiáng)的尋優(yōu)能力。
將PWMBOA 與標(biāo)準(zhǔn)BOA、僅加入飛行引領(lǐng)策略(JBOA)、僅加入分段權(quán)重(CBOA)以及僅加入變異反向?qū)W習(xí)(OBOA)策略進(jìn)行比較,進(jìn)一步驗(yàn)證不同策略的有效性和魯棒性。算法的具體參數(shù)設(shè)置與3.1 節(jié)相同,并讓每個(gè)改進(jìn)策略獨(dú)立運(yùn)行30 次得到的實(shí)驗(yàn)結(jié)果如表3所示。
由表3的數(shù)據(jù)可知,對(duì)F1~F3、F5、F7~F9 尋優(yōu)時(shí),PWMBOA都能夠?qū)さ嚼碚撝?,對(duì)F6 雖然沒(méi)有尋到理論值,但相對(duì)于其他改進(jìn)策略尋優(yōu)精度更高及收斂速度更快。對(duì)F4,OBOA尋優(yōu)精度比PWMBOA略高,主要是F4 含有的噪聲對(duì)于引領(lǐng)策略計(jì)算適應(yīng)度干擾的緣故,對(duì)蝴蝶信息交互產(chǎn)生一定影響,進(jìn)而對(duì)PWMBOA的尋優(yōu)性能產(chǎn)生微弱影響。
從每個(gè)策略分析,對(duì)于單峰函數(shù)F1~F2、F5 及多峰函數(shù)F7~F9,CBOA 都能尋到最優(yōu)值,對(duì)F3、F4 及F6 的精度也遠(yuǎn)高于BOA。因?yàn)榉侄螜?quán)重在搜索前半段使用指數(shù)與對(duì)數(shù)結(jié)合的形式,所以可以保證算法能夠在迭代開(kāi)始到中期獲得較高權(quán)重,增強(qiáng)算法的全局搜索能力,搜索后半段使用指數(shù)形式權(quán)重,需要讓算法在最優(yōu)值附近進(jìn)行深度開(kāi)發(fā),提高尋優(yōu)精度和加快收斂速度;對(duì)于單峰函數(shù)F1~F3 及多峰函數(shù)F7~F9,JBOA 尋優(yōu)精度均有不同幅度的提升,尤其是對(duì)于F1~F2,尋優(yōu)精度與BOA相比提高了10-52和10-94量級(jí),因?yàn)橥ㄟ^(guò)加強(qiáng)當(dāng)前蝴蝶與最優(yōu)蝴蝶之間的信息交流,可以有效引導(dǎo)當(dāng)前蝴蝶向最優(yōu)位置進(jìn)行尋優(yōu);對(duì)于單峰函數(shù)F1~F5,OBOA 與BOA 精度有一定提升,特別是含有大量噪聲的F4 上尋優(yōu)精度最高,多峰函數(shù)F7~F9 上,其尋優(yōu)精度雖低于BOA 但均值要比BOA 好。OBOA 通過(guò)控制變異概率與反向?qū)W習(xí)結(jié)合,比較當(dāng)前解與可行解,擇優(yōu)進(jìn)入下一次迭代,豐富種群多樣性,且在含有噪聲的函數(shù)上表現(xiàn)較好。
另外,由表3 可知,BOA 平均耗時(shí)最少,改進(jìn)的JBOA、OBOA、CBOA 相比BOA 平均耗時(shí)有小幅度增加,出現(xiàn)這種情況是符合實(shí)際情況的。因?yàn)楦倪M(jìn)策略中引入了更多參數(shù),使得PWMBOA能夠在搜索空間中搜索到更多的解,導(dǎo)致算法運(yùn)行時(shí)間變長(zhǎng)。PWMBOA 的平均耗時(shí)與其他三種改進(jìn)策略增加不是很大,在可接受范圍內(nèi)。
表3 不同改進(jìn)策略的結(jié)果比較Table 3 Comparison of results of different improvement strategies
根據(jù)文獻(xiàn)[17]和文獻(xiàn)[18]對(duì)算法進(jìn)行收斂性分析可以更充分驗(yàn)證算法的性能。圖1為基準(zhǔn)測(cè)試函數(shù)F1~F9的平均收斂曲線(xiàn)圖,維度均為30維,獨(dú)立運(yùn)行30次的條件下,對(duì)每個(gè)改進(jìn)策略進(jìn)行收斂性分析。為了使曲線(xiàn)不失一般性,采用平均收斂曲線(xiàn)圖描述每個(gè)改進(jìn)策略的收斂性。因?yàn)閷?yōu)精度過(guò)高,為了更好地觀察曲線(xiàn)收斂情況,所以縱坐標(biāo)取以10為底的對(duì)數(shù),其特點(diǎn)是當(dāng)算法尋到最優(yōu)值0時(shí),曲線(xiàn)后面將不再顯示。
從圖1 中明顯看出,在單峰函數(shù)F1~F2 上,尋到最優(yōu)值,而且從迭代開(kāi)始PWMBOA和CBOA與其他改進(jìn)策略相比平均曲線(xiàn)下降更快且具有更高的收斂速度和尋優(yōu)精度,這也充分印證了分段權(quán)重能夠有效增強(qiáng)算法逃離局部最優(yōu)的能力,確保算法獲得更高的尋優(yōu)精度,同時(shí)JBOA 的尋優(yōu)精度與平均曲線(xiàn)收斂也比BOA 和OBOA 更高與更快。在單峰函數(shù)F3 上,CBOA 的尋優(yōu)能力相比其他改進(jìn)策略更為出色,PWMBOA 的尋優(yōu)能力雖不如CBOA,但兩者的曲線(xiàn)收斂速度相當(dāng)。在單峰函數(shù)F4 上,迭代開(kāi)始時(shí)各算法的曲線(xiàn)下降迅速,然而隨著迭代的進(jìn)行,BOA與JBOA陷入局部最優(yōu),算法出現(xiàn)停滯,PWMBOA、CBOA和OBOA繼續(xù)尋優(yōu),其中OBOA尋優(yōu)能力更為突出,尋優(yōu)精度最高,OBOA 對(duì)于該函數(shù)的尋優(yōu)能力和跳出局部極值的能力遠(yuǎn)高于其他函數(shù)。在單峰函數(shù)F5 上,PWMBOA 和CBOA 的曲線(xiàn)收斂速度最快,OBOA 次之。在多峰函數(shù)F6 上,PWMBOA 和CBOA 的曲線(xiàn)收斂速度和尋優(yōu)精度最高,而且JBOA、OBOA 的曲線(xiàn)收斂速度與尋優(yōu)精度也高于BOA。在多峰函數(shù)F7~F9 上,PWMBOA 和CBOA 都能尋到最優(yōu)值,PWMBOA 的收斂速度相比其他算法具有明顯的優(yōu)勢(shì),即收斂速度快且尋優(yōu)精度高。
綜上,表3 的實(shí)驗(yàn)結(jié)果與圖1 的平均曲線(xiàn)驗(yàn)證了本文所提3種改進(jìn)策略的有效性。同時(shí)融合了3種改進(jìn)策略的PWMBOA 的綜合尋優(yōu)能力相比BOA 得到了很大程度的提升。
圖1 不同改進(jìn)策略的平均收斂曲線(xiàn)Fig.1 Mean convergence curves of different improvement strategies
將PWMBOA與BOA[1]、SSA[4]、WOA[5]與SCA[6]進(jìn)行對(duì)比,分別在搜索空間維度為30/50/200 的條件下,對(duì)9個(gè)測(cè)試函數(shù)進(jìn)行尋優(yōu),獨(dú)立運(yùn)行30 次。如表4 所示,SSA的尋優(yōu)精度最低,SCA和BOA尋優(yōu)精度相差不大,PWMBOA 尋優(yōu)精度、收斂速度及穩(wěn)定性是6 種對(duì)比算法中最好的,WOA 的尋優(yōu)精度和穩(wěn)定性比其他4 種對(duì)比算法要高。
表4 不同維度下各種群智能算法的結(jié)果對(duì)比Table 4 Comparison of results of swarm intelligence algorithms in different dimensions
從縱向分析,WOA 在對(duì)F7、F9 求解時(shí),能夠?qū)さ嚼碚撝担琒CA僅在F8 尋到理論值。對(duì)于F1~F9,在其他對(duì)比算法尋優(yōu)精度低且收斂速度慢的情況下,PWMBOA仍然能保持較高的穩(wěn)定性和尋優(yōu)精度。隨著函數(shù)由單峰函數(shù)變?yōu)槎喾搴瘮?shù),BOA 陷入局部最優(yōu)的問(wèn)題越發(fā)明顯,其他對(duì)比算法也出現(xiàn)了停滯,僅有PWMBOA 持續(xù)尋優(yōu),尋優(yōu)精度也是5種對(duì)比算法中最高的。
從橫向分析,當(dāng)維度從30 維增加至50 維再增加至200 維時(shí),WOA、SSA 和SCA 的尋優(yōu)精度和魯棒性均有不同程度下降。因?yàn)殡S著測(cè)試函數(shù)維度增加,求解函數(shù)的復(fù)雜度也在隨之升高,尋優(yōu)過(guò)程更加復(fù)雜,需要更多的計(jì)算和調(diào)整,但BOA和PWMBOA相對(duì)穩(wěn)定,PWMBOA的尋優(yōu)精度和魯棒性仍然是6種算法中最好的。另外,從平均耗時(shí)角度看,當(dāng)維度從30 維到50 維再到200 維時(shí),WOA的平均耗時(shí)最長(zhǎng),WOA在F7、F9 上尋到理論值0;SCA在F8 上尋到理論值。30維時(shí),平均耗時(shí)最短的是SCA,50 維時(shí),除F1 求解時(shí),SCA 平均耗時(shí)最短外,其余函數(shù)上SSA平均耗時(shí)最短。200維時(shí),對(duì)于F2、F4~F7 求解時(shí),SSA 的平均耗時(shí)最短,其余函數(shù)求解,BOA 的平均耗時(shí)最短。改進(jìn)算法PWMBOA 能對(duì)搜索空間進(jìn)行廣泛搜索,因此可以找到更多的解,進(jìn)而導(dǎo)致各算法的平均耗時(shí)有所增加。
在上述仿真中,僅通過(guò)平均值和標(biāo)準(zhǔn)差不會(huì)對(duì)每次實(shí)驗(yàn)結(jié)果進(jìn)行獨(dú)立對(duì)比。為了保證算法的公平性和魯棒性,Derrac 等在文獻(xiàn)[19]中提出使用統(tǒng)計(jì)檢驗(yàn)來(lái)評(píng)估改進(jìn)算法的性能。為了驗(yàn)證PWMBOA 的每次實(shí)驗(yàn)結(jié)果是否在統(tǒng)計(jì)上有顯著差異,本文采用Wilcoxon統(tǒng)計(jì)檢驗(yàn)[20],在5%的顯著性水平之下進(jìn)行,若p值小于5%,則拒絕零假設(shè),說(shuō)明兩種對(duì)比算法之間具有顯著性差異。
9 個(gè)測(cè)試函數(shù)下,將PWMBOA 與BOA、JBOA、OBOA、CBOA 以及新改進(jìn)的灰狼算法(Improved Grey Wolf Optimizer,IGWO)、混合灰狼和布谷鳥(niǎo)搜索優(yōu)化算法(Hybrid Grey Wolf and Cuckoo Search Optimization algorithm,GWO_CS)進(jìn)行比較。若最佳算法是PWMBOA,因?yàn)樽罴阉惴o(wú)法與自身對(duì)比,所以表中標(biāo)記“NaN”,表示不適用,即無(wú)法進(jìn)行顯著性判斷?!皐in”表示顯著性判斷結(jié)果,符號(hào)“+”“-”和“=”分別表示PWMBOA 的性能要優(yōu)于、劣于和相當(dāng)于對(duì)比算法。從表5 中可知,大部分p值遠(yuǎn)小于5%,“win”為“+”,拒絕零假設(shè)。因此,PWMBOA 與其他6 種對(duì)比算法之間具有顯著性差異,且PWMBOA顯著更優(yōu)。
表5 Wilcoxon秩和檢驗(yàn)p 值Table 5 Wilcoxon rank sum test p value
為了更好地評(píng)估PWMBOA的有效性和魯棒性,根據(jù)文獻(xiàn)[21]使用CEC2014來(lái)驗(yàn)證改進(jìn)算法的性能,因此本文在CEC2014 基準(zhǔn)測(cè)試函數(shù)上選取了部分單峰、多峰、混合(Hybrid)及復(fù)合(Composition)類(lèi)型的函數(shù)進(jìn)行優(yōu)化求解,如表6所示。其中L-SHADE[2]在CEC2014函數(shù)上表現(xiàn)出色,常當(dāng)作對(duì)比算法,同時(shí)與TSLPSO[2]進(jìn)行對(duì)比。在該實(shí)驗(yàn)中,種群規(guī)模設(shè)為30,最大迭代次數(shù)為1 000,維度為30,獨(dú)立運(yùn)行30次。
表6 CEC2014函數(shù)(部分)Table 6 CEC2014 functions(part)
由表7 可知,L-SHADE 和TSLPSO 在單峰、多峰函數(shù)上具有明顯優(yōu)勢(shì),IGWO和GWO_CS次之,PWMBOA稍差一些,因?yàn)镻WMBOA 更多的參數(shù)計(jì)算,造成收斂精度稍有下降;其余函數(shù)上,L-SHADE 和PWMBOA 的收斂精度和魯棒性遠(yuǎn)高于其他算法,更進(jìn)一步證明PWMBOA具有較好的魯棒性和有效性。
表7 CEC2014優(yōu)化結(jié)果對(duì)比Table 7 Comparison of CEC2014 optimization results
為了突出改進(jìn)算法的競(jìng)爭(zhēng)性,與參考文獻(xiàn)中的其他改進(jìn)算法進(jìn)行比較。為實(shí)現(xiàn)公平對(duì)比,迭代次數(shù)設(shè)為500,種群規(guī)模為30,除了F8 維度設(shè)為2外,其他函數(shù)搜索維度為30/200/500,獨(dú)立運(yùn)行30 次,對(duì)比結(jié)果如表8所示,表中“—”代表無(wú)數(shù)據(jù)。
由表8可知,分別在30/200/500維度,對(duì)各新改進(jìn)算法從橫向和縱向進(jìn)行對(duì)比,充分驗(yàn)證PWMBOA的優(yōu)勢(shì)。從橫向看,在F1~F3 上DCWOA的平均值最好,CWOA次之,PWMBOA 略差一點(diǎn);在F4~F9 上,PWMBOA 的均值都比其他新改進(jìn)的群智能算法要好。從縱向看,隨著維度的增加,在F3 上DCWOA和CWOA的均值明顯增加,而PWMBOA均值幾乎未變,進(jìn)一步驗(yàn)證了PWMBOA的競(jìng)爭(zhēng)性。
表8 與參考文獻(xiàn)算法均值對(duì)比Table 8 Compared with reference algorithms
為了克服BOA存在尋優(yōu)精度低和收斂速度慢的問(wèn)題,受分段權(quán)重和GA 中變異概率的啟發(fā),提出了新型的蝴蝶位置更新策略以增加種群多樣性,增強(qiáng)跳出局部最優(yōu)和全局搜索的能力;采用飛行引領(lǐng)策略,加強(qiáng)蝴蝶個(gè)體之間的信息交互,降低蝴蝶盲目跟隨飛行的概率,避免算法出現(xiàn)早熟現(xiàn)象;其次為了更好地平衡全局勘探與局部開(kāi)發(fā),將分段權(quán)重用于位置更新,通過(guò)反向?qū)W習(xí)和變異概率對(duì)目標(biāo)位置進(jìn)行干擾,避免算法陷入局部最優(yōu);最后比較變異后的位置與原位置的優(yōu)劣,選擇最優(yōu)位置進(jìn)入下一次迭代。文中不僅使用經(jīng)典測(cè)試函數(shù),也運(yùn)用統(tǒng)計(jì)檢驗(yàn)Wilcoxon秩和檢驗(yàn)和CEC2014部分函數(shù)驗(yàn)證PWMBOA算法性能。實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法具有更高的尋優(yōu)能力和有效性。在未來(lái)的研究中,考慮將算法應(yīng)用到工程實(shí)踐上,以進(jìn)一步驗(yàn)證算法的性能。