姜封國, 曾 梟, 周玉明, 于 正
(黑龍江科技大學(xué) 建筑工程學(xué)院, 哈爾濱 150022)
隨著我國建造業(yè)的迅速發(fā)展,建筑行業(yè)同時(shí)也得到了穩(wěn)步提升。在過去幾十年里,結(jié)構(gòu)優(yōu)化設(shè)計(jì)迅速發(fā)展成為了結(jié)構(gòu)工程領(lǐng)域中最為重要的研究方向之一,在結(jié)構(gòu)優(yōu)化領(lǐng)域中,傳統(tǒng)的優(yōu)化方法[1-2]主要有最優(yōu)準(zhǔn)則法和數(shù)學(xué)歸劃法,由于傳統(tǒng)的優(yōu)化算法,僅能優(yōu)化簡單的結(jié)構(gòu),而且計(jì)算量大,當(dāng)結(jié)構(gòu)優(yōu)化設(shè)計(jì)模型比較復(fù)雜時(shí),往往不能夠得到很好地解決,但是隨著仿生智能算法的快速發(fā)展,該問題逐漸得到了解決。
朱欽等[3]構(gòu)建了一種粒子群-布谷鳥搜索算法(PSO-CS),將PSO-CS算法應(yīng)用于桁架結(jié)構(gòu)截面尺寸優(yōu)化設(shè)計(jì)??悼萚4]研究了一種改進(jìn)的樽海鞘群算法(ISSA),改進(jìn)的樽海鞘群算法在桁架結(jié)構(gòu)優(yōu)化計(jì)算精度及穩(wěn)定性上均有明顯的提升。姜封國等[5]提出了一種混合教與學(xué)算法(TLBO-TS),將其應(yīng)用于桁架結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)。Makiabad等[6]構(gòu)建了一種增強(qiáng)共生生物算法(ESOS),優(yōu)化四種基準(zhǔn)桁架結(jié)構(gòu)的質(zhì)量,可以得到更優(yōu)的解,使優(yōu)化速度更快。王一鏡等[7]給出了一種自適應(yīng)變異粒子群算法,優(yōu)化十桿桁架結(jié)構(gòu),使結(jié)構(gòu)質(zhì)量最小化。
花粉算法作為一種啟發(fā)式算法,將其應(yīng)用于建筑工程領(lǐng)域進(jìn)行結(jié)構(gòu)優(yōu)化設(shè)計(jì)的還比較少。筆者通過改進(jìn)基本花粉算法的異花授粉、轉(zhuǎn)換概率、自花授粉,將黃金正弦算法作為一個(gè)局部算子融合到改進(jìn)過后的花粉算法中,利用混合花粉算法優(yōu)化桁架結(jié)構(gòu),驗(yàn)證混合算法的有效性和適用性。
花粉算法[8](Flower pollination algorithm, FPA)具有結(jié)構(gòu)簡單,算法環(huán)節(jié)所操作的參數(shù)少、易于調(diào)節(jié)、魯棒性好,算法迭代結(jié)果穩(wěn)定性強(qiáng)等優(yōu)點(diǎn)?;ǚ鬯惴ㄗ裱韵乱?guī)則[9]:在異花授粉時(shí),傳粉者通過levy飛行進(jìn)行花粉傳播,該過程對應(yīng)為全局搜索過程;自花授粉過程對應(yīng)為算法的局部搜索過程;花的恒常性能夠被認(rèn)為是繁殖概率與涉及授粉過程中兩朵花的相似度成正比;異花授粉和自花授粉兩種授粉方式之間的轉(zhuǎn)換由轉(zhuǎn)換概率p(p∈[0,1])來控制,即當(dāng)rd
花粉算法包括兩個(gè)主要的過程[9]:即異花授粉和自花授粉。異花授粉對應(yīng)的全局授粉過程為
(1)
L——步長參數(shù),服從萊維分布;
g*——當(dāng)前種群中的最優(yōu)解。
自花授粉對應(yīng)的局部授粉過程為
(2)
式中:ε——繁衍概率,屬于[0,1]上的均勻分布的一個(gè)隨機(jī)數(shù);
1.2.1 異花授粉的改進(jìn)
在算法運(yùn)行過程中,為了保持對最優(yōu)解搜索的針對性,文中參考了基本PSO算法中引入慣性權(quán)重的思想,引進(jìn)一種非線性遞減慣性權(quán)重的方式加入到全局授粉過程中。為了在一定的迭代次數(shù)限制條件下合理利用全局的種群信息,設(shè)置一種非線性遞減慣性權(quán)重策略去降低后一個(gè)體對前一個(gè)體的學(xué)習(xí)程度,這就有利于花粉個(gè)體對整個(gè)種群中全局最優(yōu)花粉位置的學(xué)習(xí),有利于加快算法的收斂速度。非線性遞減慣性權(quán)重的公式為
(3)
式中:Wmax、Wmin——慣性權(quán)重的最大值和最小值,文中Wmax=0.9,Wmin=0.4;
r——調(diào)節(jié)因子,控制W的變化率,文中r=1;
t——當(dāng)前迭代數(shù);
Tmax——最大迭代數(shù)。
改進(jìn)后的異花授粉階段更新策略為
(4)
1.2.2 轉(zhuǎn)換概率的改進(jìn)
轉(zhuǎn)換概率p是均衡兩種授粉方式的比重,取值范圍為[0,1],即p∈[0,1],當(dāng)rd
p時(shí),進(jìn)行自花授粉,rd表示一個(gè)(0,1)之間的隨機(jī)數(shù)。文中令p的取值在[0.2,0.8]之間變動,提出一種根據(jù)迭代次數(shù)動態(tài)調(diào)整的轉(zhuǎn)換概率為
(5)
由式(5)可知,轉(zhuǎn)換概率p的取值由0.8到0.2之間不斷變化,在迭代初期,p的取值較大,算法主要進(jìn)行全局搜索,擴(kuò)大搜索范圍,能夠使種群中的個(gè)體向著最優(yōu)解靠近,隨著迭代次數(shù)的加大,p的取值慢慢向0.2靠近,算法逐漸側(cè)重于局部的細(xì)致搜索,有利于找到最優(yōu)值。動態(tài)調(diào)整轉(zhuǎn)換概率在提高算法收斂速度的同時(shí),能夠使算法跳出局部最優(yōu)解。
1.2.3 自花授粉的改進(jìn)
(6)
黃金正弦算法[10](Golden sine algorithm,GSA)是在位置更新過程中引進(jìn)了黃金分割系數(shù),使GSA算法在每次迭代過程中能夠?qū)Ξa(chǎn)生優(yōu)秀解的區(qū)域進(jìn)行充分的搜索,而不是整個(gè)區(qū)域,提升算法的尋優(yōu)速度,具有較強(qiáng)的局部搜索能力。GSA算法的核心為解的更新過程,首先隨機(jī)產(chǎn)生s個(gè)個(gè)體,然后通過位置更新公式對每個(gè)個(gè)體進(jìn)行位置更新,位置更新公式為
(7)
R1——[0,2π]之間的一個(gè)隨機(jī)數(shù),掌控著下代個(gè)體的移動距離;
R2——[0,π]之間的一個(gè)隨機(jī)數(shù),掌控著下代個(gè)體的移動方向;
文中將黃金正弦算法和花粉算法融合起來,黃金正弦算法作為局部算子融入到改進(jìn)后的花粉算法中,在迭代后期對整個(gè)IFPA算法花粉個(gè)體進(jìn)行黃金正弦操作優(yōu)化,黃金正弦機(jī)制的引入可以促進(jìn)種群之間的信息傳遞,使一般的花粉個(gè)體與最優(yōu)花粉個(gè)體進(jìn)行信息交流,充分吸收與最優(yōu)花粉個(gè)體的位置差的信息,達(dá)到優(yōu)化算法的尋優(yōu)方式,能夠改善算法后期迭代收斂速度慢,收斂精度不高的缺陷,在很大程度上減少了算法陷入局部最優(yōu)解的概率。
文中的IFPA-GSA算法分為6個(gè)步驟,其算法流程如圖1所示。
圖1 IFPA-GSA算法流程Fig. 1 Flow of IFPA-GSA algorithm
步驟1初始化花粉個(gè)體種群規(guī)模N,設(shè)置動態(tài)轉(zhuǎn)換概率p,迭代次數(shù)Tmax等參數(shù),同時(shí)尋找當(dāng)前最優(yōu)花粉g*,計(jì)算其適應(yīng)度。
步驟2基于動態(tài)轉(zhuǎn)換概率,算法進(jìn)行主循環(huán)部分。當(dāng)rd
步驟3將異花授粉和自花授粉的個(gè)體進(jìn)行黃金正弦指引操作,重新計(jì)算其適應(yīng)度值。
步驟4根據(jù)解的優(yōu)劣程度判斷是否更新花粉個(gè)體。當(dāng)新花粉個(gè)體的適應(yīng)度小于原花粉的適應(yīng)度,則更新花粉個(gè)體,并將新花粉個(gè)體的適應(yīng)度與當(dāng)前最優(yōu)花粉個(gè)體的適應(yīng)度進(jìn)行比較,若新花粉個(gè)體的適應(yīng)度小于當(dāng)前最優(yōu)花粉的適應(yīng)度,那么替換歷史最優(yōu)花粉個(gè)體,否則,重新回到步驟2。
步驟5判斷算法是否達(dá)到最大迭代次數(shù),滿足進(jìn)行步驟6,不滿足返回步驟2進(jìn)行主循環(huán)部分。
步驟6輸出全局最優(yōu)解。
為了測試混合花粉算法(IFPA-GSA)的優(yōu)化能力,以及進(jìn)行結(jié)構(gòu)優(yōu)化設(shè)計(jì)的可行性,文中選取了6個(gè)測試函數(shù)對混合花粉算法進(jìn)行尋優(yōu)測驗(yàn)。為了進(jìn)行全方位的測試,選取了三種不同類型的測試函數(shù),測試函數(shù)可分為三類[11]:單峰測試函數(shù)、多峰測試函數(shù)和固定維多峰測試函數(shù)。
單峰測試函數(shù)f1(x)和f2(x)分別為
多峰測試函數(shù)f3(x)和f4(x)分別為
固定維多峰測試函數(shù)f5(x)和f6(x)分別為
單峰測試函數(shù)f1(x)和f2(x)維度均為30,理論最優(yōu)值都為0。多峰測試函數(shù)f3(x)和f4(x),維度也為30,理論最優(yōu)值也都為0。固定維多峰測試函數(shù)f5(x)和f6(x),函數(shù)f5(x)的維度為2,理論最優(yōu)值為1,函數(shù)f6(x)的維數(shù)為4,理論最優(yōu)值為0.000 3。實(shí)驗(yàn)參數(shù)設(shè)置為種群規(guī)模n=20,算法的最大迭代次數(shù)為1 000次。
測試函數(shù)迭代收斂曲線以及得到的最優(yōu)解如圖2~7和表1所示。
表1 測試函數(shù)實(shí)驗(yàn)結(jié)果
圖2 函數(shù)f1三維圖及尋優(yōu)曲線Fig. 2 Function f1 graphic model and optimization curve
圖3 函數(shù)f2三維圖及尋優(yōu)曲線Fig. 3 Function f2 graphic model and optimization curve
圖4 函數(shù)f3三維圖及尋優(yōu)曲線Fig. 4 Function f3 graphic model and optimization curve
圖5 函數(shù)f4三維圖及尋優(yōu)曲線Fig. 5 Function f4 graphic model and optimization curve
圖6 函數(shù)f5三維圖及尋優(yōu)曲線Fig. 6 Function f5 graphic model and optimization curve
圖7 函數(shù)f6三維圖及尋優(yōu)曲線Fig. 7 Function f6 graphic model and optimization curve
由圖2~7可以看出,在對三種不同類型的測試函數(shù)進(jìn)行尋優(yōu)測試時(shí),F(xiàn)PA-GSA算法的收斂速度要明顯優(yōu)于FPA算法。由圖6和表1可知,在函數(shù)f5中,F(xiàn)PA算法和IFPA-GSA算法所得的目標(biāo)函數(shù)值均相同,但是IFP-GSA算法的收斂速度要優(yōu)于FPA算法。這表明IFPA-GSA算法在收斂速度方面要強(qiáng)于基本花粉算法,進(jìn)一步表明了混合花粉算法在優(yōu)化速度方面得到了一定的提升。從表1的優(yōu)化結(jié)果可以看出在f1、f3、f4函數(shù)中,IFPA-GSA算法在迭代過程中都得到了理論最優(yōu)值0,而基本花粉算法未得到理論最優(yōu)值,說明混合花粉算法在收斂精度方面也得到了提高。綜上可以得出,改進(jìn)之后的混合花粉算法具有更好的全局搜索性能。
桁架結(jié)構(gòu)尺寸優(yōu)化設(shè)計(jì)就是在給定的荷載情況下,滿足應(yīng)力約束和位移約束的限制條件下,以每個(gè)桿件的截面面積為設(shè)計(jì)變量,找到每個(gè)桿件截面面積的最優(yōu)面積值,使結(jié)構(gòu)的質(zhì)量最輕。
設(shè)計(jì)變量為
A=[A1,A2,…,An]T,
目標(biāo)函數(shù)為
(8)
式中:n——桿件的總數(shù);
W——結(jié)構(gòu)的總質(zhì)量;
ρi——第i根桿件對應(yīng)的截面密度;
Ai——第i根桿件對應(yīng)的截面面積;
Li——第i根桿件對應(yīng)的長度;
λ——位移和應(yīng)力約束因子,當(dāng)滿足位移約束和應(yīng)力約束時(shí),λ的取值為0,當(dāng)不滿足約束時(shí)λ取值為1;
M——一個(gè)很大的數(shù),當(dāng)不滿足約束情況時(shí),即λ=1時(shí),給目標(biāo)函數(shù)一個(gè)很大的值,給設(shè)計(jì)變量起到懲罰的作用。
應(yīng)力約束和位移約束條件為
(9)
Amin≤A≤Amax,
[σk]——桿件所對應(yīng)的許用應(yīng)力值;
σk——桿件在各種荷載作用下所能承受的最大應(yīng)力值;
K——桿件的總數(shù)目;
[ujl]——在特定的某個(gè)節(jié)點(diǎn)j給定l方向上的許用位移值;
ujl——在各種荷載作用情況下桿件變形所導(dǎo)致的最大位移值;
m——結(jié)構(gòu)的結(jié)點(diǎn)總數(shù);
d——約束的維度;
Amin、Amax——設(shè)計(jì)變量的上下限。
文中以經(jīng)典10桿平面桁架為優(yōu)化算例,建立在應(yīng)力和位移約束的限制條件下的桁架結(jié)構(gòu)優(yōu)化模型,討論FPA算法以及IFPA-GSA算法優(yōu)化桁架結(jié)構(gòu)的可行性和有效性。10桿平面桁架如圖8所示。
桁架結(jié)構(gòu)優(yōu)化的目標(biāo)是使結(jié)構(gòu)的總質(zhì)量最輕,即使每根桿件的截面面積最小,每根桿件的截面面積為設(shè)計(jì)變量,桿件所使用的材料都相同,結(jié)構(gòu)材料的有關(guān)參數(shù)為彈性模量E=68 950 MPa,材料密度ρ=2 768 kg/m3,荷載P=444.5 kN,L=9.144 m。截面設(shè)計(jì)變量下限的取值為Amin=6.45×10-4m2,上限的取值為Amax=2.58×10-2m2,各節(jié)點(diǎn)的應(yīng)力約束為|σk|≤172.3 MPa (k=1,2,…,10),位移約束為dmax≤50.8 mm。算例的種群規(guī)模為N=40,最大迭代次數(shù)為Tmax=1 000,優(yōu)化迭代收斂曲線如圖9所示,優(yōu)化結(jié)果對比匯總?cè)绫?所示。其中,總質(zhì)量m2。
圖8 10桿平面桁架Fig. 8 10 bar plane truss
圖9 10桿平面桁架迭代收斂曲線Fig. 9 Iterative convergence curve of 10 bar plane truss
表2 10桿平面桁架優(yōu)化結(jié)果及比較
由圖9可知,改進(jìn)后的混合花粉算法不管是在優(yōu)化的收斂速度上還是優(yōu)化的最終結(jié)果上均比基本花粉算法更加理想。由表2可知,IFPA-GSA算法的優(yōu)化結(jié)果比FPA算法的優(yōu)化結(jié)果要更優(yōu),F(xiàn)PA算法的目標(biāo)函數(shù)值為2 333.700 kg,IFPA-GSA算法的目標(biāo)函數(shù)值為2 298.860 kg,文獻(xiàn)[12-14]優(yōu)化的結(jié)果分別為2 308.370、2 311.386、2 317.370 kg,從實(shí)驗(yàn)結(jié)果可知,IFPA-GSA算法優(yōu)化的結(jié)果較FPA算法優(yōu)化的結(jié)果重量減少了1.49%,比文獻(xiàn)[12]的優(yōu)化結(jié)果重量減少了0.41%,比文獻(xiàn)[13]的優(yōu)化結(jié)果重量減少0.54%,比文獻(xiàn)[14]優(yōu)化結(jié)果重量減少了0.80%,從這些結(jié)果可以得出,混合花粉算法能夠在更少的迭代次數(shù)下得到更優(yōu)的目標(biāo)函數(shù)值,說明改進(jìn)過后的混合花粉算法在平面桁架結(jié)構(gòu)優(yōu)化上具有一定的適用性。
(1)針對基本花授粉算法隨著迭代次數(shù)的增加,算法后期收斂速度緩慢,尋優(yōu)精度低,而且容易陷入局部最優(yōu)值的缺點(diǎn),對花粉算法進(jìn)行全局授粉、轉(zhuǎn)換概率、局部授粉的改進(jìn),在將改進(jìn)的花粉算法與黃金正弦算法混合進(jìn)行黃金正弦操作,提出了IFPA-GSA混合算法,經(jīng)過6個(gè)不同模態(tài)測試函數(shù)測試表明,IFPA-GSA算法在收斂速度上以及收斂精度上均比基本花粉算法更優(yōu)。
(2)以平面桁架結(jié)構(gòu)作為結(jié)構(gòu)優(yōu)化的研究對象,建立了在應(yīng)力和位移約束限制條件下的桁架結(jié)構(gòu)優(yōu)化設(shè)計(jì)的數(shù)學(xué)模型,以各個(gè)桿件的截面面積作為設(shè)計(jì)變量,結(jié)構(gòu)的總質(zhì)量為目標(biāo)函數(shù),進(jìn)一步將IFPA-GSA算法應(yīng)用于桁架結(jié)構(gòu)尺寸優(yōu)化設(shè)計(jì)中,算例結(jié)果表明,IFPA-GSA算法較FPA算法在優(yōu)化結(jié)果上減少了1.49%,而且比其他文獻(xiàn)所優(yōu)化的結(jié)果更加理想,表明了IFPA-GSA算法在桁架結(jié)構(gòu)尺寸優(yōu)化設(shè)計(jì)是可行的和適用的。