李彥蒼,楊宗瑾
(河北工程大學(xué),河北 邯鄲 056038)
對于桁架結(jié)構(gòu),在給定結(jié)構(gòu)形式、材料和形狀的情況下,優(yōu)化各個(gè)桿件的尺寸,使結(jié)構(gòu)在滿足約束條件的同時(shí)達(dá)到結(jié)構(gòu)總質(zhì)量最輕、設(shè)計(jì)合理性最佳、工程成本質(zhì)量最輕,即為結(jié)構(gòu)優(yōu)化[1-2]。結(jié)構(gòu)優(yōu)化設(shè)計(jì)變量多,采用傳統(tǒng)的計(jì)算方法解決這些問題面臨著計(jì)算復(fù)雜度高、計(jì)算時(shí)間長等問題,對具有啟發(fā)式特征的計(jì)算智能方法的研究越來越活躍。而過去十年里,一系列智能算法正在興起,如遺傳算法(genetic algorithm,GA)、粒子群優(yōu)化算法(particle swarm optimization,PSO)、蟻群優(yōu)化(ant colony optimization,ACO)、模擬退火(simulated annealing,SA)、和聲搜索(harmony search,HS)和螢火蟲算法(firefly algorithm,F(xiàn)A)[3-8]。這些方法不需要傳統(tǒng)的數(shù)學(xué)假設(shè),因此與傳統(tǒng)方法相比,增加了全局最優(yōu)的定位概率。元啟發(fā)式優(yōu)化方法的隨機(jī)性質(zhì)可以允許在比傳統(tǒng)優(yōu)化方法中更大部分的搜索空間中進(jìn)行探索。國內(nèi)外學(xué)者也將智能算法應(yīng)用到桁架結(jié)構(gòu)優(yōu)化中,如混沌增強(qiáng)碰撞體算法(enhanced chaotic colliding bodies algorithms,ECBO)[9]、改進(jìn)二元蝙蝠柔性抽樣算法(improved binary bat flexible sampling algorithm,IBBA)[10]、模擬植物生長算法等均對桁架進(jìn)行結(jié)構(gòu)優(yōu)化[11],有效推動了桁架結(jié)構(gòu)優(yōu)化的發(fā)展。但在算法收斂速度、穩(wěn)定性方面還有研究的空間。
Rashedi等人根據(jù)引力定律與運(yùn)動定律,提出新的元啟發(fā)式方法,即引力搜索算法(gravitational search algorithm,GSA)[12]。之后國內(nèi)外學(xué)者對GSA進(jìn)行了研究和改進(jìn),如文獻(xiàn)[13]引入人工蜂群搜索機(jī)制,幫助算法跳出局部最優(yōu)值;文獻(xiàn)[14]通過動態(tài)調(diào)整引力常數(shù),平衡全局搜索能力;文獻(xiàn)[15]提出了一種神經(jīng)和模糊重力搜索算法,加快了算法的收斂速度,改善了全局搜索能力。GSA已被應(yīng)用于無人機(jī)航路規(guī)劃、電力控制、醫(yī)學(xué)等領(lǐng)域[16-20]。雖然GSA具有高精度和穩(wěn)定性的特點(diǎn),但它具有易陷入局部最優(yōu)、搜索精度低和收斂速度低的缺點(diǎn)。當(dāng)種群中找到其當(dāng)前的最佳位置時(shí),其他群體將迅速收集到它。因此,GSA陷入局部最優(yōu)。
在該研究中,提出了改進(jìn)引力搜索算法,用于桁架結(jié)構(gòu)尺寸優(yōu)化。提出的IGSA旨在消除GSA的缺點(diǎn),并提高其對GSA的局部搜索能力。為了達(dá)到這個(gè)目的,通過引入混沌映射使GSA初始種群遍歷整個(gè)搜索空間,提高算法找出最優(yōu)解的可能性。通過引入粒子群算法中的粒子運(yùn)動方程,提高粒子間的信息交流和記憶能力,以幫助算法逃出局部最優(yōu)解,找到全局最優(yōu)解。文中采用了6個(gè)典型的測試函數(shù)以驗(yàn)證IGSA的性能,優(yōu)化結(jié)果表明,改進(jìn)后的引力搜索算法收斂速度更快,收斂精度更高,更有可能找到全局最優(yōu)解。文中對72桿空間桁架進(jìn)行尺寸優(yōu)化,用IGSA優(yōu)化后的尺寸比GSA和其他算法得出的結(jié)果要小,說明IGSA是一種具有高全局搜索能力的強(qiáng)大優(yōu)化算法。
引力搜索算法是從萬有引力公式和牛頓第二定律中得到靈感,由Rashedi等人于2009年提出[12]。引力搜索算法(GSA)是一種新的群體優(yōu)化智能算法。每一個(gè)粒子都有4個(gè)屬性:位置,慣性質(zhì)量,被動和主動引力質(zhì)量。粒子的位置代表問題的潛在解,引力和慣性質(zhì)量則用于適應(yīng)度函數(shù)。
算法中每個(gè)粒子的被動和主動引力質(zhì)量和慣性質(zhì)量相等,均為Mi,i=1,2,…,N,N為種群規(guī)模。Mi的定義如下:
(1)
(2)
其中,fiti(t)為粒子i在第t次迭代時(shí)的適應(yīng)度函數(shù)值,best(t)與worst(t)為第t次迭代時(shí)所有粒子中最優(yōu)與最差適應(yīng)度函數(shù)值。
(3)
其中,Rij(t)為粒子i與粒子j之間的Euclidean距離,ε為極小的常數(shù),防止分母為0。G(t)為第t次迭代時(shí)引力常量取值,G是時(shí)間的遞減函數(shù)。必須指出的是,G(t)對于確定GSA的性能很重要,定義如下:
(4)
其中,G0和β分別是G的初始值和常數(shù),tmax是最大迭代次數(shù)。
在第d維空間中,粒子i收到的總作用力來自于其他所有粒子的施加的力矢量和:
(5)
其中,kbest定義為粒子質(zhì)量按降序從最佳值到第k個(gè)粒子的集合,k在開始時(shí)初始化為k0并隨時(shí)間減小。這里,k0設(shè)定為N,并且線性減小到單位1。randj為[0,1]中均勻分布的隨機(jī)數(shù)。
根據(jù)牛頓第二定律,粒子的加速度如下:
(6)
粒子的速度和位置如下式:
(7)
(8)
其中,randi是區(qū)間[0,1]中均勻分布的隨機(jī)數(shù)。
混沌理論是指對混沌動力系統(tǒng)的研究。混沌系統(tǒng)是對其初始條件高度敏感的非線性動力系統(tǒng)。在初始條件導(dǎo)致系統(tǒng)的結(jié)果變化很大?;煦缇哂斜闅v性和均勻性的特點(diǎn),利用混沌的良好的特征對GSA初始化,可以使GSA初始種群遍歷整個(gè)搜索空間,提高算法找出最優(yōu)解的可能性。文中采用Logistic映射進(jìn)行種群初始化,其方程如下:
f(k+1)=af(k)(1-f(k))(k=0,1,2…,
0≤f(k)≤1)
(9)
當(dāng)變量a=4時(shí),該模式進(jìn)入完全混沌狀態(tài)。
混沌算法的步驟如下:
(1)將n個(gè)初始值分別賦予式(9),可以得到n個(gè)不同的混沌值,令當(dāng)前的最優(yōu)適應(yīng)值的粒子為x*,g(x*)為當(dāng)前最佳適應(yīng)值。
(2)利用混沌變量進(jìn)行搜索。
(10)
其中,pj和qj為常數(shù)且大于0。通過對其值的調(diào)整,可以把混沌變量的取值范圍轉(zhuǎn)化為其對應(yīng)的優(yōu)化變量的取值范圍。
根據(jù)下式計(jì)算性能指標(biāo):
g(k)=g(x(k)),x(k)=(x1(k),x2(k),…,xn(k))
(11)
(3)如果g(k) 利用混沌算法產(chǎn)生初始解的過程如下: step1:隨機(jī)產(chǎn)生N個(gè)初始解,并將其映射到Logistic方程的定義域內(nèi)。 step2:用Logistic方程進(jìn)行迭代產(chǎn)生混沌序列。 step3:將產(chǎn)生的混沌序列映射到原來的定義域內(nèi)。 step4:將兩類初始解進(jìn)行排序,將適應(yīng)度較優(yōu)的解作為種群的初始解。 基本的引力搜索算法GSA是依靠粒子間的相互作用力來傳遞信息和更新位置,然而,缺少對歷史最優(yōu)解和群體最優(yōu)解的保存和學(xué)習(xí)功能,可能會丟失一些更好的解,不利于算法的收斂速度。 粒子群算法PSO是Kenndy和Eberhart提出的一種進(jìn)化算法[21]。粒子群算法的靈感來源于鳥群的社會行為。它使用許多粒子在搜索空間中飛行,以找到最佳解。同時(shí),粒子都會看到它們路徑中的最佳粒子。粒子會考慮它們自己的最佳解,以及到目前為止發(fā)現(xiàn)的最佳解。 粒子群算法中的每一個(gè)粒子都要考慮當(dāng)前位置、當(dāng)前速度、距離到最優(yōu)和距離到最優(yōu)的距離,才能對粒子群的位置進(jìn)行修正。 文中將粒子群算法中對個(gè)體歷史最優(yōu)解和群體最優(yōu)解的記憶和學(xué)習(xí)的思想用于引力搜索算法,將式(7)改進(jìn)為: (12) 式(12)可能會影響到算法的探索階段,因?yàn)樵撌绞且粋€(gè)恒定的速度更新公式,為了防止新的更新速度法降低勘探能力,將c1,c2改為動態(tài)的變量。自適應(yīng)地減少c1,增加c2,使得當(dāng)算法到達(dá)開發(fā)階段時(shí),粒子趨向于向最優(yōu)解快速移動。由于進(jìn)化算法中勘探階段和開發(fā)階段沒有明顯的界限,因此這種自適應(yīng)方法適應(yīng)于這兩個(gè)階段。此外,這種自適應(yīng)方法強(qiáng)調(diào)在第一個(gè)迭代中進(jìn)行探索,在最后一個(gè)迭代中進(jìn)行開發(fā)。 c1較高時(shí),算法偏向于標(biāo)準(zhǔn)GSA,而較高的c2體現(xiàn)PSO在執(zhí)行搜索過程中粒子之間的傳遞信息的能力。動態(tài)的c1,c2使得算法可以像標(biāo)準(zhǔn)GSA探索搜索空間,并像PSO一樣保存和利用在探索階段搜索到的個(gè)體最優(yōu)解和種群最優(yōu)解。 文中所提出的改進(jìn)引力搜索算法的流程如下: step1:利用混沌初始化粒子的位置X,設(shè)定種群規(guī)模N,維度dim和最大迭代次數(shù)。 step2:由目標(biāo)函數(shù)計(jì)算每個(gè)粒子的適應(yīng)度值。并保存、更新pbest和gbest。 step4:根據(jù)式(12)更新粒子的速度,根據(jù)式(8)更新粒子的位置。 step5:保存、更新pbest和gbest。 step6:判斷算法是否滿足結(jié)束條件,若不滿足,則返回step2,滿足條件時(shí),結(jié)束算法,輸出最佳值。 圖1為改進(jìn)引力搜索算法的流程。 為驗(yàn)證文中改進(jìn)算法的有效性,將改進(jìn)后的引力搜索算法IGSA與標(biāo)準(zhǔn)引力搜索算法GSA進(jìn)行對比試驗(yàn)。 種群規(guī)模N=50;最大迭代次數(shù)max it=1 000;β=20;G0=100;種群維度dim=30;c1=(-2t3/T3)+2;c2=2t3/T3,其中t為當(dāng)前迭代次數(shù),T為最大迭代次數(shù),曲線如圖2所示。 圖1 改進(jìn)引力搜索算法的流程 圖2 系數(shù)曲線 通過表1中的6個(gè)標(biāo)準(zhǔn)測試函數(shù)對改進(jìn)的引力搜索算法和標(biāo)準(zhǔn)引力搜索算法進(jìn)行測試,并對結(jié)果進(jìn)行分析。其中f1和f2為單峰值函數(shù),算法對其收斂的速度是檢驗(yàn)算法性能好壞的重要指標(biāo)。f3~f6為復(fù)雜的多峰值函數(shù),存在較多的局部最優(yōu)解,用于檢驗(yàn)算法的全局搜索能力。 分別用改進(jìn)引力搜索算法IGSA和標(biāo)準(zhǔn)引力搜索算法GSA對6個(gè)測試函數(shù)進(jìn)行求解,得出相應(yīng)的最優(yōu)值曲線,如圖3~圖5所示。由圖可知,改進(jìn)后的算法比標(biāo)準(zhǔn)算法收斂速度更快,收斂精度更高,全局搜索能力更強(qiáng)。 表1 標(biāo)準(zhǔn)測試函數(shù) 圖3 單峰值測試函數(shù)對比 圖4 多峰值函數(shù)對比 圖5 固定維度多峰值函數(shù)對比 為進(jìn)一步驗(yàn)證IGSA的優(yōu)化性能,分別把2種算法運(yùn)行30次,并在表2中顯示出相應(yīng)的最小值、平均值、方差。 (1)單峰值函數(shù)。對于f1、f2來說,其收斂速度的快慢是檢驗(yàn)算法性能的重要特點(diǎn)。在表2中可以看出:對于f1和f2函數(shù),IGSA在最小值、平均值和方差方面均小于GSA。從圖3中可以得出,在保證得到較好的全局最優(yōu)解的情況下,IGSA的收斂速度要比GSA更快,并且精度更高。 表2 IGSA與GSA算法結(jié)果對比 (2)多峰值函數(shù)。多峰值函數(shù)存在較多的局部最優(yōu)解,尋找全局最優(yōu)解的難度較大。對于函數(shù)f3~f6而言,算法尋優(yōu)的難點(diǎn)在于搜索到全局最優(yōu)解。從圖4到圖5可以看出:IGSA搜索到最優(yōu)值均小于GSA??梢詮谋?的結(jié)果中看到:在f3~f6中,IGSA搜索到的最小值、平均值和方差都小于GSA。 選取了1個(gè)典型的桁架優(yōu)化算例,驗(yàn)證了IGSA在求解約束桁架形狀和尺寸優(yōu)化問題上的有效性與可靠性。并將IGSA的優(yōu)化結(jié)果與GSA和其他優(yōu)化技術(shù)的優(yōu)化結(jié)果進(jìn)行了比較。提出的IGSA由MATLAB軟件實(shí)現(xiàn),版本為9.3.0.713579 (R2017b),操作系統(tǒng):Microsoft Windows 10專業(yè)版 Version 10.0 (Build 17134)。算法最大迭代次數(shù)為500。算法計(jì)算10次,取其最佳值作為計(jì)算最終結(jié)果值。 72桿空間桁架結(jié)構(gòu),桿件分為16組,節(jié)點(diǎn)1~6沿x,y的最大位移限值是6.35 mm,最大的許可應(yīng)力為[-172.375,172.375] MPa,密度ρ=2 678kg/m3,彈性模量E=68 950 MPa,長和寬均為3.048 m,每節(jié)的高度為1.524 m,荷載工況及作用位置與文獻(xiàn)[22]相同。算法的控制參數(shù)設(shè)置為:最大迭代次數(shù)500,搜索空間維數(shù)16,種群總數(shù)為75。 在相同約束條件下,與其他文獻(xiàn)中的結(jié)果進(jìn)行比較,優(yōu)化結(jié)果見表3,圖6給出了IGSA求解72桿桁架結(jié)構(gòu)設(shè)計(jì)問題的典型收斂曲線。 圖6 72桿空間桁架結(jié)構(gòu)的收斂曲線 表3 72桿空間桁架優(yōu)化結(jié)果的比較 注:重量欄的單位為kg,其余項(xiàng)單位為mm2。 從表3可以看出,IGSA得到的72桿空間桁架優(yōu)化后的重量為172.19 kg,與GSA和文獻(xiàn)[22-25]中得到的結(jié)果相比較,重量得到不同程度上的減小。從圖6可以看出,改進(jìn)后的引力搜索算法在第220次迭代時(shí)收斂到最優(yōu)解,而標(biāo)準(zhǔn)引力搜索算法在第480次時(shí)收斂到相應(yīng)的最優(yōu)解,因此可以看出改進(jìn)引力搜索算法搜尋最優(yōu)解的能力優(yōu)于標(biāo)準(zhǔn)引力搜索算法,且更快收斂到最優(yōu)解。 針對標(biāo)準(zhǔn)引力搜索算法收斂速度慢,易陷入局部最優(yōu)值的問題,引入混沌映射,使得初始化時(shí),粒子均勻地分布在整個(gè)搜索空間,使得算法更快地找到最優(yōu)解,避免陷入局部最優(yōu)解。引入粒子群算法中的粒子個(gè)體的記憶性和信息交互機(jī)制,并動態(tài)調(diào)整學(xué)習(xí)因子,以加快算法的運(yùn)算效率,更快找到較優(yōu)值,使得算法避免陷入局部最優(yōu)值,最終找到全局最優(yōu)值。 通過6個(gè)測試函數(shù),表明改進(jìn)后的算法能夠較好地找到全局最優(yōu)解,尋優(yōu)能力更強(qiáng)。通過對桁架進(jìn)行結(jié)構(gòu)優(yōu)化,說明算法適用于空間桁架結(jié)構(gòu)桿件截面尺寸優(yōu)化設(shè)計(jì)。 算法對代理的速度公式和后期收斂速度做了改進(jìn),在引力常數(shù)方面還有待進(jìn)一步研究。2.2 PSO-GSA混合優(yōu)化算法
2.3 改進(jìn)算法的流程
3 試驗(yàn)驗(yàn)證
3.1 參數(shù)設(shè)置
3.2 測試函數(shù)
3.3 仿真與分析
4 桁架分析
5 結(jié)束語