師路歡 ,付 虹,李耀輝
(1. 許昌學(xué)院 電氣與機(jī)械工程學(xué)院,河南 許昌 461000; 2. 長春工業(yè)大學(xué) 電氣與電子工程學(xué)院,吉林 長春 130012)
對(duì)于仿真優(yōu)化問題,約束往往是昂貴計(jì)算的黑箱函數(shù)。這需要對(duì)約束函數(shù)進(jìn)行Kriging近似來尋優(yōu)Kriging預(yù)估信息,且加點(diǎn)采樣準(zhǔn)則的合理使用對(duì)產(chǎn)生可行最優(yōu)解起著關(guān)鍵作用。采用“區(qū)域極值定位”準(zhǔn)則的約束優(yōu)化方法[1]將Kriging與偏最小二乘法結(jié)合,實(shí)現(xiàn)了期望改善的最大化和代理模型的最小化,從而獲取可行點(diǎn)。結(jié)合EGO和梯度信息,通過初始點(diǎn)變異、多元插值與非插值響應(yīng)面函數(shù)的研究以及模型參數(shù)的估計(jì),文獻(xiàn)[2]利用廣義灰箱約束模型下的優(yōu)化方法完成尋優(yōu)。然而,限制全局優(yōu)化的關(guān)鍵因素是采樣點(diǎn)的可行性。針對(duì)復(fù)雜工程約束問題,文獻(xiàn)[3]利用可行域內(nèi)的全局采樣、最大化Kriging的估計(jì)方差和局部采樣準(zhǔn)則三個(gè)階段,提出一種基于Kriging和兩目標(biāo)約束應(yīng)對(duì)策略的代理優(yōu)化算法。將Kriging與BAT算法相結(jié)合的約束優(yōu)化方法[4]也能減少昂貴估值次數(shù)。通過Kriging插值不確定性而改變設(shè)計(jì)方案的可行性狀態(tài),文獻(xiàn)[5]提出了基于Kriging和置信區(qū)間的序列約束更新方法。也有研究通過新約束加點(diǎn)采樣準(zhǔn)則在可行域內(nèi)找到Pareto最優(yōu)解,完成黑箱約束問題的優(yōu)化[6]。
上述約束優(yōu)化只對(duì)約束處理提供一種思路,或者只能處理某些特定約束問題,且對(duì)初始樣本中不存在可行采樣點(diǎn)以及對(duì)其進(jìn)行判斷和搜索等問題沒有進(jìn)行具體考慮。為此,基于約束改善準(zhǔn)則,文獻(xiàn)[7]提出一種基于Kriging的約束全局優(yōu)化方法[7],通過最大最小化約束尋求可行點(diǎn),并根據(jù)Kriging的目標(biāo)估計(jì)與距離因子自適應(yīng)探索更優(yōu)可行點(diǎn)。此外,文獻(xiàn)[8]使用多初始點(diǎn)優(yōu)化方法和空間縮減策略提出一種Kriging輔助的約束優(yōu)化算法,完成可行采樣點(diǎn)的搜索和尋優(yōu)。這兩種方法部分解決了Kriging黑箱約束優(yōu)化問題,但對(duì)位于約束邊界附近采樣點(diǎn)的可行性以及多次搜索不到可行點(diǎn)并沒有進(jìn)行細(xì)致探討,且在平衡全局與局部搜索行為方面需要進(jìn)一步改進(jìn)。
為此,本文提出序列Kriging的黑箱約束全局優(yōu)化方法BCGO-SK(A Black-box Constrained Global Optimization method for the Sequential Kriging model),在初始數(shù)據(jù)不可行的條件下,完成式(1)尋優(yōu)。
minf(x),a≤x≤b,x∈Rn,
(1)
s.t.gi(x)≤0,(i=1,…,q),
其中f,g1,…,gq分別表示昂貴且連續(xù)的目標(biāo)函數(shù)和約束函數(shù)。
1.1Kriging模型
Kriging[9]由回歸函數(shù)和高斯過程組成,對(duì)于設(shè)計(jì)數(shù)據(jù)X=[x1,…,xm]T,xi∈Rn及其響應(yīng)Y=[y1,…,ym]T,yi∈Rq,Kriging模型表達(dá)為
(2)
(3)
其中:F和R分別是由已知采樣點(diǎn)所組成的回歸函數(shù)矩陣和相關(guān)函數(shù)矩陣。
此外,式(2)中的高斯隨機(jī)項(xiàng)z(x)相當(dāng)于Kriging插值的估計(jì)校正,表達(dá)為:
(4)
式(4)中的向量r表示未知點(diǎn)采樣點(diǎn)與已知采樣點(diǎn)之間誤差的相關(guān)性,即:
r(x)={R(θ,x,x1),…,R(θ,x,xm)}T。
(5)
為了調(diào)節(jié)高斯相關(guān)函數(shù)R(θ,xi,xj)的相關(guān)性,通過最小化公式(6)可得到最優(yōu)參數(shù)θ。
min{φ(θ)=-(mlnσ2+ln|R|)/2} 。
(6)
約束條件可導(dǎo)致初始試驗(yàn)設(shè)計(jì)無法獲取可行點(diǎn),且無可行采樣點(diǎn)的進(jìn)一步優(yōu)化將毫無意義。而目標(biāo)和約束都采用Kriging時(shí),因初始樣本數(shù)量有限,構(gòu)建初始Kriging的精確度較低,其近似約束邊界與真實(shí)邊界之間存在較大差異。因此,精確位于近似約束邊界上的采樣點(diǎn)或許是不可行的。然而,位于近似可行域之內(nèi)且相對(duì)約束邊界有輕微偏離的采樣點(diǎn)在大多數(shù)情況下是可行的。因此,選擇式(7)的可行采樣策略。
(7)
‖x-xk‖≥ξiterdmax,a≤x≤b,
(8)
優(yōu)化式(7)可得到下一迭代點(diǎn)xnext,并判斷其可行性。若可行,則進(jìn)行更優(yōu)可行點(diǎn)的探索;否則,將依據(jù)其違背約束條件的實(shí)際情況,判斷是否更新xnext,并將xnext加入數(shù)據(jù)集X中,直至找到一個(gè)可行點(diǎn)。
獲取可行采樣點(diǎn)后,BCGO-SK方法還需要有效地平衡全局搜索和局部搜索。此外,距離很近的兩個(gè)采樣點(diǎn)會(huì)導(dǎo)致Kriging中相關(guān)矩陣出現(xiàn)奇異或非正定,甚至構(gòu)造失敗,為此依據(jù)已知樣本當(dāng)前Kriging對(duì)未知采樣點(diǎn)的估計(jì),構(gòu)造式(9)所示的加點(diǎn)采樣準(zhǔn)則。
(9)
(10)
其中:參數(shù)dmin=min(‖x-x1‖,…,‖x-xm‖)代表未知點(diǎn)x與已知樣本X=[x1,…,xm]T之間的最短距離;參數(shù)dmax=max{d:x∈X}是X中兩點(diǎn)距離的最大值。
如果連續(xù)多次無法搜索到可行迭代點(diǎn),就需要找到一個(gè)具有最少約束違背的采樣點(diǎn)作為偽可行點(diǎn),并對(duì)其輕微擾動(dòng)來繼續(xù)找到實(shí)際可行點(diǎn),這個(gè)過程稱為約束矯正[10]。BCGO-SK的近似矯正主要通過最速下降方式構(gòu)造如式(11)所示。
(11)
s.t.NTd=e,ATd≤b。
式(11)中的矩陣N和參數(shù)e分別表示等式約束函數(shù)在矯正點(diǎn)x的梯度和等式約束值取負(fù)所構(gòu)造的矢量,矩陣A和參數(shù)b分別表示不等式約束函數(shù)在矯正點(diǎn)x的梯度和不等式約束值取負(fù)所構(gòu)造的矢量。規(guī)劃問題給出當(dāng)前偽可行采樣點(diǎn)x與其距離最近約束邊界的方向矢量d。矯正方向確定后,隨著違背約束的不斷減小,通過試探一系列移動(dòng)步長,最終獲取離矯正點(diǎn)x最近的可行采樣點(diǎn)xc。
圖1是BCGO-SK的流程圖。
對(duì)輸入和輸出參數(shù)要求如下。
南宋時(shí)期的縣衙在處理刑事、民事訴訟中,都會(huì)涉及對(duì)待證人的問題。比如,在已發(fā)的命盜案件中,除了追捕罪犯外,還要“勾追取問”那些與罪犯相關(guān)的證人、關(guān)系人和原告,這些關(guān)系者又被稱為“干連人”“干系人”“干證人”或“干照人”等。南宋紹興四年,高宗了解到州縣多將無罪人和犯人一樣拘禁“動(dòng)經(jīng)旬月”,要求“鞫獄干證人,無罪依條限,當(dāng)日責(zé)狀先放”,這些事居然都“驚動(dòng)”了皇帝,可見其嚴(yán)重到什么程度。不過,即便有皇帝的詔令,政府也經(jīng)常發(fā)文“不得長期禁留”干證人,但當(dāng)時(shí)將干證人拘系實(shí)為常事,有的竟致干證人“破家失業(yè),或至死亡”,造成了嚴(yán)重的后果。
(2)利用BCGO-SK方法獲得的近似最優(yōu)可行解(xbest,ybest)。算法的實(shí)現(xiàn)過程如下:
步驟1 根據(jù)拉丁超立方設(shè)計(jì)[11]獲取2(n+1)個(gè)初始樣本點(diǎn)(n為優(yōu)化的維度)。對(duì)每個(gè)初始點(diǎn)xi(i=1,…,m),計(jì)算f(xi)和g1(xi),…,gq(xi),得到初始最優(yōu)化解(xbest,ybest),并設(shè)置M:=m。
步驟2 判斷并確定初始樣本中是否存在可行點(diǎn)。若存在,則直接跳轉(zhuǎn)至步驟4;否則,執(zhí)行步驟3。
步驟3(階段1) 執(zhí)行以下子步驟,直到搜索到一個(gè)可行采樣點(diǎn)。
步驟3.2 計(jì)算出最大距離dmax=max{d:x∈X},其中ξiter根據(jù)迭代次數(shù)從輸入?yún)?shù)中的常數(shù)矩陣Θ中獲取。
步驟3.3 通過利用PSO算法[12]最小化公式(7)來獲得下一個(gè)采樣點(diǎn)xnext。
步驟3.4 對(duì)xnext進(jìn)行函數(shù)昂貴估值,將其增加到樣本X中,并設(shè)置M:=M+1。
步驟3.5 根據(jù)約束函數(shù)對(duì),若xnext不可行,則跳回步驟3.1;若可行且xnext小于xbest,則設(shè)置xbest:=xnext,ybest:=ynext,并執(zhí)行步驟4。
步驟4 初始設(shè)置連續(xù)獲取不可行采樣點(diǎn)的最大個(gè)數(shù)Ninfea=0,相應(yīng)不可行集B=[]。
步驟5(階段2) 執(zhí)行以下子流程,找到全局更優(yōu)可行解,直到滿足小于所給定相對(duì)容差tol或M≥Nmax。
步驟5.1 通過PSO最小化問題(9)獲取下一個(gè)迭代點(diǎn)xnext,參數(shù)e和D的獲取分別通過已知輸入條件中給出的權(quán)重指數(shù)序列值、迭代次數(shù)和公式(10)進(jìn)行相應(yīng)的選擇和計(jì)算。
步驟5.2 利用f(x)和g1(x),…,gq(x)對(duì)點(diǎn)xnext進(jìn)行昂貴估值,并設(shè)置M:=M+1,更新樣本集X。
步驟5.3 如果不可行,那么設(shè)置Ninfea:=Ninfea+1和Bn+1=[Bn;xnext]。否則,重新設(shè)置Ninfea:=0和Bn+1:=[]。若f(xnext) 步驟5.5 在點(diǎn)xc處對(duì)f(x)和g1(x),…,gq(x)進(jìn)行昂貴估值,若xc是可行點(diǎn),且小于xbest的函數(shù)值,則設(shè)置xbest:=xc,ybest:=ynext。 步驟5.6 設(shè)置M:=M+1,并更新樣本集X。 步驟6 返回BCGO-SK算法最終獲取的近似可行最優(yōu)解xbest和ybest。 采用3個(gè)不同維度的數(shù)值約束函數(shù)G6、G4和G10[13]及減速器(SPD)設(shè)計(jì)實(shí)例對(duì)BCGO-SK進(jìn)行測試,通過LHD獲取2(n+1)個(gè)初始采樣點(diǎn)。4個(gè)測試函數(shù)的基本信息及相關(guān)設(shè)置如表1所示。 表1 4個(gè)測試函數(shù)的基本信息及相關(guān)設(shè)置Tab. 1 Basic information and related settings of four test functions 每個(gè)函數(shù)在BCGO-SK循環(huán)迭代中所獲取新采樣點(diǎn)的過程如圖2—圖5所示。圖中虛直線表示測試原函數(shù)的全局最優(yōu)解。不可行采樣點(diǎn)用菱形進(jìn)行標(biāo)記,可行采樣點(diǎn)用實(shí)心圓作標(biāo)記。對(duì)每個(gè)測試函數(shù),在發(fā)現(xiàn)第一個(gè)初始可行采樣點(diǎn)后,通過優(yōu)化BCGO-SK算法的加點(diǎn)采樣準(zhǔn)則,都能夠快速收斂到一個(gè)較好的全局近似最優(yōu)解。 圖2 函數(shù)G6的迭代采樣過程Fig. 2 Iterative sampling process of function G6 圖3 函數(shù)G10的迭代采樣過程Fig. 3 Iterative sampling process of function G10 圖4 函數(shù)G4的迭代采樣過程Fig. 4 Iterative sampling process of function G4 圖5 減速器(SPD)優(yōu)化設(shè)計(jì)問題的迭代過程Fig. 5 Iterative process of the optimization design problem of the reducer(SPD) 具體來說,G6、G10和SPD問題都沒有獲取初始可行點(diǎn),G4函數(shù)在初始采樣中也僅僅獲取一個(gè)可行采樣點(diǎn),特別是具有較窄可行域的G6和G10函數(shù),其獲取可行采樣點(diǎn)比較困難,這恰好有力證明可行采樣準(zhǔn)則的存在價(jià)值。 在發(fā)現(xiàn)可行采樣點(diǎn)之后的迭代優(yōu)化搜索過程中,僅有兩個(gè)約束可行區(qū)間的二維G6函數(shù),能夠快速收斂于一個(gè)較好的全局最優(yōu)解;而多維度的G4、G10和SPD問題,由于可行域較多,需經(jīng)過可行點(diǎn)與不可行點(diǎn)的交替迭代,才收斂于較好的可行最優(yōu)解。 在絕對(duì)誤差小于0.05的條件下,所獲取全局近似最優(yōu)解及新增昂貴函數(shù)估值次數(shù)如表2所示。 表2 4個(gè)不同維度測試函數(shù)的優(yōu)化結(jié)果Tab. 2 Optimization results of four different dimensional test functions 3個(gè)測試函數(shù)的優(yōu)化結(jié)果基本滿足該誤差要求,在較少昂貴估值下,G4的優(yōu)化結(jié)果相當(dāng)接近真實(shí)最優(yōu)解,而G6、G10和SPD問題也能找到較好的全局近似最優(yōu)解。為進(jìn)一步說明BCGO-SK的優(yōu)越性,基于上述誤差條件,將其與KCGO方法[7]和SCGOSR方法[8]的優(yōu)化結(jié)果進(jìn)行對(duì)比,根據(jù)10次的測試結(jié)果比較,如表3所示。 依據(jù)表3,一定程度上能找到合適全局最優(yōu)解,但需要更多昂貴估值才滿足精度要求。而BCGO-SK和KCGO能夠在較少昂貴估值條件下獲得較高精度的近似最優(yōu)解,除G10的優(yōu)化結(jié)果以外,BCGO-SK都優(yōu)于KCGO原因如下: (1)在可行點(diǎn)獲取上,BCGO-SK采用最大最小法優(yōu)化約束Kriging模型,這比采用最大可行概率大于98%的KCGO來說,更易于獲取初始可行點(diǎn)。 (3)在多次迭代無法找到可行采樣點(diǎn)的情況下,BCGO-SK可通過近似約束校正獲取一個(gè)離可行采樣點(diǎn)最近的偽可行點(diǎn),以便為進(jìn)一步尋優(yōu)提供有利條件,這在KCGO并未使用。 根據(jù)圖2—圖5、表2和表3,得出如下結(jié)論:(1)可行采樣幾乎無法從LHD采樣中獲得;(2)部分測試問題中,需要一定數(shù)量的迭代搜索才能找到可行采樣點(diǎn);(3)對(duì)可行區(qū)間較大的測試函數(shù)(比如G4),需要更多昂貴估值次數(shù)。即使如此,未必能得到較好的全局近似最優(yōu)解;(4)對(duì)于G6和G10擁有瘦型可行域的函數(shù),盡管僅找到較少可行采樣點(diǎn),但僅使用較少估值次數(shù)就能獲取。 表3 BCGO-SK、KCGO和SCGOSR優(yōu)化結(jié)果比較Tab. 3 Comparison of BCGO-SK, KCGO and SCGOSR optimization results 利用BCGO-SK對(duì)驅(qū)動(dòng)系統(tǒng)能量控制策略進(jìn)行優(yōu)化,使其滿足汽車加速性能、爬坡度性能等約束條件下具有更好燃料經(jīng)濟(jì)性(如圖6所示)。 圖6 Advisor平臺(tái)下燃料電池汽車系統(tǒng)模型圖Fig. 6 Model of the fuel cell vehicle system under the advisor platform 該優(yōu)化問題可以描述為: maxF(x) =Fuel_Economy(X), (12) 并滿足以下約束:1)加速度約束如表4;2)爬坡度不小于6.5%的道路上以88.5 km/h速度行駛1200 m;3)循環(huán)工況下設(shè)定速度與實(shí)際速度的最大誤差不超過3.2 km/h;4)在初始和最終時(shí)刻燃料電池電荷量狀態(tài)的最大變化ΔSOC≤0.7%。 表4 加速度性能約束情況Tab. 4 Acceleration performance constraints 設(shè)計(jì)變量X=[cs_charge_pwr,cs_min_pwr,cs_max_pwr,cs_min_off_time]分別表示充電功率、最小功率、最大功率和燃料轉(zhuǎn)換器關(guān)閉的最小時(shí)間,即:cs_charge_pwr∈[0, 25 000],cs_min_pwr∈[0, 25 000],cs_max_pwr∈[25 000, 50 000],cs_min_off_time∈[50, 1000]。該數(shù)據(jù)由dv_no_gui調(diào)用車輛模型進(jìn)行仿真計(jì)算。 加速度約束通過accel_test獲得,爬坡度約束通過grade_test獲得,而燃料消耗量、速度誤差約束值以及SOC約束值,則可通過test_procedure獲得。 由于SOC對(duì)燃油經(jīng)濟(jì)性的計(jì)算影響很大,設(shè)定Test_CITY_HWY為綜合測試工況。因設(shè)計(jì)變量變化大,為使其響應(yīng)面具有一定精度,初始試驗(yàn)設(shè)計(jì)階段選擇40個(gè)采樣點(diǎn)。最大迭代次數(shù)n=100,最大容許誤差為10-4,其他參數(shù)的設(shè)置參考2.1節(jié)。 選擇初始參數(shù)為經(jīng)驗(yàn)值X0=[5000, 5000, 45 000, 65]。汽車的燃油經(jīng)濟(jì)性MPGGE通過advi_no_gui函數(shù)評(píng)價(jià),將函數(shù)advi_no_gui取負(fù)后作為目標(biāo)函數(shù),使優(yōu)化設(shè)計(jì)問題轉(zhuǎn)化為最小化問題。圖7為BCGO-SK、KCGO和SCGOSR算法在相同估值次數(shù)情況下的優(yōu)化結(jié)果。 初始模型的MPGGE值為64.910,但該模型未能滿足3個(gè)加速性能約束的要求,且BCGO-SK算法在實(shí)驗(yàn)初始階段的40個(gè)采樣點(diǎn)均不可行,違反約束程度最小的MPGGE指標(biāo)為61.078。BCGO-SK需要執(zhí)行第一階段以搜索初始可行解,如圖7中前30次迭代。 圖7 相同估值次數(shù)下BCGO-SK、KCGO和SCGOSR算法的優(yōu)化結(jié)果Fig. 7 Optimization results of BCGO-SK, KCGO and SCGOSR for the same number of estimates 之后,BCGO-SK將在已有可行解的基礎(chǔ)上找到更優(yōu)解。對(duì)于每一可行解都會(huì)進(jìn)行循環(huán)工況測試、加速測試及爬坡度測試,耗時(shí)大約3.4 h,總共需140個(gè)可行解。可以看出,KCGO和SCGOSR算法在一定程度上都收斂到局部最優(yōu)解。 綜上,本文提出的BCGO-SK具有較好的優(yōu)化效果,且能在花費(fèi)較少昂貴仿真次數(shù)的情況下獲取更優(yōu)的可行采樣點(diǎn)。 基于序列Kriging模型的黑箱約束全局優(yōu)化算法能夠在少量昂貴函數(shù)估值的條件下改善優(yōu)化效率、提高收斂速度,并有效平衡Kriging模型的局部和全局搜索行為,比較適合黑箱約束問題的優(yōu)化。對(duì)于進(jìn)一步研究,當(dāng)約束的瘦型可行域僅剩下點(diǎn)和線的情況下,BCGO-SK方法的尋優(yōu)效果或許不佳,可利用誤差帶的方法對(duì)可行域進(jìn)行近似逼近處理。此外,以下兩種方案或許有助于解決基于Kriging的高維約束優(yōu)化問題:(1)對(duì)Kriging模型的函數(shù)結(jié)構(gòu),特別是相關(guān)函數(shù)矩陣做行簡化處理;(2)將Kriging模型與其他代理模型(比如徑向基函數(shù)模型)相結(jié)合,互補(bǔ)模型之間的不足,完成高維問題的處理。2 算法測試
2.1 測試?yán)?/h3>
2.2 實(shí)例驗(yàn)證
3 結(jié)論