劉景森,馬義想,李 煜
(1.河南大學(xué) 軟件學(xué)院,河南 開封 475004;2.河南大學(xué) 河南省智能數(shù)據(jù)處理工程研究中心,河南 開封 475004;3.河南大學(xué) 管理科學(xué)與工程研究所,河南 開封 475004)
優(yōu)化是一個非常活躍的研究領(lǐng)域,它在指定約束條件下探索給定問題的最優(yōu)解,主要目的是解決一些復(fù)雜的大規(guī)模工程問題。目前優(yōu)化領(lǐng)域最常用的有效方法之一是基于仿生學(xué)的生物元啟發(fā)式優(yōu)化算法,如受螞蟻尋找食物過程中釋放信息素發(fā)現(xiàn)路徑行為啟發(fā)提出的蟻群算法(Ant Colony Optimization, ACO)[1-3];受飛鳥集群捕食行為啟發(fā)提出的粒子群算法(Particle Swarm Optimization, PSO)[4-6];受布谷鳥寄生育雛行為啟發(fā)提出的布谷鳥搜索算法(Cuckoo Search Algorithm, CSA)[7-8];受蝙蝠利用聲吶探測獵物、避開障礙物啟發(fā)提出的蝙蝠算法(Bat Algorithm, BA)[9-11];受花朵授粉方式不同啟發(fā)提出的花朵授粉算法(Flower Pollination Algorithm, FPA)[12-13];受樽海鞘在海洋中游弋和覓食行為啟發(fā)提出的樽海鞘群算法(Salp Swarm Algorithm, SSA)[14-15];模擬蝴蝶覓食行為及散發(fā)香味特性提出的蝴蝶優(yōu)化算法(Butterfly Optimization Algorithm, BOA)[16-17]等。這些機制各有特點、性能各具優(yōu)勢的算法,在不斷地提出、改善、比較和優(yōu)勝劣汰中,為解決大規(guī)模復(fù)雜實際工程優(yōu)化問題提供了良好的解決思路與設(shè)計方案,也吸引了大量國內(nèi)外學(xué)者的關(guān)注與研究。
函數(shù)極值優(yōu)化問題是測試算法尋優(yōu)性能的主要方法,而工程設(shè)計約束優(yōu)化問題則是啟發(fā)式優(yōu)化算法的一個重要應(yīng)用領(lǐng)域和研究熱點。對工程設(shè)計問題的優(yōu)化方法大致分為確定性抽象方法和元啟發(fā)式方法兩大類。確定性抽象方法對初始值敏感,是解決簡單優(yōu)化問題的一種有效方法,卻通常無法解決復(fù)雜工程設(shè)計問題。而元啟發(fā)式方法在求解復(fù)雜工程設(shè)計問題時有著獨特優(yōu)勢,它使用目標(biāo)函數(shù)與概率而不是確定性規(guī)則,有更多的機會找到更好的工程優(yōu)化問題解決方案,如:ZHANG等[18]提出一種基于神經(jīng)網(wǎng)絡(luò)算法和教與學(xué)優(yōu)化算法的有效混合方法;TSAI[19]提出一種改進的差分進化算法;DU等[20]提出了基于遞減步長和邏輯混沌映射的果蠅優(yōu)化算法;ZHANG等[21]提出一種基于布谷鳥搜索算法和差分進化算法的新型混合優(yōu)化算法;DE MELO等[22]提出一種多視圖差分進化算法;KUMAR等[23]提出一種改進的灰狼優(yōu)化算法。這些改進算法均被應(yīng)用于求解工程優(yōu)化設(shè)計問題,并取得了較好效果,但其最優(yōu)解質(zhì)量和適用性都有進一步提升的空間。解決工程設(shè)計約束優(yōu)化問題還需要探索尋優(yōu)精度更高、普適性更強的算法。
鯨魚優(yōu)化算法(Whale Optimization Algorithm, WOA)是澳大利亞學(xué)者MIRJALILI等[24]受座頭鯨特殊捕食行為啟發(fā)提出的一種新型啟發(fā)式搜索算法。該算法機制優(yōu)越,尋優(yōu)精度高,收斂速度快,且?guī)缀醪簧婕皡?shù)設(shè)置,因此近年成為進化計算領(lǐng)域重要的研究和改進算法之一。如褚鼎立等[25]提出一種結(jié)合自適應(yīng)權(quán)重和模擬退火的鯨魚優(yōu)化算法,提高了算法的尋優(yōu)精度與收斂速度;CHEN等[26]提出了融入萊維飛行和混沌局部搜索的改進鯨魚優(yōu)化算法,并將其應(yīng)用到工程設(shè)計問題;吳澤忠等[27]提出一種基于改進螺旋更新位置模型的鯨魚優(yōu)化算法,提高了算法的普遍適用性和穩(wěn)定性;OLIVA等[28]提出一種基于混沌搜索的鯨魚優(yōu)化算法,提高了太陽能電池參數(shù)估計的準(zhǔn)確性;肖子雅等[29]提出一種精英反向?qū)W習(xí)的黃金正弦鯨魚優(yōu)化算法,并通過仿真實驗證明算法可以有效解決大規(guī)模問題,也可以應(yīng)用于實際工程優(yōu)化問題;WANG等[30]提出一種基于鯨魚優(yōu)化算法的新型混合系統(tǒng),提高了風(fēng)速預(yù)測的精度與準(zhǔn)確性;黃清寶等[31]提出一種基于余弦控制因子和多項式變異的鯨魚優(yōu)化算法,提高了函數(shù)極值優(yōu)化的尋優(yōu)精度和穩(wěn)定性;JIANG等[32]提出一種修改關(guān)鍵參數(shù)以實現(xiàn)分類搜索的鯨魚優(yōu)化算法,通過在CEC 2014函數(shù)的測試和3個約束工程問題的評估,證明了改進算法能夠有效解決復(fù)雜、大規(guī)模、有約束的優(yōu)化問題;ABDEL-BASSET等[33]針對置換流車間調(diào)度問題提出一種將鯨魚優(yōu)化算法與基于貪婪局部搜索策略結(jié)合的算法,提高了算法的性能。
雖然這些改進在相應(yīng)領(lǐng)域提升了算法的尋優(yōu)和應(yīng)用能力,但鯨魚優(yōu)化算法的尋優(yōu)穩(wěn)定性、跳出局部極值的能力和對于工程設(shè)計約束優(yōu)化應(yīng)用的求解效果與適用性仍需得到更大程度的改進和提高。為了更好求解工程設(shè)計優(yōu)化問題,提升鯨魚優(yōu)化算法的應(yīng)用能力和尋優(yōu)性能,本文提出一種基于分段式隨機慣性權(quán)重和最優(yōu)反饋機制的鯨魚優(yōu)化算法(Feedback Whale Optimization Algorithm, FWOA)。在隨機游走覓食策略中引入基于當(dāng)前全局最優(yōu)解的反饋機制,在維系種群多樣性的同時避免隨機選擇個體的盲目性,加快算法收斂速度,增強求解穩(wěn)定性;在收縮包圍策略和螺旋氣泡網(wǎng)捕食策略中引入分段式隨機慣性權(quán)重,調(diào)節(jié)算法全局勘測能力和局部開采能力的平衡,不僅加快了算法的收斂速度,也降低了后期因慣性權(quán)重單調(diào)遞減直接陷入局部極值無法跳出的風(fēng)險,有利于算法擺脫局部極值,找到全局最優(yōu)值;對越界處理進行修正和改進,消除了已有進化成果可能丟失的隱患,解決了因較多個體越界導(dǎo)致越界處理后大量趨同,損害多樣性的問題。本文通過理論分析證明了改進算法FWOA和基本鯨魚算法WOA的時間復(fù)雜度相同,算法改進但并沒有降低執(zhí)行效率。通過對比6種算法在12個復(fù)雜基準(zhǔn)測試函數(shù)上進行不同維度的函數(shù)極值優(yōu)化實驗,測試結(jié)果表明,該改進算法的尋優(yōu)性能和求解穩(wěn)定性明顯優(yōu)于其他5種代表性算法。而對焊接梁、拉伸彈簧和壓力容器3個具有挑戰(zhàn)性的工程設(shè)計約束優(yōu)化問題的求解,其結(jié)果也充分顯示了FWOA算法在處理不同類型工程優(yōu)化設(shè)計問題上優(yōu)越的求解效果和良好適用性。
鯨魚優(yōu)化算法(WOA)將鯨魚捕食獵物的行為分為隨機游走覓食、收縮包圍獵物和螺旋氣泡網(wǎng)捕食3種不同的策略,其具體步驟如下:
步驟1初始化WOA算法各項參數(shù):種群規(guī)模N,空間維度dim,迭代次數(shù)Max_iter,鯨魚初始種群xi(i=1,2,…,n)和最優(yōu)鯨魚的位置與適應(yīng)度初值。
步驟2進入迭代,先對整個種群集中進行邊界條件處理,然后對種群中的每個個體分別進行進化處理,計算系數(shù)向量Α和C,并產(chǎn)生均勻分布決策隨機數(shù)p。
Α=2×a×r-a;
(1)
C=2×r。
(2)
其中:a在整個迭代周期內(nèi)隨著迭代次數(shù)的增加從2下降到0;r為[0,1]上的隨機向量。
步驟3當(dāng)決策系數(shù)p<0.5且|Α|≥1時,當(dāng)前鯨魚在全局空間內(nèi)進行隨機游走覓食,勘測范圍較廣,此策略的數(shù)學(xué)模型為:
D=|C×Xrand-Χ(t)|;
(3)
Χ(t+1)=Xrand-Α×D。
(4)
其中:t為當(dāng)前迭代次數(shù);Xrand為當(dāng)前種群中隨機選擇個體的位置向量;Χ(t)、Χ(t+1)分別為當(dāng)前鯨魚個體在第t、t+1代的位置。
步驟4當(dāng)決策系數(shù)p<0.5且|Α|<1時,說明當(dāng)前座頭鯨找到了獵物,正在進行收縮包圍,此時將當(dāng)前全局最優(yōu)鯨魚位置當(dāng)作目標(biāo)獵物位置(或最靠近目標(biāo)獵物的位置),鯨魚以當(dāng)前全局最優(yōu)鯨魚的位置為基礎(chǔ)解進行位置更新,這一過程的數(shù)學(xué)模型如下:
D=|C×Xbest-Χ(t)|;
(5)
Χ(t+1)=Xbest-Α×D。
(6)
其中Xbest為當(dāng)前全局最優(yōu)鯨魚個體的位置。
步驟5當(dāng)決策系數(shù)p≥0.5時,表示鯨魚正在進行螺旋氣泡捕食。首先計算當(dāng)前鯨魚與當(dāng)前最優(yōu)位置鯨魚之間的距離,然后在兩者的位置之間建立一個螺旋方程,即鯨魚以螺旋氣泡網(wǎng)捕食獵物。模擬座頭鯨螺旋捕食行為的數(shù)學(xué)模型如下:
D′=|Xbest-Χ(t)|;
(7)
Χ(t+1)=D′×ebl×cos(2×π×l)+Χbest。
(8)
其中:D′為當(dāng)前位置鯨魚到當(dāng)前全局最優(yōu)位置鯨魚的距離;b為用于定義對數(shù)螺旋形狀的常數(shù);l為[-1,1]之間的均勻分布隨機數(shù)。
步驟6判斷是否符合結(jié)束條件,若符合則記錄當(dāng)前最優(yōu)解及其目標(biāo)值,否則轉(zhuǎn)步驟2進行下一輪迭代。
在鯨魚優(yōu)化算法的隨機游走覓食策略中,隨機選取種群中一頭鯨魚的位置作為基礎(chǔ)解進行位置更新,這種完全隨機性選擇雖然可以維系種群的活躍性,但也增加了算法的不確定性,導(dǎo)致算法的穩(wěn)定性較差,減緩了收斂速度。其實在隨機游走覓食過程中,可以通過反饋機制,使得鯨魚并不僅進行無目的游走,還與當(dāng)前最優(yōu)位置的鯨魚進行信息交流,這種方式不僅可以保持種群的多樣性,還可避免隨機選擇個體的盲目性,本文引入的反饋數(shù)學(xué)模型如下:
Χnew_rand=Χrand+rand×(Χrand-Χbest)。
(9)
其中:Χrand為隨機選擇的個體;Χbest為最優(yōu)鯨魚位置。
由式(9)可以看出,新鯨魚的位置是由隨機鯨魚位置和最優(yōu)鯨魚位置共同決定的,在保證種群活躍性的同時加快了收斂速度。引入反饋機制后的鯨魚隨機游走公式為:
Χ(t+1)=Χnew_rand-Α×D。
(10)
動態(tài)慣性權(quán)重是平衡和調(diào)節(jié)算法全局勘測與局部開采能力的重要機制,較大的慣性權(quán)重意味著有較大的搜索步長,有利于算法進行全局搜索,增強跳出局部極值的能力,找到全局最優(yōu)解;較小的慣性權(quán)重則是有利于算法進行局部開采,提高算法的收斂精度,加快收斂速度。而在鯨魚優(yōu)化算法的整個迭代期間,隨著進化代數(shù)的增加,慣性權(quán)重的取值并沒有發(fā)生改變,即采用較大的固定權(quán)重值,這雖然保證了算法的全局勘探能力,卻不利于迭代后期鯨魚向全局最優(yōu)解附近進行精細(xì)搜索。
基于以上分析,本文將鯨魚優(yōu)化算法的收縮包圍策略和螺旋捕食策略都分為前期、中期、后期3個進化階段。在進化前期算法的慣性權(quán)重不變,即仍采用較大固定值,使算法在全局空間中進行充分搜索;而在中后期則引入非線性遞減的動態(tài)慣性權(quán)重,使得鯨魚向全局最優(yōu)解附近靠近,加快算法收斂速度,引入的權(quán)重公式為:
(11)
式(11)中,慣性權(quán)重ω保持從1到0整體遞減趨勢的同時,也呈現(xiàn)出一定的隨機性,這種隨機性降低了算法如在中前期未能搜索到理論最優(yōu)值附近,而在后期因慣性權(quán)重的單調(diào)遞減直接陷入局部極值無法跳出的風(fēng)險,有利于算法擺脫局部最優(yōu)。加入慣性權(quán)重后,收縮包圍策略與螺旋捕食策略的公式如下:
Χ(t+1)=ω×Χbest-Α×D;
(12)
Χ(t+1)=ω×Χbest+D×ebl×cos(2×π×l)。
(13)
鯨魚優(yōu)化算法中的邊界條件處理,是在每一輪迭代的開始處對上輪迭代形成的整個種群中所有個體集中進行各維度越界檢查與處理,這種處理方式存在問題。因為在一輪迭代之中,對種群中每一個鯨魚個體進行位置更新時,就應(yīng)當(dāng)考慮該個體的新位置是否越界,而不是在整個種群都已更新完畢后的下一輪迭代開始處,再集中進行邊界條件處理。由于鯨魚在游走覓食策略的位置更新時,就已經(jīng)用到了本代種群中隨機選擇的鯨魚,如果采取現(xiàn)有的越界處理方式,會導(dǎo)致選擇的隨機個體可能是位置越界的鯨魚,從而造成連鎖反應(yīng)引起更多個體越界,而大量的越界和下輪迭代開始處的集中式越界處理會使種群中大量個體重新隨機化,中斷和破壞了已有的進化成果,降低了算法的收斂速度和求解精度,這也是WOA求解不太穩(wěn)定的一個重要原因。因此,本文采取將邊界條件處理放在每個個體位置更新后立即進行,并對邊界處理方法進行了改進。在WOA中,如果某一維或若干維的位置超出設(shè)定邊界范圍時,都是將其設(shè)置為邊界的最大值或最小值,這樣雖然可以使鯨魚的位置限定在合法區(qū)域內(nèi),但卻降低了種群的活躍性,如果越界情況較多,處理后的結(jié)果將過于趨同,不利于算法找到最優(yōu)解。本文算法在進行邊界條件處理時,會選擇在靠近相應(yīng)邊界的區(qū)域內(nèi)隨機產(chǎn)生一個數(shù)值代替越界值,如果在某個維度上低于該維度的邊界下限,就產(chǎn)生一個靠近此下限的值代替其值,如果在某維度上大于此維度的邊界上限,則產(chǎn)生一個接近該上限的值代替其值,代碼如下:
for i=1:dim
for j=1:N
if(u(i,j) u(i,j)=unifrnd(0,0.05)*(Xmax-Xmin)+Xmin end if if(u(i,j)>Xmax) u(i,j)=unifrnd(0.95,1)*(Xmax-Xmin)+Xmin end if end end 由上述代碼可以看出,改進公式不僅能增強種群的活躍性,還能提高算法的穩(wěn)定性,符合改進規(guī)律,使邊界處理更加合理和有效。 FWOA算法描述如下: 初始化鯨魚種群xi(i=1,2,…,n) 設(shè)置最優(yōu)鯨魚位置與適應(yīng)度的初值 while(t≤Max_iter) 由公式(11)計算非線性慣性權(quán)重ω for i=1:n 由公式(3)和(4)更新系數(shù)向量Α和C的值 if p<0.5 if|Α|≥1 由反饋公式(9)更新隨機鯨魚位置 以隨機鯨魚位置為基礎(chǔ)解,依據(jù)公式(10)進行隨機游走覓食 else 由式(12)以當(dāng)前最優(yōu)解為基礎(chǔ)進行收縮包圍獵物 end if else 由式(13)以當(dāng)前最優(yōu)解為基礎(chǔ)進行螺旋捕食 end if 進行邊界條件處理 計算新的適應(yīng)度值,確定當(dāng)前最優(yōu)值和最優(yōu)值位置 end for end while 輸出結(jié)果 時間復(fù)雜度體現(xiàn)了算法的運行效率,是評判算法性能優(yōu)劣的重要因素。在基本鯨魚優(yōu)化算法中,假設(shè)種群規(guī)模為N,個體位置的維度為n,設(shè)置最優(yōu)鯨魚的初始位置與適應(yīng)度初值的時間為t1,初始化鯨魚個體位置中每一維的時間為t2,則初始化階段的時間復(fù)雜度為: T1=O(t1+N(n·t2))=O(n)。 進入迭代后,總迭代次數(shù)為Max_iter。假設(shè)對種群中每只鯨魚每一維進行邊界條件處理的時間為t3,計算目標(biāo)函數(shù)適應(yīng)度值的時間為f(n),與當(dāng)前最優(yōu)適應(yīng)度值比較替換的時間為t4,系數(shù)向量Α和C的計算時間為t5,則該階段的時間復(fù)雜度 T2=O(N(n·t3+f(n)+t4+t5)) =O(n+f(n))。 假設(shè)種群中有m1頭鯨魚進行隨機游走覓食,m2頭鯨魚進行收縮包圍獵物,m3頭鯨魚進行螺旋路徑游走攻擊獵物(N=m1+m2+m3,0≤m1,m2,m3≤N),鯨魚個體在執(zhí)行這3種不同策略時,每維位置更新的時間分別為t6、t7、t8,則該階段的時間復(fù)雜度 T3=O(N(m1(n·t6)+m2(n·t7)+ m3(n·t8)))=O(n)。 綜上所述,WOA總的時間復(fù)雜度 T=T1+Max_iter(T2+T3)=O(n+f(n))。 在FWOA算法中,種群規(guī)模為N,個體維度為n,均與基本鯨魚優(yōu)化算法一致。兩者初始化過程一樣,這一階段的時間復(fù)雜度相同,均為T1=O(t1+N(n×t2))=O(n)。 進入迭代后,總迭代次數(shù)仍為Max_iter。假設(shè):慣性權(quán)重w的計算時間為ξ1,系數(shù)向量Α和C的計算時間仍為t5,則該階段的時間復(fù)雜度 (O(N(t5)))=O(ξ1+t5)。 假設(shè)鯨魚個體每一維進行越界處理的時間為ξ6,計算目標(biāo)函數(shù)適應(yīng)度值的時間f(n)、與當(dāng)前最優(yōu)適應(yīng)度值比較替換的時間t4都和基本W(wǎng)OA算法一致,則該階段的時間復(fù)雜度 =O(n+f(n))。 由上可得,改進算法FWOA的總時間復(fù)雜度 基于上述分析可知,本文改進算法FWOA和基本鯨魚優(yōu)化算法WOA的時間復(fù)雜度相同,并沒有降低算法的執(zhí)行效率。 為了驗證本文算法FWOA的整體性能,本文進行了兩部分實驗。4.1節(jié)將算法在12個復(fù)雜無約束基準(zhǔn)測試函數(shù)上進行低、中、高3種不同維度的函數(shù)極值優(yōu)化測試,用以驗證算法的尋優(yōu)性能與收斂能力。4.2節(jié)研究了3個具有挑戰(zhàn)性的工程設(shè)計約束優(yōu)化問題,用以檢驗算法在不同類型工程優(yōu)化設(shè)計問題上的求解能力和應(yīng)用潛力。兩部分實驗都將本文算法FWOA與基本鯨魚優(yōu)化算法(WOA)、A-CWOA(A-C parametric whale optimization algorithm)[34]、AWOA(adaptive whale optimization algorithm)[35]、蝙蝠算法(BA)、蝴蝶優(yōu)化算法(BOA)共6種算法進行了對比?;谒惴ㄐ阅鼙容^的公平性原則,6種對比算法采用相同的軟、硬件平臺,運行環(huán)境為Windows10操作系統(tǒng)、編程語言為MATLAB R2016a。仿真實驗中,6種算法的運行次數(shù)、種群規(guī)模、空間維度和最大迭代次數(shù)都保持一致,即N=30,dim=10/50/100,N_iter=1 000,每種算法分別獨立運行30次。 在算法參數(shù)設(shè)置方面,4個鯨魚類算法中用于定義對數(shù)螺旋形狀的常數(shù)b的值均設(shè)為1;蝴蝶優(yōu)化算法中冪指數(shù)a的值為0.1,感知形態(tài)c的初值為c=0.01,轉(zhuǎn)換概率p=0.8;蝙蝠算法的聲波響度A0=0.25,脈沖發(fā)動速率r0=0.5。6個算法的參數(shù)設(shè)置采用的都是其各自基本算法的原有標(biāo)準(zhǔn)值,本文未另做挑選和更改,這進一步增強了實驗結(jié)果與對比分析的客觀性、公正性和可信性。 4.1.1 尋優(yōu)精度分析 為了測試本文算法FWOA的求解性能,將其與上述5種對比算法在12個具有不同特征的基準(zhǔn)測試函數(shù)上進行函數(shù)優(yōu)化對比測試。具體測試函數(shù)如表1所示。 表1 測試函數(shù) 表1所列的12個基準(zhǔn)測試函數(shù)中:F1(x)、F2(x)、F4(x)、F6(x)、F7(x)是單峰函數(shù),全局搜索相對比較簡單,大多數(shù)算法的優(yōu)化結(jié)果都能達到理論最優(yōu)值附近,主要用來測試算法的求解精度與收斂能力。F3(x)、F5(x)、F8(x)-F12(x)是多峰函數(shù),這類函數(shù)大多具有多個極值點,用來檢測算法能否擺脫局部極值找到全局最優(yōu)解,其中:函數(shù)F5(x)的全局最優(yōu)值周圍有無數(shù)個極小值點,且全局最優(yōu)值與這些極小值點之間存在極大值點,因此該函數(shù)具有強烈的震蕩特性,很難找到全局最優(yōu)值,非??简炈惴ㄌ鼍植繕O值的能力;而函數(shù)F10(x)是F5(x)的一個升級版函數(shù),不但具有F5(x)的所有特點,而且函數(shù)圖像是層層疊加的,求解難度上升了很多倍;函數(shù)F11(x)是通過增加正弦函數(shù)頻繁產(chǎn)生局部極小值,且極小值的位置分布不是對稱的;函數(shù)F12(x)則是通過指數(shù)函數(shù)進行調(diào)節(jié),含有大量的障礙物,且極值點個數(shù)隨著空間維度的增加呈梯度增加,更能考驗算法求解高維復(fù)雜函數(shù)的能力。這些各具特點的不同函數(shù)都有一定的求解難度,很適于測試算法的性能。 4.1.2 尋優(yōu)精度分析 表2統(tǒng)計了6種對比算法在空間維度為10維、50維和100維的情況下,各自獨立運行30次的最差解、最優(yōu)解和平均值,并將各函數(shù)相應(yīng)的最佳結(jié)果進行了加粗標(biāo)注。 表2 6種算法在固定迭代次數(shù)下的尋優(yōu)性能比較 續(xù)表2 觀察表2的數(shù)據(jù)可知,在空間維度從10維增加到100維的過程中,F(xiàn)WOA、AWOA、A-CWOA、WOA和BOA 5種算法的尋優(yōu)性能并沒有出現(xiàn)太大程度的降低,這說明WOA和BOA有著較好的維度變化適應(yīng)性,適于求解高維函數(shù)。而BA不但在尋優(yōu)結(jié)果上不如這5種算法,而且維度變化適應(yīng)性不佳,這也反映出最近幾年一些新興算法在尋優(yōu)機制和能力上的進步。 觀察6種算法在單峰函數(shù)上的尋優(yōu)結(jié)果,可以看出各算法的整體開發(fā)能力。對于函數(shù)F1(x)和F7(x),F(xiàn)WOA和AWOA算法在不同維度下30次運行所找到的最差解、最優(yōu)解和平均值都是理論最優(yōu)值,其尋優(yōu)性能遠(yuǎn)遠(yuǎn)超過A-CWOA、WOA、BOA和BA 4種算法。而對于函數(shù)F2(x)和F6(x),雖然AWOA算法找到的最優(yōu)解非常接近于理論最優(yōu)值,但仍稍遜于最差解、最優(yōu)解和平均值都是理論最優(yōu)值的FWOA算法。對于余下的單峰函數(shù)F4(x),這是12個函數(shù)中唯一使鯨魚類算法隨著維度增加尋優(yōu)性能降低的函數(shù),不僅WOA和A-CWOA表現(xiàn)不佳,就連尋優(yōu)性能一向良好的AWOA表現(xiàn)也不盡人意,由表2中F4(x)的數(shù)據(jù)可知,AWOA算法在10維和50維下都找到了理論最優(yōu)解,但仔細(xì)觀察其在100維下的平均值和最差解可知,AWOA在這個函數(shù)上的表現(xiàn)并不穩(wěn)定,而本文改進算法不但找到了全局理論最優(yōu),而且測試結(jié)果非常穩(wěn)定,說明FWOA在單峰函數(shù)上的表現(xiàn)更好,高維適應(yīng)性更強,算法的整體開發(fā)能力更優(yōu)。而BOA雖然也受維度變化影響不大,但其整體的開發(fā)能力卻略遜于鯨魚類算法;仔細(xì)觀察BA在這5個單峰函數(shù)上的表現(xiàn)可以發(fā)現(xiàn),該算法在搜索區(qū)間較小的函數(shù)F2(x)和F4(x)上的尋優(yōu)結(jié)果要遠(yuǎn)遠(yuǎn)優(yōu)越于搜索區(qū)間較大的其余3個函數(shù),這說明BA的局部搜索能力較好,而全局尋優(yōu)能力相對較弱,算法進行大范圍全面搜索時跳出局部最優(yōu)的能力不足。 與單峰函數(shù)不同,多峰函數(shù)包含許多局部最優(yōu)解,這些局部最優(yōu)解的數(shù)量隨著空間維度的增加呈指數(shù)增長,非常適于測試算法跳出局部極值的能力和對于維度變化的適應(yīng)性。觀察6種算法在多峰函數(shù)上的尋優(yōu)結(jié)果,可以看到除了函數(shù)F11(x),F(xiàn)WOA和AWOA在不同維度下30次運行找到的最差解、最優(yōu)解和平均值都是理論最優(yōu)值,說明這兩種算法具有很好的探測能力且跳出局部極值的能力較強。而A-CWOA、WOA、BOA和BA 4種算法在除F5(x)和F12(x)以外的多峰函數(shù)上找到的最差解、最優(yōu)解和平均值都不是全局理論最優(yōu)。與在單峰函數(shù)上表現(xiàn)類似,BA仍然在較大區(qū)間內(nèi)搜索效果不太好,很容易陷入局部極值難以跳出。對于小搜索區(qū)間的多峰函數(shù)F5(x),4個鯨魚類算法找到的最優(yōu)解都是全局理論最優(yōu),而BA和BOA求得的最優(yōu)解也很接近于此,但仔細(xì)觀察在較大區(qū)間內(nèi)搜索的多峰函數(shù)F3(x)、F9(x)、F10(x)、F12(x),BA找到的最優(yōu)解不僅遠(yuǎn)遠(yuǎn)落后于WOA,與BOA相比,尋優(yōu)結(jié)果也差了很多。 對于函數(shù)F11(x),6種算法雖都沒找到全局理論最優(yōu)值0,但FWOA在不同空間維度下找到的最差解、最優(yōu)解和平均值都優(yōu)于AWOA、A-CWOA、WOA、BOA和BA 5種算法,依然顯示出更好的求解能力和維度適應(yīng)性。 以上尋優(yōu)精度結(jié)果表明,無論是單峰函數(shù)還是多峰函數(shù),F(xiàn)WOA在各個維度下每次運行的結(jié)果幾乎都是全局理論最優(yōu),表現(xiàn)出優(yōu)越的求解性能。這些測試結(jié)果充分說明了FWOA較好地解決WOA在函數(shù)極值優(yōu)化上尋優(yōu)精度不高、容易陷入局部極值、尋優(yōu)性能不穩(wěn)定的問題。 4.1.3 收斂曲線分析 為了更直觀地比較6種算法的尋優(yōu)性能,各算法在迭代次數(shù)相同、維度為100情況下求解多峰函數(shù)F3(x)、F5(x)、F8(x)-F12(x)的收斂曲線如圖1~圖7所示。多峰函數(shù)能體現(xiàn)算法跳出局部極值的能力,更能說明算法的尋優(yōu)能力,單峰函數(shù)的收斂曲線比較簡單且結(jié)果與多峰函數(shù)類似,不再贅述。 從以上7個多峰函數(shù)圖上可以看出算法的收斂速度和擺脫局部極值、尋找全局最優(yōu)值的能力。FWOA在除了圖2和圖7以外的5個收斂曲線圖上,收斂速度都是6種算法中最快的;雖在F5(x)和F12(x)上的收斂速度落后于AWOA和A-CWOA,但同樣也找到了全局理論最優(yōu)值,且觀察表2中函數(shù)F12(x)數(shù)據(jù)可以發(fā)現(xiàn),A-CWOA雖可以找到最優(yōu)解,但并不穩(wěn)定,而FWOA和AWOA算法找到的最優(yōu)解、最差解和平均值都是全局理論最優(yōu),說明這兩種算法不但跳出局部極值的能力較強,而且尋優(yōu)過程中表現(xiàn)比較穩(wěn)定。在圖1和圖3~圖6中,A-CWOA、WOA、BOA三種算法的收斂曲線雖仍呈現(xiàn)下降趨勢,但收斂速度比較緩慢,無法在1 000代內(nèi)收斂到全局理論最優(yōu)。BA更是從一開始便陷入了局部極值,收斂曲線幾乎呈現(xiàn)水平狀態(tài),下降趨勢極不明顯,完全無法在1 000代內(nèi)收斂到全局最優(yōu)值附近。 由4.1.2節(jié)的尋優(yōu)精度和圖1~圖7分析可知,在空間維度分別是10維、50維、100維的情況下,F(xiàn)WOA表現(xiàn)出非常優(yōu)越的求解性能,在測試的12個基準(zhǔn)函數(shù)各個維度上幾乎都找到了理論最優(yōu)值,且FWOA的收斂速度大部分明顯比AWOA、A-CWOA、WOA、BA和BOA算法更快。這是因為FWOA算法在隨機游走覓食策略中引入了基于當(dāng)前全局最優(yōu)解的反饋機制,不僅加快了算法的收斂速度,還增強了求解的穩(wěn)定性;而在收縮包圍策略和螺旋捕食策略中引入分段式隨機慣性權(quán)重,可以在加快算法收斂速度的同時,降低算法在中前期如果未能搜索到理論最優(yōu)值附近便會在后期因慣性權(quán)重的單調(diào)遞減直接陷入局部極值無法跳出的風(fēng)險,有利于算法擺脫局部最優(yōu),找到全局最優(yōu)值。而對越界處理的修正和改進,不但消除了已有進化成果可能丟失的隱患,也解決了若種群中較多個體越界而在越界處理后過于趨同損失多樣性的問題,有利于算法找到最優(yōu)解,提高收斂速度與尋優(yōu)精度。上述實驗充分說明FWOA具有出色的尋優(yōu)性能,其尋優(yōu)精度、收斂速度、跳出局部極值的能力、維度變化適應(yīng)性和求解穩(wěn)定性均優(yōu)于AWOA、A-CWOA、WOA、BA和BOA 5種對比算法。 為了驗證本文算法FWOA求解工程約束優(yōu)化問題的有效性,將FWOA和上述5種對比算法應(yīng)用于焊接梁、拉伸彈簧和壓力容器3個著名的標(biāo)準(zhǔn)工程優(yōu)化設(shè)計問題。這3個工程問題具有各自不同的約束,本文采用通用的死刑懲罰函數(shù)機制處理這些約束條件,使算法在優(yōu)化過程中自動丟棄不可行解。在求解這些工程優(yōu)化問題時,每個算法均獨立運行100次取其最佳尋優(yōu)設(shè)計結(jié)果,參數(shù)設(shè)置也與4.1節(jié)相同。 4.2.1 求解焊接梁優(yōu)化設(shè)計問題 焊接梁設(shè)計是一個著名的復(fù)雜約束工程設(shè)計問題,其目的是在剪應(yīng)力、彎曲應(yīng)力、屈曲載荷、端部撓度和側(cè)面約束下找到最低制造成本。該問題有7個約束條件和4個設(shè)計變量,設(shè)計變量分別是焊縫厚度h(0.1≤h≤2)、焊縫長度l(0.1≤l≤10)、梁寬度t(0.1≤t≤10)、梁厚度b(0.1≤b≤2),具體數(shù)學(xué)模型如下: (1)設(shè)計變量: x=[x1x2x3x4]=[hltb]。 (2)目標(biāo)函數(shù): (3)約束函數(shù): g1(x)=τ(x)-136 000≤0; g2(x)=σ(x)-30 000≤0; g3(x)=x1-x4≤0; (14.0+x2)-5.0≤0; g5(x)=0.125-x1≤0; g6(x)=δ(x)-0.25≤0; g7(x)=6 000-Pc(x)≤0; 表3統(tǒng)計了6種算法在求解焊接梁設(shè)計問題時得到的最佳解決方案數(shù)據(jù),由表3可以看出,本文算法FWOA在h=1.820 0、l=2.688 28、t=9.035 30、b=0.205 80處得到的最小代價f(x)=1.591 25是找到的焊接梁設(shè)計問題的最低成本。這是因為本文算法引入的反饋機制和慣性權(quán)重提高了算法的局部搜索能力,基本鯨魚算法是一個更擅于全局搜索的算法,特別是在大范圍空間搜索時,算法比較穩(wěn)定,這一點從4.1節(jié)的求解函數(shù)極值實驗部分就可以看出。而焊接粱的設(shè)計變量取值范圍比較小并受到多個約束條件的限制,需要算法有著較強的局部搜索能力,而本文改進則很好地滿足了這一要求。 表3 6種算法求解焊接梁設(shè)計問題的最佳解決方案 4.2.2 求解拉伸彈簧優(yōu)化設(shè)計問題 拉伸彈簧設(shè)計是一個最小化約束問題,其目的是設(shè)計一種重量最輕且滿足撓度、剪切應(yīng)力、波動頻率、外徑等4個約束條件和3個設(shè)計變量的拉伸彈簧。3個設(shè)計變量分別為線徑d(0.05≤d≤2.00)、平均線圈直徑D(0.25≤D≤1.30)、活性線圈數(shù)量N(2.00≤N≤15.00),該設(shè)計問題的數(shù)學(xué)模型如下: (1)設(shè)計變量: x=[x1x2x3]=[dDN]。 (2)目標(biāo)函數(shù): (3)約束函數(shù): 表4所示為FWOA算法和其他5種算法求解拉伸彈簧設(shè)計問題的最小重量及對應(yīng)設(shè)計變量的最優(yōu)解。從該表數(shù)據(jù)可以看出,除了BOA和A-CWOA算法的求解結(jié)果相對較差外,其他幾種算法求得的最終設(shè)計結(jié)果相差無幾,且細(xì)微觀察可以看出,F(xiàn)WOA求解出的彈簧重量是6種算法中最小的,說明本文算法對于求解這類工程設(shè)計問題具有良好的性能。 表4 6種算法求解拉伸彈簧設(shè)計問題的最佳解決方案 4.2.3 求解壓力容器優(yōu)化設(shè)計問題 壓力容器設(shè)計問題的目標(biāo)是使總成本最小化,包括材料成本、成型成本和焊接成本。該設(shè)計問題有4個約束條件和4個設(shè)計變量,設(shè)計變量分別是殼體厚度Ts(0≤Ts≤99)、封頭厚度Th(0≤Th≤99)、殼體半徑R(10≤R≤200)以及圓柱形截面長度Ls(10≤Ls≤200),其具體數(shù)學(xué)模型如下: (1)設(shè)計變量: x=[x1x2x3x4]=[TsThRLs]。 (2)目標(biāo)函數(shù): (3)約束函數(shù): g1(x)=-x1+0.019 3x3≤0; g2(x)=-x2+0.009 54x3≤0; g4(x)=x4-240≤0。 表5統(tǒng)計了6種算法在求解壓力容器問題時,得到的最佳解決方案的數(shù)據(jù)??梢钥闯?,本文算法FWOA在Ts=0.778 84、Th=0.384 77、R=40.325 89、Ls=199.928 78處得到的最小代價f(x)=5 886.970 27不但是這幾種算法求解壓力容器設(shè)計問題的最低成本,而且其設(shè)計結(jié)果的成本遠(yuǎn)低于其他5種算法,充分說明FWOA在求解此類工程設(shè)計約束優(yōu)化問題時具有優(yōu)越的性能。 表5 6種算法求解壓力容器設(shè)計問題的最佳解決方案 通過對以上3種不同復(fù)雜程度的著名工程約束優(yōu)化問題的測試,充分說明了本文改進算法FWOA在處理不同類型工程優(yōu)化設(shè)計問題上具有較好的應(yīng)用潛力,不但能夠提供很好的解決方案,而且求解結(jié)果也相當(dāng)穩(wěn)定。 為了更好求解工程設(shè)計約束優(yōu)化問題,提升鯨魚算法的尋優(yōu)性能、求解穩(wěn)定性和應(yīng)用能力,本文提出一種基于分段式隨機慣性權(quán)重和最優(yōu)反饋機制的改進鯨魚算法。在隨機游走覓食策略中引入基于當(dāng)前全局最優(yōu)解的反饋機制,在維系種群多樣性的同時避免了隨機選擇個體的盲目性,不僅加快了收斂速度,還改善了算法的穩(wěn)定性。在收縮包圍策略和螺旋氣泡網(wǎng)捕食策略中引入分段式隨機慣性權(quán)重,調(diào)節(jié)算法全局勘測能力和局部開采能力的平衡,不僅加快了算法的收斂速度,還降低了后期因慣性權(quán)重單調(diào)遞減直接陷入局部極值無法跳出的風(fēng)險,有利于算法擺脫局部極值,找到全局最優(yōu)值。而對于越界處理的修正和改進,則消除了已有進化成果可能丟失的隱患,解決了當(dāng)種群中較多個體越界而在越界處理后過于趨同造成多樣性喪失的問題,提高了算法的尋優(yōu)精度與收斂速度。通過理論分析證明了本文算法FWOA和基本鯨魚算法(WOA)的時間復(fù)雜度相同,算法改進并沒有降低執(zhí)行效率。通過對6種算法在12個復(fù)雜基準(zhǔn)測試函數(shù)上進行的不同維度函數(shù)極值優(yōu)化仿真測試,結(jié)果表明,F(xiàn)WOA的尋優(yōu)性能和求解穩(wěn)定性都明顯優(yōu)于其他5種對比算法。而對焊接梁、拉伸彈簧和壓力容器3個具有挑戰(zhàn)性的工程設(shè)計約束優(yōu)化問題的求解結(jié)果,也充分證明了FWOA在處理不同類型工程優(yōu)化設(shè)計問題上具有很好的適用性和優(yōu)越的求解效果。下一步將繼續(xù)改進鯨魚優(yōu)化算法的尋優(yōu)機制,不斷提高求解性能,并進一步提升算法的應(yīng)用能力和適用性,將其應(yīng)用于更多領(lǐng)域問題的求解中。2.4 FWOA算法流程
3 時間復(fù)雜度分析
4 仿真實驗
4.1 函數(shù)極值優(yōu)化仿真實驗
4.2 工程設(shè)計約束優(yōu)化問題的求解與分析
5 結(jié)束語