李雅麗,王淑琴,陳倩茹,王小鋼
天津師范大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,天津300387
在大自然中,一些生物群體在進(jìn)化過程中形成了自己獨(dú)特的行為和生存方式,人們會(huì)從這種現(xiàn)象得到啟發(fā),提出很多能夠解決實(shí)際優(yōu)化問題的新思路。群體智能優(yōu)化算法是一種基于概率的隨機(jī)搜索進(jìn)化算法,主要模擬了昆蟲、獸群、鳥群和魚群的群體行為,這些群體的主要行為就是覓食,它們會(huì)按照某種合作方式去尋找食物,然后不斷交流食物信息,從而能更快速地找到更多食物,研究這些群體行為并抽象出一種算法就是群體智能算法。群智能算法是一種基于生物群體行為規(guī)律的計(jì)算技術(shù),用來解決分布式問題,主要應(yīng)用于組合優(yōu)化、圖像處理、數(shù)據(jù)挖掘等領(lǐng)域。1989 年Beni 和Wang 在Swarm Intelligence[1]這篇文章中第一次提出了“群體智能”這個(gè)概念。圖1所示為群體智能優(yōu)化算法在2010年之前的發(fā)展過程,而1991年提出的蟻群算法[2-4]和1994年提出的粒子群優(yōu)化算法[5]可謂是群智能優(yōu)化算法的開山鼻祖。蟻群算法是一種基于種群啟發(fā)式隨機(jī)搜索算法,它模擬自然界中螞蟻覓食行為,螞蟻?zhàn)哌^后的路徑上會(huì)留下信息素,信息素越強(qiáng)吸引的螞蟻就會(huì)越多,螞蟻會(huì)大概率地選擇信息素比較強(qiáng)的路徑去走,最終找到最短路徑。粒子群優(yōu)化算法是一種基于群體智能的全局隨機(jī)搜索算法,源于鳥群覓食行為,用粒子來模擬鳥類個(gè)體,通過鳥類個(gè)體之間的協(xié)作和信息的共享去尋找最優(yōu)解。
圖1 2010年前的群智能優(yōu)化算法發(fā)展過程
群智能算法具有以下特點(diǎn):群體中相互合作的個(gè)體是分布的;沒有中心控制,具備魯棒性;可通過個(gè)體之間的通信進(jìn)行合作,具有可擴(kuò)充性;個(gè)體能力簡單,實(shí)現(xiàn)方便[6]。盡管群智能算法的理論還不成熟,但它已成為有別于傳統(tǒng)人工智能的一種新方法,并成為人工智能領(lǐng)域的研究熱點(diǎn)。
本文選擇了2010年至今比較有代表性的六種新的群智能優(yōu)化算法進(jìn)行研究分析,分別是2010 年的蝙蝠算法、2014 年的灰狼優(yōu)化算法、2015 年的蜻蜓算法、2016 年的鯨魚優(yōu)化算法、2017 年的蝗蟲優(yōu)化算法和2020年的麻雀搜索算法,并對比測試它們的優(yōu)化效果,最后對群智能優(yōu)化算法未來的研究發(fā)展進(jìn)行總結(jié)和展望。
蝙蝠算法[7]是2010 年由Yang Xin-She 提出的一種基于群體智能的算法,是受微型蝙蝠回聲定位的啟發(fā)[8],在回聲定位的幫助下,蝙蝠可以測量物體的大小和距離,并用于導(dǎo)航和覓食,通過蝙蝠的這一特性理想化來制定的算法。
蝙蝠算法的大致流程:每個(gè)蝙蝠在位置xi上以速度vi隨機(jī)飛行,當(dāng)蝙蝠發(fā)現(xiàn)獵物時(shí),它會(huì)改變頻率f、響度Ai和脈沖發(fā)射率r 來選擇最優(yōu)解,直到目標(biāo)停止。
蝙蝠算法的改進(jìn)策略有三類[9]:第一類是改進(jìn)算法的基本公式,如針對蝙蝠算法早熟收斂、容易陷入局部最優(yōu)的特點(diǎn),提出一種新的自適應(yīng)慣性權(quán)值蝙蝠算法[10](Adaptive Inertia Weight Bat Algorithm with Sugeno-Function Fuzzy Search,ASF-BA),引入自適應(yīng)慣性權(quán)值,將標(biāo)準(zhǔn)BA的隨機(jī)搜索方法換成超函數(shù)模糊搜索,基于差分進(jìn)化算法的改進(jìn)蝙蝠算法[11-12](Bat Algorithm Based on Differential Evolution Algorithm,DEBA)通過交叉變異更新速度提高了收斂速度。第二類是多種群策略,如改進(jìn)小生境蝙蝠算法[13](Improved Niche Bat Algorithm,INBA)對種群規(guī)模進(jìn)行了調(diào)整,隨機(jī)擾動(dòng)的自適應(yīng)蝙蝠算法[14](Adaptive Bat Algorithm for Random Perturbation,RWBA)增加了速度權(quán)重,改善了速度的更新方式,這兩種都增加了種群的多樣性,提高了算法的搜索效率。第三類是加入混沌模型策略,如基于混沌的蝙蝠算法[15-17](Chaos-based Bat Algorithm,CBA)使用新的頻率、響度、頻度更新方式,提高了全局尋優(yōu)性能。
蝙蝠算法運(yùn)用到了很多領(lǐng)域:Dao 等人[18]使用并行蝙蝠算法來解決車間調(diào)度問題;Osaba 等人[19]使用離散蝙蝠算法解決了藥物廢物收集、分配的車輛路徑問題;Cheruku等人[20]結(jié)合了粗糙集特征選擇和優(yōu)化的蝙蝠算法,用于糖尿病檢測大數(shù)據(jù)的分析;Nakamura 等人[21]使用二進(jìn)制蝙蝠算法解決了分類和特征選擇問題;Goyal等人[22]使用蝙蝠算法評估節(jié)點(diǎn)定位的精度。
灰狼優(yōu)化算法是2014 年由Mirjalili 等人[23]提出來的一種群智能優(yōu)化算法。該算法的靈感來源于灰狼的捕食行為。
灰狼優(yōu)化算法大致分為五個(gè)步驟:社會(huì)等級分層、包圍獵物、狩獵、攻擊獵物、搜尋獵物[24]?;依莾?nèi)部嚴(yán)格遵守社會(huì)支配等級關(guān)系,在灰狼搜索所需獵物的時(shí)候,會(huì)慢慢接近獵物,然后包圍獵物。灰狼一般會(huì)先識別獵物然后將其包圍,在每次迭代的過程中,保留當(dāng)前最好的三只灰狼,根據(jù)它們的位置信息更新其余的搜索代理的位置。當(dāng)獵物不再移動(dòng)時(shí),灰狼會(huì)通過攻擊來捕捉獵物。
灰狼優(yōu)化算法改進(jìn)算法有四類:第一類是對初始種群的改進(jìn),如基于復(fù)數(shù)值編碼的灰狼優(yōu)化算法[25](Complex-Valued Encoding Grey Wolf Optimization,CGWO)運(yùn)用復(fù)值編碼避免算法陷入局部最優(yōu);基于神經(jīng)網(wǎng)絡(luò)的改進(jìn)灰狼優(yōu)化算法[26](Improved Modified Grey Wolf Optimization Algorithm Based Hybrid Technique,SNN-IMGWOA)把灰狼種群分為三組,提高了算法的收斂速度。第二類是對搜索機(jī)制進(jìn)行改進(jìn),如基于進(jìn)化種群動(dòng)態(tài)的灰狼優(yōu)化算法[27](Evolutionary Population Dynamics-Grey Wolf Optimization,GWO-EPD)引入了進(jìn)化種群動(dòng)態(tài)算子(EPD),很好地解決了最優(yōu)停滯問題。第三類是對參數(shù)的改進(jìn),基于灰狼優(yōu)化的混合參數(shù)多分類孿生支持向量機(jī)[28](Mixed Parameter Multi-Classification Twin Support Vector Machine Based on Grey Wolf Optimizer,GWO-MP-MTWSVM)運(yùn)用混合參數(shù)的多分類孿生支持向量機(jī),快速找到各子分類器的最優(yōu)參數(shù),并提升了算法的準(zhǔn)確率;改進(jìn)的灰狼優(yōu)化算法[29](Modified GWO,mGWO)使用了指數(shù)函數(shù)來衰減控制參數(shù)a,它們都有效地平衡了探索能力和開發(fā)能力。第四類是設(shè)計(jì)混合算法,如混合灰狼優(yōu)化算法和精英反對學(xué)習(xí)算法(Hybrid Grey Wolf Optimizer Using Elite Opposition,EOGWO)[30]將精英反對學(xué)習(xí)策略和單純形法引入到GWO中,針對灰狼優(yōu)化算法求解精度低、后期收斂速度慢、易陷入局部最優(yōu)的特點(diǎn),提出了一種改進(jìn)精英個(gè)體重選策略的灰狼優(yōu)化算法[31](Elite Weight Choice Grey Wolf Optimization,EGWO),該算法引進(jìn)兩種策略,分別是非線性收斂因子調(diào)整策略和精英個(gè)體重選策略。
灰狼優(yōu)化算法的主要應(yīng)用有:Ahmed 等人[32]將GWO 與監(jiān)督人工神經(jīng)網(wǎng)絡(luò)分類器結(jié)合,實(shí)現(xiàn)增強(qiáng)大腦磁共振圖像的分類精度;Yao 等人[33]將GWO 用于求解復(fù)雜作業(yè)車間調(diào)度問題。
蜻蜓算法[34]是2015 年由Mirjalili 提出的群智能優(yōu)化方法,主要靈感來源于自然界中蜻蜓的靜態(tài)和動(dòng)態(tài)群居行為,主要通過建立模型去分析蜻蜓在進(jìn)行導(dǎo)航、尋找食物和避免敵人時(shí)的社會(huì)行為。
蜻蜓算法的大致流程:初始化蜻蜓種群和向量ΔXi,計(jì)算所有蜻蜓的目標(biāo)值,更新其食物來源和天敵,更新五種因素的權(quán)重并計(jì)算五種因素,然后更新鄰近半徑,如果一只蜻蜓至少有一個(gè)相鄰的蜻蜓更新速度矢量,則更新速度矢量,否則更新位置矢量。最后根據(jù)檢查變量的邊界糾正新位置,退出算法。
蜻蜓算法改進(jìn)算法有兩類:第一類為改進(jìn)算法機(jī)制,如針對原始蜻蜓算法易陷入局部最優(yōu),導(dǎo)致全局搜索能力較差,以及蜻蜓算法后期種群缺乏多樣性易出現(xiàn)停滯現(xiàn)象等問題,提出量子行為和差分進(jìn)化融合策略下的改進(jìn)蜻蜓算法[35](Improved Dragonfly Algorithm Based on Quantum-Behavior and Differential Evolution,QDEDA);基于精英反向?qū)W習(xí)的逐維改進(jìn)蜻蜓算法[36](Elite Opposition Learning-based Dimension by Dimension Improved Dragonfly Algorithm,EDDA)利用精英反向?qū)W習(xí)策略初始化種群,增強(qiáng)種群多樣性,提高了搜索效率。第二類是設(shè)計(jì)混合算法,如改進(jìn)的多目標(biāo)蜻蜓優(yōu)化算法[37](Improved Multi-Objective Dragonfly Optimization Algorithm,IMODA)引入混合變異算子,提高了種群的多樣性,降低了陷入全局最優(yōu)的可能性。
蜻蜓算法的主要應(yīng)用有:Sambandam等人[38]提出一種自適應(yīng)蜻蜓算法用于解決圖像多級分割問題;Wang等人[39]提出一種改進(jìn)的蜻蜓算法用于特征選擇中。
鯨魚優(yōu)化算法[40]是2016 年由Mirjalili 等人提出的新的受自然啟發(fā)的優(yōu)化算法。該算法模擬了座頭鯨的社會(huì)行為,突出特點(diǎn)是采用隨機(jī)或最佳搜索代理來模擬座頭鯨特殊的捕獵行為,并引入了氣泡網(wǎng)狩獵策略。
鯨魚優(yōu)化算法的大致流程:首先,隨機(jī)初始化一組解,搜索代理根據(jù)目前為止隨機(jī)選擇的搜索代理的最優(yōu)解更新位置,將a 的參數(shù)由2迭代地降到0,從而由探索到利用,當(dāng)|A|>1 時(shí)選擇隨機(jī)搜索代理,當(dāng)|A|<1 時(shí)選擇最優(yōu)解更新搜索代理位置。然后,根據(jù)p 的值,在圓或者螺旋軌跡中隨機(jī)選擇。最后,滿足終止條件退出算法。
鯨魚優(yōu)化算法改進(jìn)算法有兩類:第一類為改進(jìn)算法機(jī)制,如改進(jìn)的鯨魚優(yōu)化算法[41](Improved Whale Optimization Algorithm,IWOA)通過準(zhǔn)反向?qū)W習(xí)方法來初始化種群,提高了種群的多樣性;改進(jìn)的鯨魚優(yōu)化算法(Modified Whale Optimization Algorithm,MWOA)[42]在鯨魚搜索圍捕獵物階段,引入線性收斂因子,增強(qiáng)了全局搜索能力。第二類為設(shè)計(jì)混合算法,如針對鯨魚優(yōu)化算法存在收斂精度低和收斂速度慢的問題,提出基于混沌權(quán)重和精英引導(dǎo)的先進(jìn)鯨魚優(yōu)化算法(Advanced Whale Optimization Algorithm,AWOA)[43],引入精英個(gè)體引導(dǎo)機(jī)制和在算法后期引入混沌動(dòng)態(tài)權(quán)重因子。
鯨魚優(yōu)化算法的應(yīng)用有:Aziz等人[44]提出鯨魚優(yōu)化算法和飛蛾火焰優(yōu)化算法相結(jié)合用于確定圖像分割的多級閾值中;Wang 等人[45]提出一種基于粗糙集的改進(jìn)鯨魚算法用于特征選擇中。
蝗蟲優(yōu)化算法[46]是2017 年由Saremi 等人提出的一種新型群智能優(yōu)化算法,該算法源自于大自然中蝗蟲群體的捕食行為的模擬。
蝗蟲優(yōu)化算法的大致流程:首先,需要初始化蝗蟲的位置、參數(shù)和迭代的最大次數(shù),然后計(jì)算出每個(gè)蝗蟲的適應(yīng)度值,找出其中最好的適應(yīng)度值并保存相應(yīng)的蝗蟲到;其次,將參數(shù)c 和蝗蟲位置循環(huán)更新并計(jì)算每個(gè)蝗蟲的適應(yīng)度值,保存每次迭代最好的適應(yīng)度值并更新;最后,判斷迭代次數(shù)是否達(dá)到條件,若是則退出循環(huán)并返回全局最優(yōu)解。
蝗蟲優(yōu)化算法改進(jìn)算法有兩類:第一類是多種群策略,如基于多策略融合的混合多目標(biāo)蝗蟲優(yōu)化算法[47](Hybrid Multi-Objective Grasshopper Optimization Algorithm,HMOGOA),利用Halton序列建立初始種群,提高了種群的多樣性。第二類是改進(jìn)算法機(jī)制,基于Levy飛行的改進(jìn)蝗蟲優(yōu)化算法[48](Improved Grasshopper Optimization Algorithm Based on Levy Flight,LBGOA)引入基于Levy 飛行的局部搜索機(jī)制來增強(qiáng)算法的隨機(jī)性,并引入隨機(jī)跳出策略來避免陷入局部最優(yōu);針對蝗蟲優(yōu)化算法收斂速度慢、易陷入局部最優(yōu)等問題,提出一種基于非線性權(quán)重和柯西變異的蝗蟲優(yōu)化算法(Grasshopper Optimization Algorithm with Nonlinear Weight and Cauchy Mutation,CWG-GOA)[49],使用佳點(diǎn)集初始化種群,均勻種群分布,然后將線性權(quán)重改進(jìn)為非線性權(quán)重,同時(shí)對最優(yōu)個(gè)體采用柯西變異,增加跳出局部最優(yōu)能力。
蝗蟲優(yōu)化算法的應(yīng)用有:Xin 等[50]提出基于蝗蟲優(yōu)化算法的自適應(yīng)參數(shù)來分析旋轉(zhuǎn)機(jī)械振動(dòng)信號;Ewees等人[51]提出基于精英反向?qū)W習(xí)的蝗蟲優(yōu)化算法用于求優(yōu)化函數(shù);Aljarah等人[52]提出了利用蝗蟲優(yōu)化算法同時(shí)進(jìn)行特征選擇和支持向量機(jī)優(yōu)化。
麻雀搜索算法[53]是2020年由Xue和Shen提出的一種最新的群體優(yōu)化算法,主要依據(jù)的是麻雀的覓食行為和反捕食行為。
麻雀搜索算法的大致流程:首先,初始化麻雀種群數(shù)并定義它的相關(guān)參數(shù)值,輸出當(dāng)前麻雀的全局最優(yōu)位置和全局最優(yōu)適應(yīng)度值,當(dāng)前迭代次數(shù)小于最大迭代次數(shù)時(shí),對適應(yīng)度值進(jìn)行排序,找出當(dāng)前最好和最差的個(gè)體。根據(jù)覓食規(guī)則,發(fā)現(xiàn)者進(jìn)行位置的更新。加入者則通過圍繞在發(fā)現(xiàn)者周圍獲取食物或者從發(fā)現(xiàn)者的食物中獲取食物,也可以通過爭奪獲取食物,并更新其位置。當(dāng)群體的一些麻雀感知到危險(xiǎn)后,也會(huì)進(jìn)行相應(yīng)位置的更新。
蝙蝠算法、灰狼優(yōu)化算法、鯨魚優(yōu)化算法這三種算法參數(shù)較少,算法的準(zhǔn)確性和計(jì)算效率較高。蝙蝠算法的參數(shù)α 和γ 影響著算法的性能,α 和γ 的取值大小可有效地改善算法收斂速度和搜索精度。灰狼優(yōu)化算法只有兩個(gè)主要參數(shù)需要調(diào)整(a和C),其中存在能夠自適應(yīng)調(diào)整的收斂因子以及信息反饋機(jī)制,能夠在局部尋優(yōu)與全局搜索之間實(shí)現(xiàn)平衡,因此在對問題的求解精度和收斂速度方面都有良好的性能。鯨魚優(yōu)化算法參數(shù)a 控制了算法的收斂性,由于a 由2 遞減到0,使算法的搜索范圍越來越小,從而加速了算法的收斂。
蝙蝠算法、灰狼優(yōu)化算法、蝗蟲優(yōu)化算法的尋優(yōu)性能主要取決于個(gè)體之間的互相作用和影響。蝙蝠算法是依靠蝙蝠個(gè)體之間的相互協(xié)作、相互影響;灰狼優(yōu)化算法狼群主要依據(jù)與α、β 和δ 的距離來判斷與獵物之間的距離;蝗蟲優(yōu)化算法是根據(jù)蝗蟲的當(dāng)前位置,在所有其他蝗蟲的作用下,朝向全局最優(yōu)的位置前進(jìn)。這種算法性質(zhì)限制了其很難在局部最優(yōu)解鄰域附近找到全局最優(yōu)解,種群內(nèi)部的個(gè)體沒有變異機(jī)制,一旦搜索到局部最優(yōu)值將會(huì)陷入其中,并影響其他個(gè)體向其靠攏,造成算法早熟收斂,同時(shí)也會(huì)令種群的多樣性大大降低,導(dǎo)致全局極值收斂性差。
蜻蜓算法、鯨魚優(yōu)化算法、麻雀搜索算法將群體行為的所有可能因素都考慮在內(nèi),使其能夠快速地在最優(yōu)值附近收斂,具有良好的全局尋優(yōu)能力和穩(wěn)定性。但是蜻蜓算法收斂速度慢,原因是在蜻蜓算法演化的過程中,沒有保留歷史較優(yōu)的個(gè)體作為下一次迭代的參考值,僅僅只是依賴五種主要行為和步長進(jìn)行位置更新,迫使演化過程需要經(jīng)過更多次迭代才能收斂到某個(gè)解,減緩了蜻蜓算法收斂速度。
為了對以上六種群智能優(yōu)化算法進(jìn)行比較,本文使用22 個(gè)優(yōu)化文獻(xiàn)中[54-56]的標(biāo)準(zhǔn)基準(zhǔn)測試函數(shù)進(jìn)行比較實(shí)驗(yàn),這些函數(shù)模擬了實(shí)際搜索空間的不同困難。函數(shù)的詳細(xì)信息見表1、表2 和表3。表1 為單模態(tài)測試函數(shù),表2為多模態(tài)測試函數(shù),表3為固定維數(shù)的多模態(tài)基準(zhǔn)函數(shù)。為了更有說服力,在所有的情況下,對每個(gè)測試函數(shù)進(jìn)行30次獨(dú)立實(shí)驗(yàn),最大迭代次數(shù)為1 000,種群大小設(shè)置為100。各種算法具體所選取的參數(shù)均為原始論文所選參數(shù),如表4所示。
表1 單模態(tài)測試函數(shù)
表2 多模態(tài)測試函數(shù)
表3 固定維數(shù)的多模態(tài)基準(zhǔn)函數(shù)
所有實(shí)驗(yàn)的集成開發(fā)環(huán)境為Matlab_R2017b。操作系統(tǒng)為macOS10.15.4。
首先,分別測試單模態(tài)、多模態(tài)測試函數(shù)上六種算法的收斂速度。圖2 為在單模態(tài)基準(zhǔn)函數(shù)上的實(shí)驗(yàn)結(jié)果,由于是單峰的,只有一個(gè)全局最優(yōu)值,可以評估所研究算法的開發(fā)能力。這些算法在優(yōu)化測試函數(shù)時(shí)主要表現(xiàn)出三種不同的收斂行為:第一種行為是,收斂速度隨著迭代次數(shù)的增加而加快,這種行為在麻雀搜索算法F1、F2、F3、F4和灰狼優(yōu)化算法F1、F2中表現(xiàn)明顯,這是由于算法提出的自適應(yīng)機(jī)制幫助在迭代的初始步驟中,尋找搜索空間有希望的區(qū)域并更快地收斂到最優(yōu);第二種行為是,只有在最后的迭代中才收斂到最優(yōu),這種行為在麻雀搜索算法F6,蝗蟲優(yōu)化算法F5、F6、F7中表現(xiàn)明顯,這是因?yàn)樵诘某跏茧A段并沒有找到一個(gè)好的探測方案,所以算法不斷探測搜索空間,尋找好的解決方案向它們收斂;最后一種是迭代初始時(shí)就快速收斂,在灰狼優(yōu)化算法F1、F4、F5、F6、F7,鯨魚優(yōu)化算法F5、F7和麻雀優(yōu)化算法F5、F7表現(xiàn)比較明顯。
圖3 為多模態(tài)測試函數(shù)上的結(jié)果。多模態(tài)函數(shù)包含很多局部最優(yōu)解,這些局部最優(yōu)解的數(shù)量隨著問題的大小成指數(shù)式增長,比較適合評估算法的探測能力??梢钥闯觯現(xiàn)9的麻雀搜索算法、鯨魚優(yōu)化算法和灰狼優(yōu)化算法,以及F11的麻雀搜索算法、鯨魚優(yōu)化算法在優(yōu)化測試函數(shù)中表現(xiàn)出第一種收斂行為;F8的蝙蝠算法、麻雀搜索算法、鯨魚優(yōu)化算法,F(xiàn)10、F12、F13的麻雀搜索算法、灰狼優(yōu)化算法、鯨魚優(yōu)化算法,以及F11的灰狼優(yōu)化算法明顯表現(xiàn)出第三種收斂行為。
表4 算法控制參數(shù)的初始值
蝙蝠算法、蜻蜓算法、蝗蟲優(yōu)化算法在處理單模態(tài)測試函數(shù)和多模態(tài)測試函數(shù)時(shí)都會(huì)存在一定程度的早熟收斂,解的精度也不高。灰狼優(yōu)化算法、鯨魚優(yōu)化算法在處理單模態(tài)測試函數(shù)時(shí)會(huì)存在早熟收斂,灰狼優(yōu)化算法在處理多模態(tài)測試函數(shù)F8、F9、F10,鯨魚優(yōu)化算法在處理多模態(tài)測試函數(shù)F9、F10、F11時(shí),性能表現(xiàn)較好,說明這兩種算法全局搜索能力較好。麻雀搜索算法處理單模態(tài)測試函數(shù)時(shí),性能表現(xiàn)優(yōu)越,其最優(yōu)解和平均解都比其余五種算法要高,且后期收斂速度加快,因單模態(tài)測試函數(shù)在搜索區(qū)間只有一個(gè)最值,它能體現(xiàn)算法局部開發(fā)和收斂的能力,在處理多模態(tài)測試函數(shù)時(shí),其收斂速度也遠(yuǎn)高于其他算法,所以麻雀搜索算法相比其他算法更具有高性能的全局搜索能力,它能發(fā)現(xiàn)搜索空間中更有意義的區(qū)域。
圖2 六種算法在單模態(tài)測試函數(shù)上的收斂特性
圖3 六種算法在多模態(tài)測試函數(shù)上的收斂特性
從圖2和圖3可以看出蝙蝠算法的收斂曲線處于停滯,基本停止尋優(yōu)且無法跳出局部極值,跳出極值的能力差。這是因?yàn)轵鹚惴ǖ乃阉魉阕泳哂泻軓?qiáng)的隨機(jī)性,新解的位置大幅偏離全局最優(yōu),從而使新解的適應(yīng)值較差,開發(fā)中對最優(yōu)值的擾動(dòng)越來越小,很容易產(chǎn)生聚集現(xiàn)象而陷入局部極值[57]。當(dāng)蝙蝠受到某部分最優(yōu)解的約束后會(huì)暴露它缺乏個(gè)體變異機(jī)制,而且超級蝙蝠很有可能吸引其他蝙蝠快速向其聚集,從而導(dǎo)致種群多樣性顯著下降[58]。從圖3可以看到灰狼優(yōu)化算法在迭代600次之后收斂速度會(huì)變慢。這是因?yàn)樵诘跏茧A段存在突變,并且隨著迭代的進(jìn)行,突變逐漸減小,這種行為可以保證最終收斂到搜索空間中的一個(gè)點(diǎn)[59]?;依莾?yōu)化算法的收斂曲線在迭代600次之前收斂速度較快,跳出極值的能力較好。這是因?yàn)樵撍惴ㄖ杏幸粋€(gè)表示狼所在位置對獵物影響的隨機(jī)權(quán)重C,這有助于算法更隨機(jī)地表現(xiàn)并支持探索,同時(shí)可在優(yōu)化過程中避免陷入局部最優(yōu),C 是[0,2]之間的隨機(jī)值,C 的隨機(jī)性使算法可以跳出局部極值[60]?;依莾?yōu)化算法是智能算法中唯一基于種群等級制度的算法,盡管提出時(shí)間比蜻蜓算法和蝗蟲算法都要早,但是該算法模型簡單,在開發(fā)和探測這兩個(gè)階段有較強(qiáng)的平衡性,而灰狼的社會(huì)等級制度可以使算法在迭代過程中保存迄今為止獲得的最佳解決方案,收斂效果要優(yōu)于蜻蜓算法和蝗蟲優(yōu)化算法,但是由于狼群主要依據(jù)α、β 和δ 狼的距離來判斷與獵物之間的距離,導(dǎo)致后期的收斂速度變慢。個(gè)體分布的離散程度,通常來說,蜻蜓個(gè)體之間分布得越分散,蜻蜓群體的多樣性就越高。反之,蜻蜓個(gè)體分布越聚集,蜻蜓群體的多樣性就越低。在演化過程中,倘若產(chǎn)生雷同的蜻蜓個(gè)體,使用隨機(jī)算子去形成合理的新個(gè)體并以此取代雷同的蜻蜓個(gè)體。組合策略能有效提高蜻蜓群體的多樣性,因?yàn)榻M合策略中計(jì)算了擾動(dòng)向量,使每代優(yōu)秀蜻蜓個(gè)體的位置發(fā)生擾動(dòng),同時(shí)也增強(qiáng)了跳出局部最優(yōu)解的能力。為了保證蜻蜓算法的收斂性,避免過早收斂,采用多精英位置組合策略,使優(yōu)秀的蜻蜓個(gè)體不會(huì)在原地停留,而是不斷擾動(dòng)位置使其繼續(xù)尋優(yōu)。鯨魚優(yōu)化算法收斂性很強(qiáng),在第35代左右就已經(jīng)完全收斂,算法局部搜索能力較強(qiáng),因?yàn)樗惴ǖ氖諗啃允怯蓞?shù)a 控制的,由于原始論文使a 從2遞減到0,算法的搜索范圍越來越小,從而加速了算法的收斂。但鯨魚優(yōu)化算法并沒有跳出局部最優(yōu)的操作,若快速收斂,則很可能陷入局部最優(yōu)。隨著算法的迭代進(jìn)化,鯨魚將逐漸向適應(yīng)度較優(yōu)的個(gè)體聚集,從而使得種群分布收縮,多樣性減小,導(dǎo)致算法很容易陷入局部最優(yōu)。鯨魚優(yōu)化算法運(yùn)行過程中,種群多樣性會(huì)逐漸降低,種群個(gè)體將聚集在搜索空間的一個(gè)或幾個(gè)特定位置,使得算法可能出現(xiàn)早熟收斂現(xiàn)象[61]?;认x優(yōu)化算法的收斂曲線處于停滯,基本停止尋優(yōu)且無法跳出局部極值,跳出極值的能力差,參數(shù)C 采用的是自適應(yīng)減小策略,但在算法初期減小過快會(huì)使算法前期勘探不足,導(dǎo)致算法不能搜索到全局最優(yōu),在算法后期減小太慢使算法后期開發(fā)不足,導(dǎo)致算法不能跳出局部最優(yōu)[62]。蝗蟲優(yōu)化算法對搜索個(gè)體進(jìn)行位置更新時(shí),搜索個(gè)體的位置更新不僅受到當(dāng)前位置、目標(biāo)位置的影響,而且受其他搜索個(gè)體位置的影響。在給定初始種群后,搜索個(gè)體會(huì)向目標(biāo)位置收斂,且在收斂過程中根據(jù)交互力的影響不斷進(jìn)行位置的調(diào)整,并最終使得蝗群較為均勻地分布在目標(biāo)位置附近。這種與其他搜索個(gè)體的獨(dú)特交互方式,是其有別于其他算法的顯著特征,可以使算法具備較好的局部開發(fā)能力。但是,這一顯著特征也導(dǎo)致了基本蝗蟲優(yōu)化算法種群多樣性下降快、全局搜索能力不足的缺陷,進(jìn)而導(dǎo)致算法陷入局部最優(yōu),收斂精度不足。因此,有必要引入能夠增強(qiáng)其全局尋優(yōu)能力及種群多樣性的方法進(jìn)行改進(jìn),以克服算法容易陷入局部最優(yōu)的缺陷[63]。麻雀搜索算法局部搜索能力極強(qiáng),收斂速度很快,但各個(gè)麻雀收斂于當(dāng)前最優(yōu)解的方式是直接跳躍到當(dāng)前最優(yōu)解附近,而不是像粒子群優(yōu)化算法那樣向最優(yōu)解移動(dòng),這種機(jī)制導(dǎo)致了麻雀搜索算法容易陷入局部最優(yōu),且全局搜索能力較差。
為了更全面地比較各種算法的性能,計(jì)算了這六種算法在所有函數(shù)上30次獨(dú)立運(yùn)行后的均值、標(biāo)準(zhǔn)差、最優(yōu)值、最差值,實(shí)驗(yàn)結(jié)果如表5 和表6 所示。其中std 列表示標(biāo)準(zhǔn)差,opt列表示最優(yōu)值,所有算法在每個(gè)測試函數(shù)上獲得的結(jié)果中最好的加粗顯示。在相同的標(biāo)準(zhǔn)測試函數(shù)下,均值代表算法的收斂精度,標(biāo)準(zhǔn)差代表算法的穩(wěn)定性,顯然,均值和標(biāo)準(zhǔn)差越小,算法避免局部解和確定全局最優(yōu)解的能力就越強(qiáng)。從表5可以看到,在單模態(tài)和雙模態(tài)測試函數(shù)上麻雀搜索算法在12個(gè)測試函數(shù)上能夠成功地找到一個(gè)優(yōu)秀的解,其中在6個(gè)函數(shù)上獲得了全局最優(yōu)值,而灰狼優(yōu)化算法、鯨魚優(yōu)化算法、蜻蜓算法、蝙蝠算法和蝗蟲優(yōu)化算法成功找到一個(gè)優(yōu)秀的解(全局最優(yōu)值)的函數(shù)個(gè)數(shù)分別為10(2)、11(2)、9(1)、5(0)、9(0)。在多模態(tài)測試函數(shù)上,麻雀搜索算法在9個(gè)測試函數(shù)上都成功地找到一個(gè)優(yōu)秀的解,其中在3個(gè)函數(shù)上獲得了全局最優(yōu)值,而蜻蜓算法、鯨魚優(yōu)化算法和蝗蟲優(yōu)化算法在8 個(gè)函數(shù)上獲得一個(gè)優(yōu)秀的解,在3個(gè)函數(shù)上獲得了全局最優(yōu)值。灰狼優(yōu)化算法在8 個(gè)函數(shù)上獲得一個(gè)優(yōu)秀的解,其中在2個(gè)函數(shù)上獲得了全局最優(yōu)值。但蝙蝠算法僅在5 個(gè)函數(shù)上獲得一個(gè)優(yōu)秀的解,其中在1個(gè)函數(shù)上獲得了全局最優(yōu)值。這說明麻雀搜索算法比其他五種算法有良好的全局搜索能力,次之是鯨魚優(yōu)化算法和灰狼優(yōu)化算法。從表6可以看出,麻雀搜索算法在20 個(gè)測試函數(shù)上獲得了最小的均值,收斂精度性能好,在19 個(gè)測試函數(shù)上獲得了最小的標(biāo)準(zhǔn)差,說明可以穩(wěn)定地聚集在全局最優(yōu)點(diǎn)附近。而灰狼優(yōu)化算法、鯨魚優(yōu)化算法、蜻蜓算法、蝙蝠算法和蝗蟲優(yōu)化算法獲得最小均值(標(biāo)準(zhǔn)差)的測試函數(shù)個(gè)數(shù)分別為3(1)、1(3)、2(2)、2(0)、4(1)。這說明麻雀搜索算法的穩(wěn)定性和收斂精度遠(yuǎn)領(lǐng)先于其他五種算法,各個(gè)算法定性分析結(jié)果如表7所示。
表5 六種算法最優(yōu)值與最差值實(shí)驗(yàn)結(jié)果比較
表6 六種算法平均值與標(biāo)準(zhǔn)差實(shí)驗(yàn)結(jié)果比較
使用7 個(gè)優(yōu)化文獻(xiàn)中的標(biāo)準(zhǔn)基準(zhǔn)測試函數(shù)對前五種智能優(yōu)化算法的改進(jìn)算法ASF-BA、EGWO、QDEDA、IWOA和CWG-GOA做了比較實(shí)驗(yàn),計(jì)算了這五種算法在部分測試函數(shù)上30次獨(dú)立運(yùn)行后的均值、標(biāo)準(zhǔn)差,實(shí)驗(yàn)結(jié)果如表8所示。ASF-BA在處理F1~F4和F9~F11時(shí),求解精度略高于BA,在標(biāo)準(zhǔn)差方面,穩(wěn)定性略有提高。該算法通過分散搜索方式和種群的抽樣分布,改善了搜索過程,通過確定相關(guān)閾值和基于黃金分割的生成閾值,提高了算法的有效性。此外,將OBA 與標(biāo)準(zhǔn)BA集成,提高了算法的收斂速度和全局最優(yōu)解,OBA可以實(shí)現(xiàn)顯著的收斂速度和準(zhǔn)確性,算法將隨機(jī)局部搜索策略替換為超函數(shù)模糊搜索策略。這種能量改善了蝙蝠最初的搜尋方法,增強(qiáng)了算法的全局搜索能力,提高了算法穩(wěn)定性。EGWO 算法在處理F1、F3、F4時(shí),GWO的求解精度高于EGWO,處理F2、F9、F10、F11時(shí),求解精度優(yōu)于GWO,對函數(shù)F2、F9的求解精度優(yōu)于另外四種對比算法。在標(biāo)準(zhǔn)差方面,處理F1、F2、F3、F4時(shí),GWO比較穩(wěn)定,對函數(shù)F9、F10、F11的穩(wěn)定性較優(yōu),F(xiàn)9、F10達(dá)到了最優(yōu)值0,優(yōu)于其他四種對比算法。由于非線性收斂因子在迭代前期衰減速率較慢,可擴(kuò)大搜索范圍,保證種群多樣性以適應(yīng)于全局搜索,迭代后期衰減速率較快,可提高求解效率以適應(yīng)于局部精準(zhǔn)搜索,改進(jìn)的灰狼優(yōu)化在處理多模態(tài)測試函數(shù)時(shí),具有更高的求解精度和更好的全局尋優(yōu)性能,但對單模態(tài)測試函數(shù)效果并不明顯。QDEDA在處理F1~F4和F9~F11時(shí),求解精度明顯優(yōu)于DA,對函數(shù)F1、F3、F10的求解精度優(yōu)于另外四種對比算法,因?yàn)镼DEDA融合的差分進(jìn)化尋優(yōu)策略,在每次迭代結(jié)束后對當(dāng)前最優(yōu)解進(jìn)行一次交叉和變異,隨后進(jìn)行選擇操作,如果求得適應(yīng)度更好的解,則替換當(dāng)前最優(yōu)解,否則繼續(xù)下一次迭代,以此引導(dǎo)蜻蜓優(yōu)化算法向最優(yōu)解方向搜索,所以增強(qiáng)了信息交流,提高了原始DA 的收斂速度和收斂精度。在標(biāo)準(zhǔn)差方面,在處理F1~F4和F9~F11時(shí),比DA穩(wěn)定,魯棒性較強(qiáng),對F1、F3、F9、F10都達(dá)到了最優(yōu)值0,優(yōu)于其他四種對比算法。QDEDA 融合的量子行為位置更新機(jī)制,既提高了種群多樣性,又避免陷入早熟,始終朝著最優(yōu)解的方向?qū)?yōu)。IWOA在處理F1~F4和F9~F11時(shí),求解精度明顯優(yōu)于WOA,因?yàn)樵谒惴ê笃谝牖煦鐒?dòng)態(tài)權(quán)重因子,利用其隨機(jī)性、遍歷性等優(yōu)點(diǎn)動(dòng)態(tài)調(diào)整慣性權(quán)重,使鯨魚個(gè)體能在獵物周圍進(jìn)行更加精細(xì)、徹底的搜索,提高了收斂精度。在標(biāo)準(zhǔn)差方面,在處理所有所選測試函數(shù)中,都達(dá)到了理想最優(yōu)值0,這是由于AWOA加入了精英個(gè)體引導(dǎo)機(jī)制,及時(shí)引導(dǎo)鯨魚朝獵物位置搜索,增強(qiáng)了算法的全局搜索能力,提高了算法穩(wěn)定性。CWG-GOA 在處理F1~F4和F9~F11時(shí),求解精度均優(yōu)于GOA,這是由于算法在迭代中添加柯西變異操作,變異后的蝗蟲可以增加種群多樣性,有助于算法跳出局部最優(yōu),尋找到新的最優(yōu)解,提高了收斂精度。在標(biāo)準(zhǔn)差方面,在處理F1~F4和F9~F11時(shí),因?yàn)榛净认x算法采用隨機(jī)初始化的方式來生成初始種群,種群初始的優(yōu)劣會(huì)影響到后期算法尋優(yōu)效率,隨機(jī)初始化方式并不能保證初始種群的均勻性和多樣性。由于佳點(diǎn)集取點(diǎn)的偏差小于隨機(jī)取點(diǎn)的偏差,采用佳點(diǎn)集來初始化種群保證了初始種群的多樣性,增強(qiáng)了算法的全局搜索能力,提高了算法的穩(wěn)定性。從表6可以看出,IWOA算法在4個(gè)測試函數(shù)上獲得了最小的均值,收斂精度性能最好,在7 個(gè)測試函數(shù)上獲得了最小的標(biāo)準(zhǔn)差,說明可以穩(wěn)定地聚集在全局最優(yōu)點(diǎn)附近。QDEDA算法在3個(gè)測試函數(shù)上獲得了最小的均值,在4個(gè)測試函數(shù)上獲得了最小的標(biāo)準(zhǔn)差,而EGWO、ASF-BA、CWG-GOA 獲得最小均值(標(biāo)準(zhǔn)差)的測試函數(shù)個(gè)數(shù)分別為2(2)、0(0)、0(0),這說明IWOA 算法相比于其他四種算法的穩(wěn)定性和收斂精度最好,其次是QDEDA算法。
表7 各種算法性能特點(diǎn)定性分析
表8 五種算法的改進(jìn)算法在平均值與標(biāo)準(zhǔn)差實(shí)驗(yàn)結(jié)果比較
本文對2010年以來提出的較典型的新型群智能優(yōu)化算法的相關(guān)研究進(jìn)行了綜述,并對這些算法進(jìn)行了實(shí)驗(yàn)對比分析。從實(shí)驗(yàn)結(jié)果綜合對比來看,2020年提出的麻雀搜索算法各方面的性能都遠(yuǎn)超其他五種優(yōu)化算法,是很有潛力的。其次是2016年的鯨魚優(yōu)化算法和2014年的灰狼優(yōu)化算法,性能最差的是蝙蝠算法。
分析可知,群體智能各種算法在結(jié)構(gòu)、研究內(nèi)容、計(jì)算方法等方面都很相似,它們都有相同的理論框架模式,如圖4所示。除此之外,它們還有一些共同點(diǎn):群個(gè)體之間相對獨(dú)立;有多個(gè)粒子代表每種智能體;個(gè)體通過規(guī)則進(jìn)行位置的變化來探索解空間;每個(gè)算法都加入隨機(jī)數(shù),使勘探更全面。分析六種典型群智能算法可以看出,各種算法之間的最大不同為算法的更新規(guī)則,大致分為兩類:一類是根據(jù)模擬群居生物的步長進(jìn)行更新,比如灰狼優(yōu)化算法、蜻蜓算法、蝗蟲優(yōu)化算法;另一類是根據(jù)各自算法機(jī)理設(shè)置更新規(guī)則進(jìn)行更新,如蝙蝠算法、鯨魚優(yōu)化算法和麻雀搜索算法。從這六種群智能算法的對比實(shí)驗(yàn)來看,第二類的效果要優(yōu)于第一類。
圖4 群體智能優(yōu)化算法統(tǒng)一框架模式圖
群智能優(yōu)化算法的主要思想是模仿自然界一些生物種群的現(xiàn)象,將各種現(xiàn)象的關(guān)鍵指標(biāo)量化,形成數(shù)學(xué)模型用于優(yōu)化。群智能優(yōu)化的特點(diǎn)是尋找全局最優(yōu)而非局部最優(yōu),它每次的解都不同,時(shí)間比較長,在模型很多的情況下,使用群智能優(yōu)化算法能真正地體現(xiàn)它的優(yōu)勢。隨著這一領(lǐng)域研究的深入,越來越多的生物種群的特性被抽象出來用于群智能算法中。從實(shí)驗(yàn)中也可以看出,新的算法在算法機(jī)制上也趨于完善,算法的性能也更好,但是大多數(shù)算法還是會(huì)發(fā)生早熟現(xiàn)象,即便是優(yōu)化性能最好的麻雀搜索算法也會(huì)陷入局部最優(yōu)解,未來需要設(shè)計(jì)出更優(yōu)性能的群智能算法來避免這一問題。
本文探討了算法的收斂性能,但是對于收斂性和穩(wěn)定性理論并不完善,還需要更強(qiáng)的數(shù)學(xué)模型和理論進(jìn)行支撐[64]。在未來研究中,一方面可以結(jié)合多種算法,對其優(yōu)點(diǎn)進(jìn)行結(jié)合,提出更高效的算法,注重根據(jù)各自算法機(jī)理設(shè)置更新規(guī)則;另一方面注重觀察高等生物群體的行為而獲得靈感。
本文討論了2010年以來提出的比較典型的六種群智能算法,并用實(shí)驗(yàn)從收斂速度和精度、穩(wěn)定性等角度對比了這些算法的優(yōu)化性能,并總結(jié)了群智能優(yōu)化算法的相同點(diǎn)、不同點(diǎn)和統(tǒng)一框架。發(fā)現(xiàn)最新的根據(jù)各自算法機(jī)理設(shè)置更新規(guī)則的麻雀搜索算法、鯨魚優(yōu)化算法的性能較為突出。群智能算法經(jīng)過近30 年的研究與發(fā)展,在理論上已經(jīng)非常完善,具有魯棒性、自組織性、靈活性等優(yōu)點(diǎn),并在近年來被廣泛應(yīng)用于混沌系統(tǒng)[65]、金融預(yù)測、圖像檢索、特征選擇等各個(gè)領(lǐng)域。目前的群智能算法處于快速發(fā)展時(shí)期,新思想也在不斷出現(xiàn),但大部分的研究還在模擬低等生物種群。群智能優(yōu)化算法是人工智能研究領(lǐng)域的一個(gè)重要分支,未來的群智能算法將在大部分科學(xué)和工程領(lǐng)域都有很廣泛的應(yīng)用前景,是今后計(jì)算機(jī)研究發(fā)展的一個(gè)重要方向。