李雪利, 杜逆索, 歐陽智, , 朱 鵬
(1 貴州大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院, 貴陽 550025; 2 貴州大學(xué)貴州省大數(shù)據(jù)產(chǎn)業(yè)發(fā)展應(yīng)用研究院, 貴陽 550025;3 貴州大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院, 貴陽 550025)
群智能優(yōu)化算法通過模擬生物群體行為所構(gòu)建的優(yōu)化模型,幫助解決了實(shí)際復(fù)雜項(xiàng)目和工程的優(yōu)化問題。 如蟻獅算法[1]、灰狼優(yōu)化算法[2]、蝗蟲優(yōu)化算法[3]、正余弦算法[4]、多元宇宙優(yōu)化算法[5]等,這些算法主要研究在復(fù)雜的多維解空間里尋得全局最優(yōu)解。
白骨頂優(yōu)化算法(Coot Optimization Algorithm,COOT)是Naruei 等[6]在2021 年提出的一種新型智能優(yōu)化算法。 該算法通過模擬白骨頂在水中的不同運(yùn)動(dòng)方式,并將這些運(yùn)動(dòng)方式抽象于數(shù)學(xué)建模以實(shí)現(xiàn)全局尋優(yōu)。 因該算法結(jié)構(gòu)簡(jiǎn)單、控制參數(shù)少、求解精度高等優(yōu)點(diǎn),并在測(cè)試中試驗(yàn)結(jié)果良好,故具有廣泛的應(yīng)用前景。 雖然COOT 算法在優(yōu)化方面具有一定優(yōu)勢(shì),但尋優(yōu)過程中依然存在一些不足。 如:白骨頂?shù)姆N群隨機(jī)初始化和參數(shù)隨機(jī)化會(huì)影響算法的尋優(yōu)性能,白骨頂個(gè)體的位置更新機(jī)制無法很好地平衡局部探索與全局開發(fā)的關(guān)系,以及收斂精度欠缺等問題。
目前,由于群智能算法都存在與COOT 相似的問題,促使研究者對(duì)此開展了相關(guān)研究。 為了實(shí)現(xiàn)更好的尋優(yōu)性質(zhì),研究人員對(duì)群智能優(yōu)化算法的參數(shù)進(jìn)行調(diào)整,將群智能優(yōu)化算法與反向?qū)W習(xí)[7]、萊維飛行[8]等策略相結(jié)合。 例如,魏偉一等[9]將精英反向?qū)W習(xí)與螢火蟲算法相結(jié)合,并使用了自適應(yīng)步長(zhǎng)平衡算法的探索能力,使算法具有更快的收斂速度,更準(zhǔn)確的收斂精度。 肖子雅等[10]將鯨魚優(yōu)化算法與精英反向?qū)W習(xí)和黃金分割數(shù)相結(jié)合,通過平衡算法的局部搜索和全局優(yōu)化能力,來增強(qiáng)算法的穩(wěn)定性,得到更優(yōu)的搜索結(jié)果。 為了緩解算法容易陷入局部最優(yōu),無法尋得全局最優(yōu)的問題,楊文珍等[11]將擾動(dòng)機(jī)制和強(qiáng)化萊維飛行融入蝗蟲優(yōu)化算法,增強(qiáng)了算法的全局搜索能力。 唐海波等[12]在算法中加入模擬退火與貪心策略,有效的提高了算法性能。
綜上所述,現(xiàn)已有許多研究針對(duì)各種群體智能優(yōu)化算法的不足之處提出了不同的策略方法,并取得了一定程度的改進(jìn)效果,而針對(duì)白骨頂優(yōu)化算法不足的研究還較少。 本文針對(duì)COOT 算法存在收斂速度慢、收斂精度欠缺的問題,提出了基于擾動(dòng)因子和貪心策略改進(jìn)的白骨頂優(yōu)化算法(PGCOOT):一方面在白骨頂種群初始化階段結(jié)合精英反向?qū)W習(xí)進(jìn)行初始化,另一方面在白骨頂個(gè)體移動(dòng)中融入擾動(dòng)因子和貪心策略來改變移動(dòng)機(jī)制。 因此,本文所提算法不僅改善了白骨頂種群的位置分布,而且能夠更好的協(xié)調(diào)算法的局部搜索和全局優(yōu)化能力,從而提高算法的收斂性能。
白骨頂優(yōu)化算法(COOT)是在研究白骨頂在水中兩種運(yùn)動(dòng)方式的基礎(chǔ)上提出的一種新型智能優(yōu)化算法。 在COOT 優(yōu)化算法中,整個(gè)白骨頂種群由領(lǐng)導(dǎo)者(leader)和普通白骨頂鳥(coot)組成。 領(lǐng)導(dǎo)者是指種群前面的少數(shù)指引種群走向目標(biāo)(食物)的白骨頂。 白骨頂有許多不同的集體行為,COOT 算法的目標(biāo)是模擬白骨頂在水面上的集體運(yùn)動(dòng)。 算法中模擬了白骨頂在水面上4 種不同的移動(dòng),分別是:個(gè)體的隨機(jī)移動(dòng)、鏈?zhǔn)揭苿?dòng)、根據(jù)群體領(lǐng)導(dǎo)者們調(diào)整位置以及l(fā)eader 帶領(lǐng)種群走向最佳區(qū)域(領(lǐng)導(dǎo)者運(yùn)動(dòng))。
使用公式(1)在空間中隨機(jī)生成Coot 種群:
其中,CootPos(i) 為cooti的位置;d為一系列的變量或問題維度;lb為搜索空間的下限;ub為搜索空間的上限;.?為點(diǎn)乘運(yùn)算。
在生成初始群體并確定每個(gè)主體的位置后,隨機(jī)選取NL個(gè)白骨頂個(gè)體作為leader,最后通過目標(biāo)函數(shù)計(jì)算所有白骨頂?shù)倪m應(yīng)度。
在整個(gè)移動(dòng)過程中,coot每次都從個(gè)體的隨機(jī)移動(dòng)、鏈?zhǔn)揭苿?dòng)、根據(jù)群體領(lǐng)導(dǎo)者們調(diào)整位置這3 種移動(dòng)方式中隨機(jī)選取一種作為移動(dòng)方式。
1.2.1 個(gè)體隨機(jī)移動(dòng)
個(gè)體的隨機(jī)移動(dòng)能對(duì)搜索空間的不同部分進(jìn)行探索。 如果算法陷入局部最優(yōu),采用隨機(jī)移動(dòng)的方式能夠緩解此類問題。 為了實(shí)現(xiàn)這種移動(dòng),首先隨機(jī)選取一個(gè)位置, 再將coot移向這個(gè)位置,之后根據(jù)公式(2) 來更新coot的位置。
其中,R2 為區(qū)間[0, 1] 中的隨機(jī)數(shù);CootPos(i) 表示cooti的位置;Q為隨機(jī)選取的位置;A值可根據(jù)公式(3)計(jì)算得出。
其中,L表示當(dāng)前迭代次數(shù),Iter表示最大迭代次數(shù)。
1.2.2 鏈?zhǔn)揭苿?dòng)
實(shí)現(xiàn)鏈移動(dòng)時(shí),首先計(jì)算兩個(gè)白骨頂位置點(diǎn)之間的距離矢量,然后向其中一個(gè)白骨頂?shù)姆较蛞苿?dòng)另一個(gè)白骨頂,移動(dòng)距離為矢量的一半。 新位置的計(jì)算方法為公式(4)。
其中,CootPos(i) 表示cooti的位置,CootPos(i -1) 表示cooti-1的位置。
1.2.3 根據(jù)群體領(lǐng)導(dǎo)者們調(diào)整位置
當(dāng)前面的幾個(gè)leader 領(lǐng)導(dǎo)族群走向最佳區(qū)域時(shí),其余的coot 則根據(jù)leader 的位置調(diào)整自己的位置。 由于種群中不止一個(gè)leader,因此coot 在移動(dòng)過程中根據(jù)公式(5)的機(jī)制來選擇某一個(gè)leader 作為參考位置。
其中,i為當(dāng)前coot 的索引號(hào);NL為初始時(shí)設(shè)置的leader 數(shù)量;K為leader 的索引號(hào);MOD 表示取余運(yùn)算。
在選定某個(gè)leader 作為參考位置后,coot 則朝著參考位置移動(dòng)。 移動(dòng)后的新位置由公式(6)計(jì)算得出。
其中,CootPos(i) 表示cooti當(dāng)前位置;LeaderPos(k) 為選定的leaderk的位置;R1 為區(qū)間[0,1]中的隨機(jī)數(shù);π 為圓周率;R為區(qū)間[-1,1]中的隨機(jī)數(shù)。
COOT 優(yōu)化尋優(yōu)過程中,領(lǐng)導(dǎo)者leader 的移動(dòng)至關(guān)重要,leader 需要朝著目標(biāo)(最優(yōu)點(diǎn))更新位置。有時(shí)領(lǐng)導(dǎo)者需要離開當(dāng)前的最佳位置去尋找更好的位置。 更新領(lǐng)導(dǎo)者位置的計(jì)算如公式(7)。 這個(gè)公式展現(xiàn)了接近和遠(yuǎn)離當(dāng)前最佳位置的策略。
其中,LeaderPos(i) 為leaderi的位置;gBest為迄今為止發(fā)現(xiàn)的最佳位置;R3、R4 為區(qū)間[0,1]中的隨機(jī)數(shù);π 為圓周率;R為區(qū)間[ -1,1]中的隨機(jī)數(shù);B可根據(jù)公式(8)計(jì)算所得。
其中,L表示當(dāng)前迭代,Iter表示最大迭代。
隨機(jī)選擇接近或遠(yuǎn)離當(dāng)前最佳位置,并以不同的半徑在迄今最佳的位置周圍進(jìn)行搜索,意味著白骨頂優(yōu)化算法在接近最優(yōu)點(diǎn)的階段也在進(jìn)行探索,以便算法遠(yuǎn)離陷入局部最優(yōu)的困境。
一般而言,算法的收斂精度和速度均與初始種群中個(gè)體的位置分布有關(guān)。 與其它算法類似,COOT算法在使用隨機(jī)方式對(duì)coot 種群位置進(jìn)行初始化后,才進(jìn)行優(yōu)化迭代。 但隨機(jī)初始化會(huì)導(dǎo)致COOT算法的可行解范圍較大,造成算法收斂時(shí)間較長(zhǎng),會(huì)降低算法的搜索能力,影響算法的搜索結(jié)果等問題。
一般而言,精英反向?qū)W習(xí)策略可以對(duì)種群初始化階段進(jìn)行優(yōu)化來提升算法的收斂性能。 首先,在種群初始化階段產(chǎn)生相應(yīng)的反向種群。 生成反向種群的方式表示如公式(9)所示:
其中,CootPos(i) 為當(dāng)前個(gè)體cooti的位置信息;為相應(yīng)的反向種群個(gè)體的位置信息;lb為搜索空間的下限;ub為搜索空間的上限;k是產(chǎn)生于[0,1]之間的隨機(jī)數(shù)。
其次,根據(jù)公式(10),在得到反向種群位置信息后,依序比較初始種群和反向種群的個(gè)體適應(yīng)度,最后將同一位置的適應(yīng)度更優(yōu)的個(gè)體放入初始種群的對(duì)應(yīng)位置中。
其中,CootPos(i) 為當(dāng)前個(gè)體cooti的位置信息;為相應(yīng)的反向種群個(gè)體的位置信息;為反向種群中個(gè)體的適應(yīng)度值;fi為隨機(jī)初始化種群中個(gè)體cooti的適應(yīng)度值。
COOT 優(yōu)化算法尋優(yōu)過程中,由于coot 的移動(dòng)方式是從上述3 種移動(dòng)方式中隨機(jī)選取的。 這種個(gè)體移動(dòng)選擇方式容易出現(xiàn)收斂速度慢、收斂精度低等問題。 因此,考慮在coot 的移動(dòng)方式選取過程中加入貪心策略,來減少移動(dòng)過程的盲目性。 將貪心策略加入到coot 的移動(dòng)中表現(xiàn)為:先通過比較上次迭代移動(dòng)后的位置是否有進(jìn)步,再?zèng)Q定本次迭代過程中移動(dòng)方式的選取[14]。 當(dāng)上次移動(dòng)后的位置有進(jìn)步時(shí),本次移動(dòng)過程選取與上次相同的移動(dòng)方式;當(dāng)上次移動(dòng)后的位置表現(xiàn)更差時(shí),本次移動(dòng)過程選擇與上次不同的移動(dòng)方式,以求更好的移動(dòng)表現(xiàn)。其基本規(guī)則如公式(11)所示:
其中,Move(i)l為cooti在第l次移動(dòng)時(shí)所選擇的移動(dòng)方式;~表示非運(yùn)算;random表示隨機(jī)選?。籪(i)l為cooti的第l次移動(dòng)的適應(yīng)度值。
在整個(gè)尋優(yōu)過程中,領(lǐng)導(dǎo)者的位置關(guān)乎整個(gè)種群的動(dòng)向[15]。 在leader 的移動(dòng)過程中添加擾動(dòng)因子,能夠改變leader 的探索范圍,協(xié)調(diào)局部搜索和全局優(yōu)化能力,從而得到更優(yōu)的搜索結(jié)果[13]。 當(dāng)leader 朝著接近最優(yōu)點(diǎn)移動(dòng)時(shí),勘探范圍由大到小過渡,增強(qiáng)局部搜索能力[16-17];而leader 朝著遠(yuǎn)離最優(yōu)點(diǎn)移動(dòng)時(shí),搜索范圍由小到大變化,增強(qiáng)了全局探索能力,能有效的避免陷入局部最優(yōu)的問題。 擾動(dòng)因子q定義如公式(12)所示[11,14-15]:
其中,L是當(dāng)前迭代;Iter是最大迭代;π 為圓周率。
通過對(duì)α和β在[0,20]區(qū)間內(nèi)依次取值進(jìn)行組合實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,當(dāng)α=4、β=5 時(shí),全局勘探能力與局部探索能力能夠得到較好的平衡,此時(shí)尋優(yōu)效果最好。 改進(jìn)后的領(lǐng)導(dǎo)者移動(dòng)公式如公式(13)所示:
綜上所述,本文將精英反向?qū)W習(xí)、貪心策略和擾動(dòng)因子與COOT 算法融合得到PGCOOT 算法。 該算法能更好的協(xié)調(diào)局部搜索和全局優(yōu)化,具有更優(yōu)的搜索性能,從而提升算法的收斂效果。 PGCOOT算法實(shí)現(xiàn)流程如圖1 所示。 算法步驟如下:
圖1 PGCOOT 算法流程圖Fig. 1 PGCOOT algorithm flow diagram
Step 1確定白骨頂種群個(gè)數(shù)N,最大迭代次數(shù)Iter,空間維度d,搜索空間上下限等參數(shù);
Step 2隨機(jī)產(chǎn)生種群個(gè)體,初始化種群,隨機(jī)選取NL個(gè)leader,并計(jì)算種群適應(yīng)度值;
Step 3采用精英反向?qū)W習(xí)產(chǎn)生反向種群,再選取每個(gè)序號(hào)下最好的個(gè)體作為種群個(gè)體;
Step 4進(jìn)入主循環(huán),While 當(dāng)前迭代次數(shù)l<Iter;
Step 5coot 選取移動(dòng)方式。 當(dāng)l=1 時(shí),coot隨機(jī)選取移動(dòng)方式;當(dāng)l >1 時(shí),coot 根據(jù)貪婪策略改進(jìn)的機(jī)制(式(11))選取移動(dòng)方式;
Step 6coot 根據(jù)已選取移動(dòng)方式,依據(jù)式(2)~式(6)實(shí)現(xiàn)位置信息更新;
Step 7leader 根據(jù)加入擾動(dòng)因子的領(lǐng)導(dǎo)者運(yùn)動(dòng)式(13)進(jìn)行位置信息更新;
Step 8計(jì)算種群適應(yīng)度,獲取當(dāng)前適應(yīng)度最好的值,并更新leader;
Step 9判斷是否達(dá)到停止條件,滿足則迭代過程結(jié)束;否則返回Step 4 繼續(xù)迭代;
Step 10輸出最優(yōu)適應(yīng)度值和最佳位置。
在標(biāo)準(zhǔn)COOT 算法中,假設(shè)種群規(guī)模為N,求解空間維數(shù)為d, 標(biāo)準(zhǔn)COOT 進(jìn)行參數(shù)初始化的復(fù)雜度為O(1),則個(gè)體適應(yīng)度為O(N),種群復(fù)雜度為O(N×d),此時(shí)標(biāo)準(zhǔn)COOT 算法的整體復(fù)雜度如公式(14)所示:
PGCOOT 算法在初始化階段使用精英反向?qū)W習(xí)策略,替換隨機(jī)初始化后復(fù)雜度為O(N×d);在個(gè)體適應(yīng)度計(jì)算階段使用貪心策略后,復(fù)雜度為O(N×d),干擾因子復(fù)雜度為O(N×d);算法整體復(fù)雜度如公式(15) 所示:
顯然O(COOT)=O(PGCOOT)。 可見,相比于標(biāo)準(zhǔn)COOT 算法,本文所提算法與標(biāo)準(zhǔn)COOT 算法時(shí)間復(fù)雜度一致。
為證明PGCOOT 算法加入不同改進(jìn)策略的有效性,并且具有更好的性能,將其算法與其他算法進(jìn)行仿真實(shí)驗(yàn)對(duì)比分析。 實(shí)驗(yàn)從以下3 方面進(jìn)行:
(1)將PGCOOT 算法與貪心策略下的改進(jìn)算法COOT1、精英反向?qū)W習(xí)初始化與加入擾動(dòng)因子的領(lǐng)導(dǎo)者運(yùn)動(dòng)改進(jìn)后的算法COOT2、標(biāo)準(zhǔn)COOT 算法進(jìn)行實(shí)驗(yàn)對(duì)比,驗(yàn)證不同策略的有效性。 同時(shí),為了驗(yàn)證PGCOOT 的時(shí)間復(fù)雜度,與COOT 進(jìn)行了比較分析。
(2)將PGCOOT 算法與蟻獅算法(ALO)、 灰狼優(yōu)化算法(GWO)、蝗蟲優(yōu)化算法(GOA)、正余弦算法(SCA)、多元宇宙優(yōu)化算法(MVO) 和原始的COOT算法在d= 30 條件下做實(shí)驗(yàn)比較,通過實(shí)驗(yàn)數(shù)據(jù)論證PGCOOT 算法的可行性、有效性和優(yōu)越性。 再根據(jù)尋優(yōu)能力的表現(xiàn),選取前三名算法在d= 100 時(shí)進(jìn)行對(duì)比實(shí)驗(yàn)。
(3)將PGCOOT 算法與蟻獅算法(ALO)、 灰狼優(yōu)化算法(GWO)、蝗蟲優(yōu)化算法(GOA)、正余弦算法(SCA)、多元宇宙優(yōu)化算法(MVO) 和原始的COOT算法進(jìn)行Wilcoxon 秩和檢驗(yàn),以此驗(yàn)證PGCOOT 算法相較于其他算法具有顯著性差異。
為了檢驗(yàn)本文所提PGCOOT 算法的尋優(yōu)能力,實(shí)驗(yàn)使用8 種標(biāo)準(zhǔn)測(cè)試函數(shù)來對(duì)算法進(jìn)行不同尋優(yōu)特征上的測(cè)試。 標(biāo)準(zhǔn)測(cè)試函數(shù)見表1。 其中F1、F2、F3、F4為單峰函數(shù),F(xiàn)5、F6、F7、F8是多峰函數(shù),存在多個(gè)局部極值,求解難度較高。
表1 標(biāo)準(zhǔn)測(cè)試函數(shù)Tab. 1 Standard test function
實(shí)驗(yàn)環(huán)境:本文所有實(shí)驗(yàn)均在Intel? CoreTMi5-7500 CPU@3.40 GHz,RAM 8.0 GB,運(yùn)行環(huán)境為64位Window10 操作系統(tǒng),MATLAB 2018b 軟件上進(jìn)行。 為了與其它算法進(jìn)行公平比較,將種群規(guī)模都設(shè)為N=30,設(shè)置領(lǐng)導(dǎo)者數(shù)量占比為0.1,最大迭代次數(shù)Iter為500、α為4,β為5。 每個(gè)測(cè)試函數(shù)都進(jìn)行了30 次獨(dú)立實(shí)驗(yàn),以排除隨機(jī)性對(duì)實(shí)驗(yàn)結(jié)果的影響,并記錄最優(yōu)值(Best)、平均值(Mean)與標(biāo)準(zhǔn)差(Std),來整體評(píng)價(jià)各算法的性能。 其中,平均值用于表示算法的平均尋優(yōu)能力,最優(yōu)值用于表示算法的尋優(yōu)極限,標(biāo)準(zhǔn)差表示算法的魯棒性。
為驗(yàn)證PGCOOT 算法中各策略的有效性,將原始算法COOT 與COOT1、COOT2、PGCOOT 在d=30時(shí),進(jìn)行實(shí)驗(yàn)比較,從而驗(yàn)證各策略的有效性。 各策略算法獨(dú)立運(yùn)行30 次后的實(shí)驗(yàn)結(jié)果見表2,可視化結(jié)果如圖2 所示。 從對(duì)表2 和圖2 的分析可知:
表2 PGCOOT 與COOT、COOT1、COOT2 結(jié)果Tab. 2 Results of PGCOOT and COOT, COOT1 and COOT2
圖2 各策略算法的平均收斂曲線Fig. 2 Average convergence curves of several strategy algorithms
(1)對(duì)于F1和F3,COOT、COOT2 和COOT1 并未收斂至最優(yōu)值。 COOT1 與原始算法相比,收斂精度略有提升;COOT2 的精度則比原始算法提升了至少200 個(gè)數(shù)量級(jí)。 而融合了COOT1 和COOT2 策略的PGCOOT 算法則在迭代接近450 次時(shí)就收斂至理論最優(yōu)值,并且PGCOOT 的收斂平均值(Mean)和標(biāo)準(zhǔn)差(Std)均為0。 這表明在30 次實(shí)驗(yàn)中,PGCOOT 能100%取得理論最優(yōu)解。
(2)對(duì)于F2和F4,各策略算法均未收斂至理論最優(yōu)值,但PGCOOT 最接近理論最優(yōu)值,與原始算法相比提升了170 個(gè)數(shù)量級(jí)左右,并且COOT1 和COOT2 的改進(jìn)策略結(jié)果也優(yōu)于原始的COOT。
在相同條件下,對(duì)于單峰函數(shù)F1~F4的對(duì)比分析結(jié)果,展現(xiàn)了改進(jìn)策略COOT1 和COOT2 在收斂速度與收斂精度的有效性,而PGCOOT 算法融合了COOT1 和COOT2 的優(yōu)點(diǎn),在各函數(shù)上都獲得了更高的準(zhǔn)確性和更快的收斂速度,表明了所提算法的優(yōu)越性。
在多峰函數(shù)時(shí),對(duì)于F5來看,各策略算法均未收斂至最優(yōu)值。 收斂平均值(Mean)表明,與COOT相比,COOT1 收斂精度相對(duì)更高,COOT2 的收斂精度則大幅提升,而融合了COOT1 和COOT2 策略的PGCOOT 收斂精度最高,最接近理論值。 通過最優(yōu)值(Best)和標(biāo)準(zhǔn)差(Std)的比較,表明了PGCOOT 的尋優(yōu)極限更高、收斂效果更加穩(wěn)定。 分析F6與F8時(shí)的結(jié)果,各策略算法均實(shí)現(xiàn)最優(yōu)值(Best)與理論值相等;但收斂平均值(Mean)和標(biāo)準(zhǔn)差(Std)結(jié)果則表明了COOT 和COOT1 并不能保證100%取得理論最優(yōu)解,而PGCOOT、COOT2 的30 次運(yùn)行均能夠100%取得理論最優(yōu)解。 從收斂速度來看,PGCOOT的收斂速度比COOT2 更快。
綜上,在多峰函數(shù)F5~F8時(shí),融合了COOT1 和COOT2 策略的PGCOOT 在尋優(yōu)精度、穩(wěn)定性和收斂速度上都表現(xiàn)出了遠(yuǎn)優(yōu)于其他算法的性能。
為了驗(yàn)證PGCOOT 的時(shí)間復(fù)雜度,在上述條件下,將PGCOOT 與COOT 在相同函數(shù)下獨(dú)立運(yùn)行30次的總時(shí)間進(jìn)行記錄,結(jié)果見表3。 從表3 可以看出,PGCOOT 與COOT 運(yùn)行30 次所用時(shí)間均在3 s左右,不存在較大的差異。 說明本文算法在標(biāo)準(zhǔn)COOT 算法中使用多種策略后,時(shí)間復(fù)雜度并沒有上升,運(yùn)行效率也未受到影響。
表3 PGCOOT 與COOT 獨(dú)立運(yùn)行30 次時(shí)間(s)比較Tab. 3 Comparison between PGCOOT and COOT when running independently for 30 times
本次實(shí)驗(yàn)運(yùn)用8 個(gè)測(cè)試函數(shù),在參數(shù)設(shè)置統(tǒng)一的條件下,測(cè)試PGCOOT 算法的尋優(yōu)速度與尋優(yōu)精度。 通過最優(yōu)值(Best) 、平均值(Mean) 與標(biāo)準(zhǔn)差(Std) 3 個(gè)指標(biāo),評(píng)價(jià)PGCOOT 的尋優(yōu)能力。
本文選取蟻獅算法(ALO)、 灰狼優(yōu)化算法(GWO)、蝗蟲優(yōu)化算法(GOA)、正余弦算法(SCA)、多元宇宙優(yōu)化算法(MVO) 和原始的COOT 算法等,與改進(jìn)算法PGCOOT 在d=30 時(shí)進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果見表4,收斂曲線如圖3 所示。
表4 PGCOOT 及其他算法結(jié)果Tab. 4 Results of PGCOOT and other algorithms
圖3 PGCOOT 及其他算法收斂曲線Fig. 3 Convergence curves of PGCOOT and other algorithms
由對(duì)表4 和圖3 的分析可知:
(1)對(duì)于單峰函數(shù)F1~F4,PGCOOT 能迅速收斂至最優(yōu)值或最優(yōu)值附近,而其余算法收斂精度較低,收斂速度較慢。 其中,在F1、F3上只有本文所提出的PGCOOT 獲得了理論最優(yōu)值,其余算法均未尋到理論最優(yōu)值。 從平均值與標(biāo)準(zhǔn)差來看,PGCOOT尋優(yōu)成功率高達(dá)100%,具有比其他算法更好的穩(wěn)定性。 從對(duì)應(yīng)的收斂曲線中可以看到,雖然GWO與COOT 有著不錯(cuò)的效果,但是PGCOOT 在收斂速度上占有明顯優(yōu)勢(shì)。 對(duì)于F2、F4而言,雖然所有算法均未尋到理論最優(yōu)值,但PGCOOT 的結(jié)果最接近理論值;從平均值與標(biāo)準(zhǔn)差來看,PGCOOT 也具有更好的魯棒性和平均尋優(yōu)能力。
(2)從多峰函數(shù)F5~F8的結(jié)果可見,在F5函數(shù)上,雖然所有算法均未尋到理論最優(yōu)值,但從接近理論最小值的程度來看,PGCOOT 的結(jié)果最接近于理論最優(yōu)值。 在F6和F8函數(shù)上,PGCOOT、GWO 與COOT 均跳出局部最優(yōu),尋到理論最優(yōu)值,但是從平均值與標(biāo)準(zhǔn)差來看,PGCOOT 具有更好的穩(wěn)定性,能夠100%尋得理論最優(yōu)值。 對(duì)于F7, 雖然PGCOOT與其他算法均未尋到理論最優(yōu)值,但PGCOOT 獲得的最優(yōu)值8.881 8E-16 是所有算法中最接近理論值的結(jié)果之一。 并且從平均值與標(biāo)準(zhǔn)差的結(jié)果可以看到,PGCOOT 的穩(wěn)定性最好。 這表明了在F7函數(shù)下,PGCOOT 相對(duì)于其它算法仍然最具競(jìng)爭(zhēng)力。
為了進(jìn)一步驗(yàn)證本文所提PGCOOT 算法,將與上述結(jié)果中表現(xiàn)最好的GWO 和COOT 在d= 100 時(shí)再次進(jìn)行實(shí)驗(yàn)。 所得實(shí)驗(yàn)數(shù)據(jù)見表5,收斂曲線見圖4。
表5 PGCOOT、GWO、COOT 結(jié)果Tab. 5 Results of PGCOOT、GWO、COOT
圖4 PGCOOT、GWO、COOT 收斂曲線Fig. 4 Convergence curves of PGCOOT, GWO and COOT
從圖4 可見,對(duì)于F1~F4來看,PGCOOT、GWO、COOT 的尋優(yōu)表現(xiàn)結(jié)果相似。 PGCOOT 的收斂曲線下降迅速,而GWO、COOT 的收斂曲線則較為緩和。從表5 和圖4 來看,PGCOOT 在F1能夠100%尋得理論最優(yōu)值,其余算法均未尋到理論最優(yōu)值。 在F2、F4函數(shù)下,PGCOOT 雖未取得理論最優(yōu)值,但與GWO 和COOT 相比,接近程度更勝一籌。 并且PGCOOT 在平均值與標(biāo)準(zhǔn)差上具有更好的穩(wěn)定性。 在F3函數(shù)下,PGCOOT 雖不能夠保證100%尋得理論最優(yōu)值,但仍保持收斂精度和收斂速度第一。 由此可見,在高維單峰函數(shù)的實(shí)驗(yàn)中,GWO 和COOT 在尋優(yōu)能力和收斂速度上都會(huì)產(chǎn)生波動(dòng),甚至是下降的情況,與之相比PGCOOT 仍能保持良好的尋優(yōu)能力,進(jìn)一步表明了PGCOOT 整體性能的優(yōu)越性。
在多峰函數(shù)F5~F8中,PGCOOT 在F5函數(shù)上表現(xiàn)了更好的尋優(yōu)能力,從表5 和圖4 的結(jié)果可以看到,與GWO 和COOT 相比PGCOOT 更接近于理論最優(yōu)值。 在F6~F8函數(shù)上,PGCOOT 的收斂速度比GWO 與COOT 快,能夠迅速收斂至最優(yōu)值附近。 與d= 30 時(shí)相比,PGCOOT 的收斂精度、速度和穩(wěn)定性均保持一致,這表明PGCOOT 具有保持較強(qiáng)的魯棒性和穩(wěn)定性。 綜合F5~F8函數(shù)的結(jié)果來看,在高維多峰函數(shù)的情況下,PGCOOT 仍保持良好的尋優(yōu)能力和收斂速度,而GWO、COOT 在高維度求解復(fù)雜函數(shù)時(shí)會(huì)出現(xiàn)穩(wěn)定性不強(qiáng),尋優(yōu)能力驟降的情況。
因此,不管在低維還是高維條件下,PGCOOT 都具有更好的尋優(yōu)精度和穩(wěn)定性、更快的尋優(yōu)速度,這也表明了PGCOOT 能夠有效解決低維和高維的函數(shù)優(yōu)化問題。
為驗(yàn)證PGCOOT 算法與蟻獅算法(ALO)、 灰狼優(yōu)化算法(GWO)、蝗蟲優(yōu)化算法(GOA)、正余弦算法(SCA)、多元宇宙優(yōu)化算法(MVO) 和原始的COOT 算法在全局尋優(yōu)上是否存在顯著性區(qū)別,對(duì)各算法進(jìn)行了性能測(cè)試比較。 考慮到數(shù)據(jù)為非正態(tài)分布,因此使用均值的非參數(shù)檢驗(yàn)方法,本文采取Wilcoxon 秩和檢驗(yàn)。
Wilcoxon 秩和檢驗(yàn)的步驟為:首先,提出原假設(shè)H0:PGCOOT 算法與其他算法之間性能不存在明顯差異。 備擇假設(shè)H1:PGCOOT 算法與其他算法之間性能有著明顯差異。 然后,根據(jù)Wilcoxon 秩和檢驗(yàn)原理計(jì)算出P值。 最后,利用檢驗(yàn)結(jié)果的P值來比較兩種算法是否存在差異。 當(dāng)P值小于0.05 時(shí),拒絕H0,即認(rèn)為兩種算法在性能上存在明顯區(qū)別;當(dāng)P值大于0.05,不拒絕H0, 即不認(rèn)為兩種算法之間存在明顯差異,兩種算法在全局尋優(yōu)上性能相當(dāng)。Wilcoxon 秩和檢驗(yàn)結(jié)果見表6。
從表6 Wilcoxon 秩和檢驗(yàn)可以看出,PGCOOT算法與其他算法之間由Wilcoxon 秩和檢驗(yàn)所得的P值最大值為2.495 5E-95,最小值為3.015 3E-183,大部分值處于9.35E-162 附近,遠(yuǎn)遠(yuǎn)小于0.05。 因此拒絕H0, 認(rèn)為PGCOOT 算法與其他算法之間存在明顯差異。 結(jié)合PGCOOT 算法的優(yōu)異表現(xiàn),即認(rèn)為本文所提改進(jìn)算法PGCOOT 比其他算法具有更好的搜索能力。
本文針對(duì)COOT 優(yōu)化算法易陷入局部最優(yōu)、收斂精度低等問題,提出了融合擾動(dòng)因子和貪心策略的PGCOOT 算法。 將PGCOOT 與其他多個(gè)算法在8 個(gè)經(jīng)典測(cè)試函數(shù)上對(duì)收斂速度、精度進(jìn)行比較。仿真實(shí)驗(yàn)結(jié)果驗(yàn)證了所提出的精英反向?qū)W習(xí)初始化和貪心策略以及擾動(dòng)因子相結(jié)合的PGCOOT 算法的有效性,表明了PGCOOT 算法在全局尋優(yōu)以及局部搜索具有更優(yōu)秀的尋優(yōu)精度與速度。 今后的研究將繼續(xù)改進(jìn)算法,進(jìn)一步提高算法的尋優(yōu)性能,同時(shí)將PGCOOT 算法應(yīng)用于實(shí)際問題。