?

基于改進差分進化算法的密封艙結構優化設計

2021-08-22 05:25施麗銘姚遠明趙啟林馬森鄧宇華陳浩森
航天器工程 2021年4期
關鍵詞:差分種群變異

施麗銘 姚遠明 趙啟林 馬森 鄧宇華 陳浩森

(1 北京空間飛行器總體設計部,北京 100094)

(2 南京工業大學 機械與動力工程學院,南京 211800)

(3 北京理工大學 先進結構技術研究院,北京 100081)

差分進化[1](Differential Evolution,DE)算法是以達爾文生物進化論“優勝劣汰”的思想為準則,模擬自然界生物進化的群智能優化設計方法,主要包括初始種群的生成、基于差分形式的變異、基于概率選擇的交叉和基于“優勝劣汰”思想的選擇4個步驟。由于其原理簡單、控制參數少,故在不同的領域均有廣泛的應用,如衛星調度[2]、無線傳感器網絡定位[3]、應急物資配置調度[4]等。雖然DE 算法有很多優點,但也存在易陷入局部收斂的缺點,主要原因是:變異操作是DE算法進化個體的關鍵,原理是對不同個體之間的向量差進行加權計算,以此實現種群中每個個體的擾動[5],但隨著迭代的進行,種群之間各個體開始朝一處或多處聚集,個體之間的差異性迅速減少,導致個體之間的向量差減小,以至于個體無法進化,進而導致算法陷入局部收斂,即“早熟”。因此,改進DE算法的“早熟”缺陷將會對提升算法的性能有著重要的意義。

對于“早熟”的缺陷,不少學者對此進行了改進,方法大致包含以下幾方面:自適應調整控制參數[6-7](變異率F 和交叉率CR)、變異策略的改進[8-9]以及混合算法的使用[10-11]。例如文獻[6]借鑒自然界生物繁衍的“S 型曲線”,提出基于S 型變異率的差分進化算法(SDE),改進的算法在一定程度上解決了變異算子的參數設置問題,但其采用的DE/rand/1變異策略[1]并不利于中后期局部精細搜索;文獻[8]提出基于雙變異策略協調工作的自適應差分進化(DSDE)算法,該算法采用雙變異策略來共同產生變異個體,改善了單一策略帶來的不利影響,但每一步進化過程都采用雙變異策略變異,增加了計算時間,同時其后期采用較小的變異率也不利于算法跳出局部最優解;文獻[10]提出一種基于共軛梯度法的反饋差分進化混合算法,能夠根據種群自身的搜索環境來選擇變異方式,同時采用共軛梯度法確定局部搜索方向,提高了最優值的精度,加快了收斂速度,但共軛梯度法對于多峰、高維函數的計算量太大。

為進一步提高DE 算法的計算精度和收斂性能,改善“早熟”的缺陷,本文提出一種基于自適應變異率的雙策略差分進化(AD-DE)算法。該算法借鑒了SDE算法的變異率規律,變異率隨著迭代次數增大而增大,同時采用雙重變異策略DE/rand/1和DE/rand*best[1],并采用函數T 根據當前迭代次數動態的選擇變異策略,使得算法在探索和開采之間取得動態的平衡。后將改進的AD-DE 算法應用于某型密封艙的結構優化中,取得了較理想的結果,為密封艙的設計提供了參考。

1 DE算法的改進

為緩解DE 算法易陷入局部收斂的缺陷,本文主要從變異率和變異策略兩個方面出發對DE 算法進行改進,提出一種具有自適應變異率和雙變異策略的DE算法,命名為基于自適應變異率的雙策略差分進化(AD-DE)算法,期望改善算法的計算精度和收斂性能。

1.1 變異率的改進

變異率控制著差分的步長,影響著種群多樣性。一般在進化初期,由于初始種群為隨機生成,因此個體分布均勻,種群多樣性大;但隨著迭代的進行,由于貪婪選擇的擇優選取,導致個體慢慢的聚集于一處或多處,因此在迭代后期種群多樣性下降,算法喪失進化動力。為提高算法在迭代后期的進化動力,本文提出自適應變異率Fa,其公式為

式中:Gm為最大迭代次數,G 為當前迭代次數,Fmax、Fmin分別為變異率上、下限。

圖1為Fa的變化曲線,改進后的變異率隨著迭代的進行單調遞增:在進化初期,Fa較小,有利于維持初始種群的種群多樣性,保護初始種群中的優良個體和基因;在進化后期,Fa值較大,有利于增大種群多樣性,為后期進化提供動力,增加算法跳出局部最優解的可能。

圖1 變異率曲線Fig.1 Mutation rate curve

1.2 變異策略的改進

對于DE 算法,不同的變異策略會對算法性能造成不一樣的影響。受多變異策略的啟發,本文將全局變異策略和局部變異策略進行綜合。全局變異策略能在解空間內廣泛地搜尋最優解,快速鎖定較優的開采區間;局部變異策略主要集中在個別較好的個體附近,具有很強的開采能力。在進化前期,采用搜索范圍廣的全局變異策略來產生變異個體,幫助算法快速確定較優的開采區間;在進化后期種群個體較為集中,我們采用改進的局部變異策略,來更好的對較優個體進行深度開采,同時也能避免后期采用較大變異率帶來的不易收斂的弊端。

本文采用DE/rand/1為全局變異策略,變異策略公式為

式中:qG,i 代表第G 次進化的第i個變異個體(i=1,2,…,Np),Np為種群規模;pG,n為被執行差分的個體,pG,m、pG,k 為執行差分的個體;n,m,k 代表個體的隨機選擇索引,n,m,k ∈{1,2,…,Np},且i≠n≠m≠k;Fa為自適應變異率,即差分向量的縮放因子。

采用自主開發的DE/rand*best為局部變異策略,DE/rand*best變異策略公式為

式中:a 為在(0,1)之間的隨機數,旨在減弱最優個體的影響,防止陷入局部最優;pG,best代表第G 代最優個體,旨在增加搜索目的性;pG,x、pG,y、pG,z為執行差分的個體;x,y,z 代表個體的隨機選擇索引,x,y,z ∈{1,2,…,Np},且i≠x≠y≠z。

對于上述兩種變異策略的選擇,構造如下的T函數為變異策略的選擇函數,原因在于:所構造的T 函數值介于0~1之間,便于使用概率映射的方式來選擇變異策略;當G=時,代入式(4),T 為0.5,便于劃分迭代的前、后期。

函數T 公式為

函數T 曲線圖像如圖2所示,由圖2可知,在迭代初期,T 近乎為1,在迭代后期,T 近乎為0。故設置一隨機數Q,Q ∈[0,1]。在進化初期,Q 很大概率上會小于T,此時選取DE/rand/1作為變異策略;在進化后期,Q 很大概率上會大于T,此時選取DE/rand*best作為變異策略,變異策略選擇公式如式(5)所示。

圖2 函數曲線圖Fig.2 Function graph

這樣,在進化前期有更大概率選取全局變異策略,在進化后期有更大的概率選取局部變異策略。

1.3 AD-DE算法描述

AD-DE算法步驟如下:

(1)設置種群個數Np,最大迭代次數Gm,變異率上、下限Fmax、Fmin,交叉率CR,初始化種群;

(2)利用式(4)計算當前進化代數G 下的T,利用式(5)來選擇變異策略,當隨機數Q 小于T,選擇DE/rand/1為當前G 下的變異策略,否則選擇DE/rand*best為變異策略;

(3)利用式(1)計算當前進化代數G 下的變異率Fa,按步驟(2)選擇的變異策略進行變異操作;

(4)檢查變異個體是否超出邊界,若超出邊界則將其舍棄并重新隨機生成;

(5)使用二項交叉模式進行交叉操作,交叉率為CR,生成試驗種群;

(6)計算目標種群和試驗種群個體的適應度值并比較大小,采用貪婪選擇的模式進行選擇;

(7)判斷是否達到最大迭代數或者滿足迭代終止條件,若滿足,停止,輸出最優解;若不滿足,則返回步驟(2)。

2 仿真校驗及分析

2.1 試驗設計

為全面體現本文AD-DE 算法的綜合性能,試驗選用如下8個測試函數[12,13]對算法的性能進行驗證,分別為:Sphere函數、Rosen Brock函數、Rastrigin函數、Griewank 函數、Ackley 函數、Quartic with noise函數、Schaffer函數、Shekel函數。這些函數涵蓋了單峰、高峰、多維、不規則的優化問題。

本文對比試驗所選用的算法如下。

(1)參考文獻[14],變異率F 為0.8,變異策略為DE/rand/1的DE算法,記為DE1;

(2)變異率F 為0.8,變異策略為DE/best/1的DE算法,記為DE2;

(3)變異率在[0.4,0.95]范圍內呈現“S”型變化,變異策略為DE/rand/1 的SDE 算法[6],記為DE3;

(4)使F 和CR呈負相關的自適應差分進化算法[7],記為DE4(為新型的改進差分進化算法);

(5)本文所提出的基于自適應變異率的雙策略差分進化算法AD-DE算法,變異率在[0.2,0.95]范圍內變化,變異策略為DE/rand/1、DE/rand*best,記為AD-DE。

優化設計過程中,個體數Np=10D,D 表示搜索空間的維度,初始種群在搜索空間內隨機分布。將各對比算法、不同測試函數和不同維度D 條件下的平均值和標準差計算結果匯總于表1中,并將最優計算結果進行加粗處理。其中函數f1~f6為高維函數,故分別設置D=10,20,30 時的情況做對比;f7、f8為二維函數,故D=2。對于每種測試函數的每種維度情況,分別進行50次獨立的優化設計計算,記錄這50次優化計算的最優值,并計算50次最優值的平均值和標準差。為直觀給出AD-DE 算法效果,繪制各測試函數的迭代曲線圖,如圖3 所示,圖3中(a)~(h)為D=30(對于測試函數f7、f8,D=2)時各測試函數典型迭代曲線,圖3中橫坐標為迭代次數,縱坐標為最優值取對數。

圖3 不同算法迭代趨勢圖Fig.3 Different algorithm iteration trends

表1 不同算法尋優結果的平均值和標準差Table 1 Average and standard deviation of optimization results of different algorithms

續 表

2.2 試驗結果及分析

本文從以下方面對實驗結果進行評價:①通過平均值和標準差來反映各個優化設計方法的優劣。當平均值越接近理論最優值時,結果最優;若平均值相同,則標準差越小,即算法越穩定,計算結果越優。②迭代趨勢圖,以曲線的形式顯示每種算法每種測試函數的尋優歷程。

由表1可知,在高維函數f1~f6中:低維時,除f2外,與其它算法相比AD-DE 算法均取得了更優解,其中f3、f4、f5均精準的找到了理論最優值;對于f2,AD-DE 算法也僅次于DE3。中維時,除f3外,相比其它算法AD-DE 算法求解的結果更接近理論最優解且標準差也更小;高維時,除f2外,AD-DE算法在f1、f3、f4、f5處均找到了全局最優解,f6雖然未找到全局最優解,但相比其它算法其平均值更加接近最優解,標準差也更小。在二維函數f7~f8中:對于函數f7,DE4和AD-DE 均找到了全局最優解且標準差均為0;對于函數f8,雖然DE3、DE4、AD-DE均找到了全局最優解,但AD-DE的標準差更小,說明對于該函數AD-DE 算法更加穩定。由此可知,AD-DE算法不僅在低維時能取得較好的結果,隨著維數的提升,算法依舊能保持較好的性能,且AD-DE 算法對不同函數的適應能力要顯著高于對比算法。

由圖3可知,在相同的迭代次數下,AD-DE算法分別在測試函數f1、f3、f4、f5、f7、f8中第2066、2560、952、2185、255、26代處均找到了全局最優解,表明AD-DE算法的收斂速度高于對比算法,平均提速50%以上。同時也證明了AD-DE算法跳出局部最優解的能力最強,并且能快速的找到全局最優解。

綜上,AD-DE算法明顯地強于對比算法,它能在探索和開采之間取得動態的平衡,在保證后期種群多樣性的同時,可提高求解的精度和收斂速度。

3 AD-DE算法在密封艙結構優化中的應用

結構的優化問題,就是在滿足約束條件的情況下,使得結構質量越低,成本最小化的問題。對某密封艙進行建模分析,可知其屬于多變量的復雜優化問題,因而采用求解精度和收斂性能更好的AD-DE算法對其進行優化。

3.1 密封艙模型及工況介紹

某型密封艙模型如圖4所示,為加筋球殼結構。選取特定工況,并將各荷載乘上相應的荷載安全系數(見表2)。密封艙上各設備分布情況為:設備一安放在地板框;設備二安放在帽檐板連接框;其它設備質量均布在各加強筋上;平臺對接框為固接。

表2 荷載Table 2 Loads

圖4 密封艙結構Fig.4 Structure of capsule

3.2 應用ANSYS和Matlab軟件協同優化密封艙

優化以密封艙質量最低為目標函數,以強度和幾何尺寸為約束條件,以蒙皮壁厚和各肋條截面尺寸為設計變量。利用Matlab 軟件進行AD-DE 算法的編寫,利用ANSYS-APDL 軟件對密封艙進行參數化建模。以 Matlab 軟件作為主控程序,ANSYS軟件作為求解器進行有限元分析,整個優化設置在Matlab中全部完成[15]。

具體的操作步驟如下。

(1)設置AD-DE算法基本參數,種群規模Np=20、最大進化代數Gm=55、變異率上、下限Fmax=0.95、Fmin=0.2,交叉率CR=0.9;

(2)在設計變量約束區間內,隨機生成設計變量所得值,初始化種群;

(3)將初始的設計變量值存入Input.txt 文件中;

(4)應用ANSYS軟件讀取Input.txt文件,以讀取的值作為設計參數進行結構分析;

(5)提取分析后的結構最大應力S 作為約束條件,提取密封艙的結構質量W 作為目標函數;

(6)將約束條件和目標函數存入Output.txt文件中;

(7)Matlab 軟件讀取Output.txt文件,計算Np個個體的適應度函數值,并從中獲取最佳個體和其適應度值;

(8)判斷是否滿足終止條件,若滿足則停止優化,輸出最優設計變量和目標函數值,若不滿足則運行步驟(9)和(10);

(9)執行1.3節中的步驟(2)~步驟(6);

(10)獲得G+1代設計變量值,循環本節的步驟(3)~(8)。

3.3 優化結果

采用AD-DE 算法對密封艙進行結構優化,結構最大應力變化曲線如圖5所示,目標函數優化曲線如圖6所示。

圖6 目標函數優化曲線Fig.6 Objective function optimization curve

由圖5、6 可知,優化后密封艙的最大應力為154.6 MPa,滿足強度條件155 MPa,優化結果為48.72 kg,比初始設計質量減少了34%。

圖5 最大應力變化曲線Fig.5 Maximum stress curve

4 結束語

本文提出的AD-DE 算法,采用自適應變異率和雙重變異策略,同時引入函數T 來根據當前迭代次數動態的選擇變異策略,使得算法在探索和開采之間取得動態的平衡,能夠有效地避免陷入局部收斂。本文使用8個測試函數來對不同算法進行性能測試,其中6個高維函數,AD-DE 在不同的搜索維度下取得了5個最優值,2個二維函數均取得了理論最優值,同時迭代速度平均提速50%以上。表明AD-DE算法在求解精度和算法穩定性上均優于各對比算法。使用AD-DE 算法對某密封艙進行了結構優化,得到了較好的結構參數,優化后的結構質量比初始設計值下降了34%,從而說明了AD-DE 算法具有較好的實用性。

本文的工作提高了差分進化算法的性能;構建了基于Matlab-ANSYS的優化模塊,為密封艙的結構優化設計提供了一種有效的方法。

猜你喜歡
差分種群變異
山西省發現刺五加種群分布
一類分數階q-差分方程正解的存在性與不存在性(英文)
變異
一個求非線性差分方程所有多項式解的算法(英)
一類caputo分數階差分方程依賴于參數的正解存在和不存在性
由種群增長率反向分析種群數量的變化
基于差分隱私的數據匿名化隱私保護方法
變異的蚊子
病毒的變異
種群增長率與增長速率的區別
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合