吳 擎,徐惟罡,張春江
(1.華中農(nóng)業(yè)大學(xué) 工學(xué)院,湖北 武漢 430070; 2.華中農(nóng)業(yè)大學(xué) 農(nóng)業(yè)部長江中下游農(nóng)業(yè)裝備重點實驗室,湖北 武漢 430070; 3.華中科技大學(xué) 數(shù)字制造裝備與技術(shù)國家重點實驗室,湖北 武漢 430074)
很多實際的優(yōu)化問題都需要滿足一定的約束條件,因而約束優(yōu)化問題具有非常廣泛的工程應(yīng)用背景,即很多工程應(yīng)用問題可歸納為約束優(yōu)化問題。這類問題通常有幾大特點:非凸、不可微、存在多個局部極值等。傳統(tǒng)的優(yōu)化方法在解決這類問題時往往會失效,或者花費較長的計算時間。而近年發(fā)展起來的元啟發(fā)式算法,如粒子群優(yōu)化(Particle Swarm Optimization, PSO)算法[1]、布谷鳥算法(Cuckoo Search, CS)[2]、蜻蜓算法(Dragonfly Algorithm, DA)[3]等,不要求解的絕對精確性,在合理的計算時間內(nèi),能夠有效求得問題的最優(yōu)解或近優(yōu)解,同時算法還具有良好的普適性等優(yōu)點,因此元啟發(fā)式算法得到了廣泛關(guān)注與研究。
類電磁機制(Electromagnetism-like Mechanism, EM)算法是由Birbil等[4]于2003年提出的一種元啟發(fā)式算法,算法通過模擬電磁場中粒子的吸引排斥實現(xiàn)尋優(yōu)功能。EM算法具有原理簡單、全局搜索能力強等優(yōu)點,并應(yīng)用在各類工程優(yōu)化問題中[5-9]。隨著EM算法的廣泛應(yīng)用,其性能上的不足也展現(xiàn)出來。為提高EM算法的性能,姜建國等[10]利用佳點集理論改進(jìn)了算法的初始化過程;Rocha等[11]結(jié)合Hooke-Jeeves的模式搜索方法,對算法的移動公式進(jìn)行了改進(jìn);韓麗霞等[12]在粒子移動的過程中引入擾動項,在一定程度上解決了算法早熟收斂問題;Lee等[13]采用PSO算法取代EM算法中的隨機局部搜索,提高了算法的局部搜索能力;Feng等[14]利用一種改進(jìn)的Davidon-Fletcher-Powell算法對EM算法的優(yōu)化結(jié)果進(jìn)行二次優(yōu)化,改進(jìn)了算法的整體搜索結(jié)果。上述這些改進(jìn)雖然在一定程度上可以提升EM算法的性能,但在求解一些復(fù)雜度較高的問題時,算法的尋優(yōu)精度和穩(wěn)定性仍有待提高,同時如何更好地將算法用于解決實際的工程約束優(yōu)化問題還有待更深入的研究。
因此,本文提出一種求解約束優(yōu)化問題的基于師生交流機制的改進(jìn)類電磁機制(Teaching-Learning based Electromagnetism-like Mechanism, TLEM)算法。該算法將教學(xué)優(yōu)化算法和一種改進(jìn)的類電磁機制算法相結(jié)合,不僅保留了EM算法優(yōu)良的全局尋優(yōu)能力,還提高了算法的局部尋優(yōu)精度。為了驗證改進(jìn)算法的性能,本文采用13個標(biāo)準(zhǔn)測試函數(shù)對TLEM算法進(jìn)行測試,并與若干其他約束優(yōu)化算法進(jìn)行對比,結(jié)果表明改進(jìn)的新算法具有更好的尋優(yōu)精度和穩(wěn)定性。最后,將TLEM算法應(yīng)用到壓力容器、壓縮彈簧及焊接梁設(shè)計優(yōu)化問題的求解中,均取得了較好的優(yōu)化效果。
1.1.1 EM算法簡介
EM算法將種群中的粒子類比為電磁場中的帶電粒子,粒子間會產(chǎn)生相互作用力,在力的作用下粒子產(chǎn)生移動,最終移動至較優(yōu)區(qū)域。算法主要包括初始化、局部尋優(yōu)、計算合力以及移動粒子4個步驟,具體如下[4]:
步驟1初始化種群。在搜索空間內(nèi)隨機生成m個粒子作為初始種群,計算每個粒子的適應(yīng)度值f(Xi),找到并標(biāo)記適應(yīng)度值最優(yōu)的粒子為Xbest。
步驟2局部尋優(yōu)。對種群中的當(dāng)前最優(yōu)粒子Xbest進(jìn)行局部搜索。
步驟3計算合力。粒子所受力的大小以及性質(zhì)(吸引力或排斥力)均取決于粒子的電量。粒子i的電量qi及合力Fi計算公式如下:
(1)
(2)
步驟4移動粒子。計算合力之后對粒子進(jìn)行移動,形成新一代種群。移動的方向和步長按式(3)計算:
(3)
式中:λ為0~1的隨機數(shù),RNG為上下界內(nèi)可移動的范圍。
1.1.2 IEM算法
在原始EM算法中,一個粒子的合力由M-1個粒子計算得出,即在每一次迭代中需要進(jìn)行(M-1)2次計算,這會耗費大量的計算時間。尤其當(dāng)M越大時,計算時間會劇烈增加。因此計算合力時,隨機從M-1個粒子中挑選出3個粒子計算合力。這樣不僅可以減少計算時間,還可以避免過多合力一起計算時相互抵消。除此以外,Gao等[15]發(fā)現(xiàn)移除合力計算公式中的歐式距離可以讓粒子的移動步長變大,避免粒子陷入局部極值。綜上所述,合力計算公式改進(jìn)為:
(4)
式中R1,R2,R3表示除粒子i外隨機從剩下的M-1個粒子中挑選出的3個粒子。
Rao等[16]通過引入移動概率MP對移動公式進(jìn)行修正。具體方式為:如果在某一維度,隨機數(shù)小于MP,則使用改進(jìn)后的移動公式,否則使用原始的移動公式;若使用改進(jìn)后的移動公式使粒子超出邊界,則仍使用原移動公式;若移動后粒子的適應(yīng)度大于原始位置,保留原始位置,否則接受新的位置。綜上,移動公式更改為:
(5)
(6)
其中參數(shù)λ和Rand為0~1的隨機數(shù)。
教學(xué)優(yōu)化算法(Teaching-Learning-Based Optimization, TLBO)將種群類比為一群學(xué)生,決策變量類比為學(xué)習(xí)科目,適應(yīng)度值代表學(xué)生的成績,種群中的最優(yōu)解則被看作教師。算法包括“教師階段”(teacher phase)和“學(xué)生階段”(learner phase)兩個部分[16]。
在教師階段,通過讓學(xué)生整體水平平均值(M)向教師水平靠攏的方式跟隨教師進(jìn)行學(xué)習(xí),具體形式如下:
Difference_Meani=ri(Mnew-TFMi),
(7)
Xnew,i=Xold,i+Difference_Meani。
(8)
其中:Mnew為第i代教師的變量值,Mi為第i代學(xué)生的平均變量值,TF為1或2的隨機數(shù),ri為0~1的隨機數(shù)。
在學(xué)生階段,學(xué)生通過隨機選擇另一名學(xué)生交流的方式進(jìn)行學(xué)習(xí),具體形式如下:
i≠j。
(9)
其中Xi、Xj分別代表第i代的兩名不同學(xué)生。若新解Xnew比舊解Xold好,則接受新解,否則維持舊解。
對于無約束優(yōu)化問題,粒子的適應(yīng)度值越小,則粒子越優(yōu)。但對于約束優(yōu)化問題,粒子的好壞不僅和適應(yīng)度值相關(guān),還與約束違反量有關(guān)。約束違反量φ(X)定義如下:
(10)
式中:gi(X)代表不等式約束,hj(X)代表等式約束。從式(10)可以總結(jié)出:當(dāng)粒子是可行解時,φ(X)的值永遠(yuǎn)為0;當(dāng)粒子為非可行解時,φ(X)>0;違反的約束越多,φ(X)的值越大。
本文利用Deb[17]提出的可行域與支配規(guī)則來處理約束,具體規(guī)則為:若兩個解都違反約束條件,則具有較小約束違反量的解優(yōu)于另一個解;若一個解滿足約束條件,另一個違反約束條件,則滿足約束條件的解較優(yōu);如果兩個解都滿足約束條件,則具有較小適應(yīng)度值的解更優(yōu)。
同時,對于約束優(yōu)化問題,粒子的電量也應(yīng)與其約束違反量相關(guān)。因此電量計算公式修正為:
(11)
(12)
從式(11)和式(12)可以看出,可行解的電量大于不可行解的電量,約束違反量小的解,其電量大于約束違反量大的解。
結(jié)合TLBO算法快速收斂特性和IEM算法良好的全局搜索性能,本文提出TLEM算法。算法主要分為兩部分:①使用TLBO算法提高種群的收斂速度;②使用IEM算法進(jìn)行種群尋優(yōu)。TLEM算法的基本流程圖如圖1所示。
根據(jù)流程圖,TLEM算法的主要步驟如下:
步驟1初始化種群P,計算所有解的適應(yīng)度,保留當(dāng)前種群最優(yōu)解Xbest。
步驟2結(jié)合解的適應(yīng)度值及約束處理規(guī)則,對P中所有解排序,然后平均分為兩個解集—較優(yōu)解P1和較劣解P2,并在P2中添加一個最優(yōu)解Xbest。
步驟3判斷隨機數(shù)random是否小于p,若是,
則對P1執(zhí)行TLBO算法,對P2執(zhí)行IEM算法,否則對P1執(zhí)行IEM算法,對P2執(zhí)行TLBO算法。
步驟4重新對P中所有解排序。
步驟5隨機淘汰P中一個除最優(yōu)解以外的解,迭代次數(shù)加一。
步驟6判斷算法是否滿足終止條件,若滿足則輸出最優(yōu)解,否則返回步驟2。
為檢驗算法的有效性,將TLEM算法與4個版本的EM算法(CEM、PEM、FADEM、SAPEM)[18-21]分別對13個標(biāo)準(zhǔn)測試函數(shù)(G01,G02,…,G13)進(jìn)行測試,測試結(jié)果以平均值、標(biāo)準(zhǔn)差、最優(yōu)值和最差值作為評價標(biāo)準(zhǔn)。13個測試函數(shù)的相關(guān)性質(zhì)如表1所示[22],其中G02、G03、G08以及G12為求最大值問題,其余均為求最小值問題。
算法的相關(guān)參數(shù)設(shè)置如下:種群大小為100,移動概率MP=0.9,交換概率p=0.9,函數(shù)評價次數(shù)為350 000次。等式約束條件h(X)=0轉(zhuǎn)化為不等式約束|h(X)|-ε≤0(ε=10-4);求最大值問題轉(zhuǎn)化為求最小值問題。
表1 13個標(biāo)準(zhǔn)測試函數(shù)
TLEM算法對標(biāo)準(zhǔn)測試函數(shù)的優(yōu)化結(jié)果統(tǒng)計如表2所示。從表2可以看出,TLEM算法幾乎在所有的測試函數(shù)上都搜索到了最優(yōu)解,同時除了G11和G13以外,其平均值和最差值都非常接近最優(yōu)值,13個測試函數(shù)中有7個函數(shù)的標(biāo)準(zhǔn)差等于0,這說明TLEM算法不但對約束優(yōu)化問題具有較強的全局搜索能力,而且還具有很強的穩(wěn)定性。
TLEM算法與其他EM算法在最優(yōu)值、平均值和最差值上的比較結(jié)果分別如表3~表5所示。從表3可以看出,除了函數(shù)G03是FADEM算法取得最優(yōu),G05、G11是PEM算法取得最優(yōu),TLEM算法在其他10個函數(shù)上的優(yōu)化結(jié)果均優(yōu)于其他算法,這表明TLEM算法在搜索性能上較其他版本EM算法有很大的提高,同時也從側(cè)面證明,算法中引入TLBO算法提高了算法的局部搜索精度。從表4可以和表5可以看出,在平均值上,除了G02、G03、G11、G13分別為SAPEM、CEM、PEM和CEM算法取得最好值之外,TLEM算法在其余9個函數(shù)上都取得了最好值;在最差值上,除了G03、G11、G13為CEM算法取得最好值之外,TLEM算法在其余10個函數(shù)上都取得了最好值。也就是說TLEM算法在求解平均值以及最差值時,絕大部分函數(shù)的優(yōu)化結(jié)果均優(yōu)于其他版本的EM算法,這表明TLEM算法在全局搜索能力和算法穩(wěn)定性上皆優(yōu)于其他版本EM算法。綜上所述,TLEM算法的綜合性能優(yōu)于其他4個版本的EM算法,說明對于EM算法的改進(jìn)是有效的。
表2 TLEM算法在13個測試問題上的結(jié)果
表3 TLEM算法與其他EM算法在最優(yōu)值上的比較
為了進(jìn)一步檢驗算法的有效性,將TLEM算法與若干個新型約束優(yōu)化算法(PSO+、RGenIII、Gen.V、Rgen.V、eABC、FA)[1]進(jìn)行對比,算法測試結(jié)果以最優(yōu)值、最差值和平均值作為評價標(biāo)準(zhǔn),比較結(jié)果如表6所示。從表6可以看出,TLEM算法在絕大多數(shù)測試函數(shù)的各項指標(biāo)上,較之其他幾個算法都要更優(yōu)。具體地,在函數(shù)G01、G03~G12上,TLEM算法在最優(yōu)值、最差值和平均值上都取得了最好結(jié)果,尤其是在函數(shù)G05、G07和G10上,其他幾個算法的最優(yōu)值和最差值相差較大,而TLEM在求解這3個函數(shù)時最優(yōu)值和最差值相差不大,說明TLEM算法具有更好的穩(wěn)定性。在函數(shù)G02和G13上,TLEM能夠取得最好的最優(yōu)值,在最差值和平均值這兩個指標(biāo)上稍差一點。綜上所述,TLEM算法是一種很有競爭力的約束優(yōu)化方法。
表4 TLEM與其他EM算法在平均值上的比較
表5 TLEM與其他EM算法在最差值上的比較
表6 TLEM與其他約束算法結(jié)果比較
續(xù)表6
續(xù)表6
壓力容器設(shè)計的目標(biāo)是在滿足生產(chǎn)需要的同時使其總費用f(x)最少,其4個設(shè)計變量分別為:外殼厚度Ts(x3)、封頭厚度Th(x4)、內(nèi)半徑R(x1)以及容器長度L(x2,不包含頭部),其中Ts和Th為0.062 5的整數(shù)倍,R和L為連續(xù)變量。圖2為壓力容器模型設(shè)計圖,具體數(shù)學(xué)模型如式(13)和式(14)所示。
目標(biāo)函數(shù):
minf(x)=0.622 4x1x3x4+1.778 1x2x2x3+
g1(x)=-x1+0.019 3x3≤0,
g2(x)=-x2+0.009 54x3≤0,
(13)
約束條件:
g4(x)=x4-240≤0。
(14)
邊界約束:
0≤x1≤99,0≤x2≤99,
10≤x3≤200,10≤x4≤200。
利用TLEM算法對壓力容器設(shè)計問題進(jìn)行求解,算法的相關(guān)參數(shù)設(shè)置如下:種群大小為50,移動概率MP=0.9,交換概率p=0.9,最大迭代次數(shù)為200。TLEM算法獨立運行30次后得到目標(biāo)函數(shù)最優(yōu)值、平均值和函數(shù)評價次數(shù),并且與文獻(xiàn)[23-28]中各個學(xué)者的研究結(jié)果進(jìn)行比較,統(tǒng)計結(jié)果如表7所示。
表7 壓力容器設(shè)計問題統(tǒng)計結(jié)果
從表7可以看出,TLEM算法在30次獨立運行中,不論是搜索到的最優(yōu)值還是平均值均優(yōu)于其他算法,同時所需要函數(shù)評價次數(shù)也是最少的,這表明TLEM算法不但具有很強的搜索能力,而且搜索效率也很高,能夠在壓力容器制造過程中更好地降低材料消耗成本。
壓縮彈簧設(shè)計的目標(biāo)是在滿足一定約束條件下最小化其質(zhì)量f(x),其中包含最小撓度、剪切應(yīng)力、振蕩頻率以及外徑限制4個不等式約束,彈簧圈平均直徑D(x2)、彈簧金屬絲直徑d(x1)以及彈簧有效圈數(shù)N(x3)3個設(shè)計變量,如圖3所示。其具體數(shù)學(xué)模型如式(15)和式(16)所示。
目標(biāo)函數(shù):
minf(x)=(N+2)Dd2。
約束條件:
(16)
邊界約束:
0.05≤x1≤2,0.25≤x2≤1.3,2≤x3≤15。
利用TLEM算法對壓力容器設(shè)計問題進(jìn)行求解,算法相關(guān)參數(shù)設(shè)置如下:種群大小為50,最大迭代次數(shù)為200,移動概率為0.9,交換概率為0.9。TLEM算法獨立運行30次后得到目標(biāo)函數(shù)最優(yōu)值、平均值和函數(shù)評價次數(shù),并且與文獻(xiàn)[23-28]中各個學(xué)者的研究結(jié)果進(jìn)行比較,統(tǒng)計結(jié)果如表8所示。
從表8可以看出,在30次獨立運行中,PSO-DE算法、ABC算法以及TLEM算法都取得了最好的最優(yōu)值0.012 665,PSO-DE算法同時還取得了平均值上的最優(yōu),TLEM算法較之略差,但TLEM算法仍然是所需函數(shù)評價次數(shù)最少的算法,綜上表明TLEM算法是一種有效的壓縮彈簧設(shè)計優(yōu)化方法。
表8 壓縮彈簧設(shè)計問題統(tǒng)計結(jié)果
焊接梁設(shè)計的目標(biāo)是在滿足一定約束條件下最小化其成本f(x),其中包含7個不等式約束分別為:剪切應(yīng)力(τ)、梁的彎曲應(yīng)力(σ)、桿件屈曲載荷(Pc)、梁端撓度(δ)等,4個設(shè)計變量分別為:h(x1)、l(x2)、t(x3)以及b(x4),如圖4所示。其具體數(shù)學(xué)模型如式(17)和式(18)所示。
目標(biāo)函數(shù):
x3x4(14.0+x2)。
(17)
s.t.
g1(x)=τ(x)-τmax≤0,
g2(x)=σ(x)-σmax≤0,
g3(x)=x1-x4≤0,
x3x4(14.0+x2)-5.0≤0,
g5(x)=0.125-x1≤0,
g6(x)=δ(x)-δmax≤0,
g7(x)=P-Pc(x)≤0。
(18)
邊界約束及相關(guān)參數(shù)值:
P=6 000lb,L=14in,E=30e6psi,
G=12e6psi,τmax=13 600psi,σmax=30 000psi,
δmax=0.25in,
0.1≤x1≤2.0,0.1≤x2≤10.0,
0.1≤x3≤10.0,0.1≤x4≤2.0。
利用TLEM算法對焊接梁設(shè)計問題進(jìn)行求解,算法相關(guān)參數(shù)設(shè)置如下:種群大小為50,最大迭代次數(shù)為200,移動概率為0.9,交換概率為0.9。TLEM算法獨立運行30次后得到目標(biāo)函數(shù)最優(yōu)值、平均值和函數(shù)評價次數(shù),并且與文獻(xiàn)[23-28]中各個學(xué)者的研究結(jié)果進(jìn)行比較,統(tǒng)計結(jié)果如表9所示。
從表9可以看出,TLEM算法在30次獨立運行中,不論是搜索到的最優(yōu)值還是平均值均取得了最優(yōu),而且所需要函數(shù)評價次數(shù)也是最少的。其中(μ+λ)-ES算法和ABC算法在最優(yōu)值上取得了和TLEM算法一樣的結(jié)果,但這兩種算法的平均值要比TLEM算法的差,而且它們的函數(shù)評價次數(shù)是TLEM算法的3倍。這表明TLEM算法無論是在搜索性能還是在搜索效率上都是這幾種算法中最好的。
表9 焊接梁設(shè)計問題統(tǒng)計結(jié)果
本文針對EM算法的不足,提出一種基于師生交流機制的改進(jìn)類電磁機制算法(TLEM)。該算法將教學(xué)優(yōu)化算法和一種改進(jìn)的類電磁機制算法相結(jié)合,用于解決約束優(yōu)化問題。算法結(jié)合了TLBO算法和EM算法各自的優(yōu)點,既具有較強的全局搜索能力,又具有較高的局部搜索精度。通過與其他版本的EM算法以及若干最新約束優(yōu)化算法進(jìn)行的標(biāo)準(zhǔn)函數(shù)測試實驗,驗證了TLEM算法具有穩(wěn)定優(yōu)良的尋優(yōu)能力,是一種新型有效的約束優(yōu)化方法。最后將TLEM算法應(yīng)用到3個工程設(shè)計優(yōu)化問題中,并與其他算法相比較,實驗結(jié)果表明了TLEM算法在該類問題上的可行性和優(yōu)越性。未來,仍需進(jìn)一步提高算法的計算效率,還需考慮到有些實際工程應(yīng)用問題為多目標(biāo)問題,以及如何利用TLEM算法解決這類多目標(biāo)問題。