張九龍,王曉峰,蘆 磊,牛鵬飛
1.北方民族大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,銀川750021
2.北方民族大學(xué) 圖像圖形智能處理國(guó)家民委重點(diǎn)實(shí)驗(yàn)室,銀川750021
用于解決優(yōu)化問(wèn)題的方法叫作優(yōu)化算法,它是基于某種思想或機(jī)制,通過(guò)一定的途徑或規(guī)則得到滿(mǎn)足問(wèn)題要求的解的過(guò)程。傳統(tǒng)的優(yōu)化算法如遺傳算法、蟻群算法、粒子群算法、模擬退火算法、禁忌搜索算法等,這類(lèi)算法構(gòu)造直觀(guān),原理便于理解,通常被稱(chēng)作智能優(yōu)化算法(intelligent optimization algorithms,IOA)或現(xiàn)代啟發(fā)式算法(meta-heuristic algorithms,MA)。按照算法原理的不同,智能優(yōu)化算法可以分為以下幾個(gè)大的類(lèi)別:仿人智能類(lèi)算法、進(jìn)化類(lèi)算法、群體智能類(lèi)算法、仿植物生長(zhǎng)類(lèi)算法、仿自然類(lèi)算法等。
仿人智能類(lèi)算法是指一類(lèi)包括模擬人腦思維、人體系統(tǒng)、組織、器官乃至細(xì)胞及人類(lèi)社會(huì)競(jìng)爭(zhēng)進(jìn)化相關(guān)的算法,其中經(jīng)典的算法有神經(jīng)網(wǎng)絡(luò)算法、免疫算法、禁忌搜索算法、頭腦風(fēng)暴算法、帝國(guó)主義競(jìng)爭(zhēng)算法等。進(jìn)化類(lèi)算法是一類(lèi)模仿自然界的生物在生殖繁育過(guò)程里,通過(guò)遺傳和變異及“優(yōu)勝劣汰”自然選擇法則不斷進(jìn)化的算法,在一些可行解組成的種群中,迭代進(jìn)化尋求最優(yōu)解。主要算法包括遺傳算法、差分進(jìn)化算法、基因表達(dá)式編程算法等。群體智能類(lèi)算法是從自然界群居生物的覓食、繁殖等行為或群體捕獵及生存策略中獲得靈感,設(shè)計(jì)模型對(duì)問(wèn)題求解的優(yōu)化算法,核心思想就是若干個(gè)簡(jiǎn)單的個(gè)體構(gòu)成一個(gè)群體,通過(guò)合作、競(jìng)爭(zhēng)、交互與學(xué)習(xí)等機(jī)制實(shí)現(xiàn)高級(jí)和復(fù)雜的功能,在缺少局部信息和模型的情況下,仍能完成復(fù)雜問(wèn)題的求解。其中代表性的算法有蟻群優(yōu)化算法、粒子群優(yōu)化算法、人工蜂群算法、布谷鳥(niǎo)搜索算法等。仿植物生長(zhǎng)類(lèi)算法指的是模擬花草樹(shù)木等植物在生長(zhǎng)過(guò)程中表現(xiàn)出來(lái)的向光性、根的吸水性、種子繁殖、花朵授粉等特性而構(gòu)造出的優(yōu)化算法,主要算法有入侵雜草優(yōu)化算法、森林優(yōu)化算法、花朵授粉算法等。仿自然類(lèi)優(yōu)化算法是指模擬風(fēng)雨云電等自然現(xiàn)象或物理、化學(xué)、數(shù)學(xué)定律等非線(xiàn)性科學(xué)的優(yōu)化方法,其中較知名的算法有模擬退火算法、閃電搜索算法、引力搜索算法、熱傳遞搜索算法等。
隨著人工智能及工業(yè)技術(shù)的發(fā)展,對(duì)算法性能的要求越來(lái)越嚴(yán)格,然而一個(gè)算法在某些優(yōu)化問(wèn)題上表現(xiàn)出來(lái)的優(yōu)異性能并不代表同樣適用于其他類(lèi)型的優(yōu)化問(wèn)題,因此近年來(lái)不斷有新型智能優(yōu)化算法提出,用于解決不同類(lèi)型的優(yōu)化問(wèn)題。相較于傳統(tǒng)的智能優(yōu)化算法,新型智能優(yōu)化算法在收斂速度、求解時(shí)間、計(jì)算精度等不同方面各有側(cè)重,為解決優(yōu)化問(wèn)題提供了新的思路和方法。本文按照算法提出的時(shí)間選取了2015 年以來(lái)的若干新型智能優(yōu)化算法,分別是2015 年提出的蝴蝶優(yōu)化算法、飛蛾撲火優(yōu)化算法,2016 年提出的正弦余弦優(yōu)化算法,2017 年提出的蝗蟲(chóng)優(yōu)化算法,2019 年提出的哈里斯鷹優(yōu)化算法和2020 年提出的麻雀搜索算法,本文詳細(xì)介紹了各算法的基本原理、算法流程和相關(guān)改進(jìn)策略,并從求解的平均值、標(biāo)準(zhǔn)差、最優(yōu)值、最差值、平均運(yùn)行時(shí)間及收斂曲線(xiàn)6 個(gè)指標(biāo)對(duì)算法性能對(duì)比分析,最后是對(duì)智能優(yōu)化算法未來(lái)研究發(fā)展的展望。
Arora 等在2015 年提出一種新的元啟發(fā)式智能優(yōu)化算法——蝴蝶優(yōu)化算法(butterfly optimization algorithm,BOA),蝴蝶優(yōu)化算法所涉及的主要公式如下:
蝴蝶優(yōu)化算法的大致流程為:蝴蝶在迭代過(guò)程中產(chǎn)生一定的香味,依據(jù)香味濃度指導(dǎo)蝴蝶在搜索空間內(nèi)移動(dòng),每次迭代生成一個(gè)隨機(jī)數(shù)與轉(zhuǎn)換概率進(jìn)行比較來(lái)決定全局搜索或局部開(kāi)發(fā),循環(huán)迭代直至滿(mǎn)足終止條件算法結(jié)束。
蝴蝶優(yōu)化算法原理簡(jiǎn)單,便于理解,但和其他智能優(yōu)化算法一樣,也存在容易陷入局部最優(yōu)、收斂性差的問(wèn)題。為此不斷有新的改進(jìn)蝴蝶優(yōu)化算法被提出來(lái),選取了部分改進(jìn)的相關(guān)文獻(xiàn)并從改進(jìn)策略、優(yōu)勢(shì)、局限和應(yīng)用場(chǎng)景等方面歸納如表1 所示。
除表1 中列舉出的各種改進(jìn)方法外,還有其他的一些改進(jìn)和應(yīng)用,如文獻(xiàn)[34]中,采用了可變感知模態(tài)參數(shù)策略,以提高蝴蝶優(yōu)化算法的收斂速度。文獻(xiàn)[35]在BOA 中嵌入了學(xué)習(xí)自動(dòng)機(jī),利用學(xué)習(xí)自動(dòng)機(jī)配置蝴蝶的行為,在全局搜索和局部開(kāi)發(fā)之間建立適當(dāng)?shù)钠胶?。寧杰瓊等提出混合策略改進(jìn)的蝴蝶優(yōu)化算法,采用Circle 映射初始化蝴蝶個(gè)體的位置,通過(guò)動(dòng)態(tài)切換概率控制正弦余弦算法與蝴蝶優(yōu)化算法的轉(zhuǎn)換,將自適應(yīng)余切權(quán)重系數(shù)引入位置更新中,并添加逐維辨析策略避免算法陷入局部最優(yōu)。Rachapudi 等將蝴蝶優(yōu)化算法用于染色圖像中細(xì)胞核的分割;李鵬等將改進(jìn)蝴蝶優(yōu)化算法和例子濾波的聯(lián)合算法用于鋰電池健康狀態(tài)預(yù)測(cè)。
表1 蝴蝶優(yōu)化算法改進(jìn)分析Table 1 Improvement analysis of BOA
飛蛾撲火算法(moth-flame optimization,MFO)是在2015 提出的一種群智能優(yōu)化算法,該算法的靈感來(lái)源于自然界中飛蛾的橫向定位(transverse orientation)導(dǎo)航機(jī)制,以對(duì)數(shù)螺線(xiàn)形式更新位置的飛蛾撲火算法涉及到的主要公式有:
其中,M表示第只飛蛾;為螺旋形函數(shù);F表示第個(gè)火焰;D表示第只飛蛾與第個(gè)火焰之間的距離;參數(shù)稱(chēng)為極半徑,是定義對(duì)數(shù)螺旋形狀的常數(shù);稱(chēng)為收斂常數(shù),是[-1,1]之間的隨機(jī)數(shù),用于定義飛蛾下一個(gè)位置距離火焰的程度;為火焰數(shù)量;是火焰最大數(shù)量;為當(dāng)前迭代次數(shù);是最大迭代次數(shù)。
飛蛾撲火算法的大致流程為:初始化飛蛾種群,計(jì)算每只飛蛾的適應(yīng)度值并選擇其中前個(gè)作為火焰。每次迭代均計(jì)算火焰和飛蛾的適應(yīng)度值進(jìn)行排序并更新角色?;鹧鏀?shù)隨著迭代次數(shù)的增加而減少,一直迭代直到滿(mǎn)足終止條件算法結(jié)束。
飛蛾撲火算法的改進(jìn)有很多,選取了部分改進(jìn)的相關(guān)文獻(xiàn)并從改進(jìn)策略、優(yōu)勢(shì)、局限和應(yīng)用場(chǎng)景等方面歸納如表2 所示。
除表2 中列舉出的各種改進(jìn)方法外,還有其他的一些改進(jìn)和應(yīng)用,如王光等在算法中引入歷史最優(yōu)火焰平均值的概念,改進(jìn)飛蛾位置更新公式,使用隨機(jī)反向?qū)W習(xí)策略進(jìn)行反向?qū)W習(xí),引入折射原理對(duì)解進(jìn)行折射操作。劉小龍?jiān)陲w蛾撲火算法中引入縮放因子和視距因子的概念,在協(xié)同演化框架下,提出飛蛾直飛模型,使得算法解決大規(guī)模優(yōu)化問(wèn)題表現(xiàn)出較好的優(yōu)越性和魯棒性。文獻(xiàn)[49]中定義了全局搜索和局部開(kāi)發(fā)之間的混合階段,增加依賴(lài)適應(yīng)度的權(quán)重因子來(lái)更新飛蛾的位置。文獻(xiàn)[50]將MFO 算法應(yīng)用于混合無(wú)線(xiàn)寬帶接入網(wǎng)領(lǐng)域,提出一種新的基于自然啟發(fā)的多光纖網(wǎng)絡(luò)單元布局啟發(fā)式飛蛾撲火算法。文獻(xiàn)[51]中提出將飛蛾撲火算法和頻域法相結(jié)合,用于永磁同步電機(jī)控制器參數(shù)整定,提高了系統(tǒng)的快速跟蹤能力和抗干擾能力。
表2 飛蛾撲火算法改進(jìn)分析Table 2 Improvement analysis of MFO
正弦余弦優(yōu)化算法(sine cosine algorithm,SCA)是Mirjalili 教授2016 年提出的新型智能優(yōu)化算法,正弦余弦優(yōu)化算法所涉及的主要公式有:
正弦余弦優(yōu)化算法的大致流程為:初始化種群,計(jì)算種群中個(gè)體的適應(yīng)度值,更新參數(shù)、、、并根據(jù)式(7)不斷更新個(gè)體的位置,更新種群最優(yōu)個(gè)體,持續(xù)迭代直至滿(mǎn)足終止條件算法停止。
很多學(xué)者對(duì)正弦余弦優(yōu)化算法的改進(jìn)不斷探索,選取了部分改進(jìn)的相關(guān)文獻(xiàn)并從改進(jìn)策略、優(yōu)勢(shì)、局限和應(yīng)用場(chǎng)景等方面歸納如表3 所示。
表3 正弦余弦優(yōu)化算法改進(jìn)分析Table 3 Improvement analysis of SCA
除表3 中列舉出的各種改進(jìn)方法外,還有其他的一些改進(jìn)和應(yīng)用,如文獻(xiàn)[60]提出基于改進(jìn)正弦余弦算法的極限學(xué)習(xí)機(jī)(modified sine cosine algorithmextreme learning machine,MSCA-ELM)并在腦部病理核磁共振圖像分類(lèi)中得到了應(yīng)用。于坤等將改進(jìn)的正弦余弦算法與多種光譜線(xiàn)型擬合方法相結(jié)合,用于計(jì)算對(duì)應(yīng)的光譜特征峰位置。文獻(xiàn)[62]將正弦余弦算法和遺傳算法混合用于數(shù)據(jù)挖掘中的特征選擇,取得了較好的效果。
蝗蟲(chóng)優(yōu)化算法(grasshopper optimization algorithm,GOA)是Saremi 等在2017 年提出的一種模仿自然界中蝗蟲(chóng)遷徙及覓食的元啟發(fā)式智能優(yōu)化算法。蝗蟲(chóng)優(yōu)化算法的主要公式如下:
蝗蟲(chóng)優(yōu)化算法的大致流程為:初始化種群位置及參數(shù),通過(guò)式(9)及式(10)循環(huán)更新參數(shù)和蝗蟲(chóng)位置并計(jì)算每個(gè)蝗蟲(chóng)的適應(yīng)度值,每次迭代保存種群中最好適應(yīng)度值的個(gè)體,持續(xù)迭代并判斷迭代次數(shù)是否達(dá)到設(shè)定的最大值。若未達(dá)到最大迭代次數(shù)繼續(xù)迭代,否則退出循環(huán)并返回全局最優(yōu)解。
蝗蟲(chóng)優(yōu)化算法與其他群智能優(yōu)化算法一樣,存在一定缺陷。不斷有學(xué)者及研究人員對(duì)其進(jìn)行改進(jìn),選取了若干改進(jìn)的方法歸納如表4 所示。
除表4 中列舉出的各種改進(jìn)方法外,還有其他的一些改進(jìn)和應(yīng)用,如王博等在此基礎(chǔ)上進(jìn)一步提出混合多目標(biāo)蝗蟲(chóng)優(yōu)化算法,利用Halton 序列進(jìn)行種群初始化,由差分變異算子引導(dǎo)種群更新并加入自適應(yīng)權(quán)重因子,提高了算法優(yōu)化效率和解集質(zhì)量。文獻(xiàn)[72]提出基于反向?qū)W習(xí)策略改進(jìn)的蝗蟲(chóng)優(yōu)化算法,第一階段使用反向?qū)W習(xí)策略生成初始種群,第二階段使用反向?qū)W習(xí)作為附加階段在每次迭代中更新蝗蟲(chóng)種群,通過(guò)基準(zhǔn)函數(shù)及工程問(wèn)題驗(yàn)證了算法有較好的性能。Arora 等將混沌理論引入GOA 的優(yōu)化過(guò)程中利用混沌映射在局部開(kāi)發(fā)和全局搜索間做到有效平衡。文獻(xiàn)[74]將蝗蟲(chóng)優(yōu)化算法用于數(shù)據(jù)聚類(lèi)。潘峰等使用蝗蟲(chóng)算法進(jìn)行尋優(yōu)求解最佳閾值,并利用最佳閾值對(duì)圖像進(jìn)行分割等。
表4 蝗蟲(chóng)優(yōu)化算法改進(jìn)分析Table 4 Improvement analysis of GOA
哈里斯鷹優(yōu)化算法(Harris hawks optimization,HHO)是Heidari 等在2019 年提出的一種新型群智能優(yōu)化算法,哈里斯鷹優(yōu)化算法主要包括探索階段和開(kāi)發(fā)階段。
探索階段的主要公式為:
式中,為當(dāng)前種群中隨機(jī)選擇的個(gè)體;為當(dāng)前最優(yōu)個(gè)體;X為種群個(gè)體的平均位置;、、、均為0 到1 之間的隨機(jī)數(shù);和分別為種群的上下邊界;為種群數(shù)量。
探索階段到開(kāi)發(fā)階段的轉(zhuǎn)換公式為:
式中,代表控制算法全局搜索和局部開(kāi)發(fā)的逃逸能量因子;是-1 到1 的隨機(jī)數(shù);為當(dāng)前迭代次數(shù);為最大迭代次數(shù)。
開(kāi)發(fā)階段軟包圍公式有:
開(kāi)發(fā)階段硬包圍公式為:
開(kāi)發(fā)階段漸進(jìn)軟包圍公式有:
其中,為L(zhǎng)évy 飛行函數(shù),參數(shù)取值為1.5。
開(kāi)發(fā)階段漸進(jìn)硬包圍公式:
開(kāi)發(fā)階段中Δ為最優(yōu)個(gè)體和當(dāng)前個(gè)體的差值,是0到1之間的隨機(jī)數(shù),為逃跑過(guò)程中的跳躍距離,是問(wèn)題的維度,是一個(gè)維的隨機(jī)向量。
哈里斯鷹優(yōu)化算法的大致流程為:初始化種群,將適應(yīng)度最優(yōu)的個(gè)體設(shè)置為獵物,根據(jù)逃逸能量和生成的隨機(jī)數(shù)執(zhí)行全局搜索或局部開(kāi)發(fā)中對(duì)應(yīng)的包圍策略。計(jì)算每個(gè)個(gè)體的適應(yīng)度并與獵物適應(yīng)度比較,若位置更新后的個(gè)體適應(yīng)度值優(yōu)于獵物,則以適應(yīng)度值更優(yōu)的個(gè)體位置作為新的獵物位置,不斷迭代直至滿(mǎn)足終止條件或達(dá)到最大迭代次數(shù)算法終止。
自HHO 算法面世后,關(guān)于該算法的各種改進(jìn)相繼被提出來(lái),選取了若干改進(jìn)的方法歸納如表5所示。
除表5 中列舉出的各種改進(jìn)方法外,還有其他的一些改進(jìn)和應(yīng)用,如文獻(xiàn)[83]中發(fā)現(xiàn)逃逸能量因子采用指數(shù)遞減策略能夠有更快的收斂速度和更高的求解精度。哈里斯鷹優(yōu)化算法在圖像分割、神經(jīng)網(wǎng)絡(luò)訓(xùn)練等各領(lǐng)域也得到廣泛運(yùn)用。
表5 哈里斯鷹優(yōu)化算法改進(jìn)分析Table 5 Improvement analysis of HHO
麻雀搜索算法(sparrow search algorithm,SSA)是由Xue 等于2020 年提出的群智能優(yōu)化算法,SSA 算法涉及到的主要公式如式(25)~(27)所示:
麻雀搜索算法的基本流程:初始化麻雀種群,計(jì)算個(gè)體的適應(yīng)度值并排序,找到最佳和最差適應(yīng)度的個(gè)體,依次更新發(fā)現(xiàn)者、加入者、警戒者位置,不斷迭代更新,直至滿(mǎn)足算法終止條件算法終止。
有關(guān)麻雀搜索算法的相關(guān)改進(jìn)也有很多,選取了若干改進(jìn)的方法歸納如表6 所示。
表6 麻雀搜索算法改進(jìn)分析Table 6 Improvement analysis of SSA
除表6 中列舉出的各種改進(jìn)方法外,麻雀搜索算法還有其他的一些改進(jìn)和應(yīng)用,如史春天等歸納的麻雀搜索算法在應(yīng)用于圖像分割時(shí)各種有效的改進(jìn)策略。
為對(duì)比分析6 種智能優(yōu)化算法的優(yōu)缺點(diǎn),本文從若干優(yōu)化文獻(xiàn)[95-97]中選取3 種類(lèi)型共21 個(gè)基準(zhǔn)測(cè)試函數(shù)進(jìn)行仿真實(shí)驗(yàn)用于評(píng)價(jià)算法的性能。其中~為高維單峰測(cè)試函數(shù),~為高維多峰測(cè)試函數(shù),~為低維度多峰函數(shù)測(cè)試函數(shù)。單峰測(cè)試函數(shù)可以評(píng)估算法的開(kāi)發(fā)能力及開(kāi)發(fā)精度,多峰測(cè)試函數(shù)可以評(píng)估算法跳出局部最優(yōu)解的能力。各測(cè)試函數(shù)的詳細(xì)信息見(jiàn)表7~表9。
表7 單峰測(cè)試函數(shù)Table 7 Single peak test function
表8 多峰測(cè)試函數(shù)Table 8 Multimodal peak test function
表9 固定維度測(cè)試函數(shù)Table 9 Fixed dimension test function
為減少統(tǒng)計(jì)誤差并產(chǎn)生有說(shuō)服力的結(jié)果,每個(gè)算法進(jìn)行30 次獨(dú)立實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為:操作系統(tǒng)Windows 10,處理器為IntelXeonGold 6154 CPU@3.00 GHz,內(nèi)存為32 GB,集成開(kāi)發(fā)環(huán)境為Matlab_R2017b。種群設(shè)置為50,最大迭代次數(shù)1 000次,算法所設(shè)置的其他初始參數(shù)如表10 所示。
表10 算法控制參數(shù)的初始值Table 10 Initial value of control parameters
針對(duì)21 個(gè)基準(zhǔn)測(cè)試函數(shù),通過(guò)算法找到解的平均值、最優(yōu)值、最差值、標(biāo)準(zhǔn)差、平均運(yùn)行時(shí)間和收斂曲線(xiàn)等六方面評(píng)價(jià)算法的性能。平均值用于衡量算法的優(yōu)化精度,最優(yōu)值和最差值反映解的質(zhì)量,標(biāo)準(zhǔn)差反映算法的穩(wěn)定性和魯棒性,平均運(yùn)行時(shí)間反映算法執(zhí)行的時(shí)間代價(jià),收斂曲線(xiàn)反映算法的收斂情況,綜合比較平均值和標(biāo)準(zhǔn)差得到算法的排名,計(jì)算算法在21 個(gè)測(cè)試函數(shù)排名的平均值作為Mean rank 值。
統(tǒng)計(jì)6 個(gè)智能優(yōu)化算法在21 個(gè)基準(zhǔn)測(cè)試函數(shù)上的求解結(jié)果得到表11,表中參數(shù)mean 表示求解平均值,std 表示標(biāo)準(zhǔn)差,best 代表最優(yōu)值,worst 代表最差值。分析表11 可知,對(duì)于本文選擇的21 個(gè)測(cè)試函數(shù),總體上看,HHO 和SSA 尋優(yōu)能力明顯強(qiáng)于其他算法,且HHO 相較于SSA 效果更好,BOA 和SCA 尋優(yōu)效果處于中等水平,GOA 和MFO 的求解效果較差。在高維單峰函數(shù)~上,HHO 和SSA 表現(xiàn)出優(yōu)秀的求解精度,所求得解的平均值與全局最優(yōu)值十分接近,30 次實(shí)驗(yàn)中的標(biāo)準(zhǔn)差小,效果最好。BOA 效果較好,平均值和標(biāo)準(zhǔn)差也在可接受的范圍內(nèi),SCA 和GOA效果一般,MFO 所求得解的平均值與真實(shí)的全局最優(yōu)解有較大差距,多次實(shí)驗(yàn)得到的最優(yōu)值也遠(yuǎn)不及其他算法,效果最差。在高維多峰函數(shù)~上,HHO 和SSA 在函數(shù)和中找到了全局最優(yōu)值,BOA在函數(shù)中找到了全局最優(yōu)值,整體上看,HHO和SSA 效果最好,BOA 效果次之,SCA 和GOA 效果一般,MFO 效果最差,測(cè)試結(jié)果與高維單峰函數(shù)測(cè)試的結(jié)果基本一致。需要注意的是MFO 在和中,所求得解的平均值與真實(shí)的全局最優(yōu)解有極大差距。在低維多峰函數(shù)~上,測(cè)試結(jié)果與單峰和多峰函數(shù)上的結(jié)果出現(xiàn)差異,SSA 在5 個(gè)函數(shù)上取得較好效果,MFO 在2 個(gè)函數(shù)上取得較好的效果,MFO 和SSA 效果較好,GOA 和HHO 效果次之,BOA和SCA 效果較差。
表11 測(cè)試函數(shù)優(yōu)化結(jié)果Table 11 Test function optimization results
表11 (續(xù))
為驗(yàn)證6 個(gè)算法的穩(wěn)定性與收斂性,列出了各算法在部分單峰測(cè)試函數(shù)和多峰測(cè)試函數(shù)上的收斂性對(duì)比圖,如圖1 所示。MFO、SCA 和GOA 算法在處理單峰測(cè)試函數(shù)和多峰測(cè)試函數(shù)時(shí)均存在早熟收斂現(xiàn)象。哈里斯鷹算法和麻雀搜索算法在少數(shù)測(cè)試函數(shù)中也存在早熟收斂,但求解的精度優(yōu)于其他算法。哈里斯鷹算法在求解單峰測(cè)試函數(shù)、、和時(shí),迭代至750 次左右收斂,此時(shí)的求解精度遠(yuǎn)好于其他算法。蝴蝶搜索算法在多峰測(cè)試函數(shù)、、時(shí)性能表現(xiàn)較好,隨迭代次數(shù)的增加求解的精度不斷提升。哈里斯鷹算法和麻雀搜索算法在求解多峰函數(shù)和時(shí),迭代到300 次左右找到了全局最優(yōu)解,在其他多峰函數(shù)上的求解精度也高于其他算法,說(shuō)明這兩個(gè)算法能在全局搜索和局部開(kāi)發(fā)間維持較好的平衡。
根據(jù)圖1 縱向分析,在相同的迭代次數(shù)下,哈里斯鷹算法和麻雀搜索算法可以取得較高求解精度;根據(jù)圖1 橫向分析,各算法達(dá)到相同求解精度時(shí)哈里斯鷹算法和麻雀搜索算法只需要較少的迭代次數(shù)便能實(shí)現(xiàn)。在BOA 算法中蝴蝶有兩種搜索方式,全局搜索時(shí)向著香味濃度最高的蝴蝶飛行,局部開(kāi)發(fā)時(shí)在種群中隨機(jī)選擇一只蝴蝶向其移動(dòng)。通過(guò)分析圖1 可以發(fā)現(xiàn),蝴蝶優(yōu)化算法在處理測(cè)試函數(shù)時(shí),收斂精度不高,整個(gè)群體雖然向著解中心聚集,但多次迭代浪費(fèi)在隨機(jī)找蝴蝶移動(dòng)上,種群多樣性一旦降低,沒(méi)有相應(yīng)策略幫助跳出局部最優(yōu)解,即使增加最大迭代次數(shù),效果提升也不大。結(jié)合表11 可以看出,BOA 在求解函數(shù)時(shí)表現(xiàn)出極大的誤差,不是算法求解效果都差,而是在實(shí)驗(yàn)中某次產(chǎn)生的巨大誤差拉大了多次實(shí)驗(yàn)求解的平均值,說(shuō)明BOA 算法存在一定的不穩(wěn)定性。MFO 算法中以對(duì)數(shù)螺線(xiàn)的更新機(jī)制更新飛蛾的位置信息,與蝴蝶優(yōu)化算法相比,蝴蝶算法的位置更新目標(biāo)在最優(yōu)蝴蝶和隨機(jī)蝴蝶中選擇,而飛蛾的位置更新則是以火焰為基準(zhǔn),隨迭代次數(shù)的增加,飛蛾與火焰間的距離變短,飛蛾飛行的振幅越來(lái)越小,逐漸由全局搜索轉(zhuǎn)向局部開(kāi)發(fā),同時(shí)火焰數(shù)量的減少也帶來(lái)種群多樣性降低,在求解多峰函數(shù)時(shí)多次較早陷入局部最優(yōu)。再結(jié)合表11 不難看出,MFO 在函數(shù)、、求解中出現(xiàn)了巨大誤差,穩(wěn)定性比BOA 更差。正弦余弦優(yōu)化算法基于正弦和余弦數(shù)學(xué)模型在求解過(guò)程中使得種群向外或向最優(yōu)解的方向波動(dòng),算法原理簡(jiǎn)單,所需初始參數(shù)少,利用多個(gè)隨機(jī)變量和控制參數(shù)來(lái)計(jì)算當(dāng)前解所在的位置,全局搜索能力強(qiáng)但搜索精度不夠,隨迭代次數(shù)的增加控制參數(shù)逐漸減小,使得正弦余弦算法函數(shù)振動(dòng)幅度變小,全局搜索能力減弱,局部開(kāi)發(fā)能力增強(qiáng),同時(shí)帶來(lái)種群多樣性降低的問(wèn)題,種群個(gè)體聚集在搜索空間的一個(gè)或幾個(gè)位置,結(jié)合在、、、函數(shù)上的收斂曲線(xiàn),進(jìn)一步證實(shí)算法容易出現(xiàn)早熟收斂現(xiàn)象。蝗蟲(chóng)優(yōu)化算法中參數(shù)的作用是平衡算法全局搜索和局部開(kāi)發(fā)的過(guò)程,自適應(yīng)減小蝗蟲(chóng)間的排斥力,用以提升種群密度。在蝗蟲(chóng)位置更新過(guò)程中,位置差的蝗蟲(chóng)出現(xiàn)適應(yīng)度值一直波動(dòng)的情況,適應(yīng)度值下降緩慢,且適應(yīng)度值差的蝗蟲(chóng)也參與蝗蟲(chóng)位置的更新,對(duì)位置較好的蝗蟲(chóng)產(chǎn)生了干擾,降低了算法的收斂速度。如在、、、、函數(shù)上的收斂曲線(xiàn)出現(xiàn)陷入局部最優(yōu)的現(xiàn)象。哈里斯鷹優(yōu)化算法中有4 個(gè)位置更新策略,可以根據(jù)獵物的行為做出必要的調(diào)整,通過(guò)一個(gè)能量逃逸因子和一個(gè)隨機(jī)數(shù)來(lái)決定使用哪個(gè)包圍策略,有更強(qiáng)的普適性。在所選取的21 個(gè)基準(zhǔn)測(cè)試函數(shù)中,除去、、、、外均有優(yōu)秀的求解效果,在處理高維單峰測(cè)試函數(shù)~時(shí),迭代750 次左右完全收斂,在高維多峰測(cè)試函數(shù)上也比其他算法收斂得更快,求解精度更高。麻雀搜索算法通過(guò)將種群個(gè)體分為發(fā)現(xiàn)者、追隨者和警戒者3 個(gè)角色,各角色有不同的功能,在測(cè)試函數(shù)上表現(xiàn)出很強(qiáng)的尋優(yōu)能力,在某些測(cè)試函數(shù)如、、、上效果比HHO 算法更優(yōu)秀。但麻雀算法收斂于最優(yōu)解的方式是部分發(fā)現(xiàn)者直接跳躍至當(dāng)前最優(yōu)解附近,收斂速度快的同時(shí)使得種群多樣性迅速減少,因此麻雀搜索算法仍存在容易陷入局部最優(yōu)的問(wèn)題。HHO 算法個(gè)體位置更新公式(15)和SSA 算法個(gè)體位置更新公式(25)中都存在向原點(diǎn)靠近的行為,這一行為使得兩個(gè)算法在算法執(zhí)行到算法后期時(shí),整個(gè)種群大致分為兩個(gè)群體,一部分聚集在原點(diǎn)附近,另一部分聚集在當(dāng)前最優(yōu)解附近。麻雀搜索算法位置更新策略相較于哈里斯鷹算法更為單一,當(dāng)全局最優(yōu)解在原點(diǎn)附近時(shí)可以取得較好的求解效果,而哈里斯鷹算法中的4 種包圍策略對(duì)于全局最優(yōu)解不在原點(diǎn)附近的優(yōu)化問(wèn)題也能進(jìn)行不錯(cuò)的求解,因此HHO 對(duì)于問(wèn)題的普適性?xún)?yōu)于SSA 算法。
圖1 各算法在測(cè)試函數(shù)上收斂曲線(xiàn)對(duì)比Fig.1 Comparison of convergence curves of each algorithm on test functions
統(tǒng)計(jì)各算法在測(cè)試函數(shù)上的運(yùn)行時(shí)間得到表12。通過(guò)表12 可以看出,6 個(gè)算法平均執(zhí)行時(shí)間最短的是正弦余弦優(yōu)化算法,執(zhí)行時(shí)間最長(zhǎng)的是蝗蟲(chóng)優(yōu)化算法。正弦余弦優(yōu)化算法中,使用一個(gè)線(xiàn)性遞減的控制參數(shù)改變函數(shù)的振幅幫助尋優(yōu),相較于其他算法沒(méi)有單獨(dú)設(shè)置跳出局部最優(yōu)的步驟,很大程度上降低了算法的時(shí)間復(fù)雜度。而蝗蟲(chóng)優(yōu)化算法中,每只蝗蟲(chóng)個(gè)體位置信息的更新都需要除它本身之外其余所有蝗蟲(chóng)的位置信息,與其他算法相比個(gè)體更新位置的成本更大,時(shí)間復(fù)雜度更高,因此耗費(fèi)的時(shí)間也更多。
表12 各算法的執(zhí)行時(shí)間Table 12 Execution time of each algorithm s
結(jié)合6 個(gè)算法在21 個(gè)測(cè)試函數(shù)上的表現(xiàn),從求解平均值、標(biāo)準(zhǔn)差、最優(yōu)值、最差值、收斂曲線(xiàn)和運(yùn)行時(shí)間等各個(gè)方面定性分析算法的尋優(yōu)能力,可以發(fā)現(xiàn)在6 個(gè)算法中,蝴蝶優(yōu)化算法在解決具有多個(gè)局部最優(yōu)解的問(wèn)題上表現(xiàn)出較好的精度,在尋優(yōu)能力和求解時(shí)間上明顯優(yōu)于一些經(jīng)典的智能算法,原理簡(jiǎn)單,易于實(shí)現(xiàn),沒(méi)有明顯的短板。飛蛾撲火算法在求解高維測(cè)試函數(shù)時(shí)容易出現(xiàn)較大誤差,但求解低維多峰問(wèn)題時(shí)求解效果較好,時(shí)間成本不高,適合應(yīng)用于工程實(shí)踐中的參數(shù)優(yōu)化。正弦余弦優(yōu)化算法求解時(shí)所消耗的實(shí)踐成本明顯低于其他算法,適合應(yīng)用于對(duì)精度要求不高,但對(duì)時(shí)間要求嚴(yán)苛的場(chǎng)景中?;认x(chóng)優(yōu)化算法存在時(shí)間成本高,求解精度不佳等問(wèn)題,但若將其改進(jìn)為分布式計(jì)算方式,可大幅度降低求解的時(shí)間成本。哈里斯鷹優(yōu)化算法在運(yùn)行時(shí)間和求解精度上優(yōu)于其他5 個(gè)算法,跳出局部最優(yōu)的能力強(qiáng),在應(yīng)對(duì)復(fù)雜問(wèn)題時(shí)有更高的包容性,但其算法構(gòu)成復(fù)雜,對(duì)于具體實(shí)際問(wèn)題進(jìn)行算法實(shí)現(xiàn)時(shí)具有一定難度。麻雀搜索算法在提升求解精度的同時(shí)運(yùn)行時(shí)間并未大幅度增加,應(yīng)對(duì)全局最優(yōu)解靠近原點(diǎn)附近的優(yōu)化問(wèn)題時(shí)能表現(xiàn)出優(yōu)秀的性能。需要注意的是本文得出的結(jié)論只是基于實(shí)驗(yàn)所得的數(shù)值結(jié)果,各算法的具體求解性能還要依據(jù)實(shí)際問(wèn)題進(jìn)行分析。
智能優(yōu)化算法的尋優(yōu)過(guò)程總體可以分為兩部分,全局搜索和局部開(kāi)發(fā)。這兩部分相互促進(jìn)又相互矛盾,全局搜索用于快速定位最優(yōu)解的范圍,而局部開(kāi)發(fā)用于鎖定最優(yōu)解存在的區(qū)域并進(jìn)一步尋找最優(yōu)解,只有兩部分達(dá)到一個(gè)良好的平衡狀態(tài)才能有較好的求解效果。當(dāng)算法偏重全局搜索時(shí),算法執(zhí)行慢,效率低,很難找到一個(gè)滿(mǎn)意的解,尤其是問(wèn)題規(guī)模達(dá)到一定程度,這種缺陷顯得更為突出;而算法側(cè)重于局部開(kāi)發(fā)時(shí),會(huì)降低種群多樣性,使算法容易陷入局部最優(yōu)。對(duì)智能優(yōu)化算法的改進(jìn)多數(shù)也是從這兩個(gè)角度入手,具體算法的改進(jìn)要依據(jù)實(shí)際問(wèn)題具體分析。設(shè)計(jì)出收斂速度快,求解精度高,跳出局部最優(yōu)能力強(qiáng),且普適性、魯棒性和穩(wěn)定性?xún)?yōu)秀的智能優(yōu)化算法是學(xué)者們不斷追尋的目標(biāo)。
本文挑選了2015 年以來(lái)提出的六種新型智能優(yōu)化算法,詳細(xì)闡述了每種智能優(yōu)化算法的基本原理和算法流程,梳理了相關(guān)的改進(jìn)方法和應(yīng)用場(chǎng)景,并通過(guò)基準(zhǔn)測(cè)試函數(shù)從求解平均值、標(biāo)準(zhǔn)差、最優(yōu)值、最差值、收斂曲線(xiàn)和運(yùn)行時(shí)間六方面分析了算法的尋優(yōu)能力,對(duì)比發(fā)現(xiàn)近兩年提出的哈里斯鷹算法和麻雀搜索算法在求解精度、收斂速度、執(zhí)行時(shí)間等方面有較好的效果。目前智能優(yōu)化算法處于快速發(fā)展的時(shí)期,針對(duì)不同領(lǐng)域不同類(lèi)型的問(wèn)題不斷有新的智能優(yōu)化算法被提出來(lái),這些智能優(yōu)化算法的涌現(xiàn)為解決優(yōu)化問(wèn)題提供了新的思路和靈感。未來(lái)的智能優(yōu)化算法在實(shí)際應(yīng)用和工程領(lǐng)域?qū)?huì)有更廣闊的應(yīng)用前景。