張航, 李洪雙
(南京航空航天大學(xué) 飛行器先進(jìn)設(shè)計(jì)技術(shù)國防重點(diǎn)學(xué)科實(shí)驗(yàn)室, 江蘇 南京 210016)
結(jié)構(gòu)優(yōu)化設(shè)計(jì)問題可轉(zhuǎn)化成含有設(shè)計(jì)變量、目標(biāo)函數(shù)和約束條件的數(shù)學(xué)規(guī)劃問題,該數(shù)學(xué)規(guī)劃問題的求解就是在滿足約束條件限制下求得使目標(biāo)函數(shù)值取極值的設(shè)計(jì)變量。在實(shí)際工程結(jié)構(gòu)優(yōu)化設(shè)計(jì)中,由于問題的復(fù)雜性與不確定性,往往很難建立目標(biāo)函數(shù)和約束條件函數(shù)關(guān)于設(shè)計(jì)變量的顯式表達(dá)式,數(shù)值計(jì)算方法常常需要大量調(diào)用有限元計(jì)算,才能獲得一個(gè)合理的優(yōu)化結(jié)果,計(jì)算效率不高。而使用結(jié)構(gòu)近似重分析方法,構(gòu)建結(jié)構(gòu)近似模型(代理模型),可以避免大量反復(fù)的調(diào)用有限元計(jì)算,提高計(jì)算效率[1]。目前應(yīng)用于結(jié)構(gòu)優(yōu)化設(shè)計(jì)的代理模型主要有響應(yīng)面法、Kriging模型、徑向基函數(shù)方法、神經(jīng)網(wǎng)絡(luò)法和支持向量機(jī)法等。其中支持向量機(jī)是基于統(tǒng)計(jì)學(xué)習(xí)理論的一種機(jī)器學(xué)習(xí)方法,與傳統(tǒng)的代理模型方法相比,其突出的優(yōu)點(diǎn)是具有較強(qiáng)的小樣本學(xué)習(xí)能力和泛化能力[2]。最小二乘支持向量機(jī)(least squares support vector,LSSVM)[3]是對支持向量機(jī)(squares support vector,SVM)的一種改進(jìn)算法,利用等式約束代替不等式約束,將二次規(guī)劃問題轉(zhuǎn)化為線性方程組的問題,其縮短了訓(xùn)練時(shí)間,計(jì)算量較小,訓(xùn)練結(jié)果更為精確,適合工程應(yīng)用,在結(jié)構(gòu)優(yōu)化領(lǐng)域已經(jīng)實(shí)現(xiàn)了應(yīng)用。
交叉熵方法(cross entropy,CE)最初由Rubinstein于1997年提出,用于稀疏事件模擬[4],1999年拓展為隨機(jī)優(yōu)化方法并應(yīng)用于旅行商問題[5]。2005年Chepuri等人[6]采用交叉熵方法處理車輛路徑優(yōu)化問題并取得了令人滿意的結(jié)果。2009年,Santosa[7]應(yīng)用交叉熵方法對支持向量機(jī)進(jìn)行參數(shù)尋優(yōu)。2015年,Ghidey[8]對交叉熵方法在可靠性優(yōu)化設(shè)計(jì)(reliability based design optimization,RBDO)問題中的精度和效率進(jìn)行了詳細(xì)的討論研究。2017年任超等[9]對交叉熵方法進(jìn)行了改進(jìn),證明了改進(jìn)交叉熵方法在隨機(jī)優(yōu)化方法上的效率與精度。交叉熵方法作為一種類蒙特卡羅方法在旅行商、路徑優(yōu)化,參數(shù)尋優(yōu)等眾多優(yōu)化實(shí)例中都表現(xiàn)出了優(yōu)異的尋優(yōu)能力。但其蒙特卡羅特性在求解隱式結(jié)構(gòu)優(yōu)化問題時(shí)仍需調(diào)用大量有限元計(jì)算,阻礙了其在結(jié)構(gòu)優(yōu)化領(lǐng)域中的應(yīng)用。目前國內(nèi)外對交叉熵在結(jié)構(gòu)優(yōu)化領(lǐng)域的研究少見于公開發(fā)表文獻(xiàn)。
本文著眼于交叉熵方法在結(jié)構(gòu)優(yōu)化中的應(yīng)用,采用最小二乘支持向量機(jī)與改進(jìn)交叉熵方法相結(jié)合得到組合優(yōu)化方法(ICE-SVM)?;谧钚《酥С窒蛄繖C(jī)建立代理模型,模擬結(jié)構(gòu)輸入與輸出響應(yīng)之間的關(guān)系。代替耗時(shí)較長的有限元分析,避免交叉熵方法調(diào)用大量有限元計(jì)算。為驗(yàn)證該方法的有效性。分別采用最小二乘支持向量機(jī)與改進(jìn)交叉熵方法相結(jié)合的組合優(yōu)化方法(ICE-SVM)與傳統(tǒng)交叉熵方法與最小二乘支持向量機(jī)的組合優(yōu)化方法(CE-SVM)對數(shù)值算例與工程算例的優(yōu)化問題進(jìn)行求解。
LSSVM可用于分類與回歸問題,本文主要利用LSSVM進(jìn)行回歸估計(jì),其算法如下:
給定訓(xùn)練樣本集
(1)
式中,d為輸入?yún)?shù)維數(shù),xi為輸入向量,yi為輸出響應(yīng),l為訓(xùn)練樣本數(shù)量。
LSSVM的回歸函數(shù)可由(2)式表示
f(x)=(w·φ(x))+w0
(2)
根據(jù)二次損失函數(shù)作為結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則,對(2)式的求解轉(zhuǎn)化為優(yōu)化問題:
(3)
式中,w和w0為算法控制參數(shù),ξ為松弛變量,c為正則化參數(shù),φ(·)為映射函數(shù)。引入Lagrange函數(shù)
(4)
式中,αi為Lagrange乘子。根據(jù)最優(yōu)化條件,將(4)式分別對w,w0,ξi和αi求偏導(dǎo),置零后轉(zhuǎn)化為矩陣形式,即
(5)
(6)
交叉熵方法的基本原理如下[10-12]:
交叉熵是對2個(gè)概率分布差異性的一種度量,也可稱為KL散度(Kullback-Leibler divergence)。設(shè)fX(x)和hX(x)是給定的2個(gè)概率密度函數(shù),x為n維隨機(jī)輸入變量,則fX(x)和hX(x)的交叉熵可定義為:
(7)
式中,D(·,·)為交叉熵,顯然,當(dāng)fX(x)=hX(x)時(shí),D(f,h)=0;當(dāng)fX(x)≠hX(x),D(f,h)>0。
對于優(yōu)化問題,可以將優(yōu)化問題與概率估計(jì)相關(guān)聯(lián)??紤]求函數(shù)s(x)的極小值問題
γ*=s(x*)=min[s(x)]
xL≤x≤xU
(8)
在γ上定義一組概率密度函數(shù)[fX(x;v)]和指示函數(shù)
(9)
人工構(gòu)建一個(gè)可靠性問題,即
(10)
式中,Pf為可靠性問題的失效概率,v為參數(shù)向量,γ為函數(shù)s(x)的一個(gè)閥值。當(dāng)γ=γ*時(shí),(10)式為一個(gè)特殊的可靠性問題,此時(shí)Pf=0。因此,可以利用(10)式將優(yōu)化問題轉(zhuǎn)化為可靠性問題。
采用交叉熵方法求解優(yōu)化問題時(shí),通過迭代更新概率密度函數(shù)fX(x;v)中的參數(shù)向量v來驅(qū)動(dòng)概率密度函數(shù)f和閥值γ進(jìn)行更新。在迭代過程中,將得到一系列的概率密度函數(shù)fX(x;v1),fX(x;v2),…,并收斂至一個(gè)最優(yōu)概率密度函數(shù)f*,其對應(yīng)的函數(shù)值即可認(rèn)為是最優(yōu)值x*。因當(dāng)閥值γ接近或者等于最優(yōu)值x*時(shí),此時(shí)從概率密度函數(shù)fX(x;vk)抽樣將會(huì)以大概率得到一個(gè)非常接近或者等于最優(yōu)值x*的點(diǎn),從而達(dá)到優(yōu)化的目的。
傳統(tǒng)交叉熵方法步驟如下:
1) 初始化待定分布參數(shù)fX(x;v0),隨機(jī)樣本數(shù)N,問題維數(shù)n,迭代次數(shù)記為k=0
2) 從fX(x;vk)產(chǎn)生N個(gè)隨機(jī)樣本{x1,x2,…,xN},計(jì)算目標(biāo)函數(shù)值{s(xi)},按照優(yōu)劣排序并取其靠前的“精英樣本”ρ0N。設(shè)bk為目標(biāo)函數(shù)值的閥值,即有bk=s[ρ0N],其中ρ為分位數(shù)值。通過“精英樣本”{x1,x2,…,x[ρ0N]}來估計(jì)新的分布參數(shù)值vk+1
(11)
(12)
3) 為使重要密度參數(shù)vk+1的更新更平滑,在交叉熵優(yōu)化算法中引入一個(gè)平滑參數(shù)α,并按(13)式更新分布參數(shù)
vk+1=αvk+1+(1-α)vk
(13)
4) 若max(σk+1)<εvk+1(ε為預(yù)設(shè)的精度值),返回μk+1作為優(yōu)化問題的最優(yōu)解,算法停止,此時(shí)的μk+1是一個(gè)n維向量,即優(yōu)化后的設(shè)計(jì)變量;否則,設(shè)k=k+1,轉(zhuǎn)到步驟2)。
任超等[9]對傳統(tǒng)交叉熵方法在處理優(yōu)化問題時(shí)的優(yōu)缺點(diǎn)進(jìn)行了討論,在參數(shù)更新策略、平滑參數(shù)調(diào)整和變異操作等3個(gè)方面對傳統(tǒng)交叉熵算法進(jìn)行改進(jìn),具體改進(jìn)敘述詳見文獻(xiàn)[9]。本文在其基礎(chǔ)上將改進(jìn)交叉熵方法與支持向量機(jī)相結(jié)合并應(yīng)用于結(jié)構(gòu)優(yōu)化領(lǐng)域。
改進(jìn)交叉熵方法其參數(shù)更新策略為:
vk+1=α1vp,k+α2vg,k+α3vk-1
(14)
平滑參數(shù)自適應(yīng)調(diào)整公式為:
(15)
式中,kN為迭代次數(shù)總數(shù),k為迭代次數(shù),α1為光滑參數(shù)1,α2為光滑參數(shù)2,α3為光滑參數(shù)3。
為避免陷入局部最優(yōu),增加了擾動(dòng),擾動(dòng)函數(shù)為:
(16)
文獻(xiàn)[13]比較了幾種不同的抽樣方式,如簡單隨機(jī)抽樣(simple random sampling,SRS)、拉丁超立方抽樣(latin hypercube sampling,LHS)、CVT抽樣(centroidal voronoi tessellation,CVT)和LCVT抽樣(‘Latinized’ CVT),結(jié)果表明LCVT抽樣方法性能最好。因此本文采用LCVT抽樣。同時(shí)采用交叉驗(yàn)證方法(K-fold cross validation)得到支持向量機(jī)控制參數(shù)。
為避免不同量綱的輸入變量對SVM訓(xùn)練結(jié)果的影響,在利用支持向量機(jī)模型進(jìn)行預(yù)測時(shí),需對訓(xùn)練樣本進(jìn)行歸一化,預(yù)測結(jié)果進(jìn)行反歸一化,反歸一化與歸一化互逆。歸一化公式如下:
(17)
支持向量機(jī)與改進(jìn)交叉熵的優(yōu)化流程見圖1:
圖1 改進(jìn)交叉熵支持向量機(jī)流程圖
大致可分為以下幾步:
1) 利用有限元分析方法獲得訓(xùn)練樣本;
2) 基于支持向量機(jī)訓(xùn)練與建立代理模型;
3) 代理模型替代有限元分析,改進(jìn)交叉熵方法搜索尋優(yōu);
4) 檢查最優(yōu)解的誤差。
Brain函數(shù)作為一個(gè)經(jīng)典的代理模型測試函數(shù),常用來測試代理模型的精度,其具有3個(gè)全局最優(yōu)點(diǎn),其表達(dá)式如下:
e(1-f)cosx1+e
-5≤x1≤10,0≤x2≤15
(18)
訓(xùn)練樣本分別用LHS、CVT、LCVT抽樣方法獲得,測試樣本用SRS獲得,計(jì)算訓(xùn)練樣本及測試樣本的均方誤差和相關(guān)系數(shù),同時(shí)參考文獻(xiàn)[14]的做法,用等高線圖及均方誤差與回歸系數(shù)來衡量代理模型質(zhì)量。
如圖2所示,CVT抽樣與LCVT抽樣在設(shè)計(jì)空間上分布更均勻,LCVT抽樣在模型近似重構(gòu)上較LHS和CVT抽樣質(zhì)量更好。
圖2 3種不同抽樣方法與函數(shù)原始等高線圖
抽樣方式MSE(train)20R2(train)20MSE(test)10 000R2(test)10 000 LHS12.133 80.995 4170.693 60.934 4 CVT14.412 50.993 4152.743 10.941 3 LCVT20.689 20.991 987.114 90.966 5
表1給出了不同抽樣方式對代理模型質(zhì)量的影響。R2為回歸相關(guān)系數(shù),MSE為均方誤差(mean square error,MSE),從表1可以得出LCVT抽樣在泛化性與推廣性上較LHS與CVT抽樣更好。
該算例來自文獻(xiàn)[15],求解(19)式和(20)式所示的最小化問題:
Minimize:
S(x)=(x1-10)3+(x2-20)3
(19)
Subject to:
g1(x)=-(x1-5)2-(x2-5)2+100≤0
g2(x)=(x1-6)2+(x2-5)2-82.81≤0
(20)
式中,13≤x1≤100,0≤x2≤100。文獻(xiàn)中給出的最優(yōu)解參考值x*={14.095 0,0.843 0}T,最優(yōu)值參考值為S(x)=-6 961.813 9。
圖3 CE-SVM方法目標(biāo)函數(shù)值變化趨勢
如圖3和圖4所示,CE-SVM的迭代速度非???在不到20次的迭代中就找到了“最優(yōu)解,”ICE-SVM方法雖然迭代速度不及CE-SVM,但同樣在不超過100次的迭代中找到了“最優(yōu)解”。
圖4 ICE-SVM方法目標(biāo)函數(shù)值變化趨勢
方法LCVT抽樣x1x2S'(x)g'1(x)g'2(x)δ/%CE-SVM10014.995 25.335 5-2.908 4×1030.001 760.003 058.222 ICE-SVM10014.954 95.309 2-2.923 4×1031.352 0×10-41.531 9×10-458.006 CE-SVM30014.661 42.435 5-5.298 3×103-0.233 9-1.210 923.894 ICE-SVM30013.702 60.154 7-7.688 3×103-0.001 1-0.001 210.435 CE-SVM50014.547 02.034 6-5.643 7×1037.076 5×10-4-0.869 418.934 ICE-SVM50014.115 90.906 3-6.756 5×1033.661 7×10-44.128 0×10-42.949 CE-SVM1 00014.508 41.871 2-5.872 8×103-0.144 30.627 415.643 ICE-SVM1 00014.114 10.880 9-6.923 4×103-0.002 5-0.001 70.551
表3 CE-SVM方法與ICE-SVM方法獨(dú)立運(yùn)行100次的結(jié)果對比
表2給出了2種優(yōu)化方法的優(yōu)化結(jié)果,表2中,S′(x)和g′(x)分別表示代理模型目標(biāo)函數(shù)值與約束值,δ表示為S′(x)與理論值S(x)的相對誤差,如表2所示,ICE-SVM的計(jì)算精度明顯比CE-SVM好,同時(shí)隨著樣本數(shù)量的增加,ICE-LSSVM與CE-SVM的計(jì)算結(jié)果逐步接近于目標(biāo)函數(shù)理論解,在樣本數(shù)量為1 000時(shí),CE-SVM的計(jì)算結(jié)果與理論值的相對誤差為15.643 3%,而ICE-LSSVM的計(jì)算結(jié)果與理論值的相對誤差僅為0.551%,小于1%,表現(xiàn)出優(yōu)異的計(jì)算能力,其計(jì)算結(jié)果可以認(rèn)為滿足設(shè)計(jì)要求。表3給出了2種算法獨(dú)立運(yùn)行100次的計(jì)算結(jié)果。表中:SD表示標(biāo)準(zhǔn)差,COV表示變異系數(shù)。如表3所示,ICE-SVM的SD值與COV值均比訓(xùn)練樣本相同的CE-SVM小,可以認(rèn)為其計(jì)算結(jié)果是可靠的,COV值較小同時(shí)也表明ICE-SVM在魯棒性與結(jié)果穩(wěn)定性上比CE-SVM更好,綜上,ICE-SVM雖然在速度上不及CE-SVM,但是計(jì)算精度、魯棒性與結(jié)果穩(wěn)定性上較CE-SVM好。
該算例來自文獻(xiàn)[17],如圖5所示為機(jī)翼翼盒結(jié)構(gòu),該結(jié)構(gòu)關(guān)于X-Y平面對稱。
圖5 機(jī)翼翼盒結(jié)構(gòu)示意圖
在該結(jié)構(gòu)優(yōu)化問題中共有16個(gè)設(shè)計(jì)變量,分別為5個(gè)桿件的橫截面積,3個(gè)受拉板的厚度以及8個(gè)剪切板的厚度。其中○為桁架桿,△為受拉板,□為受剪板。各設(shè)計(jì)變量均獨(dú)立且不相關(guān)。其中桿件單元的橫截面積取值范圍為0.1~2.0 in2,受拉板與受剪板的厚度取值范圍均為0.02~1.00 in2。各單元所用材料相同,其許用應(yīng)力為10 000 lb/in2,彈性模量為107lb/in2,材料密度為0.02 lb/in3,泊松比為0.3。在節(jié)點(diǎn)1與節(jié)點(diǎn)2處X,Y,Z方向的位移邊界條件為0。在節(jié)點(diǎn)7處受沿Z軸正向,大小為5 000 lb的集中力。位移約束為各節(jié)點(diǎn)在Z方向上的位移均不得超過2 in,應(yīng)力約束為各單元許用應(yīng)力為10 000 lb/in2。
因?yàn)楸舅憷性O(shè)計(jì)變量較多,故采用文中抽樣策略抽樣3 000次,然后利用ICE-SVM方法對該機(jī)翼翼盒結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì),并與其他優(yōu)化方法相比較,得到的優(yōu)化結(jié)果如表4所示,表4中包括最優(yōu)設(shè)計(jì)變量值與結(jié)構(gòu)最小重量。
表4 機(jī)翼翼盒結(jié)構(gòu)優(yōu)化結(jié)果
圖6與圖7分別為利用ICE-SVM方法所得到的最優(yōu)設(shè)計(jì)變量,在ANSYS中通過參數(shù)化建模分析得到的飛機(jī)翼盒結(jié)構(gòu)節(jié)點(diǎn)應(yīng)力與位移。從圖6、圖7可以看出,ICE-SVM方法給出的最優(yōu)解均滿足約束條件。ICE-SVM方法求得的飛機(jī)機(jī)翼翼盒結(jié)構(gòu)最大應(yīng)力和位移分別為9 240.14 lb/in2和1.939 2 in。
圖6 機(jī)翼翼盒結(jié)構(gòu)應(yīng)力云圖
圖7 機(jī)翼翼盒結(jié)構(gòu)的節(jié)點(diǎn)位移
針對工程優(yōu)化設(shè)計(jì)中隱式函數(shù)和高計(jì)算量問題,本文采用支持向量機(jī)建立代理模型,討論了在相同的抽樣樣本數(shù)下,不同抽樣策略對代理模型精度的影響,選取在設(shè)計(jì)變量空間更為均勻的LCVT抽樣構(gòu)建更高精度的代理模型。在此基礎(chǔ)上,本文提出了結(jié)合支持向量機(jī)與改進(jìn)交叉熵算法的組合優(yōu)化算法,改進(jìn)交叉熵方法針對傳統(tǒng)的交叉熵強(qiáng)調(diào)迭代速度犧牲計(jì)算精度的缺陷,提出了"全局精英樣本"與"局部精英樣本"的概念,通過保留歷次迭代中的有用信息并將其應(yīng)用于參數(shù)的更新中,適當(dāng)降低算法的計(jì)算速度,而提高計(jì)算的精確度。另外還借鑒了"擾動(dòng)函數(shù)"這一變異操作,避免了陷入局部最優(yōu)。ICE-SVM方法保留了CE-SVM方法迭代速度快的特點(diǎn),提高了計(jì)算精度與計(jì)算結(jié)果的魯棒性。通過2個(gè)數(shù)值算例,1個(gè)工程算例,驗(yàn)證了ICE-SVM算法的可行性與有效性,對于飛機(jī)機(jī)翼等大型結(jié)構(gòu)在優(yōu)化過程中耗時(shí)過長的問題,ICE-SVM方法提供了一種有效的解決途徑。