李 煜,鄭 娟,劉景森
1.河南大學 管理科學與工程研究所,河南 開封 475004
2.河南大學 商學院,河南 開封 475004
3.河南大學 智能網(wǎng)絡(luò)系統(tǒng)研究所,河南 開封 475004
越來越多科學和工程應(yīng)用問題由低維發(fā)展成高維,決策變量增多,計算量大,具有不確定性且一般為多目標復(fù)雜優(yōu)化問題[1]。一般情況下,決策變量超過100個的函數(shù)優(yōu)化問題被定義為大規(guī)模優(yōu)化問題[2],如大型電力系統(tǒng)、視頻數(shù)據(jù)處理、輸電網(wǎng)擴展規(guī)劃、大規(guī)模交通網(wǎng)絡(luò)的車輛路徑規(guī)劃等。優(yōu)化問題的求解難度和維度息息相關(guān),搜索空間和問題復(fù)雜度隨維度增加呈指數(shù)趨勢增大,找到最優(yōu)解的概率呈指數(shù)下降,極易陷入“維數(shù)災(zāi)難”,而且這些決策變量之間相互關(guān)聯(lián),使得計算復(fù)雜度和求解難度進一步加大。
大規(guī)模優(yōu)化問題具有非線性、不可微的特點,傳統(tǒng)梯度下降方法無法求解,目前的求解方法主要有兩種[3]:一是將維度分組的協(xié)同進化策略,基于降維思想分組求解分解后的低維簡單問題,后將各組低維解結(jié)合成高維解[4];另一種不分組方法是利用群智能算法對優(yōu)化問題整體求解。群智能算法基于種群迭代機制進行優(yōu)化計算,具有潛在的并行性和分布式特點[5],全局搜索能力優(yōu)異,能有效求解復(fù)雜優(yōu)化問題[6-7]。這種整體求解方法能克服分組策略“兩步向前,合并向后”的缺點[1],如:賀桂嬌等[8]提出的改進人工蜂群算法(artificial bee colony algorithm with at-tractor,BAABC)求解高維復(fù)雜優(yōu)化問題的優(yōu)勢明顯,魯棒性很好。Binh等[9]提出改進布谷鳥搜索算法(improved cuckoo search,ICS)和混沌花朵授粉算法(chaotic flower pollination optimization algorithm,CFPA)求解多個無線傳感器的網(wǎng)絡(luò)區(qū)域覆蓋優(yōu)化問題。改進算法在解決傳感器節(jié)點部署這個NP-Hard 問題時較其他算法具有時間優(yōu)勢。黃光球等[10]構(gòu)造的可全局收斂蝙蝠算法(bat algorithm,BA)能求解不同類型的大規(guī)模優(yōu)化問題,而且收斂速度快。
花朵授粉算法(flower pollination algorithm,F(xiàn)PA)[11]是Yang 于2012 年提出的一種新型群智能算法。該算法參數(shù)少,易實現(xiàn),易調(diào)節(jié),尋優(yōu)結(jié)構(gòu)新穎,尋優(yōu)能力良好,已在函數(shù)優(yōu)化[12]、無線傳感網(wǎng)[9]、電力系統(tǒng)[13]、作業(yè)車間調(diào)度[14]、形狀匹配[15]、背包問題[16]等領(lǐng)域得到廣泛應(yīng)用。國內(nèi)外已有不少學者對其易陷入局部最優(yōu)、尋優(yōu)精度低、后期收斂速度緩慢等缺點進行了改進。將該算法與其他智能優(yōu)化算法融合取得了不錯的效果:如Abdel-Raouf 等[17]將粒子群優(yōu)化算法融入到花朵授粉算法中;Lenin 等[18]將混沌和聲算法與花朵授粉算法進行融合;Salgotra 等[19]提出了融合蝙蝠算法的BFP(bat flower pollination)算法。另外,Wang 等[20]認為維間干擾會減緩算法的收斂速度,影響求解質(zhì)量,對解進行逐維改進并引入局部鄰域搜索策略;肖輝輝等[21]融合高斯變異和Powell法改善了算法的尋優(yōu)能力。
本文使用花朵授粉算法整體求解大規(guī)模優(yōu)化問題。采用反向?qū)W習策略增加種群多樣性,提高初始種群質(zhì)量;為降低大規(guī)模優(yōu)化問題的求解難度,降低算法迭代代價,避免維間干擾對算法收斂精度和速度的影響,設(shè)計了新的局部更新公式,發(fā)揮當代最優(yōu)位置牽引作用,逐維動態(tài)改變配子相對受擾動程度和繼承程度,并接受更優(yōu)的結(jié)果作為下次迭代基礎(chǔ)。這種新的避免維間干擾的方法很好地彌補了算法易陷入“維度災(zāi)難”的缺陷,且與逐維更新評價方法相比,這種方法的時間代價具有明顯優(yōu)勢。最優(yōu)位置的牽引作用使得改進算法僅需3~5 個種群個體即可達到滿意的優(yōu)化效果。15 個測試函數(shù)在3 種高維狀態(tài)100、1 000 和5 000 的數(shù)值仿真結(jié)果表明:相比于FPA、PSO(particle swarm optimization)[22]和BA,IFPA(improved flower pollination algorithm)的尋優(yōu)精度高、收斂速度快、魯棒性強且適應(yīng)度高,求解不同類型大規(guī)模優(yōu)化問題時優(yōu)勢明顯。
大規(guī)模優(yōu)化問題用公式表示如下:
其中,X=[x1,x2,…,xD]為決策變量,其取值不同對應(yīng)著優(yōu)化問題的不同決策方案,D表示決策變量的個數(shù)(即問題維度),本文維度設(shè)定為100、1 000和5 000。
F(x)表示優(yōu)化問題的目標函數(shù),xi∈[xmin,xmax]表示邊界約束,xmax、xmin分別表示問題上下邊界。
FPA 是模仿顯花植物授粉過程而設(shè)計的隨機全局優(yōu)化算法。因花朵授粉對象的不同存在自花和異花兩種授粉方式。異花授粉是指相對較遠距離的不同株植物之間的授粉,該方式一般需要傳粉者,傳粉者的行為具有萊維飛行的特征,F(xiàn)PA 的全局授粉(尋優(yōu))階段模擬了此授粉過程。自花授粉是指在較近的距離內(nèi),相鄰花朵依靠非生物手段實現(xiàn)成熟花粉粒成功傳遞并能正常受精結(jié)實的過程,F(xiàn)PA將這種授粉方式稱為局部授粉(尋優(yōu))。
一株植物能開好多花,每個花朵有百萬甚至上億的花粉配子。為簡單模擬授粉過程,假設(shè)每株植物僅有一朵花,每朵花獨有一個花粉配子。那么,一朵花或一個花粉配子的位置序列剛好是優(yōu)化問題的一個解。算法假設(shè)條件如下:
(1)生物異花授粉被看作全局授粉過程,該規(guī)則的數(shù)學表達式為:
其中,λ=3/2,Γ(λ)是標準的伽馬函數(shù)。
(2)非生物自花授粉即花朵的局部授粉,該演化機制的數(shù)學公式為:
其中,ε是均勻分布在[0,1]間的隨機數(shù);代表同類植物的不同花朵的花粉,即種群的兩個隨機解。
(3)花的繁衍概率與花朵間的類似程度存在比例關(guān)系。
(4)由p∈[0,1]來動態(tài)控制局部和全局授粉的轉(zhuǎn)換。物理上的接近和風等自然因素的作用使得相鄰花朵更容易授粉成功,故局部授粉在整個授粉活動中占比較大,文獻[23]中已通過大量實驗證明p值取0.2最為合適。
下面的偽代碼描述了FPA的基本步驟:
反向?qū)W習(opposition-based learning,OBL)策略[24]自2005 年出現(xiàn)以來,就經(jīng)常作為智能優(yōu)化算法的改進策略出現(xiàn)[25-27],并衍生出透鏡成像反向?qū)W習策略[28]、正交反向?qū)W習[29]等。
反向?qū)W習策略基于對立點的定義:
定義1(對立點(opposite point))[26]假設(shè)在[Lb,Ub]上存在數(shù)x,則x的對立點為x′=Lb+Ub-x。那么,若p=(x1,x2,…,xd)為d維空間中的一個點,其中xi∈[Lbi,Ubi],i=1,2,…,d,則其對立點為p′=(x′1,x′2,…,x′d),其中x′i=Lbi+Ubi-xi。
為說明反向?qū)W習初始化對種群多樣性和種群質(zhì)量的影響,圖1(a)和圖1(b)分別給出了IFPA 求解Sphere 函數(shù)時反向?qū)W習前后種群個體分布情況。其中,綠色圓圈代表花粉位置,紅色圓點代表全局最優(yōu)點。問題維度為3維,變量搜索空間為[-100,100],種群數(shù)為5。
Fig.1 Initial distribution of pollen圖1 花粉初始化分布圖
圖1清楚地顯示,反向?qū)W習使花粉個體探索了更多的位置,增加了種群多樣性,反向?qū)W習后有更多的花粉接近全局最優(yōu)點,提高了初始種群質(zhì)量,為算法奠定了更好的迭代基礎(chǔ)。
FPA 在全局搜索中采用Lévy 飛行機制,它的較大跳躍和隨機步長的不均勻性一定程度上能規(guī)避配子陷入局部最優(yōu)點,使其全局探索能力優(yōu)異[30]。圖2展示了50步Lévy飛行的情況。
Fig.2 A series of 50 consecutive steps of Lévy flight圖2 50步Lévy飛行
但局部開發(fā)能力相對不足,原因有以下兩點:
(1)配子更新不受任何因素引導(dǎo),過于隨機,雖能增強配子的多樣性,但難以滿足精準開發(fā)的要求,也抑制了優(yōu)化過程的收斂速度。為提高算法的求解精度,將帶有隨機性信息的與帶有確定性信息的當前最優(yōu)位置g*處理求得的差分向量代替原擾動中的,發(fā)揮當代最優(yōu)位置的牽引作用,避免較大的隨機性所帶來的低搜索效率和較低收斂速度等問題[31]。
理論上,為達到相同的求解效果,搜索空間越大、種群規(guī)模越多,種群更新的代價越大,因此能較好地求解低維問題的智能算法在高維問題求解中表現(xiàn)一般。而這種改進僅需要3~5 個種群個體就可以達到滿意的優(yōu)化效果,這是因為在種群數(shù)量較少的情況下,改進擾動中的差分算子能夠更容易地牽引整個種群朝當前最優(yōu)位置靠近,有效解決了算法求解大規(guī)模優(yōu)化問題迭代代價大的問題,而且能夠使算法在迭代后期局部開發(fā)更加精準。
(2)局部更新過程過于平緩,缺乏跳動,易陷入局部最優(yōu),這主要歸因于該算法的更新機制。算法靠轉(zhuǎn)換概率p實現(xiàn)異花授粉和自花授粉的動態(tài)轉(zhuǎn)換,簡單易懂,易于執(zhí)行,也能通過合理設(shè)置p值大概率地進行局部搜索,更加貼合現(xiàn)實。但是p值越小,進行全局搜索的概率越小,即使某次迭代選擇全局搜索,也不能保證恰好發(fā)生遠距離Lévy跳躍,配子初期可能逗留初始化位置附近,這種情況嚴重影響算法尋優(yōu)精度和收斂速度。而且多維優(yōu)化問題尤其是大規(guī)模優(yōu)化問題維數(shù)之間的干擾也很大程度上影響著算法性能和解的質(zhì)量。
原花朵授粉算法采用整體更新和評價策略求解,不能規(guī)避維間干擾現(xiàn)象[20]。Wang 等人為解決此問題提出逐維更新評價策略[20],但是該更新方式時間代價大,雖然對有些函數(shù)求解的精度較高,但魯棒性并不好。本文為打破維間干擾問題,提出局部開發(fā)的逐維隨機擾動策略,借鑒螢火蟲算法[32]相對熒光亮度公式,設(shè)計逐維隨機相對繼承程度m和逐維隨機相對受擾動程度2-m,m的公式表達為:
其中,k為花粉配子的最大繼承程度,與原花朵授粉算法保持一致取值為1,表示對上代花粉位置完全繼承;2π 是花粉粒子繼承系數(shù);|L(j)|是花粉粒子在第j維上的Lévy飛行距離。
由于每一維的Lévy 飛行距離不同,使得花粉個體的每一維不同程度地繼承上代信息,受到不同程度的擾動,解決了維間干擾問題,增加了種群多樣性,在當代最優(yōu)位置的牽引作用下,最終提出的第j維的更新公式為:
該更新方式不僅解決了維間干擾問題,而且使得算法不會錯失Lévy 飛行的良好機制,如果較大跳躍配合全局搜索執(zhí)行,自然可以提升算法全局尋優(yōu)能力,如果較大跳躍配合局部開發(fā)執(zhí)行,就可以使花粉個體受到更大的擾動影響(Lévy 飛行距離越長,2-m的值越大)。在迭代初期種群差異較大時,花粉個體能受到更大的擾動影響,遍歷更大的范圍,因此不管進行全局搜索還是局部搜索,都能保證算法初期花粉個體的跳躍能力,提高算法初期的迭代質(zhì)量和全局尋優(yōu)能力,有效解決算法易陷入局部最優(yōu)的問題。
被更新的花粉個體如果更優(yōu),就接受它并將它作為下代更新的基礎(chǔ),否則就舍棄該更新解,保持之前的迭代基礎(chǔ)。局部開發(fā)的逐維隨機擾動策略具體如算法1所示。
綜上,IFPA優(yōu)化流程如圖3所示。
Fig.3 Flow diagram of IFPA圖3 IFPA流程圖
為模擬改進算法的尋優(yōu)過程,仍以Sphere 函數(shù)為例,展示花粉粒子反向?qū)W習初始化、迭代10 次、50次、100次、200次和500次后的位置分布,如圖4所示。為便于分析花粉粒子的多樣性,設(shè)置種群規(guī)模為50。
從圖4 可以看出,隨著迭代次數(shù)的增加,花粉個體以較快的收斂速度朝全局最優(yōu)解靠近。為分析全局最優(yōu)解附近的花粉多樣性,將50代、100代、200代和500代的局部放大圖展示為圖5所示。
Fig.4 Pollen iteration graph圖4 花粉迭代分布圖
Fig.5 Partial enlarged detail圖5 局部放大圖
從圖4 和圖5 可以看出,隨著迭代次數(shù)的增加,花粉離全局最優(yōu)解的距離越來越近,求解精度越來越高,但是花粉種群并沒有趨同,Lévy飛行的較大跳躍和隨機步長的不均勻性賦予決策變量的不同擾動,使得種群多樣性良好,花粉個體在迭代后期依然較為均勻地分布在全局最優(yōu)解附近。
為全面客觀地評價IFPA求解大規(guī)模復(fù)雜優(yōu)化問題的性能,選取15 個不同類型的測試函數(shù)[5,33]在3 種高維狀態(tài)下進行測試。f1~f9為高維單峰函數(shù),可測試算法的收斂速度和尋優(yōu)精度,其中f5有非凸病態(tài)特點,算法在對其優(yōu)化過程中很容易陷入局部極小;f10~f15是高維多峰函數(shù),解空間中分布著大量局部極小點,尋優(yōu)過程中極易陷入局部最優(yōu),極難找到全局最優(yōu)解,可有效測試算法跳離局部極值的能力及全局收斂性能,f10和f13是典型代表。測試函數(shù)的具體特征如表1所示。
本文設(shè)定結(jié)果精確度(accuracy,AC)和尋優(yōu)成功率(successful ratio,SR)來評價算法性能。AC反映算法迭代結(jié)果和測試函數(shù)理論最優(yōu)值的接近程度。若一個測試函數(shù)的理論最優(yōu)值是Xopt,迭代結(jié)果為Sbest,則精確度為AC=|f(Sbest)-f(Xopt)|,本文設(shè)定AC<0.000 1即稱此次運行尋優(yōu)成功,收斂到全局最優(yōu)解;SR 即多次實驗中算法收斂到問題全局最優(yōu)解的比例,若總實驗次數(shù)為z,全局最優(yōu)解被收斂到的實驗次數(shù)為z′,SR=z′/z×100%。
Table 1 Benchmark functions表1 基準測試函數(shù)
為客觀評價IFPA 處理大規(guī)模優(yōu)化問題的性能,將其與經(jīng)典的PSO、BA 和FPA 進行對比。在每次運行中,將迭代1 000次作為這些算法的終止準則。為防止偶然性誤差,產(chǎn)生有統(tǒng)計學意義的結(jié)果,對每個函數(shù)獨立運行30 次,所有實驗都在相同的條件下進行,并記錄結(jié)果中的均值和標準差。種群數(shù)統(tǒng)一設(shè)為5,其他參數(shù)設(shè)置如表2所示。
基于上述參數(shù)設(shè)置,分3 種維度100、1 000 和5 000 進行仿真實驗,實驗筆記本操作系統(tǒng)為Win-dows10,主頻1.6 GHz,CPU 為Intel Core i5-8520,內(nèi)存8 GB,使用Matlab R2014a實現(xiàn)編程。
Table 2 Parameter settings of each algorithm表2 各算法參數(shù)設(shè)置
15個測試函數(shù)100、1 000和5 000維的實驗結(jié)果如表3 所示,4 種算法中的最好結(jié)果加粗表示。從表3中的統(tǒng)計結(jié)果可知,除f14外,本文提出的IFPA在各個維度下的求解精度均優(yōu)于其他3種算法,尋優(yōu)精度大幅提高,以極高的尋優(yōu)成功率收斂到了f1~f4、f6、f8、f10~f13這10 個函數(shù)的全局最優(yōu)解,并能收斂到f3、f10和f13的理論最優(yōu)值,而3種對比算法對15個函數(shù)的尋優(yōu)成功率全為0。
Table 3 Simulation results of different functions表3 不同函數(shù)的仿真結(jié)果
續(xù)表
IFPA 在3 種高維狀態(tài)下次次都能收斂到f3、f10和f13的理論最優(yōu)值。IFPA 對函數(shù)f1、f2、f4、f6、f8、f11、f12的尋優(yōu)精度比對比算法中的最好結(jié)果提高了17~69個數(shù)量級。
3 種對比算法對f6的求解精度隨維度升高變化極大,特別是PSO 和BA,在1 000 和5 000 維時無法對解空間進行任何有效搜索的概率高達93.4%~100%,魯棒性很差,而IFPA 的收斂精度依然能達到10-24以上并且變化極小。
IFPA 對f7、f9和f15的求解結(jié)果已較接近理論最優(yōu)值。IFPA對f7、f9的求解精度至少比對比算法提高了6、4個數(shù)量級。IFPA對f5的求解精度比對比算法提高了4~8 個數(shù)量級,對f14的求解精度也提高了0~16個數(shù)量級。
IFPA不但尋優(yōu)精度高,魯棒性也強。除f14的標準差隨維度升高變化稍大以外,另14 個函數(shù)的標準差極小且基本不隨維度改變,求解結(jié)果穩(wěn)定,證明了IFPA 的求解性能基本不受維度和函數(shù)類型的影響,與其他3 種算法相比優(yōu)勢突出,成功克服了“維數(shù)災(zāi)難”問題,適合處理大規(guī)模優(yōu)化問題。
算法跳出局部極值的能力和收斂速度都可通過適應(yīng)度收斂曲線直觀顯現(xiàn)。圖6 給出了4 種算法1 000 維下優(yōu)化8 個測試函數(shù)的適應(yīng)度收斂曲線,所有收斂曲線都是對應(yīng)算法30 次獨立運行的平均值。除f2、f11、f12和f13外,其他函數(shù)的目標函數(shù)值取以10為底的對數(shù)。
圖6 的收斂曲線清楚地顯示,較3 種對比算法,IFPA收斂速度更快,尋優(yōu)精度更高,跳出局部極值的能力更強。從圖6(c)、圖6(e)和圖6(h)中可以看出,IFPA 可分別在100、400 和300 代左右收斂到f3、f10和f13的理論最優(yōu)值。IFPA對f6的優(yōu)化效果極好,無法看到圖6(d)中BA和PSO的收斂曲線,是因為這兩種算法對f6搜索不到任何有效解,而IFPA對此函數(shù)求解精度依然很高。從圖6(b)、圖6(f)~圖6(h)可以看出,4種算法均有陷入局部最優(yōu)的情況,其中BA在迭代初期就易陷入局部最優(yōu),PSO和FPA幾次陷入局部最優(yōu),而IFPA的收斂曲線較為光滑,陷入局部最優(yōu)的次數(shù)偏少,收斂速度也明顯快于其他算法。
Fig.6 Convergence curve of 4 algorithms for different functions in 1000 dimensions圖6 1 000維下求解不同函數(shù)的4種算法的收斂曲線
高維狀態(tài)下,4 種算法中FPA 收斂速度較快,但求解精度偏差;PSO算法的收斂精度雖然是3個對比函數(shù)中最好的,但其收斂速度卻是4 個算法中最慢的,且容易陷入局部最優(yōu);IFPA 的全局優(yōu)化能力很強,不但收斂速度快,尋優(yōu)精度高,而且不易陷入局部最優(yōu);BA表現(xiàn)最差。以f12的收斂曲線為例,IFPA迭代50 代左右求解精度已非常高,F(xiàn)PA 雖然前期收斂較快,但1 000次迭代后尋優(yōu)結(jié)果僅在1 300左右,離函數(shù)的理論最優(yōu)解相差很遠,雖然PSO 的最終求解結(jié)果比FPA 更優(yōu),但其收斂速度很慢,并且在70、130、200 代左右?guī)状蜗萑刖植孔顑?yōu),BA 不管在求解精度上還是收斂速度上都是最差的。
為了分析兩種改進策略對算法性能的影響,從表1 中選取了7 個能代表尋優(yōu)精度不同提高程度的測試函數(shù)在100 維下進行數(shù)值實驗,將IFPA 與僅采用反向?qū)W習策略的FPA算法(記為OFPA)、僅采用逐維隨機擾動的局部開發(fā)策略的FPA 算法(記為DFPA)和FPA 進行比較,算法的參數(shù)設(shè)置與5.2 節(jié)相同。表4給出了4種算法的測試結(jié)果比較,最好結(jié)果加粗表示,其中T是30 次獨立運行的總時間(單位:s),B、M、W、S分別表示最優(yōu)值、優(yōu)化均值、最差值和標準差。
Table 4 Comparison of test results of 4 algorithms(D=100)表4 4種算法的測試結(jié)果比較(D=100 維)
由表4 的比較結(jié)果可知,OFPA 提高了算法的求解精度和魯棒性,較FPA的求解精度更高,且不增加求解時間。例如,OFPA 在維持運行時間的前提下,僅通過反向?qū)W習初始化,對f6的求解精度就提高了4個數(shù)量級;對f9求得的最優(yōu)值的精度只比IFPA低了2 個數(shù)量級。這說明反向?qū)W習初始化確實可以充分搜索解空間,保留更多的優(yōu)良個體,為算法奠定高質(zhì)量迭代基礎(chǔ),而且IFPA 的求解精度普遍比DFPA 高也證實了反向?qū)W習初始化的作用。
采用逐維隨機擾動策略設(shè)計的局部更新方式是IFPA性能改進的有效算子,DFPA收斂到了f10和f13的理論最優(yōu)值,使f1、f6、f9、f11、f12的求解精度分別提高了58、33、5、17、31 個數(shù)量級,且求解結(jié)果穩(wěn)定,算法穩(wěn)定性強。DFPA 求解單峰函數(shù)的時間代價大概為FPA 的1.5~2.1 倍,求解多峰函數(shù)的時間代價為FPA 的1.3 倍左右,很好地平衡了精度提高和時間代價兩方面。
為有效處理大規(guī)模優(yōu)化問題,本文用反向?qū)W習策略提高FPA 初始種群質(zhì)量,在局部開發(fā)階段采用逐維隨機擾動策略對花粉個體進行優(yōu)化,打破了維間干擾,降低了大規(guī)模優(yōu)化問題的求解難度,擴大了花粉受擾動的程度,提高了算法的全局尋優(yōu)能力,并發(fā)揮當代最優(yōu)位置的牽引作用,減少了算法迭代代價,有效解決了FPA收斂精度低、易陷入局部極值和“維數(shù)災(zāi)難”等問題,大大提高了算法求解大規(guī)模優(yōu)化問題的性能。在100、1 000 和5 000 的高維狀態(tài)下,IFPA的求解精度、收斂速度、魯棒性、對不同類型測試函數(shù)的適應(yīng)性等都明顯優(yōu)于FPA、PSO和BA,15個測試函數(shù)的最好結(jié)果基本全部由IFPA 求得,且求解精度基本不受維度影響。在今后的研究工作中,考慮將分組策略應(yīng)用其中,進一步提高算法性能;細致研究參數(shù)p如何動態(tài)變化能使算法更優(yōu);將改進算法應(yīng)用于實際工程問題。