陳興望, 龍曉鴻, 馬永濤, 周群林, 桂石海
(華中科技大學(xué) a. 土木與水利工程學(xué)院; b. 控制結(jié)構(gòu)湖北省重點(diǎn)實(shí)驗(yàn)室, 湖北 武漢 430074)
傳統(tǒng)結(jié)構(gòu)分析與設(shè)計(jì)是基于確定性參數(shù)的,即分析設(shè)計(jì)過程中涉及的材料參數(shù)和荷載參數(shù)等都被視為確定的量值。然而,在工程各個(gè)階段都存在一些不確定性信息,若將其簡化為確定性信息處理,有時(shí)就會(huì)得出矛盾的或很不合理的結(jié)果[1]。所以為了讓分析結(jié)果更加貼近工程實(shí)際,在工程結(jié)構(gòu)分析和設(shè)計(jì)時(shí)必須考慮這些因素的不確定性。目前結(jié)構(gòu)參數(shù)不確定性的描述方式主要有隨機(jī)模型、區(qū)間模型和模糊模型。由于很多結(jié)構(gòu)材料參數(shù)分布特征未知,但能確定大致分布范圍,適合用區(qū)間模型描述。
按區(qū)間模型考慮結(jié)構(gòu)不確定性時(shí),可以使用不同的方法計(jì)算結(jié)構(gòu)響應(yīng)區(qū)間。有學(xué)者使用Monte Carlo Method(MCM)計(jì)算結(jié)構(gòu)響應(yīng)區(qū)間,并針對一般MCM的不足作了不同的改進(jìn)[2~4]。MCM的解比較穩(wěn)定,在抽樣數(shù)量足夠大的時(shí)候,計(jì)算得到的解能無限逼近甚至有可能達(dá)到精確解。但是MCM抽樣效率較低,要得到比較精確的結(jié)果需要很大的計(jì)算量。Rao等[5]將靜力問題表示為線性區(qū)間方程組,通過高斯消元法、頂點(diǎn)組合法和基于不等式的方法求解區(qū)間方程組,發(fā)現(xiàn)基于不等式的方法更為精確,但是隨著自變量區(qū)間的增大會(huì)出現(xiàn)區(qū)間擴(kuò)張的問題。這個(gè)問題可以通過區(qū)間截?cái)鄟斫鉀Q,呂震宙等[6]在此基礎(chǔ)上提出了改進(jìn)區(qū)間截?cái)喾?,但區(qū)間截的標(biāo)準(zhǔn)難以設(shè)定,截?cái)鄥?shù)設(shè)置的主觀性使計(jì)算結(jié)果的有效性難以評估。郭書祥等[7]提出了求解區(qū)間控制方程的迭代法,但當(dāng)區(qū)間離差較大時(shí),迭代不容易收斂[8]。有學(xué)者通過Chebyshev多項(xiàng)式[9]、徑向基函數(shù)[10]和神經(jīng)網(wǎng)絡(luò)[11]等建立結(jié)構(gòu)的替代模型,通過替代模型求解結(jié)構(gòu)響應(yīng)區(qū)間,但是對于靜力問題來說,使用替代模型對計(jì)算速度的提高不明顯,且替代模型還需要結(jié)合其他方法才能求解響應(yīng)的區(qū)間。
有學(xué)者將智能優(yōu)化算法用于結(jié)構(gòu)響應(yīng)區(qū)間的計(jì)算。Liu等[12]將貝葉斯算法運(yùn)用到了結(jié)構(gòu)不確定性分析中。湯劍[13]將遺傳算法用于不確定性分析中。與傳統(tǒng)法相比,智能優(yōu)化算法在不確定性分析中展現(xiàn)出更高的效率和精度。然而,在結(jié)構(gòu)響應(yīng)分析中,需要計(jì)算的往往不是單個(gè)響應(yīng),而是要同時(shí)計(jì)算多個(gè)響應(yīng)。但目前的遺傳算法單次運(yùn)行只能求解一個(gè)目標(biāo)函數(shù)的最值,計(jì)算效率低。
智能優(yōu)化算法的特點(diǎn)是迭代初期優(yōu)化目標(biāo)變化較大,而迭代中后期優(yōu)化目標(biāo)變化較小。因此若通過重復(fù)運(yùn)行計(jì)算結(jié)構(gòu)多個(gè)響應(yīng)的區(qū)間,花費(fèi)的計(jì)算時(shí)間與獲得的計(jì)算精度不相稱。針對這個(gè)問題,本文在傳統(tǒng)遺傳算法的基礎(chǔ)上加入多個(gè)適應(yīng)度函數(shù),相應(yīng)地改變了遺傳操作方式,構(gòu)建了能同時(shí)計(jì)算多個(gè)目標(biāo)最優(yōu)解的并行優(yōu)化遺傳算法(Genetic Algorithm for Parallel Optimization, GAPO)。最后使用GAPO計(jì)算桁架結(jié)構(gòu)靜力響應(yīng)區(qū)間以驗(yàn)證算法的有效性。
遺傳算法通過模擬生物進(jìn)化中交叉、變異與自然選擇,逐代淘汰適應(yīng)度較低的個(gè)體,并由適應(yīng)度較高的個(gè)體遺傳產(chǎn)生下一代種群,使種群適應(yīng)度逐漸收斂到最優(yōu)值。遺傳算法沒有函數(shù)可導(dǎo)性和連續(xù)性的限制,并且具有較好的全局尋優(yōu)能力,其核心內(nèi)容為參數(shù)編碼、初始種群的生成、適應(yīng)度函數(shù)設(shè)計(jì)、遺傳方式設(shè)計(jì)以及迭代控制方式設(shè)計(jì)。遺傳算法的計(jì)算流程及本文中各部分的處理方式如圖1所示。
圖1 遺傳算法計(jì)算流程
傳統(tǒng)遺傳算法只能進(jìn)行單個(gè)適應(yīng)度函數(shù)的優(yōu)化計(jì)算,而后續(xù)分析需要對多個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,所以使用傳統(tǒng)遺傳算法進(jìn)行結(jié)構(gòu)響應(yīng)分析會(huì)使計(jì)算量非常大,計(jì)算效率低。為此,本文在傳統(tǒng)遺傳算法的基礎(chǔ)上進(jìn)行改進(jìn),提出并行優(yōu)化遺傳算法(GAPO),同時(shí)進(jìn)行多個(gè)神經(jīng)網(wǎng)絡(luò)的超參數(shù)優(yōu)化。
值得注意的是,提出的并行優(yōu)化遺傳算法與多目標(biāo)優(yōu)化遺傳算法(Multi-objective Genetic Algorithm,MOGA)不同。兩個(gè)算法的共同點(diǎn)是都可能有多個(gè)適應(yīng)度函數(shù),但MOGA算法是尋找每個(gè)適應(yīng)度盡量高的某一個(gè)個(gè)體,即適應(yīng)度整體較高,但單個(gè)適應(yīng)度不一定達(dá)到最優(yōu)。而本文提出的GAPO算法是分別尋找每個(gè)適應(yīng)度達(dá)到最優(yōu)時(shí)對應(yīng)的個(gè)體,相當(dāng)于把多次優(yōu)化分析整合為一次優(yōu)化分析以提升計(jì)算效率。
(1)
(2)
式中:NFF為適應(yīng)度函數(shù)的個(gè)數(shù);nsvv為每個(gè)適應(yīng)度下存活的個(gè)體個(gè)數(shù);α為考慮計(jì)算量的調(diào)整系數(shù);cmut為種群變異率。包含兩個(gè)適應(yīng)度函數(shù)的遺傳算法遺傳,操作如圖2所示。
圖2 兩適應(yīng)度GAPO遺傳操作示意
R=f(x1-x2-…-xm)
(3)
其中R={Ri},i=1,2,…,n為要求的n個(gè)結(jié)構(gòu)響應(yīng)組成的向量。該函數(shù)以GAPO中個(gè)體基因序列為輸入,提取其中的結(jié)構(gòu)參數(shù)取值,將結(jié)構(gòu)中的區(qū)間變量取為該組確定的值,計(jì)算并輸出需要的結(jié)構(gòu)響應(yīng)。求結(jié)構(gòu)響應(yīng)的區(qū)間此時(shí)轉(zhuǎn)化為求函數(shù)的值域。
GAPO與其他優(yōu)化算法一樣,默認(rèn)求各目標(biāo)函數(shù)的最小值,所以求解區(qū)間需要分兩次分別求解最大值和最小值,且適應(yīng)度函數(shù)值越低,適應(yīng)度越高。當(dāng)求各響應(yīng)最小值時(shí),各適應(yīng)度函數(shù)取為
(4)
各最佳適應(yīng)度函數(shù)值即為各響應(yīng)最小值。而求解響應(yīng)最大值時(shí),適應(yīng)度函數(shù)取為
(5)
各最佳適應(yīng)度函數(shù)值的相反數(shù)為響應(yīng)最大值。
對于容易寫出控制方程的結(jié)構(gòu)體系,響應(yīng)計(jì)算函數(shù)提取結(jié)構(gòu)參數(shù)后可直接計(jì)算剛度矩陣和荷載列陣,進(jìn)而得到結(jié)構(gòu)響應(yīng)列陣。而對于比較復(fù)雜或有較強(qiáng)非線性的結(jié)構(gòu),其控制方程的求解需要比較復(fù)雜的迭代,使用編程實(shí)現(xiàn)比較困難,此時(shí)結(jié)構(gòu)響應(yīng)的計(jì)算可以通過有限元程序?qū)崿F(xiàn)??紤]到計(jì)算速度和程序交互的需求,本文使用OpenSees進(jìn)行結(jié)構(gòu)的建模和計(jì)算,使用tcl命令流編寫結(jié)構(gòu)建模、分析和結(jié)果輸出的文件。編寫文本文件修改程序,MATLAB結(jié)構(gòu)響應(yīng)計(jì)算函數(shù)提取區(qū)間參數(shù)的取值后,使用文本文件修改程序?qū)cl命令流中結(jié)構(gòu)參數(shù)取值修改為當(dāng)前抽樣的取值,在響應(yīng)計(jì)算函數(shù)中調(diào)用OpenSees程序運(yùn)行命令流文件計(jì)算并輸出結(jié)果文件,再讀取結(jié)果文件中需要的結(jié)構(gòu)響應(yīng)并輸出。此時(shí)結(jié)構(gòu)響應(yīng)計(jì)算函數(shù)如圖3所示。
圖3 結(jié)構(gòu)響應(yīng)計(jì)算函數(shù)
文獻(xiàn)[5]中介紹的平面桁架結(jié)構(gòu),如圖 4所示。該桁架由10根桿組成,在結(jié)點(diǎn)2和結(jié)點(diǎn)4分別受到豎直向下的力FP=100 N。桁架根據(jù)最小自重原則設(shè)計(jì),各桿的橫截面積不同。各桿彈性模量均為E=107N/mm2,橫截面積以及不考慮結(jié)構(gòu)不確定性時(shí)的軸應(yīng)力見表1。當(dāng)各桿件橫截面積存在1%的波動(dòng)時(shí),求各桿軸應(yīng)力的區(qū)間。
圖4 10桿桁架/mm
表1 桁架的設(shè)計(jì)橫截面積和軸應(yīng)力
文獻(xiàn)[5]中提出了解區(qū)間有限元控制方程組的截?cái)喾?,并與頂點(diǎn)組合法的計(jì)算結(jié)果進(jìn)行了對比。本文用樣本數(shù)量為100000的MCM和GAPO算法分別對桁架軸應(yīng)力區(qū)間進(jìn)行計(jì)算,種群數(shù)量設(shè)置為300,存活率為2%,交叉率0.8,變異率0.2,最大迭代次數(shù)為30。截?cái)喾?截?cái)鄥?shù)t=0.01,0.1)[5]、頂點(diǎn)組合法[5]、MCM以及GAPO對桁架桿件軸應(yīng)力上下限計(jì)算結(jié)果見表 2,各方法計(jì)算結(jié)果對比如圖5。
表2 桿件軸應(yīng)力區(qū)間計(jì)算結(jié)果 N·mm-2
圖5 不同方法計(jì)算的桿件軸應(yīng)力區(qū)間
由于MCM計(jì)算結(jié)果較為穩(wěn)定和可靠,主要將其他方法計(jì)算結(jié)果與MCM計(jì)算結(jié)果進(jìn)行比較。由表中數(shù)據(jù)和對比圖可見,截?cái)喾ㄓ?jì)算結(jié)果極不穩(wěn)定,截?cái)嘞禂?shù)t對計(jì)算結(jié)果的影響很大,但要確定合適的截?cái)嘞禂?shù)比較困難。頂點(diǎn)組合法對一部分構(gòu)件的軸應(yīng)力計(jì)算可以得到比較精確的結(jié)果,但由于沒有考慮結(jié)構(gòu)響應(yīng)在區(qū)間中的非單調(diào)性,可能會(huì)低估某些桿件軸應(yīng)力的范圍。由圖可見GAPO計(jì)算結(jié)果的穩(wěn)定性不亞于MCM,并且用GAPO計(jì)算的每根桿件軸應(yīng)力區(qū)間都稍大于MCM(即GAPO計(jì)算的上限大于MCM計(jì)算的上限,GAPO計(jì)算的下限小于MCM計(jì)算的下限)。由于GAPO和MCM本質(zhì)上都是抽樣的方法,計(jì)算結(jié)果只會(huì)趨近于精確解,而不會(huì)超越精確解,則可知GAPO精度高于MCM。
計(jì)算量方面,MCM進(jìn)行了100000次靜力分析,而GAPO軸應(yīng)力下限和上限計(jì)算分別迭代了30次,即一共進(jìn)行了(30+1)×2×300=19200次靜力分析,計(jì)算量遠(yuǎn)小于MCM。而對于一般遺傳算法,即使將種群數(shù)量設(shè)為100,最大迭代次數(shù)設(shè)為20,由于每次只能進(jìn)行1個(gè)適應(yīng)度的優(yōu)化計(jì)算,要得到10根桿的軸應(yīng)力區(qū)間也要進(jìn)行 (20+1)×20×100=42000次靜力分析。所以對于多適應(yīng)度問題,特別是多個(gè)適應(yīng)度是同一次計(jì)算的多個(gè)輸出的時(shí)候,GAPO在計(jì)算量方面比一般遺傳算法更有優(yōu)勢。
本文以區(qū)間變量描述結(jié)構(gòu)參數(shù)的不確定性,考慮同時(shí)求解多個(gè)結(jié)構(gòu)響應(yīng)最值的需求,在傳統(tǒng)遺傳算法的基礎(chǔ)上加入多個(gè)適應(yīng)度,改變了遺傳操作機(jī)制,構(gòu)建了可以同時(shí)對多個(gè)適應(yīng)度進(jìn)行優(yōu)化分析的GAPO算法,并使用GAPO計(jì)算結(jié)構(gòu)靜力響應(yīng)區(qū)間。經(jīng)過算例測試發(fā)現(xiàn),GAPO比區(qū)間截?cái)喾ê晚旤c(diǎn)組合法更穩(wěn)定,能通過遠(yuǎn)小于MCM的計(jì)算量,得到更精確的結(jié)果,且在計(jì)算量方面比傳統(tǒng)遺傳算法也更有優(yōu)勢。此外,此方法也適用于結(jié)構(gòu)動(dòng)力響應(yīng)問題,即在結(jié)構(gòu)響應(yīng)計(jì)算函數(shù)中計(jì)算結(jié)構(gòu)的動(dòng)力響應(yīng)并返回需要的響應(yīng)值。