姜封國, 郭 威, 王路曈, 裴廷瑞
(黑龍江科技大學(xué) 建筑工程學(xué)院, 哈爾濱 150022)
結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)是結(jié)構(gòu)優(yōu)化設(shè)計(jì)領(lǐng)域中的一個(gè)重要方向。結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)是以可靠性指標(biāo)作為約束條件,對結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì)。目前,計(jì)算結(jié)構(gòu)可靠性指標(biāo)的方法有驗(yàn)算點(diǎn)法、寬界限法、窄界限法、蒙特卡羅法、概率網(wǎng)絡(luò)估算值技術(shù)等[1-4]。結(jié)構(gòu)可靠性優(yōu)化方法有乘子法、罰函數(shù)法、復(fù)合形法等,這些方法可以得到很高的精度,但計(jì)算過程復(fù)雜。為了解決傳統(tǒng)優(yōu)化方法存在的困難,學(xué)者們將啟發(fā)式智能優(yōu)化方法應(yīng)用于結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)中。姜封國等[5]將混合遺傳算法應(yīng)用到隨機(jī)結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)中。程躍等[6]采用混沌粒子群算法研究結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)。鄭燦赫等[7]構(gòu)造了PSO-DE混合算法,將該算法應(yīng)用到可靠性優(yōu)化設(shè)計(jì)中。龍周等[8]將SMOTE算法與BP神經(jīng)網(wǎng)絡(luò)模型相結(jié)合,提出了改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)模型,對船舶的可靠性優(yōu)化結(jié)果表明,該方法提高了優(yōu)化效率和優(yōu)化精度。以上學(xué)者都是將兩種算法進(jìn)行混合,這是由于單一算法的不足,造成優(yōu)化結(jié)果不理想。
教與學(xué)算法(Teaching-learning-based optimization,TLBO)是印度學(xué)者Rao等[9]提出的一種新的啟發(fā)式優(yōu)化算法。與其他優(yōu)化算法相比,教與學(xué)算法具有收斂性能好,算法中參數(shù)較少,數(shù)學(xué)模型簡單等優(yōu)點(diǎn)。目前,在函數(shù)優(yōu)化,工程參數(shù)優(yōu)化等問題中得到了廣泛應(yīng)用[10-12],但教與學(xué)算法存在搜索過程中容易陷入局部最優(yōu)以及收斂速度慢等不足。禁忌搜索算法(Tabu search,TS)最早是由Glover[13]在1986年提出的,該算法具有局部搜索能力強(qiáng)及收斂速度快等優(yōu)點(diǎn),但存在對初始解有依賴性強(qiáng)的缺點(diǎn)。
針對結(jié)構(gòu)系統(tǒng)可靠性優(yōu)化問題,筆者將TLBO-TS混合算法與結(jié)構(gòu)可靠性分析方法相結(jié)合,提出了基于結(jié)構(gòu)可靠性TLBO-TS混合算法的優(yōu)化設(shè)計(jì)模型。該模型的特點(diǎn)是以結(jié)構(gòu)質(zhì)量最小化為單目標(biāo)函數(shù),以可靠性指標(biāo)和截面面積為約束條件,通過六桿桁架結(jié)構(gòu)算例,驗(yàn)證該混合算法在可靠性優(yōu)化設(shè)計(jì)方法的可行性與適用性。
教與學(xué)算法模擬了以班級為單位老師向?qū)W生教授知識和學(xué)生之間相互學(xué)習(xí)的兩個(gè)過程。在算法中,每個(gè)班級就是一個(gè)種群,每個(gè)班級的學(xué)生人數(shù)就是種群的規(guī)模,學(xué)生學(xué)習(xí)的科目就是種群的維度,學(xué)生就是種群的個(gè)體,教師就是當(dāng)中最優(yōu)的個(gè)體。TLBO算法分為兩個(gè)階段,教師對學(xué)生的教階段和學(xué)生之間的相互學(xué)習(xí)階段。
初始化種群是通過式(1)初始化每個(gè)個(gè)體,計(jì)算個(gè)體的適應(yīng)度值。
(1)
式中:rand(x)——0和1之間的隨機(jī)數(shù);
教階段是通過式(2)得到新個(gè)體然后計(jì)算其目標(biāo)函數(shù)值,與舊的個(gè)體進(jìn)行比較,如果優(yōu)于舊的個(gè)體則新個(gè)體取代舊的個(gè)體。
xn=xo+rand(xt-TFxm),
(2)
式中:xt——當(dāng)前群體的全局最優(yōu)個(gè)體;
TF——教學(xué)因子,TF=round(1+rand(0.1));
round——取整符號;
xm——群體的平均值。
學(xué)生階段是學(xué)生們?yōu)檫M(jìn)一步提高自己的知識,學(xué)生之間會相互學(xué)習(xí)。這一階段的過程表示為
(3)
式中,f(x)——每個(gè)學(xué)生的適應(yīng)度函數(shù)。
在教與學(xué)算法中,教學(xué)因子是群體平均值的參數(shù),它的取值只能是1或者是2。在結(jié)構(gòu)優(yōu)化問題中,適應(yīng)度值較小為最優(yōu)值。通過式(1)表明,取較大值,得到的新個(gè)體較小,其適應(yīng)度值也較小,說明學(xué)生學(xué)到的知識就多,反之,取較小值,說明學(xué)生學(xué)到的知識較少。體現(xiàn)到優(yōu)化算法中,取較小值,表明算法的局部搜索能力強(qiáng),但是全局搜索能力弱;取較大值,表明算法的全局搜索能力強(qiáng),但是局部搜索能力弱。
學(xué)生得到的知識過程是經(jīng)過一段的學(xué)習(xí)時(shí)間后,學(xué)生知識水平就會提高,與老師的知識水平差距就會縮小,但是得到的知識也會越來越少。在基本的教與學(xué)算法中,教學(xué)因子隨機(jī)取值,不能真正體現(xiàn)學(xué)生得到知識的過程,為了解決此問題,文中借鑒文獻(xiàn)[14]對TLBO算法中的教學(xué)因子做了非線性遞減的改進(jìn),其表達(dá)式為
(4)
式中:TFmax、TFmin——教學(xué)因子的最大值與最小值;
r——調(diào)節(jié)參數(shù),控制TF的變化率,文中取值r=1;
t、tmax——當(dāng)前的迭代次數(shù)、最大迭代次數(shù)。
由式(4)可以看出,隨著迭代次數(shù)的增加,教學(xué)因子由最大值向最小值靠近。說明在迭代前期取值較大,即表明在前期算法全局搜索能力強(qiáng);在迭代后期取值較小,即表明在后期算法局部搜索能力強(qiáng),在算法搜索后期可以得到較高精度的解,體現(xiàn)學(xué)生得到知識的過程。
該算法的基本思想是,首先根據(jù)優(yōu)化問題的初始解,選擇一個(gè)鄰域結(jié)構(gòu),然后在初始解的鄰域結(jié)構(gòu)中隨機(jī)選擇出候選解。將最佳候選解與初始解的適應(yīng)度進(jìn)行比較,若最佳候選解的適應(yīng)度比初始解的適應(yīng)度更優(yōu),則最佳候選解將取代初始解。在此基礎(chǔ)上,引入了禁忌表,該禁忌表記錄了最近搜索過程中出現(xiàn)的解,禁止這些解在最近搜索過程中再次出現(xiàn),避免陷入局部最優(yōu)解。同時(shí),增加一個(gè)特赦準(zhǔn)則,若禁忌表中的適應(yīng)度值優(yōu)于當(dāng)前解,則將該解從禁忌表中釋放出來并代替當(dāng)前解繼續(xù)進(jìn)行迭代計(jì)算,這樣可以增加種群的多樣性。禁忌表的長度隨優(yōu)化問題而異,筆者將禁忌表的長度設(shè)置為5。禁忌搜索算法的基本流程分為6步。
步驟1根據(jù)問題設(shè)置初始解,置空禁忌表,設(shè)置禁忌表長度等。
步驟2將初始解作為當(dāng)前解,判斷是否滿足收斂準(zhǔn)則。若滿足收斂準(zhǔn)則,輸出最優(yōu)結(jié)果,終止計(jì)算,若不滿足繼續(xù)步驟3。
步驟3構(gòu)造鄰域函數(shù),利用當(dāng)前解產(chǎn)生候選解集,隨機(jī)選取候選解。
步驟4選取適應(yīng)度最優(yōu)的候選解。
步驟5判斷候選解是否滿足藐視準(zhǔn)則,若滿足,將候選解作為當(dāng)前解,并將原來的當(dāng)前解替換最早進(jìn)入禁忌表中的變量,若不滿足,則放入到禁忌表中。
步驟6繼續(xù)步驟2。
TLBO-TS混合算法流程分為5步。
步驟1初始化種群,設(shè)置種群數(shù)量,確定優(yōu)化問題的維度,以及迭代次數(shù)及變量的取值范圍。
步驟2通過式(2)更新個(gè)體,其中式(2)中的教學(xué)因子用式(4)取代,根據(jù)適應(yīng)度最優(yōu)值進(jìn)行選擇。
步驟3通過式(3)在學(xué)階段更新個(gè)體,根據(jù)適應(yīng)度最優(yōu)值進(jìn)行選擇。
步驟4進(jìn)入禁忌搜索階段。
步驟5判斷是否滿足最大迭代次數(shù),若沒有,則返回步驟2;若達(dá)到終止條件,則輸出結(jié)果。
TLBO-TS混合算法利用了改進(jìn)教與學(xué)算法全局搜索能力強(qiáng)和禁忌搜索算法局部搜索能力強(qiáng)的特點(diǎn),提高了該混合算法跳出局部最優(yōu)解的能力。
結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)方法是,在可靠性指標(biāo)的約束條件下,選取各元件合理的截面使結(jié)構(gòu)系統(tǒng)的質(zhì)量最小。求解該結(jié)構(gòu)系統(tǒng)最小質(zhì)量的優(yōu)化模型可以表示為
(5)
式中:ρi、Li、Ai——元件i的密度、長度、截面面積;
Al和Au——截面面積的上限與下限。
首先,將結(jié)構(gòu)系統(tǒng)近似成為一個(gè)串聯(lián)系統(tǒng),將每個(gè)元件作為一個(gè)失效單元,然后,計(jì)算各元件的失效概率,最后,將各元件的失效概率之和作為系統(tǒng)的失效概率。雖然計(jì)算的結(jié)果有誤差,但是在大于容許可靠性指標(biāo)的情況下是可行的,這樣既避免了尋找失效模式,又大大減少了計(jì)算量。
假設(shè)元件i的功能函數(shù)可表示為
Zi=g(xi)=R(xi)-S(xi),
(6)
式中:R(xi)——元件i上所有抗力因素的集合;
S(xi)——元件i上承受所有荷載的集合。
可靠性指標(biāo)為
(7)
式中:μZi——元件i功能函數(shù)的均值;
σZi——元件i功能函數(shù)的標(biāo)準(zhǔn)差。
元件失效概率Pfi與元件可靠性指標(biāo)βi的關(guān)系為
Pfi=φ(-βi),
(8)
式中,φ(-βi)——標(biāo)準(zhǔn)正態(tài)分布函數(shù)。
(9)
βs=-φ-1(Pf)。
(10)
結(jié)構(gòu)系統(tǒng)的可靠性分析及優(yōu)化設(shè)計(jì)問題通常是復(fù)雜和困難的,為了提高可靠性優(yōu)化的穩(wěn)定性和收斂速度,文中將下列收斂準(zhǔn)則[15]應(yīng)用于TLBO-TS的可靠性優(yōu)化設(shè)計(jì)中:
(11)
(12)
(13)
其中,ε1、ε2、ε3都是遠(yuǎn)小1的數(shù)值,在10-4~10-3范圍內(nèi)。
將混合的教與學(xué)算法與結(jié)構(gòu)可靠性優(yōu)化設(shè)計(jì)理論相結(jié)合,充分利用改進(jìn)的教與學(xué)算法和禁忌搜索算法的優(yōu)點(diǎn),對結(jié)構(gòu)進(jìn)行可靠性優(yōu)化設(shè)計(jì)。其具體的優(yōu)化步驟分為8步。
步驟1設(shè)定參數(shù),最大迭代次數(shù),設(shè)置班級人數(shù)即種群數(shù)量,搜索的空間,置空禁忌表等。
步驟2初始化種群,通過式(1)初始化每個(gè)個(gè)體,計(jì)算個(gè)體的適應(yīng)度值。尋找班級中最優(yōu)的個(gè)體,計(jì)算班級同學(xué)平均水平。
步驟3對結(jié)構(gòu)進(jìn)行可靠性分析,分析各個(gè)個(gè)體是否滿足式(5)的約束條件。若滿足約束條件,則進(jìn)行步驟4,否則,將該個(gè)體的適應(yīng)度值分配一個(gè)較大的值,在優(yōu)化過程中會自動丟棄。
步驟4由式(2)、(3)更新個(gè)體,其中式(2)中的教學(xué)因子用式(4)取代。
步驟5將改進(jìn)教與學(xué)算法獲得的最優(yōu)解設(shè)置為禁忌搜索算法的初始解。
步驟6進(jìn)行禁忌搜索并獲得候選解集,求出各個(gè)候選解的適應(yīng)度值,找到最優(yōu)解。
步驟7更新最優(yōu)解,從候選解集中獲得最優(yōu)解,若最優(yōu)解不在禁忌表中,則更新最優(yōu)解,否則用次優(yōu)解代替,更新禁忌表。
步驟8若滿足式(11)~(13)收斂準(zhǔn)則,則搜索結(jié)束,輸出優(yōu)化結(jié)果,否則返回到步驟3。
基于混合教與學(xué)算法的結(jié)構(gòu)可靠性優(yōu)化流程圖1所示。
圖1 基于TLBO-TS的結(jié)構(gòu)可靠性優(yōu)化流程 Fig. 1 Flow of structural reliability optimization based on TLBO-TS
圖2 桿桁架結(jié)構(gòu)Fig. 2 Structure of 6-bar truss
在兩種不同荷載情況下,對6桿桁架結(jié)構(gòu)進(jìn)行優(yōu)化計(jì)算。工況Ⅰ:F1=46.225 3 kN,F(xiàn)2=28.224 7 kN、F3=16.099 5 kN;工況Ⅱ:F1=53.803 4 kN,F(xiàn)2=23.945 3 kN,F(xiàn)3=16.099 5 kN。文中的初始種群數(shù)量為10,問題的維數(shù)是6。
基于TLBO-TS算法對結(jié)構(gòu)可靠性的進(jìn)行優(yōu)化設(shè)計(jì),在相同的條件下,對6桿桁架結(jié)構(gòu)分別結(jié)合TLBO算法和TLBO-TS算法進(jìn)行可靠性優(yōu)化,情況1、2的優(yōu)化曲線如圖3所示,與文獻(xiàn)[7]的優(yōu)化結(jié)果進(jìn)行對比,結(jié)果如表1所示。
圖3 不同荷載狀態(tài)下的優(yōu)化曲線Fig. 3 Optimization curve under different load conditions
由圖3a可知,TLBO-TS算法迭代20次后達(dá)到目標(biāo)的函數(shù)值6.373 4 kg,而TLBO算法迭代20次后才達(dá)到目標(biāo)的函數(shù)值6.827 kg。由圖3b可知,TLBO-TS算法迭代20次后達(dá)到目標(biāo)的函數(shù)值6.407 0 kg,而TLBO算法迭代20次后才達(dá)到目標(biāo)的函數(shù)值6.782 0 kg。總之,在不同的荷載情況下,TLBO-TS混合算法的優(yōu)化結(jié)果優(yōu)于基本的TLBO算法,優(yōu)化結(jié)果比較理想。
從表1可知,工況Ⅰ,TLBO算法、PSO-DE算法、TLBO-TS算法的目標(biāo)函數(shù)分別為6.827 0、6.452 7、6.373 4 kg,表明TLBO-TS算法優(yōu)化的結(jié)果較好,較TLBO算法減少6.64%,較PSO-DE算法減少1.2%。工況Ⅱ,TLBO算法、PSO-DE算法、TLBO-TS算法 目標(biāo)函數(shù)分別為6.782 0、6.459 4、6.407 0,表明TLBO-TS算法優(yōu)化的結(jié)果較好,較TLBO算法減少5.85%,較PSO-DE算法減少0.82%,說明TLBO-TS算法具有搜索效率高的特點(diǎn)。
表1 桁架結(jié)構(gòu)的優(yōu)化結(jié)果
(1)在基本的教與學(xué)算法基礎(chǔ)上,通過基本教與學(xué)算法中的教學(xué)因子進(jìn)行非線性遞減改進(jìn),提高了教與學(xué)算法的收斂速度,將改進(jìn)的教與學(xué)算法與禁忌搜索算法進(jìn)行混合,提出了混合的TLBO-TS算法。
(2)針對結(jié)構(gòu)系統(tǒng)的優(yōu)化設(shè)計(jì),將混合的教與學(xué)算法應(yīng)用于結(jié)構(gòu)可靠性的優(yōu)化設(shè)計(jì)中,算例結(jié)果表明,TLBO-TS混合算法比基本的TLBO算法和PSO-DE混合算法能取得更優(yōu)的計(jì)算結(jié)果,在兩種模擬工況下目標(biāo)函數(shù)較TLBO算法分別減少6.64%和5.53%,說明該優(yōu)化設(shè)計(jì)方法可以應(yīng)用于復(fù)雜結(jié)構(gòu)系統(tǒng)的可靠性優(yōu)化設(shè)計(jì)中。