收稿日期:2021-12-01;修回日期:2022-01-10
基金項目:國家自然科學基金資助項目(61662005);廣西自然科學基金資助項目(2021JJA170094)
作者簡介:馮愛武(1996-),男,山西臨汾人,碩士研究生,主要研究方向為計算智能;王勇(1963-),男(通信作者),廣西南寧人,教授,碩導,博士,主要研究方向為計算智能(wangygxnn@sina.com);付小朋(1996-),男,重慶人,碩士研究生,主要研究方向為計算智能.
摘 要:針對烏鴉搜索算法(CSA)的不足,提出采用多模式飛行的烏鴉搜索算法(MFCSA)。算法基于覓食能力的強弱,將群體分成覓食能力較強和較弱兩個組,覓食能力較強者采用尾隨跟蹤當前群體最優目標策略,在群體信息指引下飛到群體當前最優位置附近開展搜索活動,增強了算法的局部開發能力; 覓食能力較弱者采用觀察和學習強者的覓食方法、遇到危險迅速飛離兩種策略,前者可提升算法的全局探索能力,后者可保持種群的多樣性。通過15個基準測試函數和兩個工程應用問題的數值實驗仿真結果表明,MFCSA在優化精度、收斂速度等方面有更好的表現,增強了規避陷入局部最優的能力,穩定性更好。
關鍵詞:烏鴉搜索算法; 多模式飛行; 工程約束問題; 智能計算
中圖分類號:TP301.6"" 文獻標志碼:A
文章編號:1001-3695(2022)06-019-1710-08
doi:10.19734/j.issn.1001-3695.2021.12.0607
Crow search algorithm using multi-mode flight
Feng Aiwu1, Wang Yong1,2, Fu Xiaopeng1
(1.College of Artificial Intelligence, Guangxi Minzu University, Nanning 530006, China; 2.Guangxi Key Laboratory of Hybrid Computation amp; IC Design Analysis, Nanning 530006, China)
Abstract:Aiming at the shortcomings of crow search algorithm (CSA), this paper proposed a crow search algorithm using multi-mode flight (MFCSA). Based on the strength of foraging ability, the algorithm divided the population into two groups: strong and weak foraging ability. Those with strong foraging ability adopted the strategy of trailing and tracking the optimal target of the current group, and flied to the vicinity of the current optimal position of the group under the guidance of the group information to carry out search activities, which enhanced the local exploitation ability of the algorithm. Those with weaker foraging ability adopted the two strategies of observing and learning the foraging methods of the strong, and flying away quickly when encountering danger, the former could improve the global exploration ability of the algorithm, and the latter could maintain the diversity of the population. Through the numerical experiment simulation of 15 benchmark test functions and 2 engineering application problems, the results show that the MFCSA has better performance in optimization accuracy, convergence speed, etc., enhances the ability to avoid falling into the local optimum, and has better stability.
Key words:crow search algorithm; multi-mode flight; engineering constraints problem; intelligent computing
0 引言
群智能優化算法在解決復雜優化問題時能提供可靠的解決方案,自Holland[1]提出遺傳算法(GA)以來,群智能優化算法的研究越來越受到人們的重視。國內外學者在過去的30年里先后提出了粒子群優化算法(PSO) [2]、蟻群算法(ACO) [3]、人工蜂群算法(ABC)[4]、人工魚群算法(AFSA) [5]、蝙蝠算法(BA) [6]、狼群搜索算法(WSA) [7]、蜻蜓算法(DA) [8]、離子運動算法(IMO) [9]、烏鴉搜索算法(CSA) [10]、社會模擬優化算法(SMO) [11]等許多特點不一的群智能優化算法,這些優化算法為尋找復雜優化問題的解決方案提供了可靠的理論方法和技術指導。
烏鴉搜索算法(crow search algorithm,CSA)[10]是Askarzadeh于2016年提出的一種新的群智能隨機優化算法,然而,由于CSA規定烏鴉個體飛行搜索方式比較單一、采用隨機搜索的烏鴉個體數所占群體規模的比重偏大,從而導致算法搜索具有較大的盲目性,使CSA存在全局搜索能力偏弱、收斂速度慢、易陷入局部最優等不足。針對此類問題,文獻[12]利用混沌方法來調整參數以提高算法的收斂速度,增強算法的尋優能力;文獻[13]利用自適應參數來調整搜索步長,以提高個體的搜索能力;文獻[14]利用自適應權重以及混合黃金正弦與飛蛾撲火算子等混合策略提升迭代效果;文獻[15]將正弦余弦函數作為擾動參數嵌入CSA中,以提高算法的優化精度;文獻[16]利用非劣解決定因子來確定個體是采用記憶搜索模式還是鄰域搜索模式,使算法的局部搜索與全局搜索更加平衡;文獻[17]利用柯西變異來保持種群多樣性,利用自適應步長來增強個體的搜索能力;文獻[18]利用擾動項來增強個體的局部搜索能力;文獻[19]采用變因子加權學習機制和最優個體鄰代維度交叉策略來調整個體搜索,以增強算法規避陷入局部最優的能力;文獻[20]利用自適應參數來調整個體的搜索。然而,以上文獻提出的各種改進版本CSA比標準CSA在優化精度方面有所提高,但規避陷入局部最優的能力還有待增強,仍存在早熟收斂問題。針對這一問題,本文基于對現實烏鴉覓食活動形式多樣性特征的模擬,提出一種新的采用多模式飛行的烏鴉搜索算法(crow search algorithm using multi-mode flight,MFCSA):通過挖掘和利用群體信息來指導個體開展覓食(搜索)活動,進一步增強烏鴉個體的搜索效率,在保持種群多樣性的同時加快算法的全局收斂精度,提升算法的全局搜索能力。通過數值實例仿真驗證了本文算法的有效性和可行性。
1 烏鴉搜索算法
CSA基于以下基本思想:烏鴉以群居的形式生活;烏鴉能記住藏身位置;烏鴉互相之間跟蹤偷竊對方藏匿的食物;烏鴉保護其藏匿食物不被其他鳥類偷竊。設在D維搜索空間中有N只烏鴉,烏鴉i于t時刻的位置記為xi(t)=[xi,1(t),…,xi,D(t)],烏鴉i于t時刻記憶中的最好位置記為mi(t)。則CSA數學模型和基本步驟如下:
a)給定目標函數f(x),群體規模N,烏鴉飛行步長fl,最大迭代次數tmax,感知概率AP。
b)初始化種群xi(t)=[xi,1(t),…,xi,D(t)],并記mi(t)=xi(t),i=1,…,N。
c)評估每一個體的適應度值f(xi(t)), i=1,…,N。
d)烏鴉i隨機選擇烏鴉j,通過跟蹤烏鴉j來發現其食物藏匿處。烏鴉i按式(1)更新位置。
xi(t+1)=xi(t)+r1×fl×(mj(t)-xi(t)) r2≥AP
a rand positionotherwise(1)
其中:r1和r2為[0,1]的均勻隨機數;AP為被跟蹤烏鴉(烏鴉j)的感知概率(CSA在仿真實驗中取AP=0.1),i=1,…,N。
e)檢查新位置的可行性。檢查每只烏鴉新位置是否可行,若新位置是可行的,則烏鴉更新其位置;否則,烏鴉則停留在當前位置且不移動。
f)評價新位置的適應度值。
g)更新記憶。烏鴉更新其記憶如下:
mi(t+1)=xi(t+1) if f(xi(t+1)) is better than f(mi(t))
mi(t)others(2)
若烏鴉i新位置適應度值優于記憶位置適應度值,則更新其記憶位置,否則不更新。
h)重復步驟d)~g),直至滿足終止條件。若滿足終止條件,則依據適應度函數值將最優位置作為優化問題的最優解。
2 采用多模式飛行的烏鴉搜索算法(MFCSA)
分析CSA數學公式(1)和(2),式(1)表示烏鴉i尾隨跟蹤烏鴉j(想偷竊烏鴉j藏匿之食物),或者采用盲目隨機覓食行為;式(2)僅表示烏鴉i更新其記憶位置的條件,沒有涉及位置的變更。換言之,CSA規定烏鴉個體在覓食活動中只會采用跟蹤搜索(偷竊別的烏鴉藏匿之食物)和隨機搜索(食物)兩種飛行方式。然而,現實烏鴉的生活習性除了具有CSA所描述的特性之外,還具有如下特征:a)烏鴉群體中個體覓食能力有強弱之分;b)強者善于尾隨跟蹤并伺機搶奪或偷竊他方藏匿之食物;c)弱者善于跟蹤觀察和學習強者的覓食方法,遇到危險時會迅速飛離當前位置;d)烏鴉可動態改變飛行方式。基于此,結合CSA數學模型,本文提出采用多模式飛行的烏鴉搜索算法。
設在D維搜索空間中有N只烏鴉,記xi(t)=[xi,1(t),…,xi,D(t)]為烏鴉i于t時刻的位置, 記mi(t)為烏鴉i于t時刻記憶中的最好位置。
2.1 群體分為覓食能力較強組與較弱組
基于烏鴉群體中不同個體的覓食(搜索)能力有強弱之分。因此,首先依據烏鴉個體覓食(搜索)能力的強弱將群體分成覓食(搜索)能力較強組和較弱組。具體方法如下:a)將烏鴉群體按個體覓食能力的強弱(依據適應度值)排序,記烏鴉i于t時刻的覓食能力在群體中排第oi(t)位,i=1,…,N,例如oi(t)=1表示烏鴉i于t時刻的覓食能力在種群中排第1位(表示烏鴉i于t時刻的覓食能力最強,即xi(t)的適應度值最優),oi(t)=N表示烏鴉i于t時刻在種群中排第N位(表示烏鴉i于t時刻的覓食能力最弱,即xi(t)的適應度值最差);b)依覓食能力的強弱將種群分成兩個組,將排在群體前N1位的N1只烏鴉組成覓食能力較強組,其余N-N1只烏鴉組成覓食能力較弱組,記為
αi(t)=(oi(t)-1)/(N-1)(3)
AFi,j=1/(1+exp(-0.1/d(i,j)))(4)
本文分別稱αi(t)和AFi為烏鴉i于t時刻的步長因子和多模式步長。其中d(i,j)=|xi,j(t)-mbest,j(t)|表示第i只烏鴉的第j維與最優者記憶位置的第j維的距離(j=1,…,D)。式(3)表示若烏鴉i于t時刻的覓食能力最強,則oi(t)=1,從而αi(t)=0;若烏鴉i于t時刻的覓食能力最弱,則oi(t)=N,從而αi(t)=1。故覓食能力越強者,其步長因子越小。這也是為了讓適應度較好的烏鴉配備更小的步長,防止步長過大遺漏更優值。
2.2 不同組別的個體采用不同的搜索策略
a)強者善于尾隨跟蹤并伺機搶奪或偷竊他方藏匿的食物。對于xi(t)∈N1,設計其按如下公式更新位置:
xi,j(t+1)=xi,j(t)+r1×αi(t)×AFi,j×(mbest,j(t)-xi,j(t)) if r2≥AP1
mbest,j(t)+δelse
(5)
其中:mbest(t)=[mbest,1(t),…,mbest,D(t)]表示至t時刻N1中覓食能力最強者的記憶位置;r1、r2均為(0,1]中的隨機數;δ為(-ε,ε)內的隨機數,ε是一個比較小的正函數。本文在仿真實驗中取AP1為(0,0.1)中的隨機數,ε=(10t)-3。
式(5)表示:(a)能力較強組N1中的個體搜索步長由αi(t)與AFi共同控制,相比CSA固定的飛行步長,此步長結合了位置間距離因素和適應度因素,使得較強組中的烏鴉能更適應地飛到優質區域展開局部搜索,尤其是在迭代后期,避免了因固定的飛行步長而導致位置來回擾動,使搜索遲遲不能收斂到全局最優位置;(b)若r2≥AP1,xi,j(t)+r1×αi(t)×AFi,j×(mbest,j(t)-xi,j(t))表示烏鴉i(位于xi(t))正在飛往最優記憶位置mbest(t)的途中搜索,否則,mbest,j(t)+δ表示烏鴉i已經飛到mbest(t)的附近展開搜索。采用這樣的搜索策略,使得覓食能力較強者專注于優質局部區域的深度開發,提升了個體的搜索效率和搜索精度。
b)覓食能力較弱者傾向于觀察和學習強者的覓食方法,遇到危險則迅速飛離。因此,對于xi(t)∈N-N1,設計其按如下公式更新位置:
xi,j(t+1)=
wxi,j(t)+r3×fl×((mq1,j(t)-xi,j(t))-
(mq2,j(t)-xi,j(t))) if r4≥AP2
xi,j(t)+r5×fl×vi(t)else
(6)
其中:w被稱為維度決策因子,當D≤5時(D為搜索空間維數),取w=1,而當Dgt;5時,取w=(tmax-t)/tmax。該處理可以根據搜索空間維度合理調控對自身位置學習的比重,在高維優化問題中,隨著迭代次數的增加可自動縮小搜索范圍,加快算法的收斂速度。mq1(t)和mq2(t)是從覓食能力較強組N1中隨機選取的兩只烏鴉;r3、r4均為(0,1]中的隨機數,r5為[-1,1]中的隨機數;vi(t)=|f(mbest(t))|1+|f(xi(t))|,本文稱vi(t)為烏鴉i于t時刻的逃離速度絕對值。本文在仿真實驗中取AP2=0.1。
式(6)表示當r4≥AP2時,烏鴉i采用觀察和學習強者搜索策略,wxi,j(t)+r3×fl×((mq1,j(t)-xi,j(t))-(mq2,j(t)-xi,j(t)))表示烏鴉i觀察和學習強者mq1(t)和mq2(t)的覓食方法,其融合了差分進化算法思想,隨機選擇了覓食較強組的兩只烏鴉生成差分向量(如(mq1,j(t)-xi,j(t)就是一個差分向量),最后與個體向量相加生成新的子代位置向量。烏鴉受兩只烏鴉的共同吸引,利用位置差異信息可以減少種群追逐單一烏鴉后都陷入局部極值的可能性,擴大搜索范圍;選擇覓食能力較強者的目的是利用較優位置信息來指導個體開展覓食搜索活動,使得逼近最優位置的效果更加顯著。因此,算法在迭代前期,種群位置差異較大,可使算法有較強的全局搜索能力;在搜索后期,種群位置差異相對較小,算法仍可保留較強的局部搜索能力和穩定性。當r4lt;AP2時,xi,j(t)+r5×fl×vi(t)表示烏鴉i遇到危險時快速逃離當前位置。vi(t)表示位于xi(t)的烏鴉i的適應度越好(即f(xi(t))越小),其逃離速度絕對值就越大,搜索范圍相應也就越大。換言之,由于種群中并不缺乏適應度相對更好的個體(如覓食能力較強組中的個體),為了防止所有烏鴉都朝著局部最優的位置飛行,導致烏鴉集群化,致使一些區域未得到充分挖掘,需要少部分個體增加擾動項。這部分個體是從適應度相對較好(但不是最好,最好的在能力較強組)的個體中選取的,因為其中有些可能已經陷入了局部最優,這樣使之具有跳出局部最優的能力,同時也避免了標準CSA為了增加全局搜索能力而選擇盲目的隨機落位,可能會導致原有最優解沒有得以繼承,致使收斂速度較慢。
綜上所述,覓食能力較強者專注于優秀成員的局部搜索,使全局最優位置信息在較優個體間得到及時反饋,在此基礎上將其附近的微小鄰域完全開發,體現了種群最優區域下的縱深挖掘能力。覓食能力較弱者相較于前者全局搜索能力得到了一定的提升,利用位置差信息來指引搜索方向,拓展了搜索范圍,加快了搜索的收斂速度;選擇少部分可能已陷入“假最優”的較優個體作逃逸處理,提升了全局探索能力,其產生的優秀子代也為能力較強者下一次進行的局部搜索創造了條件。
覓食能力較強組與較弱組的合理劃分可平衡全局勘探與局部開發,特別是對于較為復雜的優化問題,有利于減少陷入局部最優的可能性,多樣性種群的分工和協作有利于個體各司其職,在搜索效率與搜索精度得到提升的同時,兼顧了更好的穩定性。
2.3 MFCSA流程
本文算法(MFCSA)流程如下:a)給定搜索空間維數D,目標函數f(x),種群規模N,飛行步長fl,最大迭代次數tmax,感知概率AP2;b)初始化種群xi(t),并記mi(t)=xi(t),i=1,…,N;c)評價每一個體的適應度值f(xi(t)),i=1,…,N;d)依據適應度值將種群排序,將排在前面的N1只烏鴉作為覓食能力較強組,其余的N-N1只烏鴉作為較弱組,并按式(3)(4)計算αi(t),AFi,i=1,…,N;e)覓食能力較強組按式(5)更新位置,覓食能力較弱組按式(6)更新位置;f)評價每一個體新位置的適應度值;g)按式(2)更新每一個體的記憶;h)重復步驟d)~g),直至滿足終止條件,若滿足終止條件,則依據適應度值將最優位置作為優化問題的最優解。
3 數值實驗及結果分析
3.1 仿真環境
該實驗使用MATLAB R2020a進行仿真,操作系統為Windows 10,電腦配置8 GB內存,處理器為Intel CoreTM i5-6300HQ CPU@2.30 GHz。
3.2 測試函數選取
選取15個比較典型的基準函數(表1)作為本次算法性能測試分析(都是求最小值問題),其中F1~F5為高維單峰函數,F14為高維階梯函數,F6~F13為高維多峰函數,F14為2維單峰函數,F15為2維多峰函數。
3.3 探究烏鴉類別比例對MFCSA性能的影響
將整個種群劃分成兩個類別,合適的比例劃分可以使算法達到勘探與開發的平衡,在求解問題時能兼備效率和精度。因此研究更合適的劃分比例,即轉換為探究覓食較強者N1所占種群N的比例問題,分別取占種群規模N為10%、20%、30%、50%、80%進行對比實驗,其中fl=2,AP2=0.1,每一比例的實驗均獨立運行30次,種群規模N=30,搜索維度D=30,迭代次數tmax=500。
測試函數選擇F6,其是一個具有單一最小值的高維多峰函數,最小值為-418.982D=-12569.46,因為具有很多極小值,且在(420.9687,…,420.9687)取得最優值,優化條件要求較高,很多優化算法都難以找到其全局最優值。該測試函數比較能考驗算法的全局搜索性能和局部縱深挖掘能力。
此外,還要重點考查算法的魯棒性,即每次獨立運行結果數據分布情況,穩定的數據分布對工程問題的求解提供了可行性。因而通過繪制箱線圖來刻畫30次運行結果,可反映多組連續型定量數據分布的中心位置和散布范圍。
由圖1可知,五種比例下MFCSA中位數線(紅色橫線,見電子版)均靠近全局最小值,對于半數以上數據都是接近理論值的,這說明此算法本身有較強的逃逸局部極值能力和優秀的收斂精度,算法各個策略與整體機能是有效和可行的。此外,從箱線圖的高度來看,覓食較強組占比30%與50%時數據分布是最穩定的,大部分數據都有著相接近且較高的精度;再從離群值(紅色加號)觀察,占比50%的離群值比占比30%的相對更大,其次由于較弱組全局搜索和局部搜索(局部搜索不如較強組)并存,其搜索到的優秀位置也可能成為較強組繼續展開搜索的條件,所以較強組的比例不應該太高,覓食較強組占比30%是一個不錯的選擇,可顯著地改善算法的性能。
3.4 算法對比與參數設置
為了驗證MFCSA的性能,將MFCSA與標準CSA[10]、PSO[2]以及最近發表的改進版烏鴉搜索算法[12~20]中選取的兩個優化能力比較強的SCA-CSA[15]和ICSA[19]進行性能對比分析。實驗中,所有對比算法的種群規模N=30,迭代次數tmax=500;其余參數與對應參考文獻保持一致,以保證公平性。五種算法主要參數設置如表2所示。
3.5 對比結果分析
為了避免隨機性對測試結果的影響,本文進行數值實驗測試時,每一種算法針對每一測試函數都獨立運行30次,并將每次運行得到的最優值、平均值、標準差記錄下來。這些數據指標總體上反映了算法優化能力的強弱,其中,最優值能夠體現算法的尋優精度,平均值和標準差能夠體現算法的穩定性能,得到的實驗結果如表3所示。
從最優值指標上看:a)對于高維單峰函數F1~F5,只有MFCSA能找到F1~F4這四個函數的理論最優值,由此可知精度至少領先標準CSA 150~300個數量級,排名第二的SCACSA在F1這個最簡單的單峰函數上也只不過達到了1.8E-60,具有香蕉形狀的F5由于靠近極小值位置需要經歷較大的彎路,比較影響算法收斂速度和精度,很容易陷入停滯點,MFCSA 找到F5的最優值達到了4E-2,領先第二名ICSA超過2個數量級;b)對于2維單峰函數F14,MFCSA找到F14的最優值比其他四種算法更接近理論最優值;c)對于高維多峰函數F6~F13,MFCSA能找到F6、F7、F9、F11~F13這六個函數的理論最優值,SCACSA只找到了F7、F9的理論最優值,其余算法均沒有找到這八個函數的理論最優值,除本文算法外,其余算法對于F6、F13這兩個存在強烈振蕩的測試函數都很難尋到“非0最優值”,意味著存在早熟收斂現象,MFCSA 找到F8、F10的最優值比CSA分別領先超過15和3個數量級;d)對于2維多峰函數,MFCSA找到F15的最優值比CSA超過10個數量級。MFCSA在所有測試函數中均位列第一,說明不論是針對單峰還是多峰優化問題,特別是局部最優束縛能力較強的振蕩函數,MFCSA均比其他四種算法有不錯的全局搜索能力和顯著優化精度。
從平均值和標準差指標上看,在對15個基準函數的數值實驗測試中,MFCSA相較于其他四種算法始終位列第一,說明其魯棒性和穩定性比較好,為解決未知最優解的工程優化問題提供了可靠性。
為了更直觀地對比本文五種算法各自的收斂速度,給出五種算法在求解八個有代表性的測試函數的適應度曲線對比,包括F1、F3、F5~F7、F10、F14、F15,結果如圖2所示。
從圖2可以看出,MFCSA的收斂曲線相較于其他四種算法下降的速度最快、并且均位于其他四種算法的收斂曲線圖的最下方位置;對于F1、F3、F7這三個測試函數,MFCSA的收斂曲線均到達理論最優位置,而SCACSA只有F7的收斂曲線到達理論最優位置。
以相對簡單的測試函數F1、F3為例,主要考驗的是算法的收斂速度,MFCSA在前期的梯度絕對值相對較小,說明其在前期盡可能擴大搜索范圍,在后期下降非常快,表明加強了局部搜索,能快速找到最優位置。其他算法如CSA由于整體偏于勘探,幾乎處于停滯狀態;對于F5、F6、F14可以發現本文算法出現了幾個間斷式跳躍的拐點,與此同時,CSA、SCACSA、ICSA、PSO幾乎全陷入了局部最優點,出現了早熟收斂的狀態。這說明MFCSA跳出局部最優的能力是最強的;針對F7、F10、F15的測試,MFCSA平均不到150次就達到了收斂,說明收斂速度比較快。
為研究MFCSA在不同迭代階段的種群分布狀況,選擇了2維多峰測試函數F15,此函數在(1,1)處取得全局最優值0。種群在迭代500代的過程中,記錄了第1、10、20、100代的種群分布圖,并與標準CSA進行了對比,結果如圖3~6所示。
由圖3可觀察到兩個算法開始時都趨于比較相似的分布,以證明公平性;圖4展示了至第10代,MFCSA種群中重合點較多,說明大部分個體已接近或到達最優位置,而標準CSA種群中的大部分個體仍處于聚集過程,相對來說,距最優位置仍有一段距離,表明MFCSA種群之間的信息交流更快更有效;圖5說明MFCSA到第20代時,種群中個體幾乎都到達了理論最優位置,而CSA種群中大部分個體只到達理論最優位置的附近,MFCSA明顯領先于CSA;圖6中,MFCSA出現了離開理論位置的點,這是因為其存在逃逸機制,大多數情況下都不會使種群所有個體完全聚在一個位置上,而CSA基本所有個體都被吸引到同一個位置上,若這一位置不是全局最優,算法搜索也就無法擺脫當前局部最優位置而陷入局部極值。結合圖2(h)的收斂曲線來看,在第100代, MFCSA最優值領先CSA至少20個數量級,說明MFCSA一方面利用覓食較強組找到最優值的個體信息繼續增加開發深度,這便是領先CSA的原因;另一方面,覓食較弱組的部分個體通過危險逃離機制不斷擾動,以此來提升一部分全局搜索能力,再次表明MFCSA有較強的逃逸局部極值的能力。
基于此,相較于CSA、SCACSA、ICSA、PSO四種算法, MFCSA具備最好的整體尋優與局部尋優的協同能力,因此多樣性種群分工合作是可行的,有利于防止因局部極值導致早熟收斂的問題,有利于提升收斂速度及精度。
3.6 求解不同規模優化問題比較
為了進一步測試五種算法的性能,本文再對表1中的F1、F3、F5~F7這五個基準測試函數分別取D=50,100,200時,測試這五種算法的優化性能。得到的數值實驗結果如表4所示。從表4中最優值指標上看,對于50、100、200維三種不同情況, MFCSA均能從五個測試函數中找到F1、F3、F7這三個函數的理論最優值,且尋優結果變化不大。其他四種對比算法中,只
有SCACSA找到F7(50維)的理論最優值,其余三種算法均沒有
找到這五個測試函數的理論最優值。MFCSA 找到F5、F6的最優值已經非常接近理論最優值,且比其他四種算法都好,特別是對于F5,CSA、SCACSA、ICSA、PSO這四種算法的尋優結果出現了“失靈”現象,找到的最優值與理論最優值相差甚遠。基于此,相較于其他四種算法,MFCSA的全局搜索能力更強,在解決不同規模優化問題時均具有較好的收斂速度和優化精度。
從平均值、標準差指標上看,MFCSA求解F7時,隨著維數從50增加到200,找到的平均值、標準差都與理論最優值相同,其他四種算法找到的平均值、標準差都呈現逐步偏離理論最優值現象;MFCSA求解F1、F3、F6時,隨著維數從50增加到200,找到的平均值、標準差都非常接近,甚至有些高維結果相對更好,其他四種算法找到的平均值、標準差均呈現逐步偏離理論最優值現象;五種算法在求解F5時,隨著維數增加,找到的平均值、標準差均呈現逐步偏離理論最優值現象,但MFCSA的表現是最好的。基于以上分析,相較于其他四種算法,MFCSA能有效避免“維災難”,規避陷入局部最優的能力最強,算法的穩定性最好。
4 MFCSA在實際工程中的應用
工程應用的約束優化是一類有實際意義的數學規劃問題,其約束機制使得搜索空間可行域的分布減少,這為優化問題帶來了挑戰。本文將MFCSA應用于解決兩個工程設計問題,并與多種算法求解結果進行對比,通過收斂曲線對比圖來說明MFCSA可用于解決具體工程問題。
4.1 三桿桁架設計問題
三桿桁架設計的目的是通過調整橫截面積(x1,x2),使受應力(σ)約束的三桿桁架的體積最小。圖7為設計示意圖。該優化問題有如下三個非線性不等式約束:
min f(x)=(22x1+x2)×l
s.t. g1(x)=2x1+x22x21+2x1x2P-σ≤0
g2(x)=x22x21+2x1x2P-σ≤0
g3(x)=12x2+x1P-σ≤0
0≤xi≤1 i=1,2
l=100 cm,P=2 kN/cm2 σ=2 kN/cm2(7)
本次實驗設置迭代次數是500次,對比算法各獨立運行30次,其余參數設置與相關參考文獻保持一致。MFCSA求解三桿桁架設計問題時得到的最優解決方案如表5所示,與CSA[10]、MVO[21]、GOA[22]、MFO[23]、WCA[24]、MBA[25]對比結果如表6所示;圖8是MFCSA求解該問題的進化曲線。
基于表6實驗結果,相較于其他六種算法,MFCSA具有最好的優化精度。從圖8上看,MFCSA用不到50代就已經找到了該問題的最優解。因此,MFCSA的收斂速度是比較快的。
4.2 壓力容器設計問題
壓力容器設計是為了使壓力容器材料、成形、焊接成本最小。如圖9所示,該優化問題包括容器壁的厚度(x1或Ts)、半球頭部的厚度(x2或Th)、內半徑(x3或R)和圓柱截面的長度(x4或L)四個決策變量。數學模型如下:
min f(x)=0.6224x1x3x4+1.7781x2x23+3.1661x21x4+19.84x21x3
s.t. g1(x)=-x1+0.0193x3≤0
g2(x)=-x2+0.00954x3≤0
g3(x)=-πx23x4-4πx33/3+1296000≤0
g4(x)=x4-240≤0
0≤xi≤100,i=1,2;10≤xi≤200,i=3,4(8)
表7為MFCSA求解該問題的結果,表8則是MFCSA、CPSO[26]、HPSO[27]、PSO[2]、CSA[10]、GA3[28]、ABC[29]、CGWO[30]、STA[31]求解決該問題的對比結果。其中,每種對比算法均獨立運行30次,并記錄最優值、最差值、平均值、標準差實驗數據。表8中的N/A表示數據空缺。
從表8可以看出,MFCSA找到的最優值和平均值均好于其他對比算法;其標準差好于CSA,但沒有CPSO、HPSO、GA3、STA的好。圖10是MFCSA求解壓力容器設計問題的收斂曲線。從收斂曲線上看,MFCSA找到該設計問題最優解的速度還是比較快的,說明可用來解決工程約束等實際問題。
5 結束語
針對CSA的不足,本文提出采用多模式飛行的烏鴉搜索算法(MFCSA)。MFCSA基于覓食能力的強弱將群體分成覓食能力較強和較弱兩個組,覓食能力較強者采用尾隨跟蹤當前群體最優者策略,在群體信息的引導下飛到群體當前最優位置附近開展局部搜索活動;覓食能力較弱者采用觀察和學習強者的覓食方法、遇到危險時則采用迅速飛離兩種策略。采用觀察和學習強者的覓食方法可提升算法的全局探索能力,采用迅速飛離策略的烏鴉個體根據其適應度值選擇不同的搜索區域,保持了種群的多樣性,增強了算法的探索能力。通過15個基準測試函數和兩個工程應用問題的實驗測試與仿真結果表明,本文算法在優化精度、收斂速度方面得到了較大的提升,規避陷入局部最優的能力得到明顯增強,算法穩定性更好。
參考文獻:
[1]Holland J H. Genetic algorithms and the optimal allocation of trials[J].SIAM Journal on Computing,1973,2(2):88-105.
[2]Kennedy J, Eberhart R. Particle swarm optimization[C]//Proc of International Conference on Neural Networks.Piscataway,NJ:IEEE Press,1995:1942-1948.
[3]Dorigo M, Maniezzo V, Colorni A. Ant system: optimization by a co-lony of cooperating agents[J].IEEE Trans on Systems,Man,and Cybernetics,Part B:Cybernetics,1996,26(1):29-41.
[4]Karaboga D, Basturk B. A powerful and efficient algorithm for numeri-cal function optimization: artificial bee colony (ABC) algorithm[J].Journal of Global Optimization,2007,39(3):459-471.
[5]李曉磊,邵之江,錢積新.一種基于動物自治體的尋優模式:魚群算法[J].系統工程理論與實踐,2002,22(11):32-38.(Li Xiaolei, Shao Zhijiang, Qian Jixin. An optimizing method based on auto-nomous animats:fish-swarm algorithm[J].System Engineering-Theory amp; Practice,2002,22(11):32-38.)
[6]Yang Xinshe. A new metaheuristic bat-inspired algorithm[M]//Nature Inspired Cooperative Strategies for Optimization.Berlin:Springer,2010:65-74.
[7]Rui Tang, Simon F, Yang Xinshe, et al. Wolf search algorithm with ephemeral memory[C]//Proc of the 7th International Conference on Digital Information Management.Piscataway,NJ:IEEE Press,2012:165-172.
[8]Mirjalili S. Dragonfly algorithm: a new meta-heuristic optimization technique for solving single-objective, discrete, and multi-objective problems[J].Neural Computing and Applications,2016,27(4):1053-1073.
[9]Javidy B, Hatamlou A, Mirjalili S. Ions motion algorithm for solving optimization problems[J].Applied Soft Computing,2015,32(7):72-79.
[10]Askarzadeh A. A novel metaheuristic method for solving constrained engineering optimization problems:crow search algorithm[J].Computers amp; Structures,2016,169(6):1-12.
[11]Balochian S, Baloochian H. Social mimic optimization algorithm and engineering applications[J].Expert Systems with Application,2019,134(11):178-191.
[12]Rizk-Allah R M, Hassanien A E, Bhattacharyya S. Chaotic crow search algorithm for fractional optimization problems[J].Applied Soft Computing,2018,10(71):1161-1175.
[13]Farid M, Hamdi A. A modified crow search algorithm(MCSA) for solving economic load dispatch problem[J].Applied Soft Computing,2018,71(10):51-65.
[14]葛知著,張達敏,張琳娜,等.混合策略改進的烏鴉搜索算法[J].計算機應用研究,2021,38(11):3334-3339.(Ge Zhizhu, Zhang Damin, Zhang Linna, et al. Crow search algorithm improved by mixed strategy[J].Application Research of Computers,2021,38(11):3334-3339.)
[15]肖子雅,劉升,韓斐斐,等.正弦余弦指引的烏鴉搜索算法研究[J].計算機工程與應用,2019,55(21):51-58.(Xiao Ziya, Liu Sheng, Han Feifei, et al. Crow search algorithm based on directing of sine cosine algorithm[J].Computer Engineering and Applications,2019,55(21):51-58.)
[16]Qu Chiwen, Fu Yanming. Crow search algorithm based on neighborhood search of non-inferior solution set[J].IEEE Access,2019,7:52871-52895.
[17]霍林,郭雅蓉,覃志健.具有自適應步長的柯西變異烏鴉算法[J].計算機科學,2020,47(12):218-225.(Huo Lin, Guo Yarong, Qin Zhijian. Crow search algorithm with cauchy mutation and adaptive step size[J].Computer Science,2020,47(12):218-225.)
[18]辛梓蕓,張達敏,陳忠云,等.多段擾動的共享型烏鴉算法[J].計算機工程與應用,2020,56(2):55-61.(Xin Ziyun, Zhang Damin, Chen Zhongyun, et al. Shared crow algorithm using multi-segment perturbation[J].Computer Engineering and Applications,2020,56(2):55-61.)
[19]趙世杰,高雷阜,于冬梅,等.基于變因子加權學習與鄰代維度交叉策略的改進CSA算法[J].電子學報,2019,47(1):40-48.(Zhao Shijie, Gao Leifu, Yu Dongmei, et al. Improved crow search algorithm based on variable-factor weighted learning and adjacent-generations dimension crossover strategy[J].Acta Electronica Sinica,2019,47(1):40-48.)
[20]林忠甫,顏力,黃偉,等.基于參數自適應策略的改進烏鴉搜索算法[J].計算機科學,2021,48(S1):260-263,284.(Lin Zhongfu, Yan Li, Huang Wei, et al. Improved crow search algorithm based on parameter adaptive strategy[J].Computer Science,2021,48(S1):260-263,284.)
[21]Mirjalili S, Mirjalili S M, Hatamlou A. Multi-verse optimizer: a nature-inspired algorithm for global optimization[J].Neural Computing and Applications,2015,27(2):495-513.
[22]Saremi S, Mirjalili S, Lewis A. Grasshopper optimisation algorithm: theory and application[J].Advances in Engineering Software,2017,105(3):30-47.
[23]Mirjalili S. Moth-flame optimization algorithm: a novel nature-inspired heuristic paradigm[J].Knowledge-Based Systems,2015,89(11):228-249.
[24]Zheng Yujun. Water wave optimization: a new nature-inspired metaheuristic[J].Computers amp; Operations Research,2015,55(3):1-11.
[25]Sadollah A, Bahreininejad A, Eskandar H, et al. Mine blast algorithm: a new population based algorithm for solving constrained engineering optimization problems[J].Applied Soft Computing Journal,2013,13(5):2592-2612.
[26]He Qie, Wang Ling. An effective co-evolutionary particle swarm optimization for constrained engineering design problem[J].Engineering Applications of Artificial Intelligence,2007,20(1):89-99.
[27]He Qie, Wang Ling. A hybrid particle swarm optimization with a feasibility-based rule for constrained optimization[J].Applied Mathematics and Computation,2007,186(2):1407-1422.
[28]Coello C A C. Use of a self-adaptive penalty approach for engineering optimization problems[J].Computers in Industry,2000,41(2):113-127.
[29]Akay B, Karaboga D. Artificial bee colony algorithm for large-scale problems and engineering design optimization[J].Journal of Intelligent Manufacturing,2012,23(4):1001-1014.
[30]Kohli M, Arora S. Chaotic grey wolf optimization algorithm for constrained optimization problems[J].Journal of Computational Design and Engineering,2018,5(4):458-472.
[31]Han Jie,Yang Chunhua, Zhou Xiaojun, et al. A two-stage state transition algorithm for constrained engineering optimization problems[J].International Journal of Control, Automation and Systems,2018,16(2):522-534.