李旭,喬學(xué)工
(太原理工大學(xué)信息與計(jì)算機(jī)學(xué)院,山西太原 030600)
光子搜索算法(Photon Search Algorithm,PSA)是劉永歷等人[1]于2019 年提出的一種基于物理現(xiàn)象的啟發(fā)式算法,常見(jiàn)的物理啟發(fā)式算法有模擬退火算法(Simulated Annealing,SA)[2]、引力搜索算法(Gravitational Search Algorithm,GSA)[3]、水循環(huán)算法(Water Cycle Alogrithm,WCA)[4]和閃電搜索算法(Lightning Search Algorithm,LSA)[5]。光子搜索算法的理論基礎(chǔ)來(lái)源于Max Planck、Einstein 和Broglie等[6-7]人提出的光子假說(shuō)和量子理論。PSA 算法具有較強(qiáng)的全局探索能力和較高的搜索效率,但是局部開(kāi)發(fā)能力很差,收斂精度低。
哈里斯鷹優(yōu)化算法(Harris Hawk Optimization,HHO)是Heidari 等人[8]于2019 年提出的一種基于群體捕食行為的算法,其改進(jìn)的算法有EHHO[9]和CHHO[10]等。常見(jiàn)的基于群體的算法還有粒子群算法(Particle Swarm Optimization,PSO)[11]、蟻群算法(Ant Colony Optimization,ACO)[12]和灰狼算法(Grey Wolf Optimizer,GWO)[13]等。PSA 算法有較為豐富的開(kāi)發(fā)策略,并且結(jié)構(gòu)簡(jiǎn)單,參數(shù)易于調(diào)節(jié)。
文中針對(duì)PSA 算法的不足進(jìn)行改進(jìn)。首先將HHO 的4 種開(kāi)發(fā)策略引入PSA 算法,以增強(qiáng)其局部尋優(yōu)能力,并且對(duì)原始HHO 中的逃逸能量函數(shù)進(jìn)行改進(jìn),避免算法陷入局部最優(yōu)。
1)光子運(yùn)動(dòng)的初始化
假設(shè)初始有N個(gè)光子(個(gè)體),則第i個(gè)個(gè)體的位置[1]通過(guò)式(1)更新:
Rig表示第i個(gè)光子與當(dāng)前擁有全局最佳適應(yīng)度值的光子X(jué)g之間的歐式距離,RLen表示光子在迭代中通過(guò)的距離,計(jì)算如式(2)、(3)所示[1]:
其中,Scl為權(quán)重值。
于是,在特定時(shí)間t中,第i個(gè)光子在第d維中的速度v通過(guò)式(4)更新[1]:
所以,第i個(gè)光子的位置通過(guò)式(5)進(jìn)行更新[1]:
其中,De為收斂權(quán)重,用來(lái)調(diào)整搜索過(guò)程中的收斂速度,ext表示收斂系數(shù)。
2)觀察行為
為了模擬量子的不確定性原理,設(shè)計(jì)了算法的觀察行為,第i個(gè)光子的位置根據(jù)式(7)進(jìn)行計(jì)算[1]。
3)搜索排除原則
根據(jù)泡利不相容原理設(shè)計(jì)了搜索排除原則。個(gè)體位置通過(guò)式(8)更新[1]。其中,是指相應(yīng)維度的下邊界值,而是指相應(yīng)維度的上邊界值,randB是范圍[0,1]的隨機(jī)數(shù)。
HHO 算法的實(shí)現(xiàn)過(guò)程可以分為探索階段和開(kāi)發(fā)階段兩個(gè)階段:探索階段進(jìn)行全局搜索;開(kāi)發(fā)階段個(gè)體進(jìn)行局部尋優(yōu)。通過(guò)7 種掠奪性策略[14]中的4種策略進(jìn)行局部開(kāi)發(fā)。
1)軟圍攻
該搜索策略下,獵物具有足夠的能量進(jìn)行逃脫,通過(guò)式(9)更新個(gè)體位置:
其中,X(t)和X(t+1) 分別表示鷹的當(dāng)前位置和下一次迭代的位置,ΔX(t)表示獵物與鷹當(dāng)前位置的差值,E表示獵物的逃逸能量,J表示獵物在整個(gè)逃逸過(guò)程中的隨機(jī)跳躍強(qiáng)度,Xprey(t)表示獵物的當(dāng)前位置,r表示[0,1]之間的隨機(jī)數(shù)。
2)硬圍攻
獵物沒(méi)有足夠的能量進(jìn)行逃脫。個(gè)體通過(guò)式(10)更新位置:
其中,X(t+1)、Xprey(t)、E和ΔX(t)的含義與式(9)中參數(shù)的含義相同。
3)漸進(jìn)式快速俯沖的軟包圍
獵物有足夠的能量逃脫哈里斯鷹的抓捕,并在突襲之前就進(jìn)行了軟圍攻,個(gè)體位置通過(guò)式(11)更新:
其中,Y表示鷹下一步行動(dòng)的評(píng)估指標(biāo),J、Xprey(t)、E和X(t)與式(10)中的參數(shù)含義相同。Z表示鷹基于Levy 飛行模式[15]進(jìn)行潛水的指標(biāo),D表示解空間的維數(shù),S∈R1×D表示[0,1]之間的隨機(jī)矩陣,Levy表示飛行函數(shù)。
4)漸進(jìn)式快速俯沖的硬包圍
獵物沒(méi)有足夠的能量逃脫,在突襲之前就進(jìn)行了硬圍攻。個(gè)體位置更新公式與式(12)相同,其中Y和Z根據(jù)式(13)進(jìn)行計(jì)算:
Xm(t)代表所有個(gè)體每一維度相對(duì)應(yīng)的平均值,剩余參數(shù)與式(11)相同。
PSA 是一種全局搜索能力很強(qiáng)的算法。但是,由于個(gè)體位置更新方法過(guò)于簡(jiǎn)單,因此其開(kāi)發(fā)能力受到限制,從實(shí)驗(yàn)結(jié)果來(lái)看仍有改善的空間。PSA算法要確保在增強(qiáng)局部開(kāi)發(fā)能力的同時(shí),對(duì)其全局探索能力不會(huì)產(chǎn)生太大影響。文中通過(guò)HHO 的4 種局部開(kāi)發(fā)策略來(lái)改進(jìn)原始個(gè)體的移動(dòng)方式。
1)種群初始化
哈里斯鷹的4 個(gè)局部捕食策略的連續(xù)切換擴(kuò)大了種群的搜索范圍,避免陷入局部最優(yōu),并且使該算法在局部范圍內(nèi)更快地找到最優(yōu)解?;谶@4 種開(kāi)發(fā)策略的優(yōu)勢(shì),將哈里斯鷹的開(kāi)發(fā)策略與光子搜索算法結(jié)合起來(lái),提出了一種基于哈里斯鷹優(yōu)化的自適應(yīng)光子搜索算法(HHO-APSA)。首先,需要初始化種群,所有個(gè)體均根據(jù)式(14)初始化:
其中,Lb和Ub是上下邊界,r1是[0,1]之間的隨機(jī)數(shù)。
2)改進(jìn)的逃逸能量函數(shù)
HHO 中的逃逸能量E決定了探索與開(kāi)發(fā)之間的轉(zhuǎn)換,原始逃逸能量函數(shù)利用式(15)計(jì)算:
其中,初始能量E0是介于[-1,1]之間的隨機(jī)數(shù),t是當(dāng)前迭代次數(shù),T是最大迭代次數(shù)。當(dāng)|E|<1 時(shí),該算法處于開(kāi)發(fā)階段。從圖1(a)中可以看出,參數(shù) |E|從2 線性減小到0,這使得 |E|的值在迭代結(jié)束時(shí)完全小于1。換句話說(shuō),原始HHO 算法在后期僅進(jìn)行局部開(kāi)發(fā),而完全忽略了全局探索。
基于以上分析,文中提出了一種新的逃逸能量函數(shù)Enew,將Enew作為HHO-APSA 種群遷移策略的切換指標(biāo):
其中,參數(shù)E0、t、T的含義與式(15)相同,衰減因子μ表示獵物能量的衰減強(qiáng)度。μ值越大,逃逸能量函數(shù)Enew衰減越快。由表1 中10 次測(cè)試結(jié)果的均值和標(biāo)準(zhǔn)差可以看出,μ為0.8 時(shí)優(yōu)化效果較好。如圖1(b)所示,當(dāng)μ=0.8 時(shí),逃逸能量函數(shù)Enew在250 次迭代后仍能提供足夠的擾動(dòng)。在某些情況下,|Enew|可以大于1。這也表明,在一定概率下,μ可以幫助算法在探索與開(kāi)發(fā)之間取得平衡,并避免陷入局部最優(yōu)狀態(tài)。
表1 衰減因子對(duì)HHO-APSA算法在3個(gè)基準(zhǔn)函數(shù)上的影響
圖1 逃逸能量變化曲線對(duì)比圖
從圖1(b)可以看到,當(dāng)?shù)螖?shù)增加時(shí),|Enew|總體上呈現(xiàn)一個(gè)下降的趨勢(shì),它模擬的是獵物逃逸能量的變化過(guò)程。|Enew|=1 是HHO-APSA 算法切換搜索策略的分界線。當(dāng)|Enew|≥1 時(shí),個(gè)體根據(jù)式(4)、式(5)、式(7)、式(8)移動(dòng),此時(shí)種群處于全局搜索階段;當(dāng)|Enew|<1 時(shí),個(gè)體根據(jù)式(9)、式(10)、式(12)移動(dòng),此時(shí)種群可以選擇多種移動(dòng)方法,從而擴(kuò)大個(gè)體在特定區(qū)域的移動(dòng)范圍,并增加對(duì)個(gè)體的利用。因此,HHO-APSA 算法可以在搜索空間中尋找到更好的解決方案。簡(jiǎn)言之,PSA 的改進(jìn)可以分為兩部分:1)引入改進(jìn)的逃逸能量函數(shù)Enew,作為探索與開(kāi)發(fā)兩部分之間的切換指標(biāo);2)引入HHO 的4 種開(kāi)發(fā)策略來(lái)改進(jìn)PSA 的局部開(kāi)發(fā)能力。HHO 開(kāi)發(fā)策略的引入可以使PSA 算法具有更強(qiáng)的局部開(kāi)發(fā)能力,并能找到更準(zhǔn)確的解決方案。算法流程圖如圖2所示。
圖2 HHO-APSA算法流程圖
文中在Matlab 2018b 環(huán)境下對(duì)HHO-APSA 算法進(jìn)行仿真測(cè)試,并與PSA、LSA 和WCA 算法進(jìn)行比較。為了避免實(shí)驗(yàn)出現(xiàn)意外結(jié)果,每個(gè)基準(zhǔn)函數(shù)的優(yōu)化過(guò)程都獨(dú)立重復(fù)10 次,并使用這10 個(gè)結(jié)果的最優(yōu)值、平均值和方差來(lái)評(píng)估HHO-APSA 算法的性能,所有算法的迭代次數(shù)均為500 次。仿真參數(shù)設(shè)置如表2 所示。
表2 仿真參數(shù)設(shè)置
文中選取了6個(gè)經(jīng)典的基準(zhǔn)函數(shù)[16]來(lái)測(cè)試HHOAPSA 算法的性能,表3 中列出了這些基準(zhǔn)函數(shù)的表達(dá)式、自變量的范圍、理論最優(yōu)值等。F1(x)為單峰基準(zhǔn)函數(shù),F(xiàn)2(x)、F3(x)為多峰基準(zhǔn)函數(shù)。F4(x)、F5(x)、F6(x)為固定維度基準(zhǔn)函數(shù)。6 個(gè)經(jīng)典基準(zhǔn)函數(shù)的基準(zhǔn)測(cè)試數(shù)據(jù)如表4 所示。
表3 基準(zhǔn)測(cè)試函數(shù)
表4 基準(zhǔn)測(cè)試數(shù)據(jù)
收斂曲線如圖3 所示。
由整個(gè)實(shí)驗(yàn)結(jié)果可以看出,PSA 的收斂速度非常快,但收斂精度很差,HHO-APSA 算法在很大程度上改善了PSA 算法的收斂精度。從圖3(a)中可以看出,對(duì)于單峰基準(zhǔn)函數(shù)F1(x),HHO-APSA 的收斂精度相比于PSA 高出約100%,迭代至60 次左右時(shí)收斂,在收斂速度方面相較于HHO 有很大的改善,這證明其具有較強(qiáng)的開(kāi)發(fā)能力,可以更準(zhǔn)確地找到單峰函數(shù)的最優(yōu)值。從圖3(b)和圖3(c)可以看出,對(duì)于多峰基準(zhǔn)函數(shù)F2(x)、F3(x),雖然收斂精度相較于HHO 有較大差異,但是HHO-APSA 算法的收斂速度遠(yuǎn)優(yōu)于HHO,在迭代至70 次左右時(shí)收斂,這是由于在迭代初期使用PSA 進(jìn)行全局探索,加快了算法的收斂速度,在迭代的中后期將衰減因子引入到逃逸能量函數(shù)之中,避免了算法后期陷入局部最優(yōu),使得HHO-APSA 相較于PSA 可以找到更準(zhǔn)確的解。同時(shí)表明,當(dāng)開(kāi)發(fā)能力得到極大改善時(shí),其探索能力并沒(méi)有受到過(guò)多的破壞。從圖3(d)-圖3(f)可以看出,對(duì)于固定維數(shù)的基準(zhǔn)函數(shù)F4(x)~F6(x),除F4(x)之外,HHO-APSA 算法的收斂精度相較于其他算法有較大的提升,并且收斂速度也擁有一定的優(yōu)勢(shì),大約在迭代至30~50 次之內(nèi)收斂。而且從表4 測(cè)試數(shù)據(jù)的標(biāo)準(zhǔn)差中可以看出,HHO-APSA 的穩(wěn)定性遠(yuǎn)高于PSA。
圖3 測(cè)試函數(shù)尋優(yōu)收斂曲線
為了解決PSA 算法局部開(kāi)發(fā)能力的不足,即收斂精度過(guò)低的問(wèn)題,文中提出了一種基于哈里斯鷹優(yōu)化的自適應(yīng)光子搜索算法,即HHO-APSA,其中改進(jìn)涉及到兩個(gè)方面:1)將HHO 的4 種開(kāi)發(fā)策略引入到PSA 中;2)提出了一種新的逃逸能量函數(shù)Enew。為了驗(yàn)證HHO-APSA 的優(yōu)化能力,文中使用6 個(gè)經(jīng)典的基準(zhǔn)測(cè)試函數(shù)對(duì)其進(jìn)行測(cè)試,并將實(shí)驗(yàn)結(jié)果與PSA、HHO、LSA 和WCA 算法進(jìn)行了比較。實(shí)驗(yàn)結(jié)果表明,相較于PSA,HHO-APSA 算法在保持探索能力的同時(shí)極大地提高了開(kāi)發(fā)效率,這表明HHO 的4 種開(kāi)發(fā)策略對(duì)HHO-APSA 產(chǎn)生了巨大的影響。在大多數(shù)的測(cè)試結(jié)果中,HHO-APSA 算法的收斂速度都優(yōu)于HHO 算法。下一步的研究方向是將HHOAPSA 算法應(yīng)用到無(wú)線傳感器網(wǎng)絡(luò)的優(yōu)化之中。