石 濤,熊 騰,趙玲珠
(江西理工大學(xué) 理學(xué)院,江西 贛州 341000)
花朵授粉算法(Flower Pollination Algorithm,F(xiàn)PA)是由英國(guó)學(xué)者Yang[1]于2012 年提出的一種智能仿生優(yōu)化算法,它模擬自然界中花朵授粉原理以求解工程優(yōu)化問(wèn)題。在花朵授粉算法中,具有異花授粉算子和自花授粉算子。其中,異花授粉算子是模擬自然界中不同花種之間遠(yuǎn)距離授粉思想,而自花授粉算子則是模擬自然界相同花種之間近距離授粉機(jī)制,兩種算子依概率交替執(zhí)行,從而趨近問(wèn)題的最優(yōu)解。自FPA 提出以來(lái),它在邊緣計(jì)算[2]、圖像分割[3]、風(fēng)速預(yù)測(cè)[4]、參數(shù)估計(jì)[5]、目標(biāo)跟蹤[6]、機(jī)械優(yōu)化[7]和神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)[8]等諸多領(lǐng)域中獲得了滿意的工程結(jié)果。
雖然花朵授粉算法被成功應(yīng)用于許多工程優(yōu)化問(wèn)題,然而,在求解一些復(fù)雜的工程優(yōu)化問(wèn)題時(shí),花朵授粉算法仍然存在著求解精度不足的問(wèn)題。目前,國(guó)內(nèi)外許多研究人員針對(duì)FPA 的不同缺點(diǎn),提出了一些改進(jìn)型花朵授粉算法,所作改進(jìn)各不相同,取得的效果也各有優(yōu)劣。然而,這些改進(jìn)思路大致可以從3 個(gè)方面進(jìn)行歸納總結(jié):改進(jìn)FPA的搜索策略、引入其他優(yōu)化思想、提出適應(yīng)性參數(shù)控制策略。此外,為了便于工程人員針對(duì)不同的工程問(wèn)題選擇合適的FPA 進(jìn)行尋優(yōu),詳細(xì)介紹5 種具有代表性改進(jìn)FPA 的主要特征,設(shè)計(jì)比較試驗(yàn)以評(píng)價(jià)代表性FPA 的性能優(yōu)劣,并給出工程應(yīng)用建議。
花朵授粉算法具有自花授粉和異花授粉兩種形式,是模擬花朵授粉繁殖這一自然現(xiàn)象而產(chǎn)生的一種智能仿生優(yōu)化算法[1]。在花朵授粉算法中,搜索階段被分為局部搜索階段和全局搜索階段。局部搜索階段模擬花授粉過(guò)程的近距離授粉,即自花授粉現(xiàn)象;而全局搜索階段模擬花授粉過(guò)程的遠(yuǎn)距離授粉,是通過(guò)昆蟲(chóng)、鳥(niǎo)類、蝙蝠等生物進(jìn)行的異花授粉現(xiàn)象。在算法尋優(yōu)過(guò)程中,局部搜索階段和全局搜索階段通過(guò)轉(zhuǎn)換概率進(jìn)行隨機(jī)切換,從而達(dá)到平衡算法局部搜索能力和全局搜索能力的效果。為了模擬自然界中花授粉規(guī)律,需依據(jù)如下4條規(guī)則[1]:
規(guī)則1異花授粉現(xiàn)象對(duì)應(yīng)于全局搜索階段,該階段傳粉者利用Levy分布的特性完成遠(yuǎn)距離飛行。
規(guī)則2自花授粉現(xiàn)象對(duì)應(yīng)于局部搜索階段,該階段是在自身鄰域范圍內(nèi)完成授粉。
規(guī)則3花的常性被表示為繁殖概率,這種概率值與相關(guān)聯(lián)兩朵花的相似性成比例關(guān)系。
規(guī)則4全局搜索階段和局部搜索階段由轉(zhuǎn)換概率P∈[0,1]控制轉(zhuǎn)換,因花朵會(huì)受到物理位置上的鄰近性及風(fēng)等其他自然因素的影響,在算法中起到重要作用。
應(yīng)用花朵授粉算法求解D維優(yōu)化問(wèn)題時(shí),首先進(jìn)入初始化階段,設(shè)置種群大小為np,假設(shè)在第G 代時(shí)個(gè)體i在搜索空間中的位置用表示,其中G 是當(dāng)前代數(shù),i∈{1,2,...,np},則按式(1)在搜索空間上界和搜索空間下界范圍內(nèi)隨機(jī)產(chǎn)生np個(gè)個(gè)體[1]:
其中,j=1,2,…,D代表維度,xmaxj是搜索空間第j維的上界,xminj是搜索空間第j維的下界。
當(dāng)根據(jù)轉(zhuǎn)換概率進(jìn)入全局搜索階段時(shí),個(gè)體將進(jìn)行Levy飛行完成長(zhǎng)距離跳躍,從而擴(kuò)大在搜索空間中的尋優(yōu)范圍,具體如式(2)[1]:
其中,UX是由第i個(gè)個(gè)體產(chǎn)生的新個(gè)體,GbestG是第G 代種群中的最優(yōu)個(gè)體,L(λ)是根據(jù)Levy分布產(chǎn)生的Levy飛行步長(zhǎng)。L(λ)是一個(gè)較大的步長(zhǎng),幫助算法模擬花朵的遠(yuǎn)距離授粉,從而使算法能夠搜索到較大范圍內(nèi)可能存在的有希望個(gè)體。
當(dāng)根據(jù)轉(zhuǎn)換概率進(jìn)入局部搜索階段時(shí),個(gè)體模仿花朵授粉中的自花授粉過(guò)程,在它所在的局部范圍內(nèi)完成短距離搜索,挖掘自身鄰域內(nèi)可能存在的有希望個(gè)體,具體如式(3)[1]:
其中,ε是[0,1]之間的隨機(jī)數(shù),是從第G 代種群中隨機(jī)獲取的第j個(gè)個(gè)體是從第G 代種群中隨機(jī)獲取的第k個(gè)個(gè)體,且j≠k≠i?;ǘ涫诜鬯惴ɡ脙蓚€(gè)隨機(jī)個(gè)體的差分向量,對(duì)當(dāng)前個(gè)體進(jìn)行隨機(jī)擾動(dòng),從而在當(dāng)前個(gè)體所在的局部范圍內(nèi)搜索更優(yōu)秀的個(gè)體。
為不失一般性,以求解最小化優(yōu)化問(wèn)題為例,F(xiàn)PA 通過(guò)轉(zhuǎn)換概率P 實(shí)現(xiàn)全局搜索階段和局部搜索階段的隨機(jī)切換,具體搜索過(guò)程如算法1 所示,其中f函數(shù)表示適應(yīng)值函數(shù)。
算法1FPA偽代碼
迄今為止,花朵授粉算法吸引了優(yōu)化算法研究領(lǐng)域內(nèi)許多研究者的注意。然而,在求解一些復(fù)雜優(yōu)化問(wèn)題時(shí),花朵授粉算法存在著一些不足。傳統(tǒng)花朵授粉算法在局部搜索階段由兩個(gè)隨機(jī)個(gè)體實(shí)現(xiàn)局部尋優(yōu),缺乏優(yōu)秀的引導(dǎo)信息,這導(dǎo)致算法的局部搜索能力較弱。此外,傳統(tǒng)花朵授粉算法的控制參數(shù)由人為設(shè)定,這種參數(shù)設(shè)置并不一定滿足算法各演化階段的需求,導(dǎo)致算法求解性能較差。為了提升花朵授粉算法尋優(yōu)性能,學(xué)者們提出了許多改進(jìn)型花朵授粉算法,并通過(guò)數(shù)值實(shí)驗(yàn)或?qū)嶋H工程應(yīng)用檢驗(yàn)改進(jìn)算法的有效性。改進(jìn)型花朵授粉算法可以按以下3 個(gè)改進(jìn)思路進(jìn)行歸納:①改進(jìn)FPA 的搜索策略;②引入其他優(yōu)化思想;③提出適應(yīng)性參數(shù)控制方法。
在花朵授粉算法中,全局搜索階段利用最優(yōu)個(gè)體引導(dǎo)搜索,但最優(yōu)個(gè)體引導(dǎo)可能存在引導(dǎo)過(guò)度的問(wèn)題,并沒(méi)有采用機(jī)制或策略平衡最優(yōu)個(gè)體的引導(dǎo)作用,這導(dǎo)致算法可能陷入局部最優(yōu),出現(xiàn)“早熟”收斂現(xiàn)象。局部搜索階段利用隨機(jī)個(gè)體進(jìn)行搜索,存在較大盲目性,需要種群中的優(yōu)秀個(gè)體提供明確的搜索方向,以緩解開(kāi)采能力不足的問(wèn)題。針對(duì)FPA 搜索策略的缺點(diǎn),許多研究者設(shè)計(jì)了新的搜索策略,以提升算法尋優(yōu)能力。
沈艷軍等[9]針對(duì)傳統(tǒng)FPA 在局部搜索階段存在的搜索方向隨機(jī)性問(wèn)題,引入當(dāng)代最優(yōu)個(gè)體和舊代最優(yōu)個(gè)體為算法提供雙重優(yōu)秀搜索方向,提升了算法的局部尋優(yōu)性能。此外,還設(shè)計(jì)了仿嗅覺(jué)搜索策略,在個(gè)體的鄰域內(nèi)隨機(jī)產(chǎn)生多個(gè)新個(gè)體,并利用新個(gè)體中的優(yōu)勝者替換掉當(dāng)前個(gè)體,該操作擴(kuò)大了算法的搜索范圍。Zhou 等[10]認(rèn)為,傳統(tǒng)FPA 基于Levy 分布的飛行過(guò)程具有較高隨機(jī)性,使得算法搜索到優(yōu)秀解的概率相對(duì)較低,因此利用優(yōu)秀個(gè)體對(duì)當(dāng)前個(gè)體進(jìn)行反向映射,得到對(duì)立個(gè)體,從對(duì)立個(gè)體和當(dāng)前個(gè)體中選出下一代子個(gè)體,從而提升算法尋優(yōu)能力。此外,為了提升FPA 的局部搜索能力,設(shè)計(jì)了自適應(yīng)的鄰域貪婪策略,在可行解的鄰域內(nèi)進(jìn)行貪心搜索。王玉鑫等[11]認(rèn)為,傳統(tǒng)FPA 在引入基于最優(yōu)解的定向變異策略時(shí),增加了陷入局部極值的概率,因此提出融合隨機(jī)個(gè)體的定向變異策略,在局部搜索階段增加搜索方向的隨機(jī)性,同時(shí),在FPA 的全局搜索階段引入基于隨機(jī)個(gè)體的均勻搜索策略,增強(qiáng)了算法的全局搜索能力。Salgotra 等[12]認(rèn)為,基于高斯分布的變異策略能更精細(xì)地搜索解空間,具有較強(qiáng)的局部搜索能力,而基于柯西分布的變異策略能產(chǎn)生較大的變異步長(zhǎng),從而避免出現(xiàn)“早熟”現(xiàn)象,因此結(jié)合兩種變異策略,提出一種基于適應(yīng)性平均變異策略的花朵授粉算法,降低了算法陷入局部最優(yōu)的概率,提升了算法求解精度。陸克中等[13]針對(duì)花朵授粉算法在求解一些問(wèn)題時(shí)收斂精度較低的問(wèn)題,提出基于量子變異的自適應(yīng)花朵授粉算法,設(shè)計(jì)了種群多樣性評(píng)判機(jī)制以維持種群多樣性,所提出的算法具有較強(qiáng)的全局搜索能力。Chen 等[14]設(shè)計(jì)基于個(gè)體鄰域的學(xué)習(xí)策略和基于Levy 分布最優(yōu)解的種群重組策略,增強(qiáng)了算法的全局搜索能力,降低了算法陷入局部最優(yōu)的概率。肖輝輝等[15]設(shè)計(jì)精英解變異策略和劣質(zhì)解變異策略,提出一種具有多策略的花朵授粉算法,保持了種群多樣性,提高了算法尋優(yōu)性能。
迄今為止,已經(jīng)產(chǎn)生了許多用于處理優(yōu)化問(wèn)題的方法,其中不僅有傳統(tǒng)數(shù)學(xué)方法,還有一些經(jīng)典優(yōu)化機(jī)制和許多種智能仿生優(yōu)化算法,這些方法因優(yōu)化思想不同,而有著各自獨(dú)特優(yōu)勢(shì)。為了增強(qiáng)花朵授粉算法尋優(yōu)性能,許多研究人員在花朵授粉算法中引入其他優(yōu)化思想,利用其優(yōu)勢(shì)彌補(bǔ)花朵授粉算法的缺點(diǎn)。
如井福榮等[16]受反方向?qū)W習(xí)機(jī)制的啟發(fā),提出一種新的花朵授粉算法,在演化過(guò)程中的每一代都生成反向種群,并將當(dāng)前種群與反向種群進(jìn)行競(jìng)爭(zhēng),保留其中的優(yōu)勝個(gè)體到下一代種群中,該方法提升了種群多樣性,降低了算法陷入局部最優(yōu)的概率。肖輝輝等[17]引入復(fù)合形法的思想,提出一種改進(jìn)的花朵授粉算法,利用復(fù)合形將種群搜索過(guò)程最差的個(gè)體反射為一個(gè)較優(yōu)的個(gè)體,從而不斷迭代引導(dǎo),靠近最優(yōu)解,這種方式降低了算法陷入局部最優(yōu)的概率,加快了收斂速度。Nabil[18]提出基于克隆選擇算法思想的花朵授粉算法,采用克隆比率對(duì)親和力高的兩個(gè)個(gè)體進(jìn)行克隆選擇操作,對(duì)于搜索空間非常大的復(fù)雜問(wèn)題,所提出的算法具有較強(qiáng)的種群多樣性,提升了算法的全局搜索能力。卞京紅等[19]提出一種螢火蟲(chóng)優(yōu)化啟發(fā)的改進(jìn)花朵授粉算法,利用螢火蟲(chóng)算法多位置并行的全局隨機(jī)搜索機(jī)制,以增強(qiáng)算法的搜索性能,實(shí)驗(yàn)結(jié)果表明,所提出的算法具有較快的收斂速度。Arora 等[20]將混沌映射引入到花朵授粉算法中,降低了算法陷入局部最優(yōu)的概率,提升了算法收斂速度。肖輝輝等[21]受引力搜索算法的啟發(fā),采用個(gè)體之間的萬(wàn)有引力和FPA 本身的萊維飛行共同實(shí)現(xiàn)個(gè)體的位置更新,使得個(gè)體受萊維飛行和個(gè)體間引力的雙重影響,從而共享更多種群信息,實(shí)驗(yàn)結(jié)果表明,所提出方法的尋優(yōu)性能較好、收斂速度較快。Mahata 等[22]受粒子群優(yōu)化思想的啟發(fā),在花朵授粉算法結(jié)構(gòu)中混入粒子群搜索策略,有效提升了算法求解精度。Chen 等[23]將云變異的思想引入到花朵授粉算法中,不僅加入個(gè)體不同特征信息以指導(dǎo)種群的演化方向,還設(shè)計(jì)了基于云變異方法的授粉中心更新機(jī)制。實(shí)驗(yàn)結(jié)果表明,所提出的方法加快了算法收斂速度。張新明等[24]受小生境技術(shù)的啟發(fā),將小生境優(yōu)化思想引入到花朵授粉算法中,提出基于小生境策略的信息共享機(jī)制,提升了算法全局尋優(yōu)能力。Abdel-Basset 等[25]在花朵授粉算法中混合差分進(jìn)化思想,通過(guò)對(duì)每代種群進(jìn)行變異、交叉和選擇操作,保持種群個(gè)體間互不相同,減小算法陷入局部最優(yōu)的概率,使得所提出的改進(jìn)FPA 具有優(yōu)于傳統(tǒng)FPA 的性能。
在智能仿生優(yōu)化算法領(lǐng)域內(nèi),設(shè)計(jì)參數(shù)適應(yīng)性機(jī)制已然成為提升算法性能的重要途徑?;ǘ涫诜鬯惴ㄖ杏腥齻€(gè)重要控制參數(shù),即轉(zhuǎn)換概率、異花授粉步長(zhǎng)系數(shù)和自花授粉步長(zhǎng)系數(shù),它們由人為設(shè)定或者是[0,1]之間的隨機(jī)數(shù),并不能根據(jù)演化階段的需求設(shè)置合適的參數(shù)值。因此,許多研究人員根據(jù)花朵授粉算法重要參數(shù)的性質(zhì),設(shè)計(jì)了參數(shù)適應(yīng)性機(jī)制,從而充分發(fā)揮花朵授粉算法的潛力。
卞京紅等[26]分析了花朵授粉算法的轉(zhuǎn)換概率和局部搜索步長(zhǎng)系數(shù)對(duì)算法性能的影響,設(shè)計(jì)了參數(shù)自適應(yīng)方法,使得算法全局搜索能力和局部搜索能力能夠平衡。San-Jose-Revuelta 等[27]設(shè)計(jì)一種基于個(gè)體適應(yīng)值熵的參數(shù)調(diào)整機(jī)制,對(duì)花朵授粉算法的轉(zhuǎn)換概率進(jìn)行適應(yīng)性控制,并將所提出的算法應(yīng)用于多用戶通信環(huán)境中的符號(hào)檢測(cè)和信道估計(jì)。實(shí)驗(yàn)結(jié)果表明,所提出的算法能夠保持種群多樣性,在應(yīng)用中取得了較好結(jié)果。Allamyousrid 等[28]提出基于β 函數(shù)的參數(shù)調(diào)整機(jī)制,適應(yīng)性調(diào)整花朵授粉算法的轉(zhuǎn)換概率,提升了花朵授粉算法求解精確度。Fehmi等[29]研究不同混沌映射的特點(diǎn),并設(shè)計(jì)基于混沌映射的參數(shù)調(diào)整機(jī)制,適應(yīng)性調(diào)整花朵授粉算法的轉(zhuǎn)換概率和搜索步長(zhǎng)。實(shí)驗(yàn)結(jié)果表明,所提出的算法能夠維持一定的種群多樣性,降低了陷入局部最優(yōu)的可能性。Panagiotis 等[30]針對(duì)花朵授粉算法重要參數(shù)設(shè)計(jì)離散型參數(shù)集合,并采用單級(jí)采樣協(xié)調(diào)方法尋找最優(yōu)參數(shù)組合,對(duì)重要參數(shù)作出調(diào)整。實(shí)驗(yàn)結(jié)果表明,所提出的算法在多個(gè)問(wèn)題上的求解性能都有所提高。Ozsoydan 等[31]設(shè)計(jì)指數(shù)遞減步長(zhǎng)調(diào)整機(jī)制,使得花朵授粉算法的全局搜索步長(zhǎng)系數(shù)和局部搜索步長(zhǎng)系數(shù)隨迭代呈現(xiàn)陡峭衰減或者平滑衰減趨勢(shì)。實(shí)驗(yàn)結(jié)果表明,所提出的算法具有優(yōu)于傳統(tǒng)花朵授粉算法的性能。
目前,花朵授粉算法已被廣泛應(yīng)用于各大工程領(lǐng)域優(yōu)化問(wèn)題,其優(yōu)化性能已獲得普遍認(rèn)可。本文從搜索策略改進(jìn)和參數(shù)控制改進(jìn)的角度,選擇了5 種具有代表性的改進(jìn)FPA,它們均采用全局最優(yōu)個(gè)體信息提升算法性能,但對(duì)全局最優(yōu)個(gè)體信息的利用方式各不相同。所選擇的5 種改進(jìn)FPA 有:基于精英對(duì)立學(xué)習(xí)的花朵授粉算法(Elite Opposition-Based Flower Pollination Algorithm,EOFPA)[10]、基于全局最優(yōu)驅(qū)動(dòng)的花朵授粉算法(An Improved Global-Best-Driven Flower Pollination Algorithm,GFPA)[32]、基于動(dòng)態(tài)全局搜索和柯西變異的花朵授粉算法(Flower Pollination Algorithm Based on Dynamic Global Search and Cauchy Mutation,DCFPA)[33]、基于動(dòng)態(tài)步長(zhǎng)的改進(jìn)型花朵授粉算法(Improved Flower Pollination Algorithm,IMFPA)[34]、具有3 個(gè)策略的花朵授粉算法(An Improved Flower Pollination Algorithm with Three Strategies,IFPA)[35]。
2016 年,Zhou 等[10]為了增強(qiáng)花朵授粉算法的種群多樣性,提出基于精英對(duì)立學(xué)習(xí)的花朵授粉算法(EOFPA)。傳統(tǒng)FPA 中的Levy 飛行步長(zhǎng)是一個(gè)隨機(jī)步長(zhǎng),難以搜索到解空間中的優(yōu)秀可行解。因此,EOFPA 中提出了精英對(duì)立學(xué)習(xí)策略(Global Elite Opposition-Based Learning Strategy,GEOLS),對(duì)個(gè)體所在區(qū)域的對(duì)立區(qū)域進(jìn)行搜索,使得算法搜索的未知區(qū)域更廣,增加搜索到優(yōu)秀解的可能性。同時(shí),為了增強(qiáng)算法局部搜索能力,在EOFPA 中提出了局部自適應(yīng)貪婪策略(Local Self-Adaptive Greedy Strategy,LSGS),在當(dāng)前個(gè)體的鄰域內(nèi)擾動(dòng)搜索,并將LSGS 用于局部搜索階段。
在EOFPA 中,精英對(duì)立學(xué)習(xí)策略利用最優(yōu)個(gè)體信息,擴(kuò)展了算法的搜索范圍,有助于提升算法的全局尋優(yōu)能力,增加搜索到優(yōu)秀解的概率,而局部自適應(yīng)貪婪策略在當(dāng)前個(gè)體的鄰域內(nèi)擾動(dòng)搜索,增強(qiáng)了對(duì)局部的搜索能力。
2019 年,Supriya 等[32]提出一種全局最優(yōu)驅(qū)動(dòng)的花朵授粉算法(GFPA)。為了提升算法收斂速度,GFPA 中引入全局最優(yōu)個(gè)體實(shí)現(xiàn)對(duì)種群演化的驅(qū)動(dòng)作用。與傳統(tǒng)花朵授粉算法不同,在GFPA 中依據(jù)轉(zhuǎn)換概率P 將整個(gè)搜索過(guò)程劃分為3 個(gè)階段,除依概率執(zhí)行原有的全局搜索算子和局部搜索算子外,還以一定的概率執(zhí)行基于全局最優(yōu)個(gè)體的驅(qū)動(dòng)算子。
GFPA 中引入了以最優(yōu)個(gè)體為基個(gè)體的搜索策略,這使得算法有一定的機(jī)會(huì)在最優(yōu)個(gè)體的鄰域內(nèi)進(jìn)行開(kāi)采,提升了算法收斂速度。
2019 年,賀智明等[33]提出基于動(dòng)態(tài)全局搜索和柯西變異的花朵授粉算法(DCFPA)。在DCFPA 中,為了緩解算法在全局搜索階段過(guò)度趨近最優(yōu)解,避免算法陷入局部最優(yōu),提出了動(dòng)態(tài)全局搜索方法,加入了平均最優(yōu)位置以引導(dǎo)算法搜索方向。此外,為了維持種群多樣性,增強(qiáng)算法在搜索后期的尋優(yōu)性能,在DCFPA 中利用柯西分布的特性對(duì)每一代的全局最優(yōu)解進(jìn)行貪心式變異更新。
DCFPA 中引入平均最優(yōu)位置引導(dǎo)個(gè)體更新,為算法提供了可靠的搜索方向。同時(shí),分配了一定的計(jì)算資源更新最優(yōu)個(gè)體,這有利于提升算法開(kāi)采能力。
2019 年,劉國(guó)繁等[34]針對(duì)花朵授粉算法在搜索后期收斂速度慢和易陷入局部最優(yōu)問(wèn)題,提出一種改進(jìn)花朵授粉算法(IMFPA),并將其應(yīng)用于優(yōu)化RSSI 定位。IMFPA 認(rèn)為在迭代早期需要較大的搜索步長(zhǎng)加快收斂,而在迭代后期則需要較小的步長(zhǎng)進(jìn)行精細(xì)搜索,因此,提出了基于動(dòng)態(tài)步長(zhǎng)的全局搜索算子,設(shè)計(jì)搜索步長(zhǎng)隨著迭代而緩慢減小。此外,IMFPA 中認(rèn)為花朵授粉的局部搜索階段由兩個(gè)隨機(jī)個(gè)體引導(dǎo)搜索,具有盲目性。因此,引入全局最優(yōu)個(gè)體到局部搜索算子中,從而為算法搜索提供更明確的方向信息。
IMFPA 的改進(jìn)主要在于全局搜索算子和局部搜索算子。全局搜索算子中設(shè)計(jì)了隨迭代次數(shù)增加而逐漸減小的步長(zhǎng)系數(shù),控制了個(gè)體的Levy 飛行,提升了演化前期的全局搜索能力和演化后期的局部搜索能力。局部搜索算子中設(shè)計(jì)了基于全局最優(yōu)個(gè)體的搜索策略,為算法提供更優(yōu)的搜索方向,從而提升算法收斂速度。
2020 年,Yang 等[35]針對(duì)花朵授粉算法在求解一些復(fù)雜問(wèn)題時(shí),求解精度和收斂速度不足的問(wèn)題,提出具有3個(gè)策略的花朵授粉算法(IFPA)。在IFPA 中,為了緩解局部搜索階段較高隨機(jī)性導(dǎo)致的搜索效率較低問(wèn)題,提出雙向?qū)W習(xí)策略(Double-Direction Learning Strategy,DLS),將相鄰兩代的全局最優(yōu)個(gè)體信息進(jìn)行融合,用于引導(dǎo)種群演化方向。相比單優(yōu)秀個(gè)體引導(dǎo),這種多優(yōu)秀個(gè)體融合引導(dǎo)的方式能使種群朝著優(yōu)越的方向演化,并緩解單優(yōu)秀個(gè)體引導(dǎo)帶來(lái)的種群多樣性銳減情況,從而降低算法陷入局部最優(yōu)的可能,為算法提供明確的搜索方向。
DLS 被用于局部搜索階段,提升了算法的局部搜索能力。然而,相鄰兩代最優(yōu)個(gè)體的相似度較大,甚至可能處于搜索空間中同一位置,所提供的搜索方向信息對(duì)緩解算法陷入局部最優(yōu)的效果有限。為了進(jìn)一步提升算法逃離局部最優(yōu)的能力,在IFPA 中提出了貪心策略(Greedy Strategy,GS),并將其引入到全局尋優(yōu)階段。GS 中利用兩個(gè)隨機(jī)個(gè)體信息,對(duì)當(dāng)前個(gè)體施加擾動(dòng),使得種群向著隨機(jī)方向進(jìn)行遠(yuǎn)距離搜索,增強(qiáng)了算法的全局搜索能力。
此外,IFPA 中設(shè)計(jì)了轉(zhuǎn)換概率動(dòng)態(tài)調(diào)整策略(Dynamic Switching Probability Strategy,DSPS),設(shè)置轉(zhuǎn)換概率P 隨迭代由0.8 衰減至0.2,使得算法在演化前期執(zhí)行更多的全局搜索,而在演化后期執(zhí)行更多的局部搜索。
實(shí)際上,不同的優(yōu)化算法有著不同的優(yōu)勢(shì),并不存在一種優(yōu)化算法能適用于所有優(yōu)化問(wèn)題。為了幫助工程人員針對(duì)實(shí)際問(wèn)題選擇合適的FPA 進(jìn)行求解,對(duì)具有代表性的FPA,即FPA 與EOFPA、GFPA、IMFPA、DCFPA、IFPA,設(shè)計(jì)性能比較實(shí)驗(yàn)。選取智能仿生算法研究領(lǐng)域常用的23個(gè)測(cè)試函數(shù)[36-37]進(jìn)行比較實(shí)驗(yàn)。其中,F(xiàn)1-F13 是單峰多峰函數(shù),F(xiàn)14-F23 是旋轉(zhuǎn)偏移函數(shù)。由于單峰多峰函數(shù)相對(duì)容易搜索到最優(yōu)解,設(shè)置單峰函數(shù)和多峰函數(shù)的最大評(píng)價(jià)次數(shù)為2 000×D;由于旋轉(zhuǎn)偏移函數(shù)的復(fù)雜多變性質(zhì),設(shè)置旋轉(zhuǎn)偏移函數(shù)的最大評(píng)價(jià)次數(shù)為10 000×D,具體函數(shù)如表1 所示。實(shí)驗(yàn)中,設(shè)置各算法參數(shù)與原文獻(xiàn)保持一致,將FPA 和5 種改進(jìn)FPA 在23 個(gè)測(cè)試函數(shù)上各獨(dú)立運(yùn)行30次,得到誤差均值和誤差標(biāo)準(zhǔn)差,并采用Wilcoxon 秩和檢驗(yàn)(顯著性水平α=0.05)分析FPA 與EOFPA、GFPA、IMFPA、DCFPA、IFPA 之間的性能優(yōu)勢(shì)和劣勢(shì)。
將FPA 與EOFPA、GFPA、IMFPA、DCFPA、IFPA 在23個(gè)測(cè)試函數(shù)上運(yùn)行。表2 給出了FPA 與5 種代表性FPA 在測(cè)試函數(shù)上的比較結(jié)果,表3 給出了FPA 與EOFPA、GFPA、IMFPA、DCFPA、IFPA 進(jìn)行Wilcoxon 檢驗(yàn)得出的P 值,當(dāng)P 值小于顯著性水平0.05 時(shí),表明兩比較算法間存在顯著差異。圖1 給出了FPA 與EOFPA、GFPA、IMFPA、DCFPA、IFPA 在部分函數(shù)上的收斂圖。
Table 1 23 benchmark function表1 23個(gè)測(cè)試函數(shù)
從表2 可以看出,5 種代表性FPA 算法性能均優(yōu)于傳統(tǒng)FPA。與傳統(tǒng)FPA 相比,EOFPA 在20 個(gè)函數(shù)上結(jié)果更優(yōu),在1 個(gè)函數(shù)上結(jié)果較差,在2 個(gè)函數(shù)上結(jié)果相似,表明EOFPA 具有相對(duì)平衡的局部搜索能力和全局搜索能力;GFPA 在21 個(gè)函數(shù)上結(jié)果更優(yōu),在1 個(gè)函數(shù)上結(jié)果較差,在3 個(gè)函數(shù)上結(jié)果相似,這表明GFPA 有效提升了算法收斂速度,同時(shí)能夠維持一定的種群多樣性;IMFPA 在20 個(gè)函數(shù)上結(jié)果更優(yōu),在1 個(gè)函數(shù)上結(jié)果較差,在2 個(gè)函數(shù)上結(jié)果相似,表明IMFPA 能夠避免算法陷入局部最優(yōu);DCFPA 在13 個(gè)函數(shù)上結(jié)果更優(yōu),在9 個(gè)函數(shù)上結(jié)果較差,在1 個(gè)函數(shù)上結(jié)果相似,且DCFPA 在單峰多峰函數(shù)上取得了較大優(yōu)勢(shì),表明其具有較為優(yōu)秀的局部搜索能力;IFPA 在17 個(gè)函數(shù)上結(jié)果更優(yōu),在2 個(gè)函數(shù)上結(jié)果較差,在4 個(gè)函數(shù)上結(jié)果相似,這表明IFPA 具有更優(yōu)的求解精度。結(jié)果表明,5 種FPA 對(duì)搜索策略的改進(jìn)或者參數(shù)控制的改進(jìn)均有助于提升花朵授粉算法的尋優(yōu)性能,改進(jìn)方法是有效的。
Table 2 Comparison results of FPA with EOFPA,GFPA,IMFPA,DCFPA,IFPA表2 FPA與EOFPA、GFPA、IMFPA、DCFPA、IFPA比較結(jié)果
結(jié)合表3 給出的Wilcoxon 檢驗(yàn)P 值可知,EOFPA、GFPA、IMFPA、DCFPA、IFPA在大部分單峰多峰和復(fù)雜函數(shù)上都要顯著優(yōu)于傳統(tǒng)FPA。從圖1可以看出,在單峰函數(shù)F1、F2和F3上,DCFPA較具優(yōu)勢(shì),IMFPA次之,其他3種改進(jìn)的FPA基本上能夠取得優(yōu)于傳統(tǒng)FPA的結(jié)果。對(duì)于多峰函數(shù)F9、F10、F12,DCFPA在函數(shù)F9和F10上的結(jié)果優(yōu)于其他比較算法,而在函數(shù)F12上結(jié)果只優(yōu)于傳統(tǒng)FPA;IMFPA 在這3 個(gè)多峰函數(shù)上的結(jié)果具有一定優(yōu)勢(shì),尋優(yōu)性能較為穩(wěn)定;EOFPA 在函數(shù)F9 和F10 上的尋優(yōu)性能較為顯著,在函數(shù)F12 上優(yōu)于DCFPA、GFPA 和傳統(tǒng)FPA,且優(yōu)勢(shì)相對(duì)較??;IFPA 在函數(shù)F9、F10、F12 上尋優(yōu)性能依次呈現(xiàn)上升趨勢(shì),在函數(shù)F12 取得了比較算法中最優(yōu)的結(jié)果;GFPA 在這3 個(gè)多峰函數(shù)上取得的結(jié)果優(yōu)于傳統(tǒng)FPA,相比其他改進(jìn)FPA優(yōu)勢(shì)較小。在復(fù)雜函數(shù)F15、F16、F17 上,EOFPA、GFPA 的尋優(yōu)性能較為穩(wěn)定,并分別在函數(shù)F16、F15 取得了比較算法中最好的結(jié)果;相比其他改進(jìn)FPA,IFPA在函數(shù)F17上取得了最優(yōu)結(jié)果,在函數(shù)F15上的尋優(yōu)性能也具有較大優(yōu)勢(shì),然而在F16 上的尋優(yōu)結(jié)果要差于傳統(tǒng)FPA,這表明IFPA 在求解復(fù)雜函數(shù)時(shí)性能不夠穩(wěn)定;相比于求解單峰多峰函數(shù),DCFPA 和IMFPA 在求解復(fù)雜函數(shù)時(shí)性能有較大下滑趨勢(shì),取得的結(jié)果相似于甚至差于傳統(tǒng)FPA。
Table 3 P value of Wilcoxon rank sum test among FPA and EOFPA,GFPA,IMFPA,DCFPA,IFPA表3 FPA與EOFPA、GFPA、IMFPA、DCFPA、IFPA進(jìn)行Wilcoxon檢驗(yàn)得出的P值
綜上可知,在面對(duì)實(shí)際應(yīng)用中的單峰問(wèn)題時(shí),運(yùn)用DCFPA 和IMFPA 求解均能得到較為滿意的結(jié)果,且IMFPA 的尋優(yōu)性能比DCFPA 更為穩(wěn)定;運(yùn)用EOFPA 也能穩(wěn)定求解,得到較優(yōu)結(jié)果。在面對(duì)多峰問(wèn)題時(shí),IMFPA 的尋優(yōu)性能在比較算法中最為穩(wěn)定;而IFPA、DCFPA 和EOFPA 在求解一些多峰問(wèn)題能取得較為精確的結(jié)果。在面對(duì)旋轉(zhuǎn)偏移問(wèn)題時(shí),GFPA 和EOFPA 求解性能較為穩(wěn)定,尋優(yōu)結(jié)果較優(yōu);IFPA 在求解一些復(fù)雜問(wèn)題時(shí)能夠取得優(yōu)秀結(jié)果,然而也存在陷入局部極值的可能性。
Fig.1 Convergence graphs of FPA and five improved FPA on partial functions圖1 FPA與5種改進(jìn)FPA在部分函數(shù)上的收斂圖
花朵授粉算法作為一種簡(jiǎn)單實(shí)用的智能仿生優(yōu)化算法,引起了許多研究者的關(guān)注。針對(duì)FPA 存在的缺點(diǎn),許多改進(jìn)型花朵授粉算法被提出,使得算法性能得到一定提升。本文對(duì)改進(jìn)花朵授粉算法進(jìn)行總結(jié),對(duì)5 種具有代表性的FPA 改進(jìn)算法進(jìn)行分析,并設(shè)計(jì)比較實(shí)驗(yàn),直觀展示了5 種改進(jìn)FPA 在性能上的優(yōu)勢(shì)和劣勢(shì)。實(shí)驗(yàn)結(jié)果表明,這些代表性FPA 適用于求解不同類型的優(yōu)化問(wèn)題,如DCFPA 和IMFPA 在求解單峰多峰問(wèn)題時(shí)具有較大優(yōu)勢(shì)、GFPA 和EOFPA 在求解旋轉(zhuǎn)偏移問(wèn)題時(shí)效果較好。因此,針對(duì)不同的工程優(yōu)化問(wèn)題,根據(jù)5 種代表性FPA 的性能特點(diǎn)就能選擇出最合適的求解算法。
同時(shí)可以看出,對(duì)FPA 的研究尚處在起步階段,F(xiàn)PA存在的一些缺點(diǎn)還值得進(jìn)一步探索改進(jìn),總結(jié)歸納如下:
(1)FPA 的搜索策略。在FPA 的全局搜索階段,服從Levy分布的遠(yuǎn)距離跳躍方法可能導(dǎo)致算法遺漏對(duì)有希望未知區(qū)域的搜索,應(yīng)作進(jìn)一步的精細(xì)搜索。此外,僅利用最優(yōu)個(gè)體引導(dǎo)全局搜索,增大了算法陷入局部最優(yōu)的概率,可考慮多優(yōu)秀個(gè)體集合引導(dǎo),為算法提供更多可能的搜索方向。在FPA 的局部搜索階段,基于隨機(jī)個(gè)體的搜索策略為尋優(yōu)帶來(lái)了盲目性,導(dǎo)致算法局部搜索能力弱,可考慮利用種群中的優(yōu)秀信息,為算法提供明確的搜索方向。
(2)FPA 的參數(shù)控制。FPA 有3 個(gè)重要參數(shù),即轉(zhuǎn)換概率、自花授粉步長(zhǎng)系數(shù)和異花授粉步長(zhǎng)系數(shù),它們對(duì)算法尋優(yōu)性能的影響很大。值得注意的是,參數(shù)設(shè)置不僅依賴于優(yōu)化問(wèn)題的性質(zhì),還依賴于算法不同演化階段的特點(diǎn)。有研究者為FPA 設(shè)計(jì)了適應(yīng)性參數(shù)控制策略,對(duì)算法性能有一定提升。然而,全面結(jié)合了優(yōu)化問(wèn)題性質(zhì)和不同演化階段特點(diǎn)而設(shè)計(jì)的適應(yīng)性參數(shù)控制策略比較匱乏,尚有待進(jìn)一步探索。