胡潔,王盛潔,張濤
長江大學信息與數學學院,湖北 荊州 434023
群智能算法是一種群體迭代搜索算法,具有多樣性、魯棒性和自組織性,已廣泛應用于路徑規劃[1]、時間序列預測[2]、圖像處理[3]等領域。經典的群智能算法有蟻群算法(ant colony optimization,ACD)[4]和粒子群(particle swarm optimization,PSO)算法[5],近年來為了解決更為復雜的優化問題,相關學者提出了探路者算法(path finder algorithm,PFA)[6]、樽海鞘群算法(salp swarm algorithm,SSA)[7]、鷹棲息優化(eagle perching optimization,EPO)算法[8]等新型群智能算法。這些群智能算法也存在收斂速度慢、易陷入局部最優的缺陷,對此相關學者已經做出了一些改進,如自適應調優、混合算法等[9]。自適應調優是指在算法迭代過程中,根據所得數據特征自動調整算法參數。王倩和李風軍[10]針對自適應遺傳算法對較優個體作用不大的情況,引入四分位數間距IQR,自適應調整交叉和變異概率,從而使算法更好的擺脫局部收斂;CHEN等[11]在鯨魚優化算法中采用雙自適應權重策略,將慣性權重表示為局部最優度的非線性函數,以此改進算法的全局搜索和局部搜索能力;LI等[12]提出一種增強的自適應差分進化算法,根據適應度為每個個體匹配交叉率并排序,更好地維持了種群多樣性。混合算法則是充分利用2種或多種算法的優勢優化單一算法的性能。NGUYEN-VAN等[13]將差分進化和共生有機體搜索相結合,用于多頻率約束下的桁架結構尺寸和形狀優化;ALWATEER等[14]使用鯨魚優化算法作為特征選擇技術最小化特征數量,并用Na?ve貝葉斯分類器實時分類,這一方法能夠在較少的時間內處理龐大的醫療數據,且數據準確率更高;JIA等[15]提出了一種基于混合蚱蜢優化算法和最小交叉熵算法的衛星圖像分割方法。
EPO 算法模擬了鷹在大自然中棲息的生物特性,在全局范圍內隨機采樣,利用目標函數找到采樣點中的最優解,之后將搜索范圍縮小,在這個最優解附近進行二次采樣,迭代這一過程,執行全局搜索到局部搜索的轉變。算法原理簡單、易于實現,已被用來解決懸臂梁設計、三桿桁架設計、齒輪系設計等約束問題,但在解決高維問題時,收斂精度低且易陷入局部最優。在上述成果的啟發下,筆者提出了一種混合改進的鷹棲息優化(hybrid improved eagle perching optimization,HIEPO)算法:首先,在EPO算法中引入成功率,實現了搜索范圍的自適應調整,提高收斂精度;其次,為了避免陷入局部最優,將引入成功率的EPO算法與PSO算法結合以實現雙重循環優化。
在EPO算法中,每只鷹的初始位置隨機生成,使種群在搜索空間內均勻分布,有利于算法尋優。EPO算法的搜索范圍更新如下:
s=s*eta
(1)
式中:s是搜索范圍變量,實現算法在全局搜索和局部搜索之間的轉變;eta是收縮變量,eta∈(0,1)。
每只鷹的位置更新如下:
(2)

在EPO算法中,收縮變量eta直接影響搜索范圍變量,是算法由全局搜索到局部搜索轉變的關鍵,筆者引入成功率自適應調整eta,使這一轉變更加有效,從而提高算法的收斂精度。另外,利用PSO算法全局搜索能力強的優點,將引入成功率的EPO算法和PSO算法串行結合達到全面精細搜索,改善算法易于陷入局部最優的缺陷。
在最小化問題中,成功率rs[16]是指適應值減小的鷹的數目cs占總數c的百分比,能夠反映群體的尋優狀態,計算公式如下:
(3)
筆者將成功率作為算法的反饋參數,使收縮變量隨成功率的變化而自適應調整:
eta=(etamax-etamin)*rs+etamin
(4)
在搜索過程中,成功率是不斷變化的,eta與成功率rs呈正相關。成功率高反映出鷹種群的適應值偏大,eta也偏大,此時搜索范圍變量緩慢減小,鷹種群適應值緩慢減小向最優區域靠近,全局搜索能力強;成功率低則表明鷹種群的適應值在最優點附近,eta偏小,搜索范圍變量減小較快,鷹種群適應值在最優區域振蕩,局部搜索能力強。成功率rs對eta的改進有效實現了算法由全局搜索到局部搜索的自適應轉變,有利于提高算法的收斂精度。
PSO算法[17]的基本概念源于鳥類的覓食行為,當粒子群在整個搜索空間移動時,粒子速度的動態調整由自身經驗和其他粒子經驗共同實現,個體之間協作,有利于維護種群多樣性。
粒子更新公式[18]如下:


(5)
(6)

這里的慣性權重w采用基于S型函數的更新策略[19],公式如下:
(7)
式中:t為當前迭代次數;tmax為最大迭代次數。
將PSO算法與引入成功率的EPO算法串行結合。隨機初始化種群,根據標準測試函數計算個體適應值,比較得出初始全局最優xmin;用引入成功率的EPO算法迭代u次后,更新個體最優解及全局最優解;將該組解執行PSO算法操作,同樣迭代u次后,更新全局最優解;執行下一次循環操作。子迭代次數u和循環次數l滿足(l+1)*2u=tmax,當達到最大迭代次數500時結束算法。迭代過程中,個體在全局范圍搜索時,距最優點較遠,執行EPO算法操作縮小搜索范圍,所有個體緩慢向最優點靠近,增強算法的局部搜索能力;而個體在局部區域振蕩時,執行PSO算法操作跳出局部最優,增強算法的全局搜索能力。改進后算法充分利用自適應優勢雙重循環搜索,尋優性能顯著提高。
混合改進的鷹棲息優化算法的具體流程如圖1所示。

圖1 混合改進的的鷹棲息優化算法流程圖
HIEPO算法的實現步驟如下:
步驟1 初始化算法參數,包括搜索范圍變量、收縮變量、成功數目、迭代次數;
步驟2 在搜索范圍內隨機初始化種群并計算適應值,比較找出全局最優值;
步驟3 根據式(2)更新種群及適應值,式(3)計算種群成功率;
步驟4 根據式(4)和(1)更新收縮變量和搜索范圍變量;
步驟5 迭代u次后,執行步驟6,否則返回步驟3;
步驟6 通過式(5)和(6)對種群進行PSO操作;
步驟7 同樣迭代u次后,執行步驟8,否則返回步驟6;
步驟8 當達到最大迭代次數時,停止;否則,轉至步驟3繼續搜索。
為驗證算法的有效性,這里用HIEPO算法和HEPO算法(混合PSO算法的EPO算法)、IEPO算法(引入成功率的EPO算法)、EPO算法、PSO算法及PFA算法求解3種標準測試函數:單峰(f1~f4),多峰(f5~f8),和定維多峰函數(f9~f12),函數信息如表1所示。所有算法獨立運行30次求平均值,種群數設置為200,最大迭代次數設置為500。涉及代碼均采用MATLAB R2018b軟件編寫,編譯運行的PC機參數為:64位Windows 10操作系統,Intel(R)Core(TM)i5-8250U CPU 1.80GHz、8.00GB內存。

表1 標準測試函數
將求解得到的平均值(Ave)、標準差(Std)進行比較,結果如表2中所示(表中各函數Ave和 Std的最佳結果已標紅)。在表2中,求解單峰函數時,平均值反映出IEPO算法對f1、f2和f4的求解結果較EPO算法有一定改進,HEPO算法求解f1、f2的收斂精度明顯提高,而HIEPO算法對所有函數求解結果的改進更加顯著,且得到的標準差更小。求解多峰函數時,f5和f8的結果表明,只有HIEPO算法和PSO算法一樣能夠收斂到全局最優;求解f6時,HIEPO算法較IEPO算法和HEPO算法均有所改進;求解f7時,所有算法的平均值和標準差都沒有達到理論最優值。在定維多峰函數f9~f12的求解上,HIEPO算法、HEPO算法、IEPO算法、EPO算法和PFA都收斂到最優解,PSO算法則陷入局部最優。總體來說,IEPO算法只在求解單峰函數時效果較好,HEPO算法在部分函數上優勢明顯,而HIEPO算法求解3種標準測試函數得到的平均值和標準差小于其他算法,表明HIEPO算法尋優能力強更具有穩定性。

表2 求解結果
為了直觀地比較算法的收斂速度,從表1中選出4個函數(f1,f2,f4,f6)繪制收斂曲線圖,如圖2所示。整體上,IEPO算法的收斂速度最慢,HEPO算法較快,而HIEPO算法較兩者有所提升,收斂速度僅慢于PSO算法;而在求解f2和f6時EPO算法無法收斂到最優值,但HIEPO算法以更少的迭代次數收斂到最優值。

圖2 函數收斂曲線圖
將HIEPO算法應用在拉伸/壓縮彈簧設計和壓力容器設計的約束優化問題中[20],并與HEPO算法、IEPO算法、PFA[6]、EO算法[21]、SMA[22]、HHO算法[23]等6種新算法進行對比分析,檢驗算法在解決實際工程問題時的性能。
拉伸/壓縮彈簧設計是測試算法性能中經典的約束優化問題。求解滿足剪應力、喘振頻率和最小撓度等約束的最小重量,設計問題的變量包括直徑(d)、平均線圈直徑(D)和有效線圈數(P)。問題模型如下:
(8)
各算法對拉伸/壓縮彈簧設計問題的求解結果如表3所示,可以看出,HIEPO算法求解得到的彈簧重量最輕,比EPO算法和PSO算法效果更好。

表3 拉伸/壓縮彈簧設計問題求解結果
另一個經典的約束優化問題是壓力容器設計問題,目的是最小化設計總成本,變量包括殼體厚度(Ts)、頭部厚度(Th)、內半徑(R)和截面長度(L)。問題模型如下:
(9)
各算法對壓力容器設計問題的求解結果如表4所示,可以看出,HIEPO算法的設計總成本低于其他算法,尋優效果最好。

表4 壓力容器設計問題比較結果
針對EPO算法收斂精度低、易陷入局部最優的缺陷,引入成功率自適應調整搜索范圍參數,使全局搜索和局部搜索間的轉變更加有效,并創新性地將PSO算法與之串行結合,實現全面精細搜索,提出了一種混合改進的鷹棲息優化(HIEPO)算法。求解12個標準測試函數和2個約束優化問題的結果表明,HIEPO算法在收斂精度和避免局部最優方面均優于HEPO、IEPO、EPO、PSO和PFA等算法,且收斂速度有所提升,尋優性能良好。