萬 達(dá),李 俊
1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430065
2.智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室,武漢 430065
受煙花在夜空爆炸這一自然現(xiàn)象啟發(fā),Tan 等[1]于2010 年提出了煙花算法(FireWorks Algorithm,F(xiàn)WA),F(xiàn)WA 主要由爆炸算子、變異算子和選擇策略三大部分組成,其在解決單目標(biāo)優(yōu)化問題過程中,具有很好的效果。煙花算法自提出后就受到了諸多科研工作者的關(guān)注,許多改進(jìn)算法也相繼被提出。煙花算法的改進(jìn)主要可以分為兩類:一類是在基本煙花算法或其他改進(jìn)煙花算法的基礎(chǔ)上進(jìn)行算子的分析和改進(jìn);另一類是將煙花算法與其他啟發(fā)式算法結(jié)合。
第一類算法改進(jìn)主要有:Zheng等[2]對(duì)煙花算法的爆炸算子、變異算子、選擇策略和映射規(guī)則等進(jìn)行了詳細(xì)的分析,針對(duì)其存在的缺陷做出了五點(diǎn)改進(jìn),提出了增強(qiáng)型煙花算法(Enhanced FireWorks Algorithm,EFWA)。接著,Zheng等[3]和Li等[4]通過自適應(yīng)調(diào)整核心煙花的爆炸半徑分別提出了動(dòng)態(tài)搜索煙花算法(dynamic search FireWorks Algorithm,dynFWA)和自適應(yīng)煙花算法(Adaptive FireWorks Algorithm,AFWA)。文獻(xiàn)[3]中,煙花爆炸半徑的變化過程由煙花種群產(chǎn)生的火花適應(yīng)度值是否發(fā)生改進(jìn)(即是否得到適應(yīng)度值更優(yōu)的火花)來決定。文獻(xiàn)[4]中,煙花爆炸半徑依據(jù)當(dāng)前種群中最優(yōu)個(gè)體與特殊個(gè)體間的距離自適應(yīng)調(diào)節(jié)。這兩種方法由于采用了自適應(yīng)調(diào)整爆炸半徑的機(jī)制,都極大提升了增強(qiáng)型煙花算法的性能。方柳平等[5]在dynFWA 基礎(chǔ)上,通過嵌入兩種利用歷史成功信息生成的不同的學(xué)習(xí)因子的方式來改進(jìn)傳統(tǒng)的動(dòng)態(tài)搜索煙花算法,提出了一種改進(jìn)的動(dòng)態(tài)搜索煙花算法(IdynFWA)。張水平等[6]在增強(qiáng)型煙花算法的基礎(chǔ)上,引入一種動(dòng)態(tài)爆炸半徑調(diào)整機(jī)制,并在選擇過程中引入了一種雙精英-錦標(biāo)賽選擇策略,提出了帶有動(dòng)態(tài)爆炸半徑的增強(qiáng)型煙花算法(EFWA-DER)。Zheng 等[7]在dynFWA 基礎(chǔ)上,通過使用獨(dú)立選擇的方法顯著地提高了煙花的開采能力,并且在煙花之間加入避免擁擠的合作策略,提出了基于煙花算法的合作框架(CoFFWA)。之后,Zheng等[8]又將協(xié)方差變異算子引入到CoFFWA中,提出了基于協(xié)方差變異的協(xié)同框架煙花算法(CoFFWA-CM)。Li等[9]在煙花算法中引入引導(dǎo)火花,提出了引導(dǎo)煙花算法(GFWA)。Li等[10]針對(duì)解決多模式優(yōu)化問題提出了一種基于淘汰者錦標(biāo)賽的煙花算法(LoTFWA)。
第二類算法改進(jìn)主要有:Zheng 等[11]提出了將煙花算法和差分演化算法進(jìn)行混合的一種新型算法(FWADE)。黃輝先等[12]為解決多目標(biāo)優(yōu)化問題,用差分變異算子代替高斯變異算子,提出了進(jìn)化信息引導(dǎo)的煙花差分混合多目標(biāo)算法(MOHFWDE)。劉茜等[13]提出了一種由差分進(jìn)化引導(dǎo)趨化算子的煙花算法(BFA),該算法在求解過程中利用優(yōu)越火花的位置信息,通過差分進(jìn)化算法驅(qū)動(dòng)其他粒子移動(dòng),從而對(duì)群體中其他粒子位置信息進(jìn)行改善,增強(qiáng)了粒子群體間的交流,削弱了映射規(guī)則和高斯變異給整個(gè)求解過程帶來的不良影響,提高了算法的優(yōu)化性能。韓守飛等[14]將模擬退火的思想引入到煙花算法中,并對(duì)煙花算法中某些單個(gè)煙花個(gè)體進(jìn)行高斯擾動(dòng),提出了一種基于模擬退火與高斯擾動(dòng)的煙花優(yōu)化算法(SAFWA)。莫海淼等[15]提出一種具有自適應(yīng)步長與協(xié)同尋優(yōu)的蝙蝠煙花混合算法。Zhang 等[16]提出了一種將生物地理學(xué)優(yōu)化算法和增強(qiáng)型煙花算法(EFWA)進(jìn)行混合的煙花算法(BBO-FWA)。Chen等[17]提出一種將煙花算子嵌入到粒子群算法求解過程中的全局優(yōu)化混合算法(PS-FW),該算法在解決全局優(yōu)化問題過程中具有良好效果。
文獻(xiàn)[10]使用了一種新的爆炸火花分布方式,以及提出了一種淘汰錦標(biāo)賽策略,實(shí)驗(yàn)證明該算法在解決多模式優(yōu)化問題上具有較好的效果。但是該算法并沒有將最重要的核心煙花與其他煙花區(qū)分開來,進(jìn)行進(jìn)一步的操作,也沒有利用上一代煙花的信息。導(dǎo)致該算法全局探索能力較強(qiáng),但是局部搜索效果并不明顯,算法收斂速度過慢。
針對(duì)文獻(xiàn)[10]中的不足,本文提出了一種基于錦標(biāo)賽精英學(xué)習(xí)與協(xié)方差變異的煙花算法(GLFWA-CM)。首先,本文算法根據(jù)當(dāng)代核心煙花相對(duì)于上一代核心煙花的變化來確定核心煙花在每一維上的爆炸半徑及其爆炸火花分布,加強(qiáng)了不同代煙花之間的信息交互,使得搜索資源的分配更加合理,提高了算法的局部搜索能力。其次,本文引入一種協(xié)方差變異算子,先計(jì)算部分適應(yīng)度值較好的爆炸火花的均值和協(xié)方差,然后根據(jù)均值和協(xié)方差來隨機(jī)產(chǎn)生一個(gè)協(xié)方差變異火花,代替文獻(xiàn)[10]中的引導(dǎo)火花,有助于平衡算法的局部搜索和全局搜索能力。同時(shí),本文提出了一種基于錦標(biāo)賽的精英學(xué)習(xí)策略,對(duì)于選擇后的較差個(gè)體并沒有淘汰掉,而是讓它們向最好個(gè)體學(xué)習(xí),提高了算法的收斂速度。最后通過15 個(gè)測(cè)試函數(shù)來驗(yàn)證本文算法的有效性和準(zhǔn)確性,并與其他算法的實(shí)驗(yàn)結(jié)果進(jìn)行比較。
在煙花算法中,為不失一般性,假設(shè)待求解的優(yōu)化問題形式如下[18]:
其中Ω為解的可行域,使用煙花算法對(duì)優(yōu)化問題(1)進(jìn)行求解的目標(biāo)是在可行域Ω內(nèi),尋找一點(diǎn)x,使得f(x)具有全局最小值。
假設(shè)煙花種群規(guī)模為N,煙花算法產(chǎn)生子代的方式是在N個(gè)煙花附近的規(guī)定區(qū)域內(nèi)通過爆炸操作生成爆炸火花。對(duì)于煙花xi,其爆炸半徑Ai和爆炸火花數(shù)目Si的計(jì)算公式分別為:
式(2)中,ymin為當(dāng)前煙花種群中適應(yīng)度最小值;式(3)中,ymax為當(dāng)前煙花種群中適應(yīng)度最大值。是常數(shù),用來調(diào)整爆炸半徑大小,S也是個(gè)常數(shù),用來調(diào)整產(chǎn)生的爆炸火花數(shù)目大小,ε是一個(gè)機(jī)器最小量,用來避免除零操作。
為了避免產(chǎn)生過多或者過少的火花,對(duì)于式(3)中的Si進(jìn)行了如下的限制:
式(4)中,a、b是兩個(gè)常數(shù),且a
在確定煙花的爆炸半徑和爆炸火花數(shù)目后,就可以執(zhí)行爆炸操作了。第i個(gè)煙花xi產(chǎn)生第j個(gè)爆炸火花x(i,j)的方式為:從第i個(gè)煙花中隨機(jī)選擇z維坐標(biāo)按下式更新:
式(5)中,k為被選擇的維度,Ai為第i個(gè)煙花的爆炸半徑,rand(-1,1)為區(qū)間[-1,1]之間的一個(gè)均勻隨機(jī)數(shù)。
為了增加煙花種群的多樣性,煙花算法引入了變異算子用于產(chǎn)生高斯變異火花。高斯變異火花產(chǎn)生的過程如下:首先在煙花種群中隨機(jī)選擇一個(gè)煙花xi,然后從該煙花所有維度坐標(biāo)中隨機(jī)選擇z維坐標(biāo)執(zhí)行高斯變異操作,對(duì)煙花xi的第k維坐標(biāo)執(zhí)行高斯變異操作的公式為:
式(6)中,e~N(1,1),N(1,1)表示均值和方差均為1的高斯分布。
在產(chǎn)生爆炸火花和高斯變異火花的過程中,可能會(huì)出現(xiàn)產(chǎn)生的火花在可行域Ω的邊界以外的情況。當(dāng)火花在維度k上超出邊界時(shí),將通過下式將其映射到可行域Ω之內(nèi)。
為使煙花種群中優(yōu)秀的信息能夠傳遞到下一代種群中,算法會(huì)在候選者集合K(包括煙花、爆炸火花和高斯變異火花)中選擇N個(gè)個(gè)體作為下一代的煙花。候選者集合K中適應(yīng)度值最小的個(gè)體會(huì)被確定性地選擇到下一代作為煙花,而對(duì)于剩下的N-1 個(gè)煙花的選擇采用輪盤賭的方法在候選者集合K中進(jìn)行選擇。對(duì)于候選者xi,其被選擇的概率p(xi)計(jì)算公式如下:
式(8)(9)中,R(xi)為當(dāng)前個(gè)體到候選者集合K中除xi外所有個(gè)體之間的距離之和。
針對(duì)傳統(tǒng)煙花算法收斂精度低,收斂速度慢,容易陷入局部最優(yōu)等問題,提出一種基于錦標(biāo)賽精英學(xué)習(xí)與協(xié)方差變異的煙花算法(GLFWA-CM)。該算法主要包括爆炸算子、協(xié)方差變異算子和選擇策略三個(gè)部分。在爆炸算子中,用冪律分配的方式來計(jì)算爆炸火花數(shù)目,根據(jù)煙花是否產(chǎn)生更好的火花來動(dòng)態(tài)確定爆炸半徑,如果產(chǎn)生更好的火花,則增大爆炸半徑,否則減小,這兩種策略可以有效解決煙花算法容易陷入局部最優(yōu)的問題。同時(shí),根據(jù)核心煙花更新信息來確定核心煙花每一維的爆炸半徑,并且在更新方向上產(chǎn)生更多火花,這種方法顯著增強(qiáng)了核心煙花的局部探索能力,提高了算法的收斂精度。對(duì)超出邊界的火花使用一種隨機(jī)映射規(guī)則,避免了煙花算法火花往往映射在原點(diǎn)附近的缺陷。用協(xié)方差變異火花代替其他變異火花,可以有效平衡算法的局部搜索和全局搜索能力。對(duì)于獨(dú)立選擇后的較差煙花,執(zhí)行一種基于錦標(biāo)賽的精英學(xué)習(xí)策略,可以有效提高算法的收斂速度。
本文根據(jù)煙花適應(yīng)度值的優(yōu)劣將煙花分成了核心煙花和非核心煙花,其中核心煙花xF是煙花種群中適應(yīng)度值最優(yōu)的煙花,除核心煙花外,其他的都是非核心煙花。
2.1.1 冪律分布
冪律分布[19]是指某個(gè)具有分布性質(zhì)的變量,且其分布密度函數(shù)是冪函數(shù)的分布。在煙花算法中,爆炸火花的數(shù)目僅僅與煙花的適應(yīng)度值有關(guān),當(dāng)煙花較差時(shí),其爆炸火花數(shù)目往往只能取最小閾值,而這類煙花爆炸半徑又相對(duì)非常大,所以這類煙花搜索效率極低,這顯然不合理。為了改變這種不合理現(xiàn)象,本文采用一種冪律分配的方式來計(jì)算爆炸火花數(shù)目。首先是對(duì)煙花適應(yīng)度值進(jìn)行升序排序,并確定煙花的等級(jí),其中,適應(yīng)度值越小,等級(jí)越低。然后,根據(jù)煙花的等級(jí)計(jì)算爆炸火花的數(shù)目,計(jì)算方法如下:
式(10)中,Si指第i個(gè)煙花的爆炸火花數(shù)目,S為常數(shù),用來調(diào)整產(chǎn)生的爆炸火花數(shù)目大小,N為煙花種群規(guī)模大小,ri表示煙花xi的等級(jí),α是一個(gè)常數(shù)。從式(10)可以看出爆炸火花數(shù)目的分配與該煙花適應(yīng)度值的排序相關(guān)聯(lián),而不再像式(3)那樣依賴適應(yīng)度值的數(shù)值本身。文獻(xiàn)[10]證明了這是一種很有效的資源分配方式。
2.1.2 動(dòng)態(tài)爆炸半徑
在煙花算法中,爆炸半徑是根據(jù)式(2)計(jì)算的,分析式(2)可知,當(dāng)煙花之間適應(yīng)度值相差較大時(shí),適應(yīng)度值較小的煙花其爆炸半徑也相對(duì)較小,假設(shè)在該煙花搜索區(qū)域存在一個(gè)局部最優(yōu)解,那么在迭代過程中,該區(qū)域煙花爆炸半徑會(huì)不斷縮小,爆炸火花數(shù)目會(huì)不斷增加,并且由于它占據(jù)大量資源,導(dǎo)致其他煙花搜索資源減少,降低了找到全局最優(yōu)解的概率。那么最終算法很可能就會(huì)陷入局部收斂,并且很難跳出。
為了避免這種情況,本文引入一種動(dòng)態(tài)爆炸半徑策略。煙花算法的爆炸半徑根據(jù)上一代最優(yōu)解自適應(yīng)地改變,當(dāng)煙花產(chǎn)生適應(yīng)度值更好的火花時(shí),煙花爆炸半徑會(huì)增大以提高全局探索能力,再加上2.1.1 小節(jié)提出的爆炸火花冪律分配方式,使得煙花之間的爆炸火花數(shù)目不會(huì)相差太懸殊,該策略可以有效解決煙花算法容易陷入成熟收斂的問題。本文煙花爆炸半徑的計(jì)算公式如下:
2.1.3 核心煙花更新信息引導(dǎo)
在煙花算法中,核心煙花的爆炸半徑對(duì)煙花算法的性能有著決定性的影響。而大家知道,在算法迭代過程中,尤其是在前期,核心煙花一直在更新,這種更新表明了煙花算法向著最優(yōu)解方向搜索的趨勢(shì)。那么,在潛在最優(yōu)解位置明確的情況下,可以利用這種趨勢(shì),即利用核心煙花的更新信息來確定核心煙花在不同維度的爆炸半徑以及其爆炸火花的分布。基本思想是核心煙花在更新幅度越大的維度其爆炸半徑就越大,反之,則越小。另外,在爆炸過程中,朝著核心煙花的更新方向上分布更多的火花。這樣有助于核心煙花在更新方向上進(jìn)行更加細(xì)致的搜索,增加了核心煙花找到最優(yōu)解的概率。但同時(shí)需要注意的是,雖然更新信息指出了潛在最優(yōu)解的位置,但是也存在著最優(yōu)解不在更新方向上的可能性。如果所有的火花或太多的火花都分布在更新方向上,則算法很有可能會(huì)陷入局部最優(yōu)。因此,在選擇某一維度執(zhí)行爆炸操作時(shí),需要確定一個(gè)合適的選擇概率β,以確保大多數(shù)火花分布在更新方向上,也要保證有一定火花分布在更新方向的反方向上,具體實(shí)現(xiàn)方法在算法1中給出。
算法1
上述操作的實(shí)質(zhì)是在核心煙花的更新方向上,增加爆炸火花的數(shù)目,而在其他方向上,減少爆炸火花數(shù)目。這雖然顯著增強(qiáng)了核心煙花尋找最優(yōu)解的能力,但是也對(duì)核心煙花爆炸火花的多樣性有一定影響,增加了算法陷入局部最優(yōu)解的可能性。為了降低該策略對(duì)算法全局探索能力的影響,本文中最大爆炸火花數(shù)目設(shè)置的相對(duì)較大,通過產(chǎn)生更多的爆炸火花,一定程度上彌補(bǔ)了這些方向的火花喪失,可以進(jìn)一步降低該策略對(duì)火花多樣性的影響。同時(shí)爆炸火花數(shù)目的增多,也使得核心煙花可以更加細(xì)致地在更新方向上進(jìn)行局部搜索,提高算法收斂精度。
對(duì)于核心煙花,其各個(gè)維度上的爆炸半徑的計(jì)算公式如下:
式(12)中,xF(g)和xF(g-1) 分別是當(dāng)前代和上一代核心煙花,而ΔxF則是當(dāng)前代核心煙花的更新信息。在式(13)中,|ΔxF(k) |是核心煙花更新信息在第k(k=1,2,…,D)維上的絕對(duì)值,D是維數(shù),是根據(jù)式(11)計(jì)算的當(dāng)前核心煙花所在小組的動(dòng)態(tài)爆炸半徑,(g)是當(dāng)前代核心煙花在第k維上的爆炸半徑,ε是一個(gè)機(jī)器最小量,用來避免除零操作。
根據(jù)式(12)可知,當(dāng)核心煙花的信息在某一維并沒有更新或者更新幅度很小時(shí),|ΔxF(k) |接近于0,而不等于0,那么,(g)也接近于0,即當(dāng)前代核心煙花在第k維上的爆炸半徑接近于零,這顯然不利于核心煙花在該維空間上的搜索,為了避免這種情況,本文采用了一種最小爆炸半徑檢查操作,具體計(jì)算公式如下:
在式(14)中,Ainit和Afinal是最初和最終的最小爆炸半徑,evalsmax是最大函數(shù)評(píng)估次數(shù),t(t=1,2,…,evalsmax)是指當(dāng)前的函數(shù)評(píng)估次數(shù),(t)是在評(píng)估次數(shù)為t時(shí)第k維的最小爆炸半徑。
2.1.4 隨機(jī)映射規(guī)則
在式(7)的映射規(guī)則中,存在一個(gè)問題。在一般情況下,解空間往往是關(guān)于原點(diǎn)O對(duì)稱分布的,而且超出解空間邊界的火花往往分布在解空間邊界附近,這就造成這些火花在使用公式(7)映射時(shí),往往映射在原點(diǎn)附近,這無形中造成了搜索資源的浪費(fèi),也容易促使煙花算法陷入局部最優(yōu)。為了解決這個(gè)問題,本文采用了一種隨機(jī)映射規(guī)則,具體映射公式如下:
文獻(xiàn)[2]對(duì)FWA經(jīng)過分析后指出煙花算法的高斯變異公式存在缺陷,當(dāng)產(chǎn)生的隨機(jī)數(shù)e接近或等于0時(shí),產(chǎn)生的變異火花就會(huì)分布在原點(diǎn)附近,并且很難跳出。因此,文獻(xiàn)[2]提出了一種改進(jìn)的高斯變異算子。之后,文獻(xiàn)[20]又提出了一種新的變異算子,被稱為協(xié)方差變異算子。相較于EFWA[2]僅僅利用每一代核心煙花的信息,F(xiàn)WA-CM[20]利用了煙花產(chǎn)生的部分適應(yīng)度值最好的爆炸火花的信息,在更可能找到最優(yōu)解的方向產(chǎn)生變異火花。實(shí)驗(yàn)證明協(xié)方差變異不僅可以避免FWA中變異公式的缺陷,而且相比EFWA 中的變異方式,協(xié)方差變異在更可能找到最優(yōu)解的方向產(chǎn)生變異火花,提高了算法找到最優(yōu)解的概率。并且由于協(xié)方差變異火花是利用爆炸火花的信息產(chǎn)生的,所以一般分布在煙花附近,這樣對(duì)平衡算法整體的探索和開發(fā)能力也是有幫助的。因此,本文也使用協(xié)方差變異算子來產(chǎn)生變異火花,具體操作步驟如下:
首先,假設(shè)煙花產(chǎn)生的爆炸火花數(shù)目為λ,從所有的爆炸火花λ中選取適應(yīng)值最好的μ個(gè)火花,m為被選中的μ個(gè)火花的均值,其計(jì)算方法如下:
式(17)中,xi為被選中的第i(i=1,2,…,μ)個(gè)火花。
在求得這μ個(gè)火花的均值m后,還需要計(jì)算這μ個(gè)火花數(shù)據(jù)的協(xié)方差矩陣,其協(xié)方差矩陣C的計(jì)算方法如下:
式中,ai和bi為第i個(gè)火花在d1和d2維度上的值,、為這μ個(gè)火花在d1和d2兩個(gè)不同維度上的均值。需要注意的是,分母是μ,而不是協(xié)方差計(jì)算公式的μ-1,C是一個(gè)D×D的矩陣。
在選擇新一代煙花時(shí),GLFWA-CM 采用了獨(dú)立選擇策略和基于錦標(biāo)賽的精英學(xué)習(xí)策略。獨(dú)立選擇策略是指將每個(gè)煙花和各自產(chǎn)生的火花看作一組,在進(jìn)行煙花選擇時(shí),直接從每組里選擇適應(yīng)度值最好的個(gè)體作為下一代的煙花。文獻(xiàn)[7]證明這種方式可以確保把當(dāng)代每個(gè)煙花的搜索經(jīng)驗(yàn)傳遞給下一代,而且每個(gè)煙花在各自區(qū)域的獨(dú)立搜索也增加了非核心煙花對(duì)于優(yōu)化過程的貢獻(xiàn)度。
獨(dú)立選擇策略使得算法能夠保持完整的探索能力,但是搜索資源始終是有限的,為了解決煙花算法收斂速度慢的問題,提出一種先競(jìng)爭后學(xué)習(xí)的方法。煙花個(gè)體之間通過自身預(yù)估的最終適應(yīng)度值進(jìn)行競(jìng)爭,如果某個(gè)被選擇的個(gè)體不能在自身適應(yīng)度值的基礎(chǔ)上以當(dāng)前的進(jìn)化速度追趕上當(dāng)代最好的個(gè)體,就會(huì)通過學(xué)習(xí)的方式來靠近當(dāng)代最好個(gè)體,這樣可以進(jìn)一步增強(qiáng)算法在核心煙花附近的局部探索能力,并且加快算法的收斂速度。另外,在迭代過程中,由于獨(dú)立選擇策略,某些非核心煙花有可能在自己的搜索區(qū)域附近陷入局部最優(yōu),此時(shí),它們的爆炸半徑會(huì)不斷減小,與核心煙花的差距也越來越大,當(dāng)大到某種程度時(shí),就會(huì)向核心煙花靠近,在靠近過程中逐漸找到更優(yōu)解,爆炸半徑會(huì)逐漸增大,最終幫助其跳脫出局部最優(yōu)。如算法2所示,是基于錦標(biāo)賽的精英學(xué)習(xí)策略的偽代碼:
算法2
在算法2中,是使用獨(dú)立選擇策略從每個(gè)組(包括煙花和其產(chǎn)生的所有火花)里預(yù)選出來的第i(i=1,2,…,N)個(gè)煙花,是被選擇的煙花中適應(yīng)度值最好的煙花,是爆炸前的第i個(gè)煙花,f()是求解適應(yīng)度值函數(shù),g是當(dāng)前迭代次數(shù),Gmax是最大迭代次數(shù),γ是一個(gè)常數(shù)參數(shù)。
GLFWA-CM算法的具體實(shí)現(xiàn)步驟如下:
步驟1初始化煙花種群規(guī)模N,協(xié)方差變異火花數(shù)目M,最大爆炸火花數(shù)目S,最大演化代數(shù)Gmax,爆炸火花數(shù)目分布參數(shù)α,選擇概率β,精英學(xué)習(xí)因子γ,動(dòng)態(tài)爆炸半徑增大系數(shù)Ca和減小系數(shù)Cr,協(xié)方差變異火花選擇比率η/λ,解的可行域Ω的上下邊界和,初始爆炸半徑,初始最小爆炸半徑Ainit和最終最小爆炸半徑Afinal等參數(shù)。
步驟2初始化N個(gè)煙花位置,并計(jì)算它們的適應(yīng)度值,找出核心煙花xF。
步驟3根據(jù)適應(yīng)度值大小對(duì)煙花進(jìn)行排序,并劃分等級(jí),適應(yīng)度值越小,等級(jí)越低。
步驟4根據(jù)式(10)計(jì)算每個(gè)煙花的爆炸火花數(shù)目Si。
步驟5根據(jù)式(11)計(jì)算煙花的爆炸半徑。
步驟6根據(jù)式(12)~(15)計(jì)算核心煙花在每一維上的的爆炸半徑(g)。
步驟7核心煙花根據(jù)算法1產(chǎn)生爆炸火花。
步驟8非核心煙花根據(jù)式(5)產(chǎn)生爆炸火花。
步驟9根據(jù)式(16)將超出可行域的火花映射到可行域內(nèi)。
步驟10根據(jù)式(17)和(18)分別計(jì)算被選擇火花的均值m和協(xié)方差矩陣C,根據(jù)N(m,C)隨機(jī)產(chǎn)生一個(gè)協(xié)方差變異火花。
步驟11從每組煙花及其產(chǎn)生的所有火花中預(yù)選出適應(yīng)度值最優(yōu)的個(gè)體。
步驟12從預(yù)選擇的煙花種群中找出適應(yīng)度值最優(yōu)的個(gè)體。
步驟13根據(jù)算法2對(duì)預(yù)選擇的個(gè)體進(jìn)行錦標(biāo)賽精英學(xué)習(xí)操作。
步驟14判斷是否滿足終止條件,若滿足,則返回全局最優(yōu)解及其適應(yīng)度值;否則,返回步驟3 進(jìn)行循環(huán)迭代。
GLFWA-CM 算法的各項(xiàng)參數(shù)設(shè)置:煙花種群規(guī)模N=5,協(xié)方差變異火花數(shù)目M=5,最大爆炸火花數(shù)目S=200,最大演化代數(shù)Gmax=2 000,爆炸火花數(shù)目分布參數(shù)α=3,選擇概率β=0.7,精英學(xué)習(xí)因子γ=0.1,動(dòng)態(tài)爆炸半徑增大系數(shù)Ca=1.2,減小系數(shù)Cr=0.9,協(xié)方差變異火花選擇比率η/λ=0.25,解的可行域Ω的范圍為[-100,100],,煙花初始爆炸半徑,初始最小爆炸半徑,最終最小爆炸半徑
為了全面客觀地對(duì)GLFWA-CM 算法進(jìn)行評(píng)價(jià),本文將其與標(biāo)準(zhǔn)煙花算法FWA[1]以及近些年提出的一些改進(jìn)煙花算法EFWA[2]、AFWA[4]、dynFWA[3]、CoFFWA[7]、CoFFWA-CM[8]、LoTFWA[10](α和λ參數(shù)分別設(shè)置為3和200)在收斂精度、收斂速度和穩(wěn)定性上進(jìn)行比較,其他比較算法的參數(shù)設(shè)置均與原文獻(xiàn)一致。每個(gè)算法均獨(dú)立運(yùn)行20次,算法問題維度D=30/100,每個(gè)測(cè)試函數(shù)的最大評(píng)估次數(shù)evalsmax=10 000。實(shí)驗(yàn)環(huán)境為:處理器Intel?Core?I5 6200U @ 2.30 GHz,RAM 4 GB,Win10 64位操作系統(tǒng),MATLAB R2018b。
為了驗(yàn)證本文算法的適用性、有效性和正確性,選擇CEC2015[21]中的15個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù),具體定義如表1所示,其中f1、f2 為單峰函數(shù),f3~f5 為簡單多峰函數(shù),f6~f8 為混合函數(shù),f9~f15 為復(fù)合函數(shù)。
表1 CEC2015的15個(gè)Benchmark函數(shù)Table 1 15 Benchmark functions of CEC2015
3.3.1 收斂性分析
文獻(xiàn)[22]給出了煙花算法的馬爾可夫過程收斂到最佳狀態(tài)的充分條件,本文在此充分條件的基礎(chǔ)上對(duì)GLFWA-CM算法的收斂性進(jìn)行證明。
GLFWA-CM算法將煙花和各自產(chǎn)生的火花分為一組,選擇時(shí)直接選擇每組中最好的個(gè)體作為下一代煙花。每個(gè)被選擇的煙花都繼承了該組的搜索經(jīng)驗(yàn),能夠不斷在其附近區(qū)域進(jìn)行探索,而不會(huì)突然跑到距離很遠(yuǎn)的區(qū)域去重新搜索,提高了搜索的效率。協(xié)方差變異在該組煙花搜索區(qū)域附近產(chǎn)生一個(gè)靠近更優(yōu)解的火花,提升了每個(gè)小組找到最優(yōu)解的概率。當(dāng)產(chǎn)生的火花比煙花更好時(shí),由于動(dòng)態(tài)爆炸半徑機(jī)制,煙花的爆炸半徑會(huì)增大,這樣使得算法前期有強(qiáng)大的全局探索能力。隨著迭代過程的進(jìn)行,每組煙花的搜索區(qū)域開發(fā)的越來越完善,找到的解也越來越好,某些煙花甚至已經(jīng)找到自己搜索區(qū)域附近的局部最優(yōu)解,陷入局部最優(yōu)的狀況。到了迭代后期,一些陷入局部最優(yōu)或者進(jìn)化速度太慢的非核心煙花,由于找到更優(yōu)解的概率很低,那么就會(huì)在錦標(biāo)賽精英學(xué)習(xí)策略的引導(dǎo)下,向找到更優(yōu)解的核心煙花靠近,提高了核心煙花附近的搜索密度。由于核心煙花附近找到全局最優(yōu)解的概率最大,所以GLFWA-CM 算法后期的開發(fā)能力很強(qiáng)。核心煙花在核心煙花更新信息的引導(dǎo)下,向著更有可能找到最優(yōu)解的方向搜索,又進(jìn)一步增加了算法找到全局最優(yōu)解的概率。綜合分析可知,GLFWA-CM算法前期探索能力不俗,后期開發(fā)能力很強(qiáng)。
表2 為各算法的實(shí)驗(yàn)結(jié)果在30 維情況下的平均值和方差對(duì)比,其中最好結(jié)果已加粗標(biāo)出。從平均值指標(biāo)來看,對(duì)于f1、f2、f6、f8、f10 測(cè)試函數(shù),GLFWA-CM算法要優(yōu)于參與比較的其他算法,而且比它們都至少要好1~2個(gè)數(shù)量級(jí)。對(duì)于f3、f9、f12、f13、f15 測(cè)試函數(shù),GLFWA-CM 算法與其他算法性能持平。對(duì)于剩下的其他函數(shù),GLFWA-CM 算法結(jié)果與最好結(jié)果基本都在同一個(gè)數(shù)量級(jí)。從方差指標(biāo)來看,對(duì)于f1、f2、f6、f7、f8、f10、f15 測(cè)試函數(shù),GLFWA-CM算法要優(yōu)于參與比較的其他算法。綜合來看,在低維條件下,GLFWACM和LoTFWA算法總體上優(yōu)于其他算法,GLFWA-CM在單峰函數(shù)和混合函數(shù)上具有顯著優(yōu)勢(shì),LoTFWA在簡單多峰函數(shù)和部分復(fù)合函數(shù)上具有一定優(yōu)勢(shì)。
表2 GLFWA-CM與其他算法的比較(D=30)Table 2 Comparison of GLFWA-CM with other algorithms(D=30)
圖1(a)~(d)展示的是各算法在低維(D=30)情況下的收斂過程。其中,f1 函數(shù)是單峰函數(shù),從收斂曲線圖中可以看出,在迭代次數(shù)相同的情況下,與其他算法相比,GLFWA-CM算法收斂精度更高,而且它還有繼續(xù)收斂的趨勢(shì);f3 函數(shù)是簡單多峰函數(shù),從收斂曲線圖中可以看出,GLFWA-CM 算法收斂速度更快;f8 函數(shù)是混合函數(shù),從收斂曲線圖中可以看出,GLFWA-CM算法收斂精度相比于其他算法具有明顯優(yōu)勢(shì);f10 函數(shù)是復(fù)合函數(shù),從收斂曲線圖中可以看出,與其他算法相比,GLFWA-CM算法前期收斂速度與其他算法相當(dāng),后期,在其他算法收斂曲線趨于平緩時(shí),GLFWA-CM 算法仍在緩慢收斂,而且收斂精度更高。綜合來看,在低維情況下,GLFWA-CM 算法在收斂精度和收斂速度上都具有一定優(yōu)勢(shì)。
圖1 8種算法求解測(cè)試函數(shù)f 1、f 3、f 8、f 10 的收斂曲線(D=30)Fig.1 Convergence curves of test functions f 1、f 3、f 8、f 10 solved by eight algorithms(D=30)
表3為各算法的實(shí)驗(yàn)結(jié)果在D=100 維條件下的平均值和方差的對(duì)比,其中最好數(shù)據(jù)已加粗顯示。從表3中數(shù)據(jù)可以看出,在D=100 時(shí),GLFWA-CM 算法在單峰函數(shù),混合函數(shù)f6、f8 以及復(fù)合函數(shù)f9、f10、f12、f13 上均獲得最優(yōu)結(jié)果,在多峰函數(shù)和其他復(fù)合函數(shù)上也與最優(yōu)結(jié)果相差不大。這說明GLFWA-CM算法解決高維問題時(shí)相較于對(duì)比的其他算法仍然有一定優(yōu)勢(shì),體現(xiàn)了GLFWA-CM算法具有很強(qiáng)的適應(yīng)性。對(duì)于多種不同類別和不同維度的問題都有很好的尋優(yōu)能力。
圖2(a)~(d)展示的是各算法在高維(D=100)情況下的收斂過程。從收斂曲線圖中可以看出,在迭代次數(shù)相同的情況下,與其他算法相比,對(duì)于f1函數(shù),GLFWACM 算法收斂精度更高;對(duì)于f3 函數(shù),GLFWA-CM 算法收斂精度與其他算法相當(dāng),但是前期收斂速度明顯更快;對(duì)于f8 和f10 函數(shù),GLFWA-CM算法收斂精度相比于其他算法具有明顯優(yōu)勢(shì),在迭代后期,GLFWA-CM算法收斂速度也快于其他算法。說明在高維情況下,GLFWA-CM算法在收斂精度和收斂速度上仍然具有一定優(yōu)勢(shì)。
圖2 8種算法求解測(cè)試函數(shù)f 1、f 3、f 8、f 10 的收斂曲線(D=100)Fig.2 Convergence curves of test functions f 1、f 3、f 8、f 10 solved by eight algorithms(D=100)
綜合分析表2 和表3,GLFWA-CM 算法在單峰函數(shù)、混合函數(shù)和部分復(fù)合函數(shù)上效果很好,在多峰函數(shù)和部分復(fù)合函數(shù)上僅次于LoTFWA。
表3 GLFWA-CM與其他算法的比較(D=100)Table 3 Comparison of GLFWA-CM with other algorithms(D=100)
這主要是因?yàn)楹诵臒熁ǜ滦畔⒁龑?dǎo)策略和協(xié)方差變異方法都是在更可能找到最優(yōu)解的方向產(chǎn)生火花,增大了算法找到最優(yōu)解的概率,基于錦標(biāo)賽的精英學(xué)習(xí)策略使得較差的煙花向核心煙花附近移動(dòng),進(jìn)一步提高了核心煙花附近區(qū)域的搜索密度。所以在單峰函數(shù)和混合函數(shù)上,GLFWA-CM 算法優(yōu)勢(shì)顯著。由于核心煙花更新信息引導(dǎo)策略對(duì)爆炸火花的多樣性產(chǎn)生了一定影響,還有基于錦標(biāo)賽的精英學(xué)習(xí)策略雖然顯著加快了算法的收斂速度,但也犧牲了一定的探索能力,使得GLFWA-CM算法在多峰函數(shù)和部分復(fù)合函數(shù)這類看重全局探索能力的問題上,效果不如LoTFWA。但是由于GLFWA-CM算法采用了一種與LoTFWA相同的動(dòng)態(tài)爆炸半徑機(jī)制,能夠有效避免GLFWA-CM 算法陷入成熟收斂,所以其結(jié)果也僅僅比LoTFWA 稍差,與其他煙花算法持平。
綜合分析圖1和圖2,GLFWA-CM算法前期收斂速度最快,收斂精度最高,在迭代后期,GLFWA-CM 算法仍在緩慢收斂,而且收斂速度比其他算法更快。
這主要是因?yàn)楹诵臒熁ǜ滦畔⒁龑?dǎo)策略使得算法在更可能找到最優(yōu)解的方向產(chǎn)生爆炸火花,提高了算法的收斂精度,基于錦標(biāo)賽的精英學(xué)習(xí)策略使得較差的煙花向核心煙花附近移動(dòng),加快了算法向著最優(yōu)解區(qū)域收斂的速度。所以在迭代前期,GLFWA-CM 算法無論是收斂速度還是收斂精度都是最好的。當(dāng)算法找到一個(gè)局部最優(yōu)解時(shí),由于動(dòng)態(tài)爆炸半徑機(jī)制的作用,非核心煙花的爆炸半徑會(huì)逐漸增大,擴(kuò)大搜索區(qū)域,幫助算法跳出局部收斂,一旦找到更優(yōu)解,其他煙花在錦標(biāo)賽精英學(xué)習(xí)策略的引導(dǎo)下,也能逐漸跳出該區(qū)域,并能以較快的速度前往下一個(gè)核心煙花附近搜索,所以在迭代后期,算法仍能以較快的速度繼續(xù)收斂。
3.3.2 穩(wěn)定性分析
一般來說,在理論上能確保收斂的算法具有較高的穩(wěn)定性。本文3.3.1 小節(jié)已對(duì)GLFWA-CM 算法的收斂性進(jìn)行了證明,本文算法穩(wěn)定性主要是通過李雅普諾夫穩(wěn)定性理論[23]來分析的。
平衡狀態(tài):設(shè)某系統(tǒng)動(dòng)態(tài)方程為:
式中,x為n維狀態(tài)向量,且顯含時(shí)間變量t,f(x,t)為線性或非線性,定?;驎r(shí)變的n維函數(shù)。對(duì)于所有t,滿足
的狀態(tài)xe稱為平衡狀態(tài)。平衡狀態(tài)的各分量相對(duì)于時(shí)間不再發(fā)生變化。若已知狀態(tài)方程,令X=0 所求得的解x,便是平衡狀態(tài)。
李雅普諾夫意義下的穩(wěn)定性:
設(shè)系統(tǒng)初始狀態(tài)位于以平衡狀態(tài)xe為球心,r為半徑的閉球域S(r)內(nèi),即
若能使系統(tǒng)方程的解x(t:x0,t0) 在t→∞的過程中,都位于以xe為球心,任意規(guī)定的半徑為ε的閉球域S(ε)內(nèi),即
則稱系統(tǒng)的平衡狀態(tài)xe在李雅普諾夫意義下是穩(wěn)定的。
實(shí)數(shù)r與ε有關(guān),通常也與t0有關(guān),如果r與t0無關(guān),則稱平衡狀態(tài)是一致穩(wěn)定的。
漸近穩(wěn)定性:
若系統(tǒng)的平衡狀態(tài)xe不僅具有李雅普諾夫意義下的穩(wěn)定性,且有:
則稱此平衡狀態(tài)是漸近穩(wěn)定的。
證明GLFWA-CM算法平衡狀態(tài)是一致漸進(jìn)穩(wěn)定的
由于GLFWA-CM 算法收斂,且最終會(huì)收斂于全局最優(yōu)點(diǎn)xbest,根據(jù)文獻(xiàn)[24]的證明,同理可證得全局最優(yōu)點(diǎn)xbest為GLFWA-CM 算法在李雅普諾夫意義下的平衡點(diǎn),f(xbest,t)為平衡狀態(tài)。
設(shè)GLFWA-CM 算法的初始狀態(tài)位于以平衡狀態(tài)xbest為圓心,r為半徑的圓S(r)內(nèi),圓S(ε)是以xbest為圓心,ε為半徑的圓,圓S(ε) 與f(x) 相交于x3、x4,Dbest為最優(yōu)區(qū)域,最兩邊的點(diǎn)為x1、x2,滿足:
由GLFWA-CM 算法的收斂性可得當(dāng)xi位于Dbest區(qū)域時(shí),xi只會(huì)向著xbest靠近而不會(huì)遠(yuǎn)離。因此只要方程的初始解x(t0:x0,t0)位于Dbest區(qū)域內(nèi),即圓S(r)與目標(biāo)函數(shù)相交的區(qū)域包含于Dbest區(qū)域,方程的解x(t:x0,t0)就只會(huì)向著xbest靠近而不會(huì)逃出半徑為r的圓S(r),即
所以系統(tǒng)方程的解x(t:x0,t0)在t→∞的過程中,都位于以xbest為球心、任意規(guī)定的半徑為ε的圓S(ε)內(nèi),因此當(dāng)圓S(r)與目標(biāo)函數(shù)相交的區(qū)域包含于Dbest區(qū)域時(shí),即滿足公式(26),GLFWA-CM算法的平衡狀態(tài)xbest在李雅普諾夫意義下是穩(wěn)定的。
所以對(duì)于任意一個(gè)實(shí)數(shù)ε>0,總存在一個(gè)滿足式
(26)的實(shí)數(shù)r,使得由滿足不等式‖x0-xbest‖≤r的任一初態(tài)x0出發(fā)的運(yùn)動(dòng)都滿足不等式:
即方程的解x(t:x0,t0)始終都在圓S(r) 內(nèi)。因此,圓S(r)的半徑r與t0無關(guān),所以GLFWA-CM 算法的平衡狀態(tài)xbest是一致穩(wěn)定的。又GLFWA-CM 算法必然可以收斂到全局最優(yōu):
所以此平衡狀態(tài)是漸近穩(wěn)定的。此時(shí),從S(r)內(nèi)某點(diǎn)x0出發(fā)的軌跡不僅不會(huì)超出S(ε),且當(dāng)t→∞時(shí)收斂于xe,即xbest。所以GLFWA-CM算法的平衡狀態(tài)xbest是一致漸進(jìn)穩(wěn)定的。綜上所述,GLFWA-CM 算法的平衡狀態(tài)xbest不僅是李雅普諾夫意義下穩(wěn)定的,且平衡狀態(tài)是一致漸進(jìn)穩(wěn)定的。
圖3(a)~(d)展示的是30維情況下各算法獨(dú)立運(yùn)行20次得到的四種測(cè)試函數(shù)的箱型圖(是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計(jì)圖,實(shí)線從上到下分別表示上邊緣、上四分位數(shù)、中值、下四分位數(shù)、下邊緣,空心圓圈表示異常值,叉號(hào)表示平均值)。為了便于觀察,將所有數(shù)據(jù)都進(jìn)行min-max標(biāo)準(zhǔn)化處理,使其分布在[0,1]區(qū)間內(nèi)。f1 函數(shù)是單峰函數(shù),f3 函數(shù)是簡單多峰函數(shù),f8函數(shù)是混合函數(shù),f10函數(shù)是復(fù)合函數(shù)。在圖2(a)~(d)中,GLFWA-CM算法的數(shù)據(jù)最小,而且最集中,圖中五條實(shí)線基本成了一條直線。由于圖中數(shù)據(jù)是根據(jù)適應(yīng)度值得到的,所以圖中數(shù)據(jù)越小,說明適應(yīng)度值越小,算法的精度越高,圖中數(shù)據(jù)越集中,說明數(shù)據(jù)波動(dòng)越小,算法的穩(wěn)定性越好。
圖3 測(cè)試函數(shù)f 1、f 3、f 8、f 10 的箱型圖(D=30)Fig.3 Box plots of test functions f 1、f 3、f 8、f 10(D=30)
3.3.3 算法復(fù)雜度分析
煙花種群規(guī)模為N,變異火花數(shù)目M=N,問題維數(shù)為D,最大迭代次數(shù)為Gmax,總的爆炸火花數(shù)目為S,S一般大于N。由于大部分復(fù)雜問題計(jì)算適應(yīng)度值所花的時(shí)間要遠(yuǎn)大于一些簡單計(jì)算的時(shí)間,所以分析算法的時(shí)間復(fù)雜度主要是分析計(jì)算適應(yīng)度值的耗時(shí)。假設(shè)平均每次計(jì)算適應(yīng)度值的時(shí)間消耗為O(f),每次迭代都要計(jì)算所有火花的適應(yīng)度值,共迭代了Gmax次,所以總的時(shí)間消耗O(F)=Gmax×S×O(f)。除計(jì)算適應(yīng)度值外,算法還有一些額外的時(shí)間消耗,主要是一些簡單計(jì)算,下面是對(duì)這些額外開銷的分析。
FWA 的額外計(jì)算開銷主要產(chǎn)生在三個(gè)部分:一是爆炸算子,時(shí)間復(fù)雜度是O(Gmax×S×D);二是變異算子,時(shí)間復(fù)雜度是O(Gmax×N×D);三是選擇算子,由于要計(jì)算候選者集合中每個(gè)個(gè)體到其他個(gè)體之間的距離之和,所以時(shí)間復(fù)雜度是O(Gmax×S2×D)。由于N一般遠(yuǎn)小于S,綜上所述,略去低階項(xiàng),F(xiàn)WA 算法的額外時(shí)間復(fù)雜度為O(Gmax×S2×D)。
GLFWA-CM的額外計(jì)算開銷也是主要產(chǎn)生在這三個(gè)部分:一是爆炸算子,時(shí)間復(fù)雜度是O(Gmax×S×D);二是變異算子,由于要計(jì)算協(xié)方差矩陣,所以時(shí)間復(fù)雜度是O(Gmax×S×D2) ;三是選擇算子,時(shí)間復(fù)雜度是O(Gmax×S)。綜上所述,略去低階項(xiàng),GLFWA-CM算法的額外時(shí)間復(fù)雜度為O(Gmax×S×D2)。
EFWA在選擇過程中采用了一種新的選擇策略,大大降低了計(jì)算量,選擇過程的時(shí)間復(fù)雜度為O(Gmax×S),爆炸算子與變異算子的時(shí)間復(fù)雜度與FWA 一樣,所以總的額外時(shí)間復(fù)雜度是O(Gmax×S×D)。
AFWA是在EFWA的基礎(chǔ)上,對(duì)核心煙花的爆炸幅度進(jìn)行了自適應(yīng)調(diào)整,雖然計(jì)算量稍微增多,但是還是和EFWA 在同一個(gè)量級(jí),總的額外時(shí)間復(fù)雜度還是O(Gmax×S×D)。
dynFWA 是在EFWA 的基礎(chǔ)上對(duì)核心煙花的爆炸幅度進(jìn)行了動(dòng)態(tài)調(diào)整,同時(shí),dynFWA 中還去除了變異算子這個(gè)步驟,所以變異算子的時(shí)間復(fù)雜度為O(0),所以總的額外時(shí)間復(fù)雜度是O(Gmax×S×D)。
CoFFWA是在dynFWA的基礎(chǔ)上加入了獨(dú)立選擇和避免擁擠策略,選擇過程的時(shí)間復(fù)雜度為O(Gmax×S),其他部分時(shí)間復(fù)雜度與dynFWA一樣,所以總的額外時(shí)間復(fù)雜度為O(Gmax×S×D)。
CoFFWA-CM 是在CoFFWA 的基礎(chǔ)上加入了協(xié)方差變異,協(xié)方差變異算子的時(shí)間復(fù)雜度和GLFWA-CM一樣,所以總的額外時(shí)間復(fù)雜度為O(Gmax×S×D2)。
LoTFWA用引導(dǎo)火花代替高斯變異火花,時(shí)間復(fù)雜度為O(Gmax×S×D),爆炸算子時(shí)間復(fù)雜度是O(Gmax×S×D),在選擇過程中采取了一種淘汰錦標(biāo)賽策略,時(shí)間復(fù)雜度為O(Gmax×S),所以總的額外時(shí)間復(fù)雜度是O(Gmax×S×D)。
綜合分析可知,在比較的八種算法中,計(jì)算適應(yīng)度值的時(shí)間消耗都是O(F)。對(duì)于一些簡單計(jì)算,F(xiàn)WA、CoFFWA-CM 和GLFWA-CM 的額外開銷相對(duì)其他五種算法稍大。FWA 主要是選擇過程計(jì)算開銷較大,CoFFWA-CM和GLFWA-CM主要是產(chǎn)生變異火花過程計(jì)算開銷較大。由于煙花算法的主要時(shí)間消耗還是O(F),這些簡單計(jì)算的開銷對(duì)算法時(shí)間復(fù)雜度的影響相對(duì)較小,所以在解決一些實(shí)際問題時(shí),這些算法的實(shí)際耗時(shí)差距并不那么明顯。
總的來說,雖然GLFWA-CM 算法的時(shí)間復(fù)雜度比除FWA和CoFFWA-CM以外的其他算法稍大,但是,在求解精度和穩(wěn)定性上,GLFWA-CM 要優(yōu)于其他所有煙花算法。
本文針對(duì)傳統(tǒng)煙花算法中存在的尋優(yōu)精度差,容易陷入局部最優(yōu)等問題提出了一種基于錦標(biāo)賽精英學(xué)習(xí)與協(xié)方差變異的煙花算法(GLFWA-CM)。該算法在爆炸算子中利用核心煙花更新信息確定核心煙花在每一維上的爆炸半徑以及其火花分布,加強(qiáng)了每一代核心煙花之間的聯(lián)系;在變異算子中用協(xié)方差變異代替了原來的高斯變異,使得變異火花分布在煙花附近的搜索區(qū)域,有效平衡了煙花算法的局部搜索和全局搜索能力;在煙花選擇過程中加入了基于錦標(biāo)賽的精英學(xué)習(xí)策略,有效改善了煙花算法收斂速度慢的問題。本文對(duì)GLFWA-CM 算法的收斂性和穩(wěn)定性進(jìn)行了證明,并通過一系列的實(shí)驗(yàn)表明,在低維和高維的情況下,GLFWACM算法均表現(xiàn)出不俗的性能,在算法的收斂性和穩(wěn)定性上總體要強(qiáng)于其他比較算法。同時(shí),分析得出GLFWACM 算法的時(shí)間復(fù)雜度比除FWA 和CoFFWA-CM 以外的其他算法稍大。綜上所述,證明了本文提出算法的正確性、有效性和適用性。