姜封國, 岳 攀, 周玉明, 于 正, 曾 梟
(黑龍江科技大學 建筑工程學院, 哈爾濱 150022)
隨著材料與技術的快速發(fā)展與應用,與時俱進的,人類對結構的優(yōu)化設計有了更高的要求,而基于概率的可靠性優(yōu)化設計是結構系統(tǒng)優(yōu)化設計的重要分支。目前,計算結構可靠性指標的方法有中心點法[1]、驗算點法[2]、蒙特卡羅法、響應面法[3]等。傳統(tǒng)的結構優(yōu)化設計方法有最佳矢量法和罰函數(shù)法等。這些傳統(tǒng)的優(yōu)化方法雖然精度很高,但是在面對復雜的工程結構時,就會出現(xiàn)求解困難,對全局最優(yōu)解判定困難等缺點,缺乏實際工程價值。針對這些問題,有學者將群智能優(yōu)化算法和結構系統(tǒng)可靠性優(yōu)化設計領域相結合,很大程度上減少了計算過程。鄭燦赫等[4]將粒子群算法和差分進化算法相融合,提出了一種混合算法,將其與結構可靠性優(yōu)化其理論相結合。張水平等[5]通過對中心點進行隨機替換對蜻蜓算法進行改進,提升了算法的尋優(yōu)速度和精度。姜封國等[6]將教與學算法和禁忌搜索算法相結合,提出了混合教與學算法,并將其用于桁架結構的優(yōu)化設計。以上學者對算法進行優(yōu)化整合,在原有算法的基礎上進行改進,大大提高了優(yōu)化效率。Ranjini等[7]優(yōu)化蜻蜓算法,提出了基于混合內存的蜻蜓算法,加快了算法的收斂速度。Ismail 等[8]利用混沌圖調整了蜻蜓的運動參數(shù),提出了混沌蜻蜓算法,使算法的收斂速度得到了提升。Zhang等[9]通過對蜻蜓行為進行量子化,提高了算法的尋優(yōu)性能。上述改進方法在很大程度上改善了算法的優(yōu)化效率。針對標準蜻蜓算法存在的缺陷,筆者提出基于t分布和Tent混沌映射的蜻蜓算法(TTDA),并且將之與結構可靠性優(yōu)化設計結合,提出了在TTDA算法下的結構可靠性優(yōu)化模型,通過算例驗證其實用性。
蜻蜓算法(DA)通過模仿蜻蜓在自然界里的飛行規(guī)律和協(xié)作模式進行全局探索和局部開發(fā),探索對應蜻蜓種群的長距離的移動,開發(fā)對應蜻蜓種群在小范圍內的捕食行為。
蜻蜓群體的行為遵循著分離、結隊、聚集、覓食和避敵??梢杂靡韵?個數(shù)學公式來描述。
分離行為Si的公式為
(1)
式中:X——蜻蜓個體目前所在的位置信息;
Xj——相鄰第j個蜻蜓個體的位置信息;
N——蜻蜓周圍相鄰個體的數(shù)量。
結隊行為Ai的公式為
(2)
式中,Vj——相鄰第j個個體的速度。
聚集行為Ci的公式為
(3)
狩獵行為Fi的公式為
Fi=X+-X,
(4)
式中,X+——記錄的食物所在位置,即目標最優(yōu)解。
避敵行為Ei的公式為
Ei=X-+X,
(5)
式中:X——蜻蜓個體當前的位置;
X-——天敵所在位置,即目標最差解。
上述5種行為可以得到蜻蜓個體位置移動的步長。
蜻蜓的鄰域內有其他個體,則步長和位置向量的更新公式為
ΔXt+1=(sSi+aAi+cCi+fFi+eEi)+wΔXt,
Xt+1=Xt+ΔXt+1,
(6)
式中:s——分離因子;
a——結對因子;
c——聚集因子;
f——狩獵因子;
e——避敵因子;
w——慣性權重;
t——迭代次數(shù)。
當該蜻蜓個體周圍沒有其他蜻蜓個體作為參照時,蜻蜓的位置將根據(jù)Levy飛行方程確定為
Xt+1=Xt+L(d)Xt,
(7)
式中,d——向量維度。
L(d)具體函數(shù)信息為
針對蜻蜓算法存在的不足之處,TTDA從兩個方面進行改進:一是利用Tent混沌映射的特性改善蜻蜓種群的初始質量,以此來提高算法的收斂速度和全局探索能力。二是通過t分布對每個蜻蜓個體進行概率為50%的變異處理,將算法的迭代次數(shù)n作為t分布的自由度參數(shù),在算法迭代的過程中利用高斯變異和柯西變異的特點提升算法的優(yōu)化能力,以此加快收斂速度。
為了提高初始種群的質量,利用混沌的遍歷性、規(guī)律性等特點,將Tent映射生成的數(shù)據(jù)作為蜻蜓個體的初始位置信息,保留蜻蜓種群的多樣性,提高算法效率。
原始的Tent映射數(shù)學公式為
(8)
式(8)具備良好的隨機性、遍歷性、均勻性。映射實際上是將小數(shù)部分的二進制數(shù)向左移動,但這種映射有不足之處,因為計算機技術的限制,映射產(chǎn)生的混沌序列在迭代時有可能會陷入不穩(wěn)定周期點。由文獻[10]可知,混沌序列在點[0,0.25,0.5,0.75]處陷入不穩(wěn)定周期點,為使映射產(chǎn)生的序列重新進入混沌狀態(tài),因此設計一種新的Tent混沌映射序列的產(chǎn)生方法,在原始的映射函數(shù)后加入一個隨機變量為
(9)
在這個隨機變量的影響下,可以避免混沌序列落入循環(huán)。由式(9)得到混沌序列xt并通過式y(tǒng)t=lbi+(ubi-lbi)xt將結果逆映射到搜索空間中,得到更高質量的初始種群。
雖然混沌映射在一定程度上加快了算法的收斂速度,但是由于群智能算法本身的特性會導致算法在迭代過程中陷入局部最優(yōu)并且難以跳出,使算法尋優(yōu)效率過低。為進一步提升算法的尋優(yōu)能力,有學者將高斯變異和柯西變異應用于群智能算法中來提升種群多樣性,以跳出局部最小值,而高斯變異和柯西變異是t分布中的兩個邊界特例,因此文中將t分布融入蜻蜓算法中,避免算法陷入局部最優(yōu)。
利用t分布去優(yōu)化蜻蜓算法,對蜻蜓的個體位置進行t分布變異,變異的過程為
(10)
xi——第i個蜻蜓個體的位置;
t(n)——滿足將算法的迭代次數(shù)作為t分布的自由度;
n——迭代次數(shù)。
基于t分布的蜻蜓算法通過在原先蜻蜓的位置加上xit(n)服從t分布的干擾項,但是研究發(fā)現(xiàn),隨著迭代的進行,t(n)這個數(shù)值經(jīng)常會出現(xiàn)大于1或小于-1的情況,其收斂不穩(wěn)定,因此加上λ/n系數(shù),使t的突變范圍減小,有利于尋找更優(yōu)的值,從而優(yōu)化算法。
設置t分布中種群的變異幾率為0.5,針對每只蜻蜓個體,都會生成一個[0,1]之間的隨機數(shù),當隨機數(shù)小于變異概率0.5的視為滿足變異條件的蜻蜓,并對其進行式(10)的t變異。
在蜻蜓算法剛剛開始迭代時,由于迭代次數(shù)少,t分布近似表現(xiàn)為柯西分布,此時對蜻蜓個體的擾動較強,算法具有較優(yōu)的全局探索能力;慢慢迭代次數(shù)開始增加,自由度n增加,t分布近似表現(xiàn)為高斯分布,算法會具有較強的局部開發(fā)性能。因此,通過t分布對蜻蜓算法進行優(yōu)化,可以融合柯西分布和高斯分布的優(yōu)點,提高算法的全局探索能力和局部開發(fā)性能。
將原始的蜻蜓算法與上述的優(yōu)化方法相結合,提出了基于t分布和Tent混沌映射的混合變異算法。
首先初始化蜻蜓種群,初始化步長向量,蜻蜓個體搜尋上下限以及算法的權重系數(shù)等;接著利用式(12)混沌初始化蜻蜓種群位置;然后計算慣性權重w,以及s、a、c、f、e參數(shù),并且根據(jù)式(1)至(5)計算S、A、C、F、E等因子,判斷一個蜻蜓周圍是否至少有一個鄰近的蜻蜓,是則通過式(6)更新位置向量,否則通過式(7)萊維飛行方法更新位置向量;最后根據(jù)更新的位置信息,以50%的概率針對每只蜻蜓進行t分布變異,通過式(10)更新其位置信息并計算其對應的適應度值,與前適應度值進行比較,保留更優(yōu)的蜻蜓個體,達到最大迭代次數(shù),則循環(huán)結束,輸出最優(yōu)解,否則進行下一次尋優(yōu)過程。
對結構可靠性優(yōu)化設計的研究已有幾十年的歷史,大致分為兩階段。第一階段是以結構元件的可靠度指標作為約束條件建立優(yōu)化模型;第二階段是以結構系統(tǒng)可靠度指標作為約束建立優(yōu)化模型。文中實際是以結構元件的失效概率作為約束條件,建立可靠性優(yōu)化模型,使所優(yōu)化的結構質量最小。
桁架結構M的質量為
式中:ρi——構件的密度;
li——構件長度;
Ai——截面面積。
構件i的功能函數(shù)為
Zi=Ri-Si,
式中:R——構件容許應力的集合;
S——荷載的集合。
計算可靠性指標為
式中:μ——功能函數(shù)的均值;
σ——功能函數(shù)的標準差。
元件失效概率和可靠性指標的數(shù)學公式為
Pfi=φ(-βi),
式中,φ——標準正態(tài)分布函數(shù)。
結構系統(tǒng)可靠性分析及設計優(yōu)化問題是非常復雜的。在TTDA的可靠性優(yōu)化設計中加入以下的收斂準則[11],以此來提高優(yōu)化的穩(wěn)定性和收斂速度。
(11)
(12)
(13)
式中:k——迭代次數(shù);
ε1、ε2、ε3——遠小于1的數(shù),10-4~10-3。
將改進后的混合變異蜻蜓算法應用到結構可靠性優(yōu)化設計領域,建立以結構失效概率為約束條件下結構質量最小的數(shù)學模型?;赥TDA算法的可靠性優(yōu)化步驟分為以下8步。
步驟1設置參數(shù),對每個蜻蜓個體的初始位置和初始步長向量進行初始化。
步驟2利用式(9)生成的混沌序列映射到搜索空間得到初始化的蜻蜓種群。
步驟3對需要優(yōu)化的結構進行結構可靠性分析,判斷結構是否滿足數(shù)學模型的約束條件,若滿足,則進行下一步。
步驟4更新慣性權重w以及各權重系數(shù)s、a、c、f、e,通過式(1)至(5)計算蜻蜓群體五種行為因子S、A、C、F、E。
步驟5如果一個蜻蜓個體周圍至少有一個環(huán)繞著的蜻蜓,則通過式(6)變更位置向量,否則通過式(7)變更位置信息。
步驟6對最新位置的蜻蜓個體進行t分布變異,保留變異后個體更優(yōu)的蜻蜓。。
步驟7若滿足式(11)~(13)的收斂準則,則循環(huán)結束,保留最優(yōu)的蜻蜓個體。否則返回步驟3。
基于TTDA的結構可靠性優(yōu)化流程如圖1所示。
圖1 基于TTDA的結構可靠性優(yōu)化流程Fig. 1 Flow of structural reliability optimization based on TTDA
在兩種具有代表性的荷載情況下,對該6桿桁架結構進化優(yōu)化設計。工況Ⅰ:F1、F2、F3分別為46.225 3、28.224 7、16.009 5 kN。工況Ⅱ:F1、F2、F3分別為53.803 4、23.945 4、16.099 5 kN,文中的維度是6。
圖2 6桿桁架結構Fig. 2 Structure of 6-bar truss
在相同的條件下,對本桁架結構結合DA算法和TTDA算法進行可靠性優(yōu)化計算,工況Ⅰ、Ⅱ的結果如圖3所示。
圖3 不同荷載下的優(yōu)化曲線Fig. 3 Optimization curve under different load conditions
由圖3a可知,在工況Ⅰ的荷載條件下,TTDA算法在迭代250次時會達到目標函數(shù)值5.945 6,隨著迭代次數(shù)的進行,達到了最優(yōu)值5.834 5,但DA算法在迭代250次的時達到目標數(shù)值6.130 9。由圖3b可知,TTDA算法在迭代250次附近時達到函數(shù)值5.856 7,并且隨著迭代次數(shù)的增加達到目標函數(shù)值5.745 1,而DA算法在迭代250次左右才達到目標函數(shù)值6.197 5。并且迭代次數(shù)在250次附近時,DA算法已經(jīng)開始收斂,而TTDA算法隨著迭代次數(shù)的增加精度還有略微增加。由此可知,TTDA算法的優(yōu)化效果要好于DA算法,并且在尋優(yōu)中期時迭代速度要高于DA算法,在迭代后期收斂精度要好于DA算法。
表1和2分為別兩種荷載情況下TTDA算法和DA算法的優(yōu)化結果,在荷載工況Ⅰ的條件下,基于TTDA算法的結構質量優(yōu)化結果為5.834 5 kg,基于DA算法的質量優(yōu)化結果為6.130 9 kg;在載荷工況Ⅱ的條件下,基于TTDA算法的結構質量優(yōu)化結果為5.745 1 kg,基于DA算法的結構質量優(yōu)化效果為6.197 5 kg,由此可見,相比較于DA算法,TTDA算法有著更好的優(yōu)化性能。
表1 工況Ⅰ優(yōu)化結果
表2 工況Ⅱ優(yōu)化結果
從表1和2可以看出,基于TTDA算法的結構可靠性優(yōu)化結果要比DA算法更好,在可靠性約束條件下使各截面面積最小可以節(jié)省材料,結果表明,TTDA算法收斂更快,精度更高。
一個16桿超靜定桁架如圖4所示,結構參數(shù):屈服應力均值為276 MPa,變異系數(shù)CR為0.05,彈性模量E=2.06×105MPa,材料的密度ρ為2.7×103kg/m3,荷載均值F為44.45 kN,變異系數(shù)CF為0.1,不確定設計變量連接關系為A1,A2=A5,A3=A4=A14,A6,A7=A8=A10,A9,A11=A12=A15,A13=A16,桿件之間只有獨立或相關兩種情況。設個體數(shù)為100,最大迭代次數(shù)為500。16桿桁架結構的優(yōu)化結果如表3所示,兩種算法優(yōu)化曲線如圖5所示。
圖4 16桿桁架結構Fig. 4 Structure of 16-bar truss
圖5 兩種算法下的優(yōu)化曲線Fig. 5 Optimization curves under two algorithms
表3 16桿桁架結構優(yōu)化結果
由圖5可知,混合變異蜻蜓算法收斂更快,結果更優(yōu)。
蜻蜓算法和混合變異蜻蜓算法的優(yōu)化結果分別為15.88和14.36 kg,TTDA算法的優(yōu)化結果明顯優(yōu)于DA算法。
(1)在原始的DA算法中,通過t分布變異和Tent混沌映射函數(shù)兩種方法對DA算法進行改進,提高了DA算法的收斂速度和精度,提出了一種基于t分布和Tent混沌映射的TTDA算法。
(2)將文中所改進的TTDA算法用于可靠性優(yōu)化設計中,算例1結果表明,TTDA算法比原始的DA算法能優(yōu)化出更好的結果,在兩種不同的工況條件下,TTDA算法比DA算法分別減少了4.83%和7.3%。算例2結果表明,TTDA算法相對于原始DA算法減少了9.5%,說明該算法可以為結構可靠性優(yōu)化設計提供一種新的優(yōu)化方法。