胡潔,王盛潔,張濤
長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023
群智能算法是一種群體迭代搜索算法,具有多樣性、魯棒性和自組織性,已廣泛應(yīng)用于路徑規(guī)劃[1]、時(shí)間序列預(yù)測[2]、圖像處理[3]等領(lǐng)域。經(jīng)典的群智能算法有蟻群算法(ant colony optimization,ACD)[4]和粒子群(particle swarm optimization,PSO)算法[5],近年來為了解決更為復(fù)雜的優(yōu)化問題,相關(guān)學(xué)者提出了探路者算法(path finder algorithm,PFA)[6]、樽海鞘群算法(salp swarm algorithm,SSA)[7]、鷹棲息優(yōu)化(eagle perching optimization,EPO)算法[8]等新型群智能算法。這些群智能算法也存在收斂速度慢、易陷入局部最優(yōu)的缺陷,對此相關(guān)學(xué)者已經(jīng)做出了一些改進(jìn),如自適應(yīng)調(diào)優(yōu)、混合算法等[9]。自適應(yīng)調(diào)優(yōu)是指在算法迭代過程中,根據(jù)所得數(shù)據(jù)特征自動調(diào)整算法參數(shù)。王倩和李風(fēng)軍[10]針對自適應(yīng)遺傳算法對較優(yōu)個(gè)體作用不大的情況,引入四分位數(shù)間距IQR,自適應(yīng)調(diào)整交叉和變異概率,從而使算法更好的擺脫局部收斂;CHEN等[11]在鯨魚優(yōu)化算法中采用雙自適應(yīng)權(quán)重策略,將慣性權(quán)重表示為局部最優(yōu)度的非線性函數(shù),以此改進(jìn)算法的全局搜索和局部搜索能力;LI等[12]提出一種增強(qiáng)的自適應(yīng)差分進(jìn)化算法,根據(jù)適應(yīng)度為每個(gè)個(gè)體匹配交叉率并排序,更好地維持了種群多樣性?;旌纤惴▌t是充分利用2種或多種算法的優(yōu)勢優(yōu)化單一算法的性能。NGUYEN-VAN等[13]將差分進(jìn)化和共生有機(jī)體搜索相結(jié)合,用于多頻率約束下的桁架結(jié)構(gòu)尺寸和形狀優(yōu)化;ALWATEER等[14]使用鯨魚優(yōu)化算法作為特征選擇技術(shù)最小化特征數(shù)量,并用Na?ve貝葉斯分類器實(shí)時(shí)分類,這一方法能夠在較少的時(shí)間內(nèi)處理龐大的醫(yī)療數(shù)據(jù),且數(shù)據(jù)準(zhǔn)確率更高;JIA等[15]提出了一種基于混合蚱蜢優(yōu)化算法和最小交叉熵算法的衛(wèi)星圖像分割方法。
EPO 算法模擬了鷹在大自然中棲息的生物特性,在全局范圍內(nèi)隨機(jī)采樣,利用目標(biāo)函數(shù)找到采樣點(diǎn)中的最優(yōu)解,之后將搜索范圍縮小,在這個(gè)最優(yōu)解附近進(jìn)行二次采樣,迭代這一過程,執(zhí)行全局搜索到局部搜索的轉(zhuǎn)變。算法原理簡單、易于實(shí)現(xiàn),已被用來解決懸臂梁設(shè)計(jì)、三桿桁架設(shè)計(jì)、齒輪系設(shè)計(jì)等約束問題,但在解決高維問題時(shí),收斂精度低且易陷入局部最優(yōu)。在上述成果的啟發(fā)下,筆者提出了一種混合改進(jìn)的鷹棲息優(yōu)化(hybrid improved eagle perching optimization,HIEPO)算法:首先,在EPO算法中引入成功率,實(shí)現(xiàn)了搜索范圍的自適應(yīng)調(diào)整,提高收斂精度;其次,為了避免陷入局部最優(yōu),將引入成功率的EPO算法與PSO算法結(jié)合以實(shí)現(xiàn)雙重循環(huán)優(yōu)化。
在EPO算法中,每只鷹的初始位置隨機(jī)生成,使種群在搜索空間內(nèi)均勻分布,有利于算法尋優(yōu)。EPO算法的搜索范圍更新如下:
s=s*eta
(1)
式中:s是搜索范圍變量,實(shí)現(xiàn)算法在全局搜索和局部搜索之間的轉(zhuǎn)變;eta是收縮變量,eta∈(0,1)。
每只鷹的位置更新如下:
(2)
在EPO算法中,收縮變量eta直接影響搜索范圍變量,是算法由全局搜索到局部搜索轉(zhuǎn)變的關(guān)鍵,筆者引入成功率自適應(yīng)調(diào)整eta,使這一轉(zhuǎn)變更加有效,從而提高算法的收斂精度。另外,利用PSO算法全局搜索能力強(qiáng)的優(yōu)點(diǎn),將引入成功率的EPO算法和PSO算法串行結(jié)合達(dá)到全面精細(xì)搜索,改善算法易于陷入局部最優(yōu)的缺陷。
在最小化問題中,成功率rs[16]是指適應(yīng)值減小的鷹的數(shù)目cs占總數(shù)c的百分比,能夠反映群體的尋優(yōu)狀態(tài),計(jì)算公式如下:
(3)
筆者將成功率作為算法的反饋參數(shù),使收縮變量隨成功率的變化而自適應(yīng)調(diào)整:
eta=(etamax-etamin)*rs+etamin
(4)
在搜索過程中,成功率是不斷變化的,eta與成功率rs呈正相關(guān)。成功率高反映出鷹種群的適應(yīng)值偏大,eta也偏大,此時(shí)搜索范圍變量緩慢減小,鷹種群適應(yīng)值緩慢減小向最優(yōu)區(qū)域靠近,全局搜索能力強(qiáng);成功率低則表明鷹種群的適應(yīng)值在最優(yōu)點(diǎn)附近,eta偏小,搜索范圍變量減小較快,鷹種群適應(yīng)值在最優(yōu)區(qū)域振蕩,局部搜索能力強(qiáng)。成功率rs對eta的改進(jìn)有效實(shí)現(xiàn)了算法由全局搜索到局部搜索的自適應(yīng)轉(zhuǎn)變,有利于提高算法的收斂精度。
PSO算法[17]的基本概念源于鳥類的覓食行為,當(dāng)粒子群在整個(gè)搜索空間移動時(shí),粒子速度的動態(tài)調(diào)整由自身經(jīng)驗(yàn)和其他粒子經(jīng)驗(yàn)共同實(shí)現(xiàn),個(gè)體之間協(xié)作,有利于維護(hù)種群多樣性。
粒子更新公式[18]如下:
(5)
(6)
這里的慣性權(quán)重w采用基于S型函數(shù)的更新策略[19],公式如下:
(7)
式中:t為當(dāng)前迭代次數(shù);tmax為最大迭代次數(shù)。
將PSO算法與引入成功率的EPO算法串行結(jié)合。隨機(jī)初始化種群,根據(jù)標(biāo)準(zhǔn)測試函數(shù)計(jì)算個(gè)體適應(yīng)值,比較得出初始全局最優(yōu)xmin;用引入成功率的EPO算法迭代u次后,更新個(gè)體最優(yōu)解及全局最優(yōu)解;將該組解執(zhí)行PSO算法操作,同樣迭代u次后,更新全局最優(yōu)解;執(zhí)行下一次循環(huán)操作。子迭代次數(shù)u和循環(huán)次數(shù)l滿足(l+1)*2u=tmax,當(dāng)達(dá)到最大迭代次數(shù)500時(shí)結(jié)束算法。迭代過程中,個(gè)體在全局范圍搜索時(shí),距最優(yōu)點(diǎn)較遠(yuǎn),執(zhí)行EPO算法操作縮小搜索范圍,所有個(gè)體緩慢向最優(yōu)點(diǎn)靠近,增強(qiáng)算法的局部搜索能力;而個(gè)體在局部區(qū)域振蕩時(shí),執(zhí)行PSO算法操作跳出局部最優(yōu),增強(qiáng)算法的全局搜索能力。改進(jìn)后算法充分利用自適應(yīng)優(yōu)勢雙重循環(huán)搜索,尋優(yōu)性能顯著提高。
混合改進(jìn)的鷹棲息優(yōu)化算法的具體流程如圖1所示。
圖1 混合改進(jìn)的的鷹棲息優(yōu)化算法流程圖
HIEPO算法的實(shí)現(xiàn)步驟如下:
步驟1 初始化算法參數(shù),包括搜索范圍變量、收縮變量、成功數(shù)目、迭代次數(shù);
步驟2 在搜索范圍內(nèi)隨機(jī)初始化種群并計(jì)算適應(yīng)值,比較找出全局最優(yōu)值;
步驟3 根據(jù)式(2)更新種群及適應(yīng)值,式(3)計(jì)算種群成功率;
步驟4 根據(jù)式(4)和(1)更新收縮變量和搜索范圍變量;
步驟5 迭代u次后,執(zhí)行步驟6,否則返回步驟3;
步驟6 通過式(5)和(6)對種群進(jìn)行PSO操作;
步驟7 同樣迭代u次后,執(zhí)行步驟8,否則返回步驟6;
步驟8 當(dāng)達(dá)到最大迭代次數(shù)時(shí),停止;否則,轉(zhuǎn)至步驟3繼續(xù)搜索。
為驗(yàn)證算法的有效性,這里用HIEPO算法和HEPO算法(混合PSO算法的EPO算法)、IEPO算法(引入成功率的EPO算法)、EPO算法、PSO算法及PFA算法求解3種標(biāo)準(zhǔn)測試函數(shù):單峰(f1~f4),多峰(f5~f8),和定維多峰函數(shù)(f9~f12),函數(shù)信息如表1所示。所有算法獨(dú)立運(yùn)行30次求平均值,種群數(shù)設(shè)置為200,最大迭代次數(shù)設(shè)置為500。涉及代碼均采用MATLAB R2018b軟件編寫,編譯運(yùn)行的PC機(jī)參數(shù)為:64位Windows 10操作系統(tǒng),Intel(R)Core(TM)i5-8250U CPU 1.80GHz、8.00GB內(nèi)存。
表1 標(biāo)準(zhǔn)測試函數(shù)
將求解得到的平均值(Ave)、標(biāo)準(zhǔn)差(Std)進(jìn)行比較,結(jié)果如表2中所示(表中各函數(shù)Ave和 Std的最佳結(jié)果已標(biāo)紅)。在表2中,求解單峰函數(shù)時(shí),平均值反映出IEPO算法對f1、f2和f4的求解結(jié)果較EPO算法有一定改進(jìn),HEPO算法求解f1、f2的收斂精度明顯提高,而HIEPO算法對所有函數(shù)求解結(jié)果的改進(jìn)更加顯著,且得到的標(biāo)準(zhǔn)差更小。求解多峰函數(shù)時(shí),f5和f8的結(jié)果表明,只有HIEPO算法和PSO算法一樣能夠收斂到全局最優(yōu);求解f6時(shí),HIEPO算法較IEPO算法和HEPO算法均有所改進(jìn);求解f7時(shí),所有算法的平均值和標(biāo)準(zhǔn)差都沒有達(dá)到理論最優(yōu)值。在定維多峰函數(shù)f9~f12的求解上,HIEPO算法、HEPO算法、IEPO算法、EPO算法和PFA都收斂到最優(yōu)解,PSO算法則陷入局部最優(yōu)??傮w來說,IEPO算法只在求解單峰函數(shù)時(shí)效果較好,HEPO算法在部分函數(shù)上優(yōu)勢明顯,而HIEPO算法求解3種標(biāo)準(zhǔn)測試函數(shù)得到的平均值和標(biāo)準(zhǔn)差小于其他算法,表明HIEPO算法尋優(yōu)能力強(qiáng)更具有穩(wěn)定性。
表2 求解結(jié)果
為了直觀地比較算法的收斂速度,從表1中選出4個(gè)函數(shù)(f1,f2,f4,f6)繪制收斂曲線圖,如圖2所示。整體上,IEPO算法的收斂速度最慢,HEPO算法較快,而HIEPO算法較兩者有所提升,收斂速度僅慢于PSO算法;而在求解f2和f6時(shí)EPO算法無法收斂到最優(yōu)值,但HIEPO算法以更少的迭代次數(shù)收斂到最優(yōu)值。
圖2 函數(shù)收斂曲線圖
將HIEPO算法應(yīng)用在拉伸/壓縮彈簧設(shè)計(jì)和壓力容器設(shè)計(jì)的約束優(yōu)化問題中[20],并與HEPO算法、IEPO算法、PFA[6]、EO算法[21]、SMA[22]、HHO算法[23]等6種新算法進(jìn)行對比分析,檢驗(yàn)算法在解決實(shí)際工程問題時(shí)的性能。
拉伸/壓縮彈簧設(shè)計(jì)是測試算法性能中經(jīng)典的約束優(yōu)化問題。求解滿足剪應(yīng)力、喘振頻率和最小撓度等約束的最小重量,設(shè)計(jì)問題的變量包括直徑(d)、平均線圈直徑(D)和有效線圈數(shù)(P)。問題模型如下:
(8)
各算法對拉伸/壓縮彈簧設(shè)計(jì)問題的求解結(jié)果如表3所示,可以看出,HIEPO算法求解得到的彈簧重量最輕,比EPO算法和PSO算法效果更好。
表3 拉伸/壓縮彈簧設(shè)計(jì)問題求解結(jié)果
另一個(gè)經(jīng)典的約束優(yōu)化問題是壓力容器設(shè)計(jì)問題,目的是最小化設(shè)計(jì)總成本,變量包括殼體厚度(Ts)、頭部厚度(Th)、內(nèi)半徑(R)和截面長度(L)。問題模型如下:
(9)
各算法對壓力容器設(shè)計(jì)問題的求解結(jié)果如表4所示,可以看出,HIEPO算法的設(shè)計(jì)總成本低于其他算法,尋優(yōu)效果最好。
表4 壓力容器設(shè)計(jì)問題比較結(jié)果
針對EPO算法收斂精度低、易陷入局部最優(yōu)的缺陷,引入成功率自適應(yīng)調(diào)整搜索范圍參數(shù),使全局搜索和局部搜索間的轉(zhuǎn)變更加有效,并創(chuàng)新性地將PSO算法與之串行結(jié)合,實(shí)現(xiàn)全面精細(xì)搜索,提出了一種混合改進(jìn)的鷹棲息優(yōu)化(HIEPO)算法。求解12個(gè)標(biāo)準(zhǔn)測試函數(shù)和2個(gè)約束優(yōu)化問題的結(jié)果表明,HIEPO算法在收斂精度和避免局部最優(yōu)方面均優(yōu)于HEPO、IEPO、EPO、PSO和PFA等算法,且收斂速度有所提升,尋優(yōu)性能良好。