朱群鋒,王 璐,汪 超
(安徽工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 馬鞍山 243002)
優(yōu)化問(wèn)題是指在滿足一定條件下,在眾多方案或參數(shù)值中尋找最優(yōu)方案或參數(shù)值,以使得某個(gè)或多個(gè)功能指標(biāo)達(dá)到最優(yōu),或使系統(tǒng)的某些性能指標(biāo)達(dá)到最大值或最小值[1]。
受到人類智能、生物群體社會(huì)性或自然現(xiàn)象規(guī)律的啟發(fā),人們發(fā)明了很多用于處理優(yōu)化問(wèn)題的智能優(yōu)化算法,其中模仿自然界生物進(jìn)化機(jī)制的遺傳算法(GA)[2],通過(guò)群體內(nèi)個(gè)體間的合作和競(jìng)爭(zhēng)來(lái)優(yōu)化搜索的差分進(jìn)化算法(DE)[3],模擬生物免疫系統(tǒng)學(xué)習(xí)和認(rèn)知功能的免疫算法(IA)[4],模擬蟻群集體尋徑行為的蟻群算法(ACO)[5],源于固體物質(zhì)退火過(guò)程的模擬退火算法(SA)[6]等。
2019年,Jain等[7]從飛鼠覓食搜尋過(guò)程的基本特征中得到啟發(fā),提出飛鼠搜索方法(Squirrel Search Algorithm,簡(jiǎn)稱SSA)。算法的基本思想是將飛鼠的位置看作是求解空間中的候選解,飛鼠的位置主要分布在正常樹(shù)、橡子樹(shù)和山核桃樹(shù),分別代表一般解、次優(yōu)解和最優(yōu)解。假定森林中一般解的數(shù)量最多,只有唯一的最優(yōu)解和3個(gè)次優(yōu)解。森林中的飛鼠種群存在信息交互,最優(yōu)解引導(dǎo)次優(yōu)解和一般解,次優(yōu)解引導(dǎo)一般解。同時(shí)算法中引入了獵人和季節(jié)檢測(cè)的機(jī)制。當(dāng)飛鼠在森林樹(shù)木搜索過(guò)程中覺(jué)察到周圍有獵人出沒(méi),則會(huì)隨機(jī)轉(zhuǎn)移到附近一個(gè)安全的位置。此外通過(guò)季節(jié)監(jiān)測(cè)常數(shù)檢測(cè)季節(jié)的變化,當(dāng)冬季結(jié)束時(shí),位于普通樹(shù)的飛鼠即一般解會(huì)更活躍,為了更好地找尋食物,會(huì)基于飛行進(jìn)行重新定位。這個(gè)過(guò)程一直循環(huán)往復(fù),直到滿足迭代停止條件。SSA在多區(qū)域太陽(yáng)能、風(fēng)能綜合的熱電聯(lián)產(chǎn)經(jīng)濟(jì)調(diào)度問(wèn)題方面獲得了應(yīng)用[8]。在SSA算法中,飛鼠在覓食搜尋過(guò)程中采取固定模式,使得全局搜索、局部搜索的能力和收斂速度及精度仍然有提升的空間。
粒子群算法具有算法早期收斂數(shù)度快的特點(diǎn),但也存在著精度較低、易發(fā)散等缺點(diǎn)。優(yōu)化數(shù)學(xué)模型由慣性部分、認(rèn)知部分和社會(huì)部分3部分組成[9]。其中,慣性部分中加入合適的慣性權(quán)重能有效兼顧算法的全局搜索和局部搜索能力;認(rèn)知部分和社會(huì)部分中引入合適的學(xué)習(xí)因子可有效提高算法收斂速度和跳出局部最優(yōu)的能力。
為了有效避免基本SSA算法陷入局部最優(yōu)解的困境,本文提出了一種基于粒子群算法策略改進(jìn)的飛鼠優(yōu)化算法,所提的算法在以下兩個(gè)方面作了改進(jìn):
(1)受粒子群算法策略的啟發(fā),基于社會(huì)部分設(shè)計(jì)了一種新的飛鼠個(gè)體位置更新公式,在更新公式中加入了慣性權(quán)重和學(xué)習(xí)因子,可平衡SSA算法的全局探索和局部開(kāi)發(fā)能力,同時(shí)加快了算法的收斂速度。
(2)加入概率判斷函數(shù),抑制算法的過(guò)早收斂,提高算法的密集搜索能力,進(jìn)一步平衡SSA算法的全局探索和局部開(kāi)發(fā)能力。
通過(guò)12個(gè)基準(zhǔn)函數(shù)測(cè)試,比較了本文算法與其他5個(gè)常用智能優(yōu)化算法的計(jì)算結(jié)果,驗(yàn)證了本文算法的有效性。
基于粒子群算法策略改進(jìn)的飛鼠優(yōu)化算法有以下6個(gè)步驟:
(1)假設(shè)飛鼠個(gè)體數(shù)目為N和最大進(jìn)化代數(shù)為Tmax。N個(gè)個(gè)體隨機(jī)更新他們的位置,具體計(jì)算如下:
SFi=SFL+rand(1,D)×(SFU-SFL)(i=1,2,···,N)
(1)
式中:SFi表示第i個(gè)體更新的位置;D表示該飛鼠所在空間的維數(shù);SFU表示搜索空間的上界;SFL表示搜索空間的下界。
(2)計(jì)算各個(gè)飛鼠位置對(duì)應(yīng)的適應(yīng)度,并根據(jù)適應(yīng)度大小對(duì)飛鼠所在的位置進(jìn)行排序,最優(yōu)的為山核桃樹(shù),次于最優(yōu)的3個(gè)飛鼠的位置為橡子樹(shù),剩下的飛鼠位置位于正常樹(shù)。
(3)飛鼠進(jìn)行覓食搜尋階段,該覓食的過(guò)程可能出現(xiàn)3種情況。
第一種情況為橡子樹(shù)上的飛鼠向山核桃樹(shù)移動(dòng)。
(2)
如果r1>Pdp,表示沒(méi)有獵人出現(xiàn),飛鼠隨機(jī)轉(zhuǎn)移到附近一個(gè)安全的位置;如果r1≤Pdp,表示獵人出現(xiàn),飛鼠被迫縮小范圍,它們的位置重新隨機(jī)定位。
第二種情況為正常樹(shù)上的飛鼠向山核桃樹(shù)移動(dòng)。
(3)
第三種情況為正常樹(shù)上的飛鼠向橡子樹(shù)移動(dòng)。
(4)
式中:r3為0到1之間的隨機(jī)數(shù);r4為0到1之間的隨機(jī)數(shù),其中w為0.8,c1=c2=1.494 45。
R=Nh/(N-4)
(5)
式中:Nh表示正常樹(shù)上的飛鼠飛往山核桃樹(shù)上的數(shù)量;N-4表示正常樹(shù)上飛鼠的數(shù)量;經(jīng)過(guò)多次算法測(cè)試,R=0.45時(shí)算法性能較好。
(4)與第2個(gè)步驟相同。
(6)
(7)
當(dāng)季節(jié)轉(zhuǎn)換為非冬季時(shí),位于正常樹(shù)上的飛鼠即一般解會(huì)更活躍,為了更好地找尋食物,會(huì)基于Le′υy飛行進(jìn)行重新定位,依照公式(8)更新自己的位置。
(8)
Le′υy是一種隨機(jī)分布,如公式(9)。
(9)
式中:β是常數(shù),取1.5;σ通過(guò)公式(10)計(jì)算。
(10)
式中:Γ(x)=(x-1)!.
(6)重復(fù)上述步驟直至進(jìn)化代數(shù)大于Tmax。
本文選取12個(gè)國(guó)際常用優(yōu)化測(cè)試函數(shù)作為測(cè)試集,包含4個(gè)單峰測(cè)試函數(shù)F1、F2、F3和F4,4個(gè)多峰函F5、F6、F7和F8以及4個(gè)固定維度下的復(fù)雜多峰函數(shù)F9、F10、F11和F12。單峰測(cè)試函數(shù)如表1所示。優(yōu)化算法對(duì)比方面,本文選取了原始的飛鼠搜索算法(SSA)、標(biāo)準(zhǔn)的粒子群算法(PSO)、離子運(yùn)動(dòng)算法(IMO)、蝗蟲(chóng)優(yōu)化算法(GOA)和差分進(jìn)化算法(DE)進(jìn)行比較。
為了體現(xiàn)公正性,每一種算法均在同一個(gè)實(shí)驗(yàn)環(huán)境中測(cè)試;本文所用編程軟件為MATLAB R2017 a,其計(jì)算機(jī)配置為Windows 10系統(tǒng),CPU為Intel(R) Core(TM)i5-4258U CPU@2.4 GHz,優(yōu)化算法中的共同參數(shù)為:種群規(guī)模N均為50,此外,每個(gè)優(yōu)化算法均對(duì)測(cè)試函數(shù)做30次獨(dú)立運(yùn)行。
傳統(tǒng)的性能評(píng)價(jià)對(duì)比中,優(yōu)化算法最后的收斂平均值和相應(yīng)的方差是衡量?jī)?yōu)化算法性能的一個(gè)基本指標(biāo),前者表示算法的收斂精度值,后者表示算法的穩(wěn)定性,二者數(shù)值越小,算法性能越好。
在高維度50的情況下,單峰測(cè)試函數(shù)的平均收斂值(最優(yōu)結(jié)果的30次平均值減去理論最優(yōu)值)和方差,如表2所示。從表2可以看出,單峰函數(shù)F1、F2、F3、F4的平均收斂值和方差都優(yōu)于其他5個(gè)優(yōu)化算法。
表1 單峰測(cè)試函數(shù)
表2 單峰測(cè)試函數(shù)計(jì)算結(jié)果統(tǒng)計(jì)表
圖1 50維單峰測(cè)試函數(shù)的迭代曲線
為分析各個(gè)算法的收斂情況,50維度下優(yōu)化算法的計(jì)算迭代曲線圖如圖1所示。其中橫坐標(biāo)代表迭代次數(shù),縱坐標(biāo)代表函優(yōu)差(目標(biāo)函數(shù)值與理論最優(yōu)值之差)。從圖1可以看出,本文算法的收斂速度、收斂精度和收斂穩(wěn)定性優(yōu)于其它算法,尤其在測(cè)試函數(shù)F1、F3和F4上較為明顯,驗(yàn)證了本文算法的有效性。
為了進(jìn)一步考察本文算法的性能,4個(gè)50維度和4個(gè)固定維度的復(fù)雜多峰測(cè)試函數(shù)如表3所示。4個(gè)固定維度函數(shù)F9、F10、F11和F12的維度分別為3維、4維、4維和4維。多峰測(cè)試函數(shù)的平均收斂值和方差的計(jì)算結(jié)果如表4所示。從表4可以看出,8個(gè)測(cè)試函數(shù)的平均收斂值除F5外,本文算法都優(yōu)于其它算法;方差除F5、F9、F11和F12外,本文算法都優(yōu)于其它算法。
表3 復(fù)雜多峰測(cè)試函數(shù)
表4 復(fù)雜多峰測(cè)試函數(shù)計(jì)算結(jié)果統(tǒng)計(jì)表
圖2 復(fù)雜多峰測(cè)試函數(shù)的迭代曲線
8個(gè)復(fù)雜多峰測(cè)試函數(shù)的計(jì)算迭代曲線圖如圖2所示。從圖2可以看出,本文算法的計(jì)算結(jié)果從整體性能上優(yōu)于其它算法。相較于之前的飛鼠優(yōu)化算法,本文改進(jìn)算法在收斂速度、收斂精度和收斂穩(wěn)定性方面都有明顯的提升,驗(yàn)證了本文改進(jìn)算法的有效性。
針對(duì)飛鼠優(yōu)化算法的不足,本文提出一種基于粒子群算法策略改進(jìn)的飛鼠優(yōu)化算法。基于12個(gè)基準(zhǔn)測(cè)試函數(shù),計(jì)算結(jié)果顯示了該改進(jìn)算法在收斂速度、收斂精度和收斂穩(wěn)定性方面均有提升。此外,本文也存在不足之處,只是簡(jiǎn)單的引入了粒子群算法策略的思想,沒(méi)有對(duì)權(quán)重和學(xué)習(xí)因子的取值對(duì)算法優(yōu)化性能的影響進(jìn)行深入的討論。