林偉豪,何杰光,肖佳嘉
(廣東石油化工學(xué)院 計(jì)算機(jī)學(xué)院,廣東 茂名 525000)
鄭宇軍提出基于淺水波理論[1,2]的水波優(yōu)化算法(WWO),該算法模擬水波運(yùn)動(dòng)中存在的傳播、反射、碎浪等運(yùn)動(dòng),且在旅行商問(wèn)題和車輛路徑[3]問(wèn)題得到了較好的應(yīng)用。張蓓等[4]分析了WWO執(zhí)行傳播和折射操作時(shí)的收斂情況,并驗(yàn)證了上述兩種情況的收斂條件。杜兆宏等[5]提出自適應(yīng)碎浪系數(shù)調(diào)整策略來(lái)平衡算法的全局勘探和局部開發(fā)能力。顧啟元等[6]采用雙種群進(jìn)化結(jié)構(gòu)維持種群多樣性并提高個(gè)體學(xué)習(xí)效率。綜上,可以看出WWO在收斂速度和收斂精度上仍具有較大的改進(jìn)空間,基于此本文提出了基于自適應(yīng)參數(shù)調(diào)節(jié)和動(dòng)態(tài)分組學(xué)習(xí)的水波優(yōu)化算法(DGLWWO)。DGLWWO以非線性變化的碎浪系數(shù)來(lái)平衡算法的搜索機(jī)制,并設(shè)計(jì)了基于正余弦因子的動(dòng)態(tài)分組學(xué)習(xí)階段,主群與子群的信息交流機(jī)制使算法在進(jìn)化后期仍有找到最優(yōu)解的可能。
(1)
λ=λ·α-(f(X)-fmin+ε)/(fmax-fmin+ε)
(2)
式中:α為波長(zhǎng)衰減系數(shù);fmin和fmax分別為最優(yōu)和最差的水波;ε為一個(gè)很小的正數(shù)。
當(dāng)水波波高h(yuǎn)遞減為零時(shí),按式(3)執(zhí)行折射操作,并將波長(zhǎng)重置為h=hmax。
(3)
(4)
碎浪系數(shù)β控制在最優(yōu)水波附近密集搜索孤立波的范圍,β越大,搜索范圍越大,全局搜索能力越強(qiáng)。WWO的β隨迭代次數(shù)的增加而線性遞減,無(wú)法很好地平衡算法前期的全局搜索能力和后期的局部開發(fā)能力?;诖耍疚脑O(shè)計(jì)了正弦變化的碎浪系數(shù)β,其表示為
(5)
圖1 自適應(yīng)碎浪系數(shù)
WWO和DGLWWO的碎浪系數(shù)如圖 1所示,DGLWWO在進(jìn)化前期保持較大的碎浪系數(shù),有利于支持算法的全局搜索,特別是在求解多局部最優(yōu)值問(wèn)題時(shí),一定程度上提高了找到其他更優(yōu)解的概率。而隨著迭代的進(jìn)行,碎浪系數(shù)迅速減小,使算法能夠進(jìn)行更多的局部精細(xì)開發(fā)。
為了解決WWO種群后期進(jìn)化緩慢的問(wèn)題,本文設(shè)計(jì)了基于正余弦因子的動(dòng)態(tài)分組學(xué)習(xí)階段。其動(dòng)態(tài)分組策略過(guò)程主要是,隨機(jī)從[2,10]內(nèi)選擇分組規(guī)模M,分成Np/M個(gè)分組,當(dāng)Np%M≠0時(shí),最后一個(gè)分組規(guī)模為M+Np%M。動(dòng)態(tài)分組學(xué)習(xí)階段可表示為
(6)
(7)
式(6)中,水波以正弦方式向組內(nèi)最優(yōu)個(gè)體靠近,在全局范圍內(nèi)搜索,并維持種群多樣性。式(7)中,水波以余弦方式向全局最優(yōu)個(gè)體靠近,進(jìn)行局部開發(fā),加快算法收斂。正弦全局搜索能夠有效彌補(bǔ)余弦局部開發(fā)而導(dǎo)致陷入局部最優(yōu)的缺陷,而余弦局部開發(fā)提高了算法的尋優(yōu)性能。由此可知,動(dòng)態(tài)分組學(xué)習(xí)促進(jìn)了個(gè)體之間的信息交流,這在避免算法早熟、提高收斂精度的同時(shí),提高了算法的求解效率。
DGLWWO的執(zhí)行步驟如下:
(1)隨機(jī)生成一個(gè)規(guī)模為Np的種群,并計(jì)算每個(gè)水波的適應(yīng)度值,找到最優(yōu)水波;
(2)按式(1)~(5),對(duì)每個(gè)水波執(zhí)行傳播、折射、碎浪操作;
(3)動(dòng)態(tài)分組,隨機(jī)選擇分組規(guī)模M,生成Np/M個(gè)分組;
(4) 按式(6)、式(7),執(zhí)行動(dòng)態(tài)分組學(xué)習(xí)階段;
(5)更新每個(gè)水波的波長(zhǎng),并計(jì)算每個(gè)水波的適應(yīng)度值,求得全局最優(yōu)解;
(6)若滿足結(jié)束條件,則輸出全局最優(yōu)解;否則,執(zhí)行(2)。
為驗(yàn)證DGLWWO的有效性和穩(wěn)定性,選取10個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行測(cè)試,并與原始WWO算法[1]、LOGWWO算法[5]、ACLWWO算法[6]、S-WOA算法[7]進(jìn)行對(duì)比。測(cè)試函數(shù)及其特性,結(jié)果見表1。所有算法的最大迭代次數(shù)設(shè)置為1000,每個(gè)算法獨(dú)立運(yùn)行20次,問(wèn)題求解空間的大小D為30。WWO、LOGWWO、S-WOA、DGLWWO的種群規(guī)模均為10,WWO、LOGWWO、DGLWWO的波長(zhǎng)λ=0.5、波高h(yuǎn)max=12、碎浪系數(shù)的最大值和最小值分別為βmax=0.250和βmin=0.001、波長(zhǎng)衰減系數(shù)α=1.0026;ACLWWO的參數(shù)來(lái)源于文獻(xiàn)[6],主種群和子種群規(guī)模均為20,子種群波高為hmax=100,波長(zhǎng)衰減系數(shù)α=1.0260。
表1 標(biāo)準(zhǔn)測(cè)試函數(shù)
為了驗(yàn)證基于正余弦因子的動(dòng)態(tài)分組學(xué)習(xí)階段的有效性,構(gòu)造4種不同的算法進(jìn)行對(duì)比性實(shí)驗(yàn),分別是DGLWWO、DGLWWO-DGL(不使用動(dòng)態(tài)分組階段)、WWO和WWO+DGL(加入動(dòng)態(tài)分組學(xué)習(xí)階段)。選用f5作為測(cè)試函數(shù),f5是一種極難搜索全局最優(yōu)解的病態(tài)非凸單峰函數(shù),適合用于測(cè)試算法的收斂性。4種算法分別在f5上獨(dú)立運(yùn)行20次,結(jié)果如表2所示,平均收斂曲線如圖2所示。
表2 4種算法分別在f5上的收斂性
a 動(dòng)態(tài)分組學(xué)習(xí)階段的收斂過(guò)程 b 動(dòng)態(tài)分組過(guò)程的穩(wěn)定性
由表2可知,DGLWWO和WWO+DGL表現(xiàn)出更好的收斂精度,這說(shuō)明動(dòng)態(tài)分組學(xué)習(xí)階段有利于增強(qiáng)種群多樣性,提高算法的尋優(yōu)能力。由圖2可以看出,DGLWWO和WWO+DGL的收斂速度明顯優(yōu)于DGLWWO-DGL和WWO,雖然4種算法都較早地陷入了局部最優(yōu),但對(duì)比WWO和WWO+DGL的穩(wěn)定性可知,動(dòng)態(tài)分組學(xué)習(xí)階段在提高收斂精度和收斂速度的同時(shí),能夠有效保證算法的穩(wěn)定性。綜上所述,動(dòng)態(tài)分組學(xué)習(xí)階段有效地避免了算法過(guò)早丟失多樣性,提高了算法的收斂精度和收斂速度。
各算法的平均收斂曲線如圖3所示,收斂結(jié)果如表3所示。
圖3 算法平均收斂曲線情況
表3 各算法收斂結(jié)果
續(xù)表
由圖3可知,函數(shù)f1~f6的收斂速度明顯優(yōu)于其他算法,函數(shù)f1~f3迭代200次就已尋得理論最優(yōu)解;函數(shù)f4求解時(shí)能迅速收斂并找到最優(yōu)解;與其他算法相比,函數(shù)f5和f7在小于200次迭代時(shí)就已尋得較好的精度,但隨之出現(xiàn)了進(jìn)化停止的現(xiàn)象;函數(shù)f6在小于400次迭代時(shí)收斂速度較快,在進(jìn)化后期仍能表現(xiàn)出較好的尋優(yōu)能力,能夠進(jìn)一步提升收斂精度;函數(shù)f8~f10在小于50次迭代就已求得最優(yōu)解,說(shuō)明DGLWWO在求解復(fù)雜問(wèn)題時(shí)更具優(yōu)勢(shì)。
由表3可知,DGLWWO的收斂精度均優(yōu)于其他算法,其中對(duì)函數(shù)f1~f4均能求得其理論最優(yōu)解;函數(shù)f5~f7雖然沒(méi)有求得最優(yōu)值,但其求解精度分別至少提升了2個(gè)、176個(gè)和15個(gè)數(shù)量級(jí),并且獲得了最小的標(biāo)準(zhǔn)差;對(duì)復(fù)雜多峰函數(shù)f8~f10均求得理論最優(yōu)解。這說(shuō)明,DGLWWO在收斂精度和穩(wěn)定性方面表現(xiàn)出較好的競(jìng)爭(zhēng)性。
綜上,基于正余弦因子的動(dòng)態(tài)分組學(xué)習(xí)階段使DGLWWO在進(jìn)化后期仍能保持較好的種群多樣性,仍具有找到更優(yōu)解的可能,有效地協(xié)調(diào)了算法進(jìn)化前期的全局探測(cè)能力和后期的局部開發(fā)能力。此外,碎浪系數(shù)的自適應(yīng)調(diào)節(jié)對(duì)于提高DGLWWO的優(yōu)化性能提供了一定的幫助。
本文針對(duì)WWO存在的缺陷,提出了基于自適應(yīng)參數(shù)調(diào)節(jié)和動(dòng)態(tài)分組學(xué)習(xí)的水波優(yōu)化算法DGLWWO。DGLWWO設(shè)計(jì)了基于正余弦因子的動(dòng)態(tài)分組學(xué)習(xí)階段,主群與子群的信息交流機(jī)制和動(dòng)態(tài)變化的分組策略,有效地避免了種群過(guò)早丟失多樣性,同時(shí)提高了算法后期仍能進(jìn)化的概率。實(shí)驗(yàn)表明,DGLWWO保持了WWO的優(yōu)點(diǎn),同時(shí)極大地提高了WWO的優(yōu)化性能。