李毅斌 周 勇
武漢理工大學(xué)物流工程學(xué)院 武漢 430063
起重機箱形主梁優(yōu)化設(shè)計問題是一個屬于多約束、非線性的復(fù)雜問題[1,2],其目標函數(shù)與約束條件都比較復(fù)雜,采用傳統(tǒng)的優(yōu)化算法處理此類問題存在優(yōu)化精度不高、耗時長等缺點,難以達到理想狀態(tài),故采用新的優(yōu)化算法處理起重機箱形主梁優(yōu)化設(shè)計問題非常必要。
人工螢火蟲算法是一種通過模擬螢火蟲發(fā)光行為的新型群智能仿生優(yōu)化算法[3]。該算法具有操作方便、魯棒性強、峰值發(fā)現(xiàn)率高等優(yōu)點,但也存在收斂速度較慢、尋優(yōu)精度不高和極易陷入局部最優(yōu)等缺點[4]。為了解決螢火蟲優(yōu)化算法的不足,進一步提高起重機箱形主梁優(yōu)化性能,本文提出了一種基于引力導(dǎo)向和自適應(yīng)步長策略的改進螢火蟲算法,最后結(jié)合實際工況進行實例優(yōu)化對比,進一步驗證了改進螢火蟲算法的有效性。
在基本螢火蟲優(yōu)化算法中,種群的初始化階段需要在多維求解空間內(nèi)隨機分布一定數(shù)量的螢火蟲群體,每只螢火蟲對應(yīng)的位置代表求解空間中的一個解。螢火蟲群體中每個個體的初始熒光素都被設(shè)置為相同初始值,螢火蟲個體的亮度與螢光素強度成正比關(guān)系,熒光素強度由當前螢火蟲位置對應(yīng)的目標函數(shù)值決定,即熒光素值越高,螢火蟲亮度越強,代表目標函數(shù)值越優(yōu)。
螢火蟲個體在移動方向選擇時遵循輪盤賭法的規(guī)則。螢火蟲個體i在自身動態(tài)決策域半徑范圍內(nèi)尋找熒光素強度比自身大的螢火蟲個體組成自身的鄰域集,并利用輪盤賭法在鄰域集內(nèi)按照概率選出另一個螢火蟲個體j作為移動目標,個體i就會朝著個體j的方向移動。完成移動步驟后,更新螢火蟲個體i的熒光素強度大小和自身動態(tài)決策域半徑,為下一次迭代做準備。
重復(fù)這一過程,在不斷地迭代運動后,螢火蟲種群就會向問題最優(yōu)解的區(qū)域移動,最后聚集在熒光素強度較大的螢火蟲個體周圍,即搜尋到目標函數(shù)的最優(yōu)解。
基本的螢火蟲算法總體可分為5 個主要步驟[5]:螢火蟲種群初始化、熒光素更新、移動方向選擇、個體位置更新和決策域更新。
1) 螢火蟲種群初始化
對算法中螢火蟲群體的熒光素揮發(fā)因子、適應(yīng)度提取比例、鄰域變化率、鄰域螢火蟲數(shù)、步長、熒光素濃度、感知半徑、決策半徑、解集范圍、最大迭代代數(shù)等參數(shù)進行初始化。
2) 熒光素更新
螢火蟲熒光素值與螢火蟲位置對應(yīng)的目標函數(shù)值相關(guān),目標函數(shù)值越優(yōu),則該螢火蟲個體適應(yīng)度越好,對應(yīng)的個體熒光素值就越大,亮度也隨之變得越亮。經(jīng)位置更新后,螢火蟲的熒光素值由上一代的熒光素值和當代位置的適應(yīng)度共同決定。在下一次算法迭代開始前,所有螢火蟲個體的熒光素值都需要更新,熒光素值的更新依據(jù)為
式中:ρ為熒光素揮發(fā)因子,取值范圍是(0,1);li(t)為第i只螢火蟲在第t次迭代熒光素大?。沪脼檫m應(yīng)度提取比例,取值范圍是(0,1);J(xi(t+1))為螢火蟲i在第t+1 次迭代的位置xi(t+1)對應(yīng)的目標函數(shù)值。
3) 移動方向選擇
在每次螢火蟲算法迭代過程中,螢火蟲個體需要調(diào)整更新自身的空間位置。在個體移動前,需要在螢火蟲i的動態(tài)決策域半徑內(nèi),選擇熒光素值比自己高的螢火蟲個體組成一個鄰域集Ni(t)。建立鄰域集后,利用輪盤賭法則選擇其中一只螢火蟲j作為螢火蟲i的移動方向。鄰域集內(nèi)每只螢火蟲個體被選擇的概率計算為
式中:dij(t)為在第t次迭代螢火蟲i與螢火蟲j的空間歐氏距離。
4) 個體位置更新
在鄰域集中根據(jù)輪盤賭法則選出螢火蟲個體j,確定了移動方向之后可以進行螢火蟲個體i下一代位置更新,更新規(guī)則可表示為
式中:s為螢火蟲的固定移動步長;║xj(t)-xi(t)║為在第t次迭代中螢火蟲j與螢火蟲i之間的空間歐氏距離。
5) 決策域更新
在每次迭代結(jié)束后,螢火蟲的決策域范圍都會隨其位置的改變而更新,決策域半徑可根據(jù)鄰域集內(nèi)螢火蟲數(shù)量大小進行動態(tài)調(diào)整。螢火蟲個體i的決策域半徑可確定為
式中:β為螢火蟲動態(tài)決策域調(diào)節(jié)因子,nt為鄰域集內(nèi)螢火蟲數(shù)目的閾值。
由基本螢火蟲算法可知,在螢火蟲個體選取移動方向時,采用的策略是在鄰域集中利用輪盤賭法則隨機選擇其中一只高熒光素的螢火蟲作為移動目標。此選擇策略不僅隨機性很大,同時忽略了螢火蟲之間的距離因素和鄰域集內(nèi)其他螢火蟲的影響因素。在自然界中,除了熒光素值的影響,螢火蟲之間的吸引力還應(yīng)考慮距離因素。當2 螢火蟲相距越遠時,吸引力也會隨之下降,即使該螢火蟲熒光素最高;此時相距較近的螢火蟲也可能會被作為吸引目標,即使該螢火蟲熒光素不是最高。此外,當鄰域集內(nèi)存在多只高熒光素的螢火蟲時,采用輪盤賭選擇策略會有很大的隨機性與誤差。為了提高算法的收斂性與收斂速度,該螢火蟲的移動方向選擇策略應(yīng)同時考慮鄰域集內(nèi)所有螢火蟲的熒光素與距離對自身的影響。
在基本螢火蟲算法中的個體位置更新階段采用固定移動步長進行移動,移動步長越大,其搜索范圍越大。然而,在算法迭代運行后期,若步長太大,易出現(xiàn)峰值附近的震蕩或跳離最優(yōu)解等問題,影響了算法的尋優(yōu)精度;相反,在算法迭代運行前期,若步長太小,則早期搜索時間增加,影響了算法的收斂速度。
針對基本螢火蟲算法存在的不足,本文對其改進主要引入了兩個策略:一是考慮了鄰域集內(nèi)所有螢火蟲的熒光素與距離對自身影響的移動方向選擇策略;二是將固定步長調(diào)整為自適應(yīng)步長。
1)移動方向選擇
由于基本螢火蟲算法選擇移動方向中未考慮距離因素,本文利用由萬有引力所引起的物體運動導(dǎo)向思想,根據(jù)式(5)定義鄰域集內(nèi)其他螢火蟲j對螢火蟲i的吸引力;同時考慮鄰域集內(nèi)所有螢火蟲對自身的吸引力大小與方向的影響,最終在第t次迭代中螢火蟲i的移動方向Vi(t)可表示為
式中:G為常數(shù)1;(t)為在第t次迭代中螢火蟲j對螢火蟲i的吸引力;Fi(t)為在第t次迭代中螢火蟲i在自身鄰域集中受到所有吸引力的矢量和;Vi(t)為單位化的Fi(t),即第t次迭代中螢火蟲i的移動方向。
將改進后與原始的移動方向選擇策略進行對比(見圖1,為了凸顯效果,移動步長進行了適當放大),圖中假設(shè)螢火蟲i(實心)的決策域半徑內(nèi)共有2 只熒光素比自身高的螢火蟲j1、j2(實心)。Fi為螢火蟲i所受的吸引力,Vi為螢火蟲i最終確定的移動方向。從圖1 中看出,按原始策略中無論向螢火蟲j1移動一個步長到達點A,還是向螢火蟲j2移動一個步長到達點B,其所對應(yīng)的值都低于以Vi為移動方向移動一個步長所達到的點C。
2)自適應(yīng)步長
由于基本螢火蟲算法中采用固定步長的策略會導(dǎo)致算法尋優(yōu)精度不高、收斂速度慢、易產(chǎn)生峰值震蕩等問題,本文綜合考慮了迭代次數(shù)以及鄰域集內(nèi)螢火蟲的總吸引力2 個因素來動態(tài)地調(diào)整螢火蟲的移動步長。在算法迭代初期,采用較大移動步長,以實現(xiàn)較好的全局尋優(yōu)能力,防止算法易出現(xiàn)陷入局部最優(yōu)、過早成熟的缺陷。在算法迭代后期,采用較小移動步長,使其在局部范圍內(nèi)精細搜索,減弱局部峰值附近的震蕩作用,提高算法的求解精度。此外,還考慮了吸引力的影響因素,吸引力越大則步長越大,反之越小。第t次迭代中螢火蟲i的移動步長si(t)可確定為
式中:t為當前迭代次數(shù);tmax為最大迭代次數(shù);smax、smin分別為最大移動步長和最小移動步長;q為步長調(diào)節(jié)因子,取值為2。
本文在基本螢火蟲算法的基礎(chǔ)上,改進了移動方向選擇策略,調(diào)整為自適應(yīng)步長。根據(jù)上述改進描述,改進螢火蟲算法的主要步驟如下:
步驟1:初始化螢火蟲種群數(shù)量,并將螢火蟲個體隨機分布在目標函數(shù)的解集空間內(nèi)。對改進后的螢火蟲算法相關(guān)參數(shù)進行初始化;
步驟2:根據(jù)式(1)更新螢火蟲個體的熒光素值;
步驟3:計算螢火蟲個體i的鄰域集Ni(t);
步驟4:判斷鄰域集是否為空集,若是,則轉(zhuǎn)向步驟6;否則轉(zhuǎn)向步驟5;
步驟5:根據(jù)式(5)~式(7)獲取螢火蟲i的移動方向,根據(jù)式(8)~式(10)獲取螢火蟲i的自適應(yīng)步長。然后對螢火蟲i位置進行更新。然后跳轉(zhuǎn)到步驟6;
步驟6:根據(jù)式(4)對螢火蟲的動態(tài)決策域半徑進行更新;
步驟7:判斷是否達到最大迭代次數(shù),如果達到,則終止算法,輸出目標函數(shù)最優(yōu)解;否則返回步驟2,繼續(xù)運行算法。
本文以起重機箱形截面主梁結(jié)構(gòu)為研究對象建立數(shù)學(xué)模型,并采用改進螢火蟲算法GAGSO 與其余2 種螢火蟲優(yōu)化方法對模型進行優(yōu)化求解。
起重機箱形主梁的計算簡圖與截面圖如圖2 所示。在滿足性能基礎(chǔ)上,使箱形主梁質(zhì)量最小,其質(zhì)量主要取決于箱形主梁的截面面積,故以箱形主梁的截面面積最小為優(yōu)化目標,建立如下數(shù)學(xué)模型[6]。
圖2 起重機箱形主梁的計算簡圖與截面圖
1)設(shè)計變量
式中:x1為主梁腹板高度,x2為主梁翼緣板寬,x3為腹板厚度,x4為翼緣板厚度。
2)目標函數(shù)
3)約束條件
根據(jù)《起重機設(shè)計手冊》及其他相關(guān)規(guī)范對強度、剛度、穩(wěn)定性等性能的要求,經(jīng)整理簡化后確定的約束條件為
其中,L=10.5 m,P1=1.2×105N,P2=1.2×104N,r=7.8 t/m3,[σ]=140 MPa,[f]=L/700。
根據(jù)所建立數(shù)學(xué)模型,分別采用基本螢火蟲算法GSO、改進變步長螢火蟲算法CGGSO[7]和本文改進螢火蟲算法GAGSO 進行優(yōu)化求解,其中算法部分參數(shù)設(shè)置為:螢火蟲種群大小設(shè)為100,最大迭代次數(shù)tmax=100,熒光素揮發(fā)因子ρ=0.4,熒光素更新率γ=0.6,決策域更新率β=0.08,鄰域集內(nèi)螢火蟲數(shù)目的閾值Nt=5,螢火蟲初始熒光素量l0=5,決策半徑rd=2.048,感知半徑rs=2.048,固定步長s0=0.03,最大移動步長smax=1,最小移動步長smin=0.01。優(yōu)化結(jié)果與各算法迭代曲線如表1、圖3 所示。
表1 起重機箱形主梁截面積設(shè)計參數(shù)優(yōu)化結(jié)果
圖3 各優(yōu)化算法迭代曲線
由表1 可知,本文提出的GAGSO 算法在搜索全局最優(yōu)值時普遍優(yōu)于其余2 種算法。此外,由圖3 可以看出,在優(yōu)化過程中GAGSO 算法能找到最優(yōu)解前的迭代次數(shù)明顯更少,而其余2 種算法需要更多的迭代次數(shù)才能找到全局最優(yōu)值。從全局最優(yōu)值來看,GAGSO 算法在收斂過程中搜尋到的全局最優(yōu)值更小,更接近真實的最優(yōu)值。即本文改進的螢火蟲算法在求解精度與收斂速度上效果更好,說明通過對基礎(chǔ)算法的改進使算法在求解性能上得到了提升,并在起重機箱形主梁優(yōu)化設(shè)計實例上驗證了算法的可靠性。
1)提出了一種改進的螢火蟲算法,通過將螢火蟲鄰域集內(nèi)所有螢火蟲的熒光素與距離因素考慮在內(nèi),給出一種基于引力導(dǎo)向的移動方向選取策略,提高了算法的全局搜索能力。根據(jù)螢火蟲所受吸引力大小與迭代次數(shù)提出了自適應(yīng)步長策略,進一步提高了算法的收斂性能并降低了迭代次數(shù)。
2)分別將改進螢火蟲算法和其余優(yōu)化方法應(yīng)用于起重機箱形主梁優(yōu)化設(shè)計實例進行優(yōu)化對比,結(jié)果表明,改進后的螢火蟲算法在求解精度和收斂速度上均有較大程度的提升,解決了起重機箱形主梁優(yōu)化設(shè)計問題。