潘勁成,李少波,2,周 鵬,楊貴林,呂東超
1.貴州大學 機械工程學院,貴陽550025
2.貴州大學 省部共建公共大數據國家重點實驗室,貴陽550025
長期以來,優(yōu)化問題一直是研究的重點。所謂優(yōu)化問題,是指在一定條件下,在多個解或參數值中找到最優(yōu)解或參數,以優(yōu)化一個或多個函數[1]。優(yōu)化問題就是在所有可能的情況中找出最佳的解決方案。優(yōu)化問題存在于各種現實領域中,包括故障診斷[2]、路徑規(guī)劃[3]、航天[4]以及各種軍事工業(yè)領域[5-6]等。隨著科學技術的不斷深入發(fā)展,各領域工程優(yōu)化問題的難度和復雜程度日愈增加,例如在實際工程中,許多設計應用需要在短時間內和高度復雜的約束下獲得最優(yōu)解,這是一項非常具有挑戰(zhàn)性的任務[7],因此亟需更加高效的求解算法。學者們通過對自然物理規(guī)律和生物習性的觀察,已經開發(fā)出來各種元啟發(fā)式算法并用于各種優(yōu)化問題[8]。元啟發(fā)式算法可以為各種具有挑戰(zhàn)性和復雜的優(yōu)化問題找到最優(yōu)解,而且這些元啟發(fā)式算法具有在較短時間內解決復雜和多維問題的能力[9]。
到目前為止,已經研究了多種元啟發(fā)式算法來解決現實世界中的優(yōu)化問題,如遺傳算法(genetic algorithm,GA)[10]、粒子群優(yōu)化(particle swarm optimization,PSO)[11]、差分進化(differential evolution,DE)[12]、灰狼優(yōu)化算法(grey wolf optimizer,GWO)[13]、鯨魚優(yōu)化算法(whale optimization algorithm,WOA)[14]、蝴蝶優(yōu)化算法(butterfly optimization algorithm,BOA)[15]、麻雀搜索算法(sparrow search algorithm,SSA)[16]、黑猩猩優(yōu)化算法(chimp optimization algorithm,ChOA)[17]、算數優(yōu)化算法(arithmetic optimization algorithm,AOA)[18]、人工水母搜索算法(artificial jellyfish search optimizer,JS)[19]。與傳統(tǒng)的優(yōu)化技術相比,這些算法在實際應用方面表現出更好的性能,這些元啟發(fā)式優(yōu)化算法具有穩(wěn)定性強且易于實現等優(yōu)點,同時在求解復雜優(yōu)化問題上也具有較好的表現[20]。但是迄今為止,研究人員只使用了非常有限的受自然啟發(fā)的特征,還有很多算法開發(fā)的空間[21]。
蜣螂優(yōu)化器(dung beetle optimizer,DBO)算法是由Xue 等[22]于2023 年提出的一種新型群體智能優(yōu)化算法,該算法靈感來源于蜣螂種群的社會行為,即蜣螂的滾球、跳舞、覓食、繁殖和偷竊行為。相較于粒子群優(yōu)化算法、遺傳算法等經典算法,蜣螂優(yōu)化算法根據蜣螂種群分工劃分不同的生存任務,種群中分為滾球蜣螂、繁育蜣螂(繁育球)、小蜣螂、偷竊蜣螂4 種。為了進一步說明DBO 算法的實際應用潛力,Xue 等將DBO 算法成功地應用于多個工程設計問題。實驗結果表明,所提出的DBO算法可以有效地處理實際應用問題??傮w來說DBO 算法兼顧了全局探索和局部開發(fā),具有收斂速度快、求解精度高的特點。
然而,沒有免費的午餐(no free lunch,NFL)定理[23]在邏輯上證明了沒有一種元啟發(fā)式算法適合解決所有的優(yōu)化問題。這激勵人們不斷開發(fā)新的元啟發(fā)式算法來解決不同的問題。蜣螂優(yōu)化算法雖然具有尋優(yōu)能力強,收斂速度快的特點,但同時也存在全局探索和局部開發(fā)能力不平衡,容易產生局部最優(yōu),且全局探索能力較弱的缺點。
受改進正弦算法(improved sine algorithm,MSA)[24]的啟發(fā),本文把MSA 中的全局探索和局部開發(fā)能力賦予蜣螂,同時加入了混沌映射初始化種群和變異算子進行擾動,稱這種改進算法為MSADBO。通過比較其他8種元啟發(fā)式算法在23 個基函數上的應用結果,表明本文提出的算法能加快收斂速度,提高收斂精度,并能找到全局最優(yōu)而不是局部最優(yōu)。3個工程問題的應用也證明了本文提出的算法在解決實際問題時具有很大的優(yōu)勢。
本文的主要完成情況總結如下:
(1)在MSA的基礎上,對DBO進行了改進,使?jié)L球蜣螂能夠自由活動且擁有更強的全局探索能力;
(2)使用混沌映射初始化種群,使用自適應高斯-柯西混合變異算子擾動最優(yōu)位置;
(3)評估了該算法在23個基準測試函數上的性能,并與其他8種算法進行了比較;
(4)通過3個工程應用設計問題來評估本文提出的算法解決實際問題的有效性。
本章簡要介紹了DBO 的來源、數學模型和相應的算法。蜣螂優(yōu)化算法的思想來自于蜣螂的滾球、跳舞、覓食、繁殖和偷竊行為的啟發(fā),設計了5 種不同的更新規(guī)則,以幫助找到高質量的解決方案。
蜣螂有一個有趣的習慣,把糞便做成球,然后把它滾到理想位置,在滾動過程中,蜣螂需要通過天體線索(太陽位置或風向等)來保持糞球在直線上滾動。為了模擬滾球行為,蜣螂需要在整個搜索空間中沿給定方向移動。在滾動過程中,滾動球的蜣螂的位置會更新,滾動數學模型可以表示為:
其中,t表示當前迭代次數,xi(t)表示第i只蜣螂在第t次迭代時的位置信息,k∈(0,0.2]表示偏轉系數的常量,b表示屬于(0,1) 的常量,α是一個自然系數,賦值為-1或1(參見算法1),Xw表示全局最差位置,Δx用于模擬光強的變化。
算法1α的選擇策略
當蜣螂遇到障礙物而無法前進時,它需要通過跳舞來調整自己的方向,以獲得新的路線。使用切線函數來模擬蜣螂的舞蹈行為,獲得新的滾動方向。一旦蜣螂成功地確定了一個新的方向,它就會繼續(xù)向前滾動球。因此,蜣螂跳舞行為的位置被定義如下:
其中,θ∈[0,π],如果θ等于0、π/2 或π 時,將不會更新蜣螂的位置。
在自然界中,糞球被滾到安全的地方,并被蜣螂藏起來。為了給它們的后代提供一個安全的環(huán)境,選擇合適的產卵地點對蜣螂來說至關重要。受上述討論的啟發(fā),提出了一種邊界選擇策略來模擬雌性蜣螂產卵的區(qū)域,該策略為:
其中,X*表示當前局部最佳位置,Lb*和Ub*分別表示產卵區(qū)的下界和上界,R=1-t/Tmax,Tmax表示最大迭代次數,Lb和Ub分別表示優(yōu)化問題的下界和上限。
一旦確定了產卵區(qū),雌性蜣螂就會選擇這個區(qū)域的繁育球產卵。應該提到的是,對于DBO算法,每只雌性蜣螂在每次迭代中只產一個卵。此外,從式中可以清楚地看出,產卵區(qū)的邊界范圍是動態(tài)變化的,這主要由R值決定。因此,繁育球的位置在迭代過程中也是動態(tài)的,迭代過程表示為:
其中,Bi(t)是第t次迭代時第i個繁育球的位置信息,b1和b2表示兩個大小為1×D的獨立隨機向量,D表示優(yōu)化問題的維數。繁育球的位置被嚴格限制在一定范圍內,即產卵區(qū)(參見算法2)。
算法2繁育球位置更新策略
如圖1 所示,藍色的點代表滾球蜣螂的位置,當前局部最佳位置X*使用一個棕色的大圓圈來表示,而X*周圍的黑色小圓圈表示繁育球。每個繁育球中都有一個蜣螂的卵。此外,紅色的小圓圈表示邊界的上限和下限。
圖1 邊界選擇策略的概念模型Fig.1 Conceptual model of boundary selection strategy
一些已經長成成蟲的蜣螂從地里爬出來尋找食物,稱它們?yōu)樾◎掾?。此外,還需要建立最佳覓食區(qū)來引導蜣螂覓食,這模擬了這些蜣螂在自然界中的覓食過程。具體而言,最佳覓食區(qū)域的邊界定義如下:
其中,Xb表示全局最佳位置,Lbb和Ubb分別表示最佳覓食區(qū)域的下限和上限,其他參數在公式中定義。因此,小蜣螂的位置更新如下:
其中,xi(t)表示第i只小蜣螂在第t次迭代的位置信息,C1表示服從正態(tài)分布的隨機數,C2表示屬于(0,1)的隨機向量。
一些被稱為小偷的蜣螂從其他蜣螂那里偷糞球。從式中可以看出,Xb是最佳的食物來源。因此,可以假設Xb附近是爭奪食物的最佳地點。在迭代過程中,偷竊蜣螂的位置信息被更新,可以描述如下:
其中,xi(t)表示第i只偷竊蜣螂在第t次迭代時的位置信息,g是服從正態(tài)分布的大小為1×D的隨機向量,S表示一個常量。
在前面討論的基礎上,所提出的DBO 算法的偽碼如算法3所示。首先,設Tmax為最大迭代次數,N為粒子總體的大小。然后,隨機初始化DBO 算法的所有代理,其分配設置如圖2所示。圖中扇形比例圖代表蜣螂中每個代理部分的占比(各個代理比例可以根據具體情況進行調節(jié)),滾球蜣螂占比為20%,繁育球占比為20%,小蜣螂占比為25%,偷竊蜣螂占比為35%。在實驗中假設物種規(guī)模為30。具體而言,藍色、黃色、綠色和紅色的矩形分別代表滾球蜣螂、繁育球、小蜣螂和偷竊蜣螂。
圖2 DBO算法中各個搜索代理的比例分布Fig.2 Proportional distribution of search agents in DBO algorithm
算法3DBO算法
之后,根據算法3的第2~27步,在優(yōu)化過程中,滾球蜣螂、繁育球、小蜣螂和偷竊蜣螂的位置會不斷更新。最后,輸出最佳位置Xb及其適應度值??傊?,對于任何優(yōu)化問題,DBO算法作為一種新的元啟發(fā)式優(yōu)化算法,主要有6個步驟,大致可以概括如下:
(1)初始化蜣螂群和DBO算法參數;
(2)根據目標函數計算所有蜣螂的適應度值;
(3)更新所有蜣螂的位置;
(4)判斷各個蜣螂是否在邊界外;
(5)更新當前最優(yōu)解及其適應度值;
(6)重復上述步驟,直到t滿足終止準則,輸出全局最優(yōu)解及其適應度值。
在優(yōu)化問題上,DBO算法優(yōu)于其他算法。然而,對于DBO 來說,獲得理想的最優(yōu)解仍然極具挑戰(zhàn)性。此外,它解決復雜問題的能力也不盡如人意。蜣螂優(yōu)化算法雖然具有尋優(yōu)能力強、收斂速度快的特點,但同時也存在全局探索和局部開發(fā)能力不平衡,容易陷入局部最優(yōu),且全局探索能力較弱的缺點。因此,為了提高DBO的搜索性能,本章提出了3 種加強DBO 的策略。原有的DBO 算法無法很好地平衡探索和開發(fā)兩個階段。MSADBO 算法通過Bernoulli 映射策略、嵌入改進正弦算法策略和自適應的高斯-柯西變異擾動來改善這種不平衡。本章將具體介紹這些策略。
混沌映射是一種確定性和隨機性相結合的方法,混沌具有隨機性、非周期性等特點[25]。由于混沌變量在初始化位置更新過程中取代了智能算法運行過程中的隨機變量,混沌映射策略對解空間的搜索范圍比隨機搜索策略更廣。因此,對于隨機初始化過程,混沌初始化可以提高優(yōu)化算法的搜索廣度。
蜣螂優(yōu)化算法是在搜索空間中隨機初始化種群的位置,但是該方法有3個主要缺點:
(1)蜣螂個體的位置分布不均勻;
(2)全局探索能力較弱;
(3)種群多樣性低而容易陷入局部最優(yōu)。
為了提高種群初始解的多樣性,在DBO 的種群初始化階段使用混沌映射來生成高度多樣化的初始種群。目前存在多種不同的混沌映射[26],主要有Singer映射、Chebyshev映射、Bernoulli映射、Gaussian映射、PWLCM映射等。其中Bernoulli映射屬于混沌映射的一種,常被用來產生混沌序列,其具有非線性、遍歷性、隨機性等特征,在優(yōu)化領域替代隨機數初始化種群,會影響算法的整個過程,同時能獲得比隨機數更好的尋優(yōu)效果[27]。此外Saito等[28]研究表明,Bernoulli映射的遍歷均勻性和收斂速度適合作為混沌種群初始化,并通過合理的實驗設置,證明了Bernoulli映射可以用于產生優(yōu)化算法的初始種群,Bernoulli 映射混沌序列分布如圖3 所示。因此本文采用Bernoulli 映射初始化蜣螂個體位置,先利用Bernoulli映射關系將所得的值投影到混沌變量空間內,然后將產生的混沌值通過線性變換映射到算法初始空間中。Bernoulli映射具體表達式為:
圖3 Bernoulli映射混沌序列分布Fig.3 Distribution of chaos values for Bernoulli map
其中,β是映射參數,β∈(0,1) 。文中設置β=0.518,z0=0.326,以達到最好的取值效果。
改進正弦算法(MSA)[24]策略是受到正余弦算法(sine cosine algorithm,SCA)[29]、正弦算法(sine algorithm,SA)[30]和指數正余弦算法(exponential sine cosine algorithm,ESCA)函數[31]以及改進的正弦余弦算法(improved sine cosine algorithm,ISCA)[32]等各類與SCA相關算法的啟發(fā),利用數學中的正弦函數進行迭代尋優(yōu),具有較強的全局探索能力。同時在位置更新過程中引入自適應的可變慣性權重系數ωt,使算法能夠對局部區(qū)域進行充分搜索,使全局探索和局部開發(fā)能力達到良好的平衡。改進正弦算法位置更新公式如下所示:
其中,t為當前迭代次數,ωt是慣性權重,xi(t)為個體X在第t次迭代中的第i個位置分量,pi(t)為第t次迭代中最佳個體位置變量的第i個分量,r1為非線性遞減函數,r2是區(qū)間[0,2π]上的隨機數,r3是區(qū)間[-2,2]上的隨機數。
使用非線性遞減模式來設置r1的值,并使用0到π之間的余弦函數來確定r1值的變化:
其中,ωmax和ωmin表示ωt的最大值和最小值,t表示當前迭代次數,Tmax表示最大迭代次數。
采用了自適應的可變慣性權重策略,其中慣性權重隨著迭代次數的增加線性減?。?/p>
為進一步改進DBO算法協調全局探索與局部開發(fā)的能力,本文引入了正弦引導機制,MSA作為替代蜣螂正切跳舞的策略嵌入DBO 算法,即在滾球階段對整個蜣螂個體進行正弦的操作引導蜣螂位置更新。改進后的公式如下:
其中,δ=rand(1),ST∈(0.5,1]。改進后的位置更新公式中,當δ <ST時,表明蜣螂有目標地進行滾動,處于正常全局探索階段,而當δ≥ST時,代表蜣螂沒有明確的滾動目標,但是會通過一種正弦函數的方式進行搜索移動。
這種改進正弦指引機制的引入,一方面可以極大地改善DBO算法位置更新策略過于隨機的缺陷。這是由于加入MSA 策略后,蜣螂個體會與當前最優(yōu)個體pi(t)進行信息交流,促進信息在種群中快速傳播,改善了原算法中缺乏個體間信息交流的缺陷。
另一方面,針對原算法容易陷入局部最優(yōu)的問題,MSA的指引機制使得蜣螂個體可以自由在算法給定的區(qū)域范圍內進行全局探索和局部尋優(yōu),在一定程度上擴大了搜索空間,并逐漸收斂于同一個最優(yōu)解即目標函數值,從而提升算法的全局尋優(yōu)能力。同時由公式可以看出,r1控制蜣螂的搜索距離和方向,優(yōu)化了DBO算法的尋優(yōu)方式,并且自適應系數ωt逐步縮小了搜索空間,隨著迭代次數的增加,慣性權值減小。在算法迭代前期相對較大的慣性權值能使算法擁有較強的全局探索能力,而迭代后期相對較小的慣性權值則有助于提高其局部開發(fā)能力。
在基本蜣螂算法迭代的后期,蜣螂個體快速同化,蜣螂群體迅速聚集到當前的最優(yōu)位置附近,其值近似于最優(yōu)解。因此,如果當前最優(yōu)位置不是全局最優(yōu)的點,那么蜣螂種群會集中在當前最優(yōu)位置附近搜索,導致無法發(fā)現真正的最優(yōu)位置,出現搜索停滯的情況。為解決這一問題,一般采用變異擾動操作對個體進行干擾以增加種群多樣性,跳出局部最優(yōu)[33]。執(zhí)行變異擾動操作能夠提高蜣螂種群多樣性,使算法能夠跳出局部最優(yōu)解,進入解空間的其他區(qū)域繼續(xù)進行勘探,直至最終找到全局最優(yōu)解。
在智能優(yōu)化算法中引入變異算子,既可以增強種群的多樣性,又可以使算法避免陷入局部極小[34]。柯西變異和高斯變異是智能優(yōu)化算法中兩種較常用的變異算子,這兩種變異算子都有各自的優(yōu)缺點??挛髯儺惖乃阉鞣秶雀咚棺儺惖乃阉鞣秶?,但其過大的步長容易跳離最優(yōu)值而產生較差的后代[35];而高斯變異在小范圍內具有良好的搜索能力[36],這是因為其能以較大的概率產生較小的變異值。所以提出了一種融合柯西變異和高斯變異各自優(yōu)點的自適應高斯-柯西混合擾動變異擾動策略。
由于變異擾動操作的結果具有隨機性,若對所有蜣螂均進行變異擾動操作必然會增加算法的復雜度,因此本文僅對最優(yōu)個體進行變異擾動,然后比較其變異前后的位置,選擇較好的位置進入下一次迭代,充分增加蜣螂的多樣性,擴大種群搜索范圍。具體公式如下:
其中,Xb(t)為個體X在第t次迭代中的最優(yōu)位置,Hb(t)為第t次迭代中的最優(yōu)位置Xb(t)在高斯-柯西混合擾動后的位置,Gauss(σ)為高斯變異算子,Cauchy(σ)為柯西變異算子,μ1=t/Tmax,μ2=1-t/Tmax,變異算子的權重系數μ1、μ2以一種一維線性的方式逐步變動,目的是保證每一次的迭代擾動均衡平滑。
在算法迭代過程中對蜣螂個體進行變異擾動,算法迭代初期,由于種群分布比較分散,算法主要通過柯西分布函數對個體進行較大幅度變異擾動,從而產生多樣性個體,既充分利用了當前位置信息,又增加了隨機干擾信息,使算法能夠進行全局探索,快速收斂;隨著算法迭代的不斷進行,蜣螂大多數個體位置不會發(fā)生太大變化,此時算法主要通過高斯分布函數系數對種群進行擾動,從而幫助算法能夠跳出局部自由度,同時克服了高維問題下的維間干擾問題。總而言之,自適應高斯-柯西混合變異擾動策略,使用了柯西和高斯分布函數的特性來產生新的個體,增強了蜣螂的多樣性,增強了算法協調其局部開發(fā)和全局探索的能力。
自適應高斯-柯西混合擾動變異擾動策略雖然能增強算法全局搜索和跳出局部最優(yōu)的能力,但是沒法確定變異擾動之后得到的新位置一定比原位置的適應度值要好,因此在進行變異擾動更新后,加入貪婪規(guī)則[34],通過比較新舊兩個位置的適應度值,確定是否要更新位置。貪婪規(guī)則如下所示,f(x)表示x位置的適應度值。
MSADBO流程如圖4所示。
圖4 MSADBO流程圖Fig.4 Flowchart of MSADBO
算法分析的目的是選擇合適的算法和改進算法,時間復雜度是算法收斂速度的重要指標之一[37]。本文選擇大O表示法計算時間復雜度[38]。
大O表示法的推導方法如下:
(1)將運行時的所有附加常數替換為常數1;
(2)在修改后的運行時間函數中,只保留最高階的項目;
(3)如果最高階項存在且不為1,則去掉乘以該項的常數。結果是一個大O順序。
根據上述計算方法,本節(jié)選取蜣螂優(yōu)化(DBO)和改進正弦算法引導的蜣螂優(yōu)化算法(MSADBO)為對比算法。DBO的計算結果為O(N×D×T)。同樣,MSADBO在計算過程中沒有引入新的循環(huán),也沒有改變其順序。因此,結果仍然是O(N×D×T)。
通過10 次時間對比實驗,每次算法迭代1 000 次,得到算法運行時間,實驗結果如表1所示。DBO算法每迭代1 000 次CPU 平均運行時間為0.138 7,MSADBO算法每迭代1 000次CPU平均運行時間為0.146 2,兩個算法CPU運行時間基本相同。
表1 DBO和MSADBO算法CPU運行時間對比Table 1 Comparison of CPU running time between DBO and MSADBO algorithms
本節(jié)中MSADBO基于23個基準函數,并與其他10個基準函數進行比較。這些函數已經在許多文獻中得到了驗證[39]。本文仿真實驗的操作系統(tǒng)均為Windows11操作系統(tǒng),CPU 為12th Gen Intel?CoreTMi7-12700H,主頻為2.30 GHz,內存為16 GB(4 800 MHz),顯卡為NVIDIA GeForce RTX 3060 Laptop GPU,編程軟件為MATLAB R2020b。本文中搜索代理的數量統(tǒng)一設置為30個,最大迭代次數為500,每個算法獨立運行30次。
尋找這些函數的最小值類似于搜索代理尋找獵物最小值的位置。本文的目標是找到可能的最小值的適應度函數。首先,算法在搜索空間中生成初始種群,以設定的方式進行搜索。本節(jié)除了選取MSADBO算法進行實驗外,還選取了許多完善的優(yōu)化算法,包括SSA[16]、DBO[22]、GWO[13]、PSO[11]、SCA[26]、ChOA[17]、MSA[24]、BOA[15]作為對比算法。通過在23 個基準函數中比較最佳值(Best)、平均值(Average)和標準差(STD)來驗證本文提出的MSADBO 算法的優(yōu)越性。之所以選擇這些方法,是因為它們在探索和開發(fā)方面具有廣泛的性能特點。
其中MSADBO 算法包含三方面的改進:Bernoulli映射策略、嵌入改進正弦算法策略和自適應的高斯-柯西變異擾動。為了驗證本文提出的不同改進策略的獨立有效性,將DBO與這3個策略分別結合得到3種不同算法:
(1)DBO 中加入Bernoulli 映射策略初始化種群后得到MDBO1;
(2)DBO嵌入改進正弦算法策略后得到MDBO2;
(3)DBO 最后加入自適應的高斯-柯西變異擾動后得到MDBO3。
將DBO 與MDBO1、MDBO2、MDBO3、MSADBO四種改進算法進行實驗對比,通過在單峰基準函數中比較最佳值(Best)、平均值(Average)和標準差(STD)來驗證每個改進策略的有效性。其中基準函數維度統(tǒng)一設置為30。
表2總結了對應算法的參數設置。需要注意的是,這些參數的值是根據參考論文的建議設置的。本文提出的MSADBO算法的參數中ωmax和ωmin表示ωt的最大值、最小值,k∈(0,0.2]表示偏轉系數的常量,b表示屬于(0,1) 的常量。這些算法參數可以根據不同的應用環(huán)境在合理的區(qū)間內進行調整。本文經過大量的實驗對比,選取ωmax=0.9,ωmin=0.782,k=0.1,b=0.3 可以達到最均衡的效果。
表2 參數變量設置Table 2 Parameter values setting
3.2.1 MSADBO與其他各類算法對比
表3 給出了7 個單峰基準測試函數(F1~F7)。表中fmin為函數最佳適應度值。由于單峰函數有且只有一個最小值,可以用來檢驗算法的開發(fā)性能。表4~表6中的F1~F7給出了各個算法在不同維度下的性能。對于函數F1~F4和F7,MSADBO 算法都尋找到了最優(yōu)解。在整體優(yōu)化結果的均值上以及最優(yōu)值中排在第一位,體現了MSADBO 算法優(yōu)秀的局部開發(fā)性能。對于函數F5、F6,MSADBO 算法的適應度值雖然不是最好的,但也是排在幾種算法前列。結果表明,在局部開發(fā)能力中,提出的算法在大多數函數上比一些知名算法執(zhí)行得更好(最好的結果用粗體顯示)。
表3 單峰基準函數Table 3 Unimodal benchmark functions
表4 F1~F13 的實驗結果(維度=30)Table 4 Experimental results of F1~F13(dim=30)
表5 F1~F13 的實驗結果(維度=50)Table 5 Experimental results of F1~F13(dim=50)
3.2.2 MSADBO中各種策略有效性驗證
表7給出了DBO與4種改進算法MDBO1、MDBO2、MDBO3、MSADBO 的實驗結果對比。圖5 給出了各個算法策略對比的收斂過程圖像。結合表7中數據和圖5可以看出:
表7 單峰基準函數的實驗結果(各個策略對比)Table 7 Experimental results of unimodal benchmark function(Comparison of various strategies)
圖5 不同算法的收斂過程(各個策略對比)Fig.5 Convergence process of different algorithms(Comparison of various strategies)
(1)MDBO1 算法相比較原始DBO,雖然收斂曲線相似,那是由于它們除了種群初始化策略不同外,其他近乎相同,但是MDBO1在求解精度上有了一定程度的提升,平均尋優(yōu)性能更加穩(wěn)定。說明引入Bernoulli映射策略提升了算法全局探索能力,能生成高度多樣化的蜣螂初始種群。
(2)MDBO2 算法相比較DBO,平均尋優(yōu)精度和標準差有了更進一步的提升,同時收斂曲線在收斂速度變慢時逐漸深入開發(fā)。說明DBO嵌入改進正弦算法策略后,能夠很好地平衡全局探索和局部開發(fā)能力。
(3)MDBO3 算法相比較DBO,使得算法的收斂速度和收斂深度有了很大幅度的提高。說明加入自適應的高斯-柯西變異算子能夠大幅提高算法的開發(fā)能力。同時其收斂曲線快速收斂,表明自適應高斯-柯西變異策略能夠有效避免算法陷入局部最優(yōu)解,提高算法的尋優(yōu)能力。
(4)MSADBO算法相比其余策略算法,融合了MDBO1的尋優(yōu)穩(wěn)定性,增添初始種群多樣性;融合了MDBO2的平衡全局探索和局部開發(fā)能力;融合了MDBO3的快速迭代尋優(yōu)能力,同時避免了局部最優(yōu)解。總體來說MSADBO 算法不僅能夠快速收斂,而且擁有平衡探索與開發(fā)的能力,擁有跳出局部最優(yōu)解的能力。
表8給出了6個多峰函數(F8~F13)。與單峰函數不同,多峰函數具有多個極值,且隨維數的增加而增加。因此,多峰函數可以用來評估算法的探索能力。表4~表6 中的F8~F13給出了各個算法在不同維度下的性能。對于函數F8~F11,MSADBO算法都快速地找到了最優(yōu)值并且進行了深入開發(fā),所提出的NIPSO在上述多模態(tài)高維函數上可以實現更高的尋優(yōu)精度??梢钥闯?,MSADBO算法在尋找多峰函數最優(yōu)解的過程中具有更好的探索能力。結果表明,在探索能力方面,提出的算法在大多數函數上比一些知名算法執(zhí)行得更好(最好的結果用粗體顯示)。
表8 多峰基準函數Table 8 Multimodal benchmark functions
F14~F23也是多峰函數,它們的函數表達式如表9所示。但因為它們的維數是固定的,所以它們的結果分別如表10 所示。在各種維度的多峰函數中,MSADBO算法都能夠精確地尋找到最優(yōu)值,能在全局探索和局部開發(fā)中自適應轉換。通過對比發(fā)現,本文提出的算法在開發(fā)能力和探索能力方面取得了很好的平衡(最好的結果用粗體顯示)。
表9 固定維多峰基準函數Table 9 Fixed-dimension multimodal benchmark functions
同時,圖6顯示了不同算法在迭代過程中的收斂過程。在大多數測試函數圖中,可以看到MSADBO 算法的收斂速度是擁有絕對優(yōu)勢的,并且擁有很高的收斂精度。無論是在單峰函數還是多峰函數中,MSADBO 算法都擁有非常優(yōu)秀的表現,能夠快速搜索收斂,并且能夠進一步深入開發(fā),表現了MSADBO算法全局探索能力和局部開發(fā)能力的合理平衡。通過對比發(fā)現,MSADBO算法不僅最終收斂精度優(yōu)于其他算法,而且收斂速度也快于其他算法。
在上述統(tǒng)計過程中,計算了每種算法的30 個實驗結果的平均值和標準差,以比較算法的優(yōu)越性。為了進一步比較所提算法與其他算法的差異,進行了統(tǒng)計檢驗,所采用的方法稱為Wilcoxon秩和非參數統(tǒng)計檢驗[40]。通過計算p值來確定統(tǒng)計結果的顯著性。如果p值小于0.05,就能確定兩種算法之間存在顯著差異。計算結果見表11。其中大于0.05 的值用下劃線表示。NaN 表明這兩種算法的結果太相似而不顯著。差異顯著的數據總數在最后一列統(tǒng)計。
表11 中只列出了幾個NaN 標記和下劃線值,表明基于基準函數的MSADBO算法與競爭對手的搜索結果相似度較低。因此,MSADBO 算法在23 個基準函數上的優(yōu)化性能與其他元啟發(fā)式算法、基本DBO 的優(yōu)化性能有顯著差異。結合本章的分析可以看到,在眾多元啟發(fā)式算法中,MSADBO算法的綜合性能是最突出的。
本文使用了3個工程設計問題來測試MSADBO算法,包括壓力容器設計問題(pressure vessel design problem,PVD)[41]、焊接梁設計問題(welded beam design problem,WBD)[42]、拉伸/壓縮彈簧設計問題(tension/compression spring design problem,TCSD)[43]。
這3 個問題都是典型的工程優(yōu)化問題。主要思想是將實際的優(yōu)化問題轉化為數學模型,然后利用各個算法找到最優(yōu)解。f(x)是原始算法中的適應度函數,x表示搜索空間,x1,x2,…,xn表示不同維度。最終目標是在滿足各種機械性能的基礎上,盡量減少材料的使用。它們有一些相同或不相同的約束,應該有一個處理約束的方法,以便適用于這些工程問題。因此,最簡單的約束處理方法(懲罰函數)可以有效地用于處理算法中的約束。也就是說,如果搜索代理違反了任何約束,它將被分配一個大的目標函數值。這樣,在下一個迭代之后,它將自動被一個新的搜索代理替換。接下來是詳細的問題描述和實驗結果。
如圖7 所示,本設計在滿足使用要求的同時,最大限度地降低容器的制造成本。需要優(yōu)化的變量有4個,分別是殼體厚度Ts、封頭厚度Th、內半徑R、不考慮封頭的圓柱截面長度L。
圖7 壓力容器設計問題Fig.7 Pressure vessel design problem
數學模型如下所示:
目標函數:
約束條件:
取值范圍:
x1和x2是0.062 5的整數倍,10 ≤x3,x4≤200
MSADBO與SSA[16]、DBO[22]、GWO[13]、PSO[11]、SCA[26]、ChOA[17]、MSA[24]、BOA[15]進行了比較。從表12的結果可以看出,MSADBO 算法在解決壓力容器設計問題方面排名第一,總成本最小。
表12 PVD問題MSADBO的比較結果Table 12 Comparison results of MSADBO for PVD problem
焊接梁設計的目標是最大限度地降低焊接梁的成本。如圖8所示,主要優(yōu)化變量為焊縫厚度h、鋼筋厚度b、鋼筋連接部分長度l和鋼筋高度t。
圖8 焊接梁設計問題Fig.8 Welded beam design problem
最小化過程受到剪切應力τ、梁內彎曲應力θ、桿上屈曲荷載Pc、梁端撓度δ和側方約束等條件的約束。
數學模型如下所示:
目標函數:
約束條件:
取值范圍:
MSADBO與SSA[16]、DBO[22]、GWO[13]、PSO[11]、SCA[26]、ChOA[17]、MSA[24]、BOA[15]進行了比較。從表13的結果中可以看出,MSADBO 在解決焊接梁設計問題中排名第一,總成本最小。
表13 MSADBO對WBD問題的比較結果Table 13 Comparison results of MSADBO for WBD problem
張力/壓縮彈簧的設計問題是通過選擇導線直徑d、平均線圈直徑D和活動線圈數N,使張力/壓縮彈簧的重量最小,如圖9所示。
圖9 張力/壓縮彈簧設計問題Fig.9 Tension/compression spring design problem
最小化過程問題受到最小撓度、剪切應力、浪涌頻率、外徑和設計變量的限制。設計變量為導線直徑d、平均線圈直徑D和活動線圈數N。
數學模型如下所示:
目標函數:
約束條件:
取值范圍:
MSADBO與SSA[16]、DBO[22]、GWO[13]、PSO[11]、SCA[26]、ChOA[17]、MSA[24]、BOA[15]進行了比較。從表14的結果中可以看出,MSADBO 在解決張力/壓縮彈簧的設計問題方面排名第一,總成本最小。
表14 MSADBO對TCSD問題的比較結果Table 14 Comparison results of MSADBO for TCSD problem
本文提出了一種改進的蜣螂優(yōu)化器MSADBO。主要目的是讓滾球蜣螂嵌入改進正弦算法,從而擴大搜索范圍。同時加入了混沌映射初始化種群和變異算子進行擾動,發(fā)揚了蜣螂的局部開發(fā)能力和改進正弦算法的全局探索能力,平衡了探索與開發(fā)能力,使得MSADBO算法能夠跳出局部最優(yōu)解。
采用23 個標準基函數對MSADBO 性能進行了測試。實驗結果表明,MSADBO 算法比多種元啟發(fā)式優(yōu)化算法具有更快的收斂速度和更高的收斂精度,以及更強的魯棒性。此外,該算法還應用于壓力容器設計、懸臂梁設計和拉/壓彈簧設計等實際工程問題。各種實驗結果表明,本文提出的MSADBO算法擁有顯著的效果。
基于MSADBO 算法的良好性能,計劃將其應用于未來的工作中,以解決其他實際和工程問題,例如:
(1)文本和數據挖掘應用;
(2)神經網絡的特征選擇;
(3)圖像處理應用;
(4)云服務組合的協調設計;
(5)靈活車間的多智能體任務分配。
此外,該算法具有收斂速度快、搜索精準、魯棒性強等特點,適用于未知空間搜索的挑戰(zhàn)性問題,因此被認為未來可以應用于移動設備,例如無人機的路徑規(guī)劃。