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