歐陽城添,周 凱
江西理工大學(xué) 信息工程學(xué)院,江西 贛州341000
教與學(xué)優(yōu)化(teaching-learning based optimization,TLBO)算法[1]是印度學(xué)者Rao 等人于2011 年提出的一種模擬班級(jí)教學(xué)過程的群智能算法。將優(yōu)化問題的解空間描述為一個(gè)班級(jí),班級(jí)里的每個(gè)學(xué)生對(duì)應(yīng)于解空間的各個(gè)解,其學(xué)習(xí)成績對(duì)應(yīng)于解的適應(yīng)度值,教師則代表當(dāng)前適應(yīng)度值最好的解。該算法原理簡單,參數(shù)較少,收斂速度較快,已被成功應(yīng)用于多個(gè)學(xué)術(shù)或工業(yè)領(lǐng)域,如神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化[2]、視覺跟蹤[3]、數(shù)據(jù)分類[4]、PID控制[5]等。
然而,在面對(duì)維度較高的復(fù)雜優(yōu)化問題時(shí),標(biāo)準(zhǔn)TLBO 算法往往無法收斂到全局最優(yōu),存在易早熟、解精度低、陷入局部最優(yōu)等問題。因?yàn)闃?biāo)準(zhǔn)TLBO算法種群個(gè)體采用隨機(jī)初始化產(chǎn)生,在初始種群沒有覆蓋到全局最優(yōu)解的情況下,如果在有限迭代次數(shù)內(nèi)無法搜索到最優(yōu)解,那么算法早熟是難以避免的。求解單峰問題時(shí),若最優(yōu)解所在區(qū)域種群個(gè)體適應(yīng)度值相差較大,或最優(yōu)個(gè)體和次優(yōu)個(gè)體的適應(yīng)度相差較小,則算法容易提前收斂。求解多峰問題時(shí),若解與解之間相距較遠(yuǎn),則無法保證種群覆蓋到所有最優(yōu)區(qū)域,這時(shí)算法也容易提前收斂。此外,迭代過程中學(xué)生個(gè)體在教學(xué)階段會(huì)向教師所在區(qū)域靠近,雖然有利于算法快速收斂,但是當(dāng)前最優(yōu)不一定是全局最優(yōu),持續(xù)的迭代會(huì)使學(xué)生個(gè)體高度聚集,將導(dǎo)致算法陷入局部最優(yōu)。
為提高算法求解性能,近年來不少專家學(xué)者對(duì)標(biāo)準(zhǔn)TLBO 算法進(jìn)行了改進(jìn)研究。Rao 等人[6]引入精英策略和變異機(jī)制,提出精英教與學(xué)優(yōu)化(elitist teachinglearning based optimization,ETLBO)算法,能有效提高學(xué)生整體學(xué)習(xí)水平,有利于算法快速收斂,但容易收斂到局部極值。于坤杰等[7]在ETLBO 算法的基礎(chǔ)上引入反饋機(jī)制,增加差生與老師之間的反饋交流,提出一種基于反饋的精英教與學(xué)優(yōu)化(Feedback ETLBO,F(xiàn)ETLBO)算法,實(shí)驗(yàn)證明該算法可以有效抑制種群的過早收斂,然而也存在求解精度不高的問題。童楠等[8]提出一種基于反思機(jī)制的教與學(xué)優(yōu)化(teaching-learning based optimization based on reflection,RTLBO)算法,利用高斯正態(tài)分布和教師與學(xué)生之間的差異實(shí)現(xiàn)兩者各自的局部搜索,達(dá)到同步提高的目的,實(shí)驗(yàn)表明該改進(jìn)算法具有穩(wěn)定的魯棒性,但在多峰高維測(cè)試函數(shù)上,收斂精度明顯下降。李麗榮等[9]提出具有動(dòng)態(tài)自適應(yīng)學(xué)習(xí)機(jī)制的教與學(xué)優(yōu)化(teaching-learning based optimization with dynamic self-adapting learning,DSTLBO)算法,在教學(xué)階段加入非線性的動(dòng)態(tài)學(xué)習(xí)因子和動(dòng)態(tài)隨機(jī)搜索策略,有效提高了收斂速度和解精度,但依然存在過早收斂的現(xiàn)象。王培崇等[10]提出一種融合加權(quán)中心學(xué)習(xí)的教與學(xué)優(yōu)化(teaching-learning based optimization with weighted center,WCTLBO)算法,以加權(quán)中心取代教師個(gè)體,在學(xué)習(xí)階段引入小組討論,有效避免種群陷入局部最優(yōu),但收斂精度一般。
針對(duì)標(biāo)準(zhǔn)TLBO 算法的問題和以上改進(jìn)算法的不足,本文提出融合改進(jìn)天牛須搜索的教與學(xué)優(yōu)化(teachinglearning based optimization with improved beetle antennae search,BASTLBO)算法。該算法進(jìn)行了三方面的改進(jìn):首先,針對(duì)種群隨機(jī)初始化,多樣性無法保證的問題,提出Tent 映射反向?qū)W習(xí)策略,使初始種群在解空間分布得更加均勻,盡可能覆蓋到全局最優(yōu)解,有利于算法快速收斂而又避免早熟;其次,在教學(xué)階段,先對(duì)教師個(gè)體執(zhí)行二次插值天牛須搜索,然后再讓學(xué)生向老師學(xué)習(xí),進(jìn)行自我更新,以此來提高算法全局尋優(yōu)和對(duì)當(dāng)前最優(yōu)解區(qū)域進(jìn)行精細(xì)搜索的能力;最后,由于教學(xué)階段會(huì)引導(dǎo)種群向最優(yōu)個(gè)體所在空間收斂,為保證算法在陷入局部最優(yōu)時(shí)能迅速跳出,提出自適應(yīng)混合變異策略,結(jié)合柯西變異和高斯變異自身特性,使算法達(dá)到全局開發(fā)與局部搜索的動(dòng)態(tài)平衡。
TLBO 算法的原理是利用教師和班級(jí)平均學(xué)習(xí)水平之間的差異性來引導(dǎo)學(xué)生進(jìn)化學(xué)習(xí),之后學(xué)生之間也要相互學(xué)習(xí),進(jìn)而提高整個(gè)班級(jí)的成績。具體過程分為教學(xué)和學(xué)習(xí)兩個(gè)階段。
教學(xué)過程的數(shù)學(xué)描述如式(1)所示。
學(xué)生xi與另一名隨機(jī)選擇的學(xué)生xj相互學(xué)習(xí),比較其對(duì)應(yīng)的目標(biāo)函數(shù)值f(xi)和f(xj),讓學(xué)習(xí)差的向?qū)W習(xí)好的進(jìn)行學(xué)習(xí),即:
為了增強(qiáng)種群的多樣性,在BASTLBO 算法中,首先使用Tent映射產(chǎn)生混沌初始種群,然后通過反向?qū)W習(xí)產(chǎn)生反向種群,最后對(duì)混沌初始種群及其反向種群進(jìn)行排序,從中選擇適應(yīng)度值較優(yōu)的解組成初始種群。
Tent映射產(chǎn)生混沌粒子序列的公式定義如下:
式中,表示第t次迭代粒子i在第d維分量上的混沌變量,t=1,2,…,T,d=1,2,…,D。
通過式(3)迭代T次可以得到t個(gè)混沌變量Yt=(Yt,1,Yt,2,…,Yt,D)組成的混沌序列,再經(jīng)過式(4)進(jìn)行逆映射,即可得到t個(gè)初始解Xt=(Xt,1,Xt,2,…,Xt,D),記為種群X。
其中,Xmax和Xmin來自搜索空間的取值范圍[Xmin,Xmax]。
作為一種提高隨機(jī)搜索算法搜索能力的有效方法,反向?qū)W習(xí)(opposition-based learning,OBL)策略的原理[11]是若在D維空間中存在一個(gè)點(diǎn)x=(x1,x2,…,xD),xi∈[ai,bi]則其反向點(diǎn)為,其中,i∈[1,D]。因此由種群X計(jì)算反向種群OX:
將種群X和反向種群OX合并得到新種群,即Xnew={X?OX},然后計(jì)算Xnew的目標(biāo)函數(shù)值并排序,若是極小值尋優(yōu),則從小到大排序,若是極大值尋優(yōu),則從大到小排序,然后選取其中適應(yīng)度值最好的前N個(gè)個(gè)體作為初始種群。
TLBO 算法有一個(gè)明顯的缺點(diǎn)是教師個(gè)體缺少學(xué)習(xí)機(jī)制,即教師沒有進(jìn)一步地尋優(yōu),沒有對(duì)所在的空間進(jìn)行精細(xì)的局部搜索。而天牛須搜索(beetle antennae search,BAS)算法[12]不同于其他優(yōu)化算法,它恰好只需要一個(gè)個(gè)體,不需要知道函數(shù)具體形式和梯度信息即可實(shí)現(xiàn)高效尋優(yōu),運(yùn)算量小,尋優(yōu)速度快。BAS 算法流程如下:
(1)因?yàn)樘炫n^的朝向隨機(jī),所以天牛左須指向右須的向量表示為:
其中,rands(k,1)表示生成k維的隨機(jī)向量。
(2)設(shè)置天牛步長δ,以線性方式進(jìn)行遞減,t為當(dāng)前迭代次數(shù),則第t次迭代時(shí)天牛的移動(dòng)步長為:
式中,eta_δ為步長遞減系數(shù)。
(3)設(shè)置天牛兩須距離d,同樣以線性方式遞減,其遞減系數(shù)為eta_d,第t次迭代時(shí)兩須的距離為:
(4)天牛左右兩須進(jìn)行位置更新:
式中,左須xl、右須xr都是k維向量,xt表示第t次迭代時(shí)天牛質(zhì)心的位置。
(5)計(jì)算左右兩須xl和xr的適應(yīng)度值f(xl) 和f(xr),根據(jù)二者大小關(guān)系,判斷天牛的前進(jìn)方向:
其中,sign 為符號(hào)函數(shù)。
(6)計(jì)算天牛移動(dòng)后的適應(yīng)度值。
(7)判斷是否符合迭代結(jié)束條件,符合就結(jié)束迭代,否則重復(fù)(1)到(6)直到符合條件。
雖然BAS算法原理簡單,收斂速度快,但是單個(gè)天牛在高維空間中的尋優(yōu)能力還是有所欠缺,容易陷入局部最優(yōu),有必要對(duì)其進(jìn)行改進(jìn)。因此,引入二次插值算子:
其中,k表示維度,xb為當(dāng)前全局最優(yōu)解。
采用二次擬合函數(shù)法,在每一次天牛位置更新時(shí),都可以利用二次插值得到一個(gè)異于當(dāng)前解xt的新解xi,對(duì)比它們的適應(yīng)度值,若f(xi) 改進(jìn)BAS 算法雖然高維尋優(yōu)能力有所增強(qiáng),但是該算法搜索到的最優(yōu)點(diǎn)不一定是全局最優(yōu)點(diǎn)。因此要給BAS 設(shè)置兩個(gè)終止條件來保證算法整體搜索效率:第一個(gè)是解的精度;考慮到在某些問題的求解過程中,精度要求即使較低,BAS 算法可能也會(huì)迭代很多次,因此第二個(gè)是要設(shè)定固定的迭代次數(shù)。當(dāng)精度達(dá)到要求或迭代次數(shù)達(dá)到設(shè)定值,則搜索完畢,直接應(yīng)用所得到的點(diǎn)替換教師個(gè)體。 由高斯變異、柯西變異自身的概率分布特性以及在其他優(yōu)化算法中的應(yīng)用效果可知,高斯變異可以賦予算法更好的局部搜索能力,柯西變異則具有較強(qiáng)的全局探索能力,因此可以結(jié)合二者特性,通過混合變異使教與學(xué)優(yōu)化算法能夠自適應(yīng)調(diào)節(jié)學(xué)生之間互相學(xué)習(xí)的效果。在學(xué)生個(gè)體更新公式中引入服從混合變異分布的隨機(jī)向量,如式(12)所示。 在算法迭代過程中,前期需要更強(qiáng)的局部搜索能力,使算法能夠快速地收斂到全局最優(yōu)附近,節(jié)省算法尋優(yōu)時(shí)間。而后期為了使TLBO逃脫局部極值的束縛,避免早熟收斂,則需要加強(qiáng)算法的全局探索能力,因此TLBO 算法前期要側(cè)重高斯變異,后期要側(cè)重柯西變異。α(t)與γ(t)隨迭代進(jìn)程計(jì)算如下: 其中,t是當(dāng)前迭代次數(shù),T是算法最大迭代次數(shù),G(0,1)為標(biāo)準(zhǔn)高斯分布,C(0,1)為柯西分布。 步驟1以個(gè)體X0(0)為起點(diǎn),依據(jù)式(3)、(4)進(jìn)行迭代得到混沌種群X,種群X通過式(5)迭代得其反向種群OX。令Xnew={X?OX},計(jì)算Xnew的目標(biāo)函數(shù)值并排序,選取其中適應(yīng)度值最好的前N個(gè)個(gè)體組成初始種群POP(0)。 步驟2計(jì)算適應(yīng)度值,選出最佳個(gè)體,設(shè)為教師xteacher,并計(jì)算班級(jí)平均值xmean。 步驟3對(duì)教師個(gè)體xteacher執(zhí)行天牛須搜索。設(shè)置改進(jìn)BAS 算法相關(guān)初始參數(shù),迭代次數(shù)t=0,依據(jù)式(10)、(11)進(jìn)行天牛迭代,判斷是否滿足BAS算法終止條件,若是,則進(jìn)入下一步,否則繼續(xù)迭代。 步驟4更新教師個(gè)體xteacher=xt。 步驟5依據(jù)式(1)進(jìn)行教師的“教”行為。 步驟6依據(jù)式(12)、(13)、(14)進(jìn)行學(xué)生的相互“學(xué)”行為。 步驟7BASTLBO算法滿足結(jié)束條件,則輸出最優(yōu)解Xgbest,結(jié)束算法,否則返回步驟2。 為了檢驗(yàn)本文改進(jìn)算法的尋優(yōu)能力,選取6個(gè)經(jīng)典benchmark 測(cè)試函數(shù)進(jìn)行仿真實(shí)驗(yàn),分別是f1:Sphere、f2:Rosenbrock、f3:Schwefel2.22、f4:Rastrigin、f5:Griewank、f6:Ackley,它們的理論最優(yōu)值均為0。其中f1到f3是單峰函數(shù),可以測(cè)試算法收斂速度與精度,f4到f6是多峰函數(shù),可以測(cè)試算法逃出局部極值的能力。表1給出了標(biāo)準(zhǔn)測(cè)試函數(shù)的具體信息,包括表達(dá)式和取值范圍。 表1 標(biāo)準(zhǔn)測(cè)試函數(shù)Table 1 Benchmark functions 此外,本文所有實(shí)驗(yàn)運(yùn)行環(huán)境始終一致,均在AMD A10-7300 處理器、Windows 10 操作系統(tǒng)下基于軟件Matlab2016a實(shí)現(xiàn)。 2.2 節(jié)中在原始天牛須搜索算法的基礎(chǔ)上引入二次插值算子,目的是得到尋優(yōu)性能更好的BAS,然后將其嵌入到TLBO算法中。為了驗(yàn)證二次插值的改進(jìn)效果,設(shè)計(jì)實(shí)驗(yàn)如下。 首先通過單因素實(shí)驗(yàn)、正交分析確定BAS 的內(nèi)部最優(yōu)參數(shù):初始步長δ0取1,兩須初始距離d0取2,步長和兩須距離的遞減系數(shù)均取0.95。然后通過3.1節(jié)中的標(biāo)準(zhǔn)測(cè)試函數(shù)對(duì)改進(jìn)BAS和原始BAS進(jìn)行優(yōu)化性能比較。實(shí)驗(yàn)條件為函數(shù)維度30 維,最大迭代次數(shù)1 000次。算法對(duì)不同函數(shù)均獨(dú)立運(yùn)行30 次,結(jié)果取平均值并計(jì)算方差。對(duì)比數(shù)據(jù)如表2所示。 從表2可以看出,改進(jìn)天牛須搜索的收斂精度和穩(wěn)定性較原始算法有明顯提升。其中在30次的函數(shù)測(cè)試中,改進(jìn)BAS 對(duì)多峰函數(shù)f4都成功收斂到了理論最優(yōu)值0,方差也為0,同時(shí)在多峰函數(shù)f6上方差為0,說明改進(jìn)算法具有較高的穩(wěn)定性,驗(yàn)證了引入二次插值算子的改進(jìn)BAS的尋優(yōu)有效性。 表2 原始BAS和改進(jìn)BAS函數(shù)測(cè)試結(jié)果Table 2 Functional test results of original BAS and improved BAS 通過以上實(shí)驗(yàn)可以確定改進(jìn)BAS的可行性與優(yōu)越性以及此種算法特有的內(nèi)部參數(shù)值,為后續(xù)將其嵌入到TLBO 算法中提供了理論依據(jù)。然而為了保證本文實(shí)驗(yàn)的嚴(yán)謹(jǐn)性,根據(jù)2.2節(jié)中的分析,還需要考慮固定迭代次數(shù)的設(shè)置問題,如果固定迭代次數(shù)過大,則會(huì)影響改進(jìn)TLBO 算法的整體收斂效率,如果過小,則可能體現(xiàn)不出改進(jìn)優(yōu)勢(shì)。因此針對(duì)上述改進(jìn)BAS,將最大迭代次數(shù)分別取200、1 000、2 000,在標(biāo)準(zhǔn)測(cè)試函數(shù)上進(jìn)行獨(dú)立30次優(yōu)化實(shí)驗(yàn),計(jì)算并統(tǒng)計(jì)最優(yōu)解和均值,如表3所示。 表3 最大迭代次數(shù)對(duì)改進(jìn)BAS優(yōu)化性能影響Table 3 Effect of maximum iterations on improved BAS optimization performance 由表3可知,最大迭代次數(shù)對(duì)天牛須搜索算法的影響不大,因此為了保證BASTLBO改進(jìn)算法的整體尋優(yōu)效率,后續(xù)實(shí)驗(yàn)中在給改進(jìn)BAS設(shè)置終止條件時(shí),固定迭代次數(shù)取值為200。 將僅使用Tent映射反向?qū)W習(xí)初始化策略的TLBO_1、僅加入改進(jìn)天牛須搜索的TLBO_2、僅加入組合變異的TLBO_3 與標(biāo)準(zhǔn)TLBO 算法進(jìn)行比較,探討本文每部分改進(jìn)對(duì)算法整體效果影響,驗(yàn)證不同策略的改進(jìn)有效性。TLBO_2中加入的改進(jìn)BAS內(nèi)部參數(shù)設(shè)置同3.2節(jié)一樣,并且設(shè)置其迭代終止條件為固定搜索精度0.001,固定迭代次數(shù)200次。統(tǒng)一實(shí)驗(yàn)條件,各算法種群規(guī)模為20,測(cè)試函數(shù)維度均為30維,最大迭代次數(shù)1 000次。獨(dú)立運(yùn)行30次,統(tǒng)計(jì)各算法的解平均值和方差,結(jié)果如表4所示。 表4 不同改進(jìn)策略結(jié)果比較Table 4 Comparison of results of different improvement strategies 結(jié)合表4數(shù)據(jù),分析每種改進(jìn)策略,TLBO_2對(duì)于單峰函數(shù)f3和多峰函數(shù)f4、f5,都可以收斂到函數(shù)最優(yōu)值0,雖然在f1和f6上沒有尋到理論最優(yōu),但也是表現(xiàn)最優(yōu)秀的。因?yàn)門LBO 算法的核心便是利用教師與學(xué)生之間的差異來尋優(yōu),始終讓當(dāng)前最優(yōu)個(gè)體指導(dǎo)整個(gè)種群進(jìn)化,而加入了改進(jìn)BAS的TLBO_2可以在算法每次迭代過程中獲得更優(yōu)秀的當(dāng)前最優(yōu)個(gè)體,一方面提高了尋優(yōu)精度,一方面使得種群在算法初始階段快速向可能最優(yōu)解區(qū)域靠近,加快了收斂速度。實(shí)驗(yàn)證明了在TLBO中引入改進(jìn)天牛須搜索的有效性和優(yōu)越性。在函數(shù)f2上,三種改進(jìn)策略相比標(biāo)準(zhǔn)TLBO提升效果不是特別明顯,但TLBO_3表現(xiàn)最優(yōu),并且在f4上找到了理論最優(yōu)值,在f5中方差為0,穩(wěn)定性良好。這是因?yàn)門LBO_3中的組合變異策略有效增強(qiáng)了算法前期的局部勘探能力和后期的全局開發(fā)能力,實(shí)驗(yàn)說明此策略對(duì)本文改進(jìn)算法性能提升具有顯著影響。另外,使用了本文Tent映射反向?qū)W習(xí)策略的TLBO_1 相比于標(biāo)準(zhǔn)TLBO 算法優(yōu)化性能也有一定提升。下文將繼續(xù)通過實(shí)驗(yàn)測(cè)試融合了以上三種改進(jìn)策略的BASTLBO算法的尋優(yōu)性能。 將本文所提出的BASTLBO 算法與標(biāo)準(zhǔn)TLBO 以及兩種典型TLBO 改進(jìn)算法FETLBO[7]、DSTLBO[9]進(jìn)行對(duì)比,分別在維度為30 維、100 維的條件下,在3.1 節(jié)中的標(biāo)準(zhǔn)測(cè)試函數(shù)上進(jìn)行尋優(yōu)測(cè)試,參數(shù)設(shè)置同3.2 節(jié)一樣,F(xiàn)ETLBO和DSTLBO的實(shí)驗(yàn)參數(shù)參考各自文獻(xiàn)。獨(dú)立運(yùn)行30次,計(jì)算并統(tǒng)計(jì)結(jié)果如表5所示。 從表5數(shù)據(jù)可以看出,函數(shù)維度為30維時(shí),BASTLBO算法可以成功找到單峰函數(shù)f1的最優(yōu)解,而參與對(duì)比的TLBO、FETLBO、DSTLBO算法雖然無法搜索到全局最優(yōu)值,但FETLBO、DSTLBO 的性能較于TLBO 仍有較大提升。四個(gè)算法在f2上都沒有找到最優(yōu)解,但觀察各算法的解均值和方差,可以看出BASTLBO表現(xiàn)最優(yōu)。f3也是單峰函數(shù),多峰函數(shù)f4極值點(diǎn)較多,但三種改進(jìn)TLBO 算法均收斂到了全局最優(yōu)。對(duì)于多峰函數(shù)f5,TLBO 算法解精度較低,而FETLBO、DSTLBO、 表5 不同維度下算法尋優(yōu)結(jié)果對(duì)比Table 5 Comparison of algorithm optimization results in different dimensions 如圖1 所示,繪制出了30 維度下TLBO、FETLBO、DSTLBO、BASTLBO 算法在不同函數(shù)上的平均收斂曲線,結(jié)合表5 數(shù)據(jù),進(jìn)一步評(píng)估算法尋優(yōu)性能??梢钥闯觯诹鶄€(gè)測(cè)試函數(shù)上,三種改進(jìn)算法的解精度和收斂速度較標(biāo)準(zhǔn)TLBO 均有所提高,在f3上DSTLBO 前期收斂速度比BASTLBO 要快,除此之外,本文所提出的BASTLBO 算法無論在單峰還是多峰函數(shù)上始終都保持著較高的穩(wěn)定性和尋優(yōu)精度,且收斂速度最快,在其他算法陷入局部最優(yōu)時(shí),依然可以持續(xù)尋優(yōu)。綜上,加入了本文提出的三種改進(jìn)策略的BASTLBO 算法的綜合優(yōu)化性能得到了有效驗(yàn)證。 圖1 30維度下不同函數(shù)平均收斂曲線Fig.1 Average convergence curves of different functions in 30 dimensions 為了更好地評(píng)估BASTLBO算法的尋優(yōu)能力,選取CEC2013 函數(shù)集中的10 個(gè)基準(zhǔn)函數(shù)進(jìn)行仿真實(shí)驗(yàn),具體函數(shù)信息如表6 所示,包括函數(shù)名稱、搜索空間范圍BASTLBO算法在本實(shí)驗(yàn)中均成功收斂30次。在f6中,DSTLBO 表現(xiàn)最優(yōu),BASTLBO 與FETLBO 算法求解精度相當(dāng),但就方差而言,BASTLBO算法顯得更穩(wěn)定些。 表6 CEC2013函數(shù)(部分)Table 6 CEC2013 functions(part) 當(dāng)測(cè)試函數(shù)維度增加到100維時(shí),四個(gè)算法均沒有在1 000 次迭代內(nèi)找到函數(shù)f1的全局最優(yōu)值,但是BASTLBO 算法的解精度要優(yōu)于其他三種算法。對(duì)于f3、f4,BASTLBO均成功收斂30次,而FETLBO、DSTLBO在f4上表現(xiàn)相當(dāng),在f3上可以收斂到理論最優(yōu)。三種改進(jìn)TLBO 算法在30 維時(shí)可以找到f5函數(shù)的最優(yōu)值,但在100維度時(shí),尋優(yōu)精度和穩(wěn)定性均有不同程度的下降,而且可以注意到,此時(shí)DSTLBO、BASTLBO 還要稍遜于FETLBO 算法。在f6函數(shù)上,BASTLBO 算法100維下的求解精度較30 維時(shí)幾乎沒有下降,而FETLBO、DSTLBO均有所下降,說明本文改進(jìn)算法具有更好的魯棒性,適用于高維尋優(yōu)。和理論最優(yōu)值。參與對(duì)比的新型群智能算法有螢火蟲算法(FA)[13]、布谷鳥算法(CS)[14]、人工魚群算法(AFSA)[15]。設(shè)置各算法種群規(guī)模為40,最大迭代次數(shù)為1 000,分別在10維、30維、50維條件下,獨(dú)立運(yùn)行30次取解平均值和方差,結(jié)果如表7所示。 表7 CEC2013函數(shù)優(yōu)化結(jié)果對(duì)比Table 7 Comparison of CEC2013 functions optimization results 分析表7 數(shù)據(jù),最優(yōu)指標(biāo)數(shù)據(jù)已經(jīng)加粗顯示,可以看出,與其他算法相比,無論是低維還是高維,BASTLBO算法均能在CEC2013單峰、多峰以及復(fù)合函數(shù)上找到更好的結(jié)果,進(jìn)一步證明BASTLBO具有較好的收斂精度和魯棒性。 上述實(shí)驗(yàn)中僅使用了平均值和方差兩種評(píng)價(jià)指標(biāo),為了增強(qiáng)實(shí)驗(yàn)結(jié)果的說服力,采用顯著性水平α=5%的Wilcoxon 秩和檢驗(yàn)[16]方法來進(jìn)一步評(píng)估BASTLBO 算法的性能。如表8所示,其中符號(hào)“+”“-”和“=”分別表示BASTLBO算法的結(jié)果優(yōu)于、劣于和相當(dāng)于對(duì)比算法的測(cè)試結(jié)果。 當(dāng)p值小于5%時(shí),拒絕零假設(shè),說明兩種算法之間具有顯著性差異。從表8的Wilcoxon統(tǒng)計(jì)結(jié)果來看,當(dāng)顯著性水平為5%時(shí),BASTLBO算法與另外三種群智能對(duì)比算法之間具有顯著性差異,且BASTLBO明顯更優(yōu)。 表8 Wilcoxon秩和檢驗(yàn)結(jié)果統(tǒng)計(jì)Table 8 Statistics of Wilcoxon test results BASTLBO 算法求解無約束測(cè)試函數(shù)的有效性和優(yōu)越性已經(jīng)得到驗(yàn)證,為了驗(yàn)證其對(duì)約束問題的求解能力,選擇壓力容器設(shè)計(jì)優(yōu)化這一實(shí)際結(jié)構(gòu)優(yōu)化問題來進(jìn)行實(shí)驗(yàn),使用BASTLBO求解最小總成本。式(15)給出了該問題的目標(biāo)函數(shù),約束條件見式(16)。其中x1、x2、x3、x4分別表示實(shí)際問題中的半球形封頭厚度Ts、圓柱形壓力容器厚度Th、內(nèi)徑R和圓柱長度L。 其中,1×0.062 5 ≤x1,x2≤99×0.062 5,10 ≤x3,x4≤200。 為評(píng)判求解結(jié)果的優(yōu)劣,將BASTLBO算法與廣泛學(xué)習(xí)粒子群算法(CLPSO)、協(xié)同差分進(jìn)化算法(CEDE)以及人工免疫混合遺傳算法(GA-AIS)進(jìn)行比較實(shí)驗(yàn)[17]。為保證公平性,各算法種群規(guī)模設(shè)置為50,均獨(dú)立運(yùn)行30次,取優(yōu)化結(jié)果均值。對(duì)比數(shù)據(jù)如表9、表10所示。 表9 壓力容器設(shè)計(jì)問題中約束函數(shù)值對(duì)比Table 9 Constraint function values comparison in pressure vessel design problem 表10 不同算法在壓力容器設(shè)計(jì)問題上的優(yōu)化結(jié)果對(duì)比Table 10 Optimization results comparison of different algorithms in pressure vessel design problem 綜合表9、表10數(shù)據(jù)可以看出,BASTLBO算法的優(yōu)化結(jié)果更好一些,其迭代50 000次得到的總成本比其他三種算法要更低。約束函數(shù)值也證明了BASTLBO 求解此問題的有效性和優(yōu)越性,g3函數(shù)值達(dá)到了0,約束函數(shù)g1、g2、g4的值也更接近0,其中g(shù)1、g2約束函數(shù)值至多提升了9個(gè)數(shù)量級(jí)。 針對(duì)TLBO算法易陷入局部最優(yōu)、求解精度低的弱點(diǎn),本文提出如下三方面的改進(jìn)。 (1)在種群初始化階段,結(jié)合Tent 映射和反向?qū)W習(xí)機(jī)制,根據(jù)適應(yīng)度值排序,擇優(yōu)組成初始種群,提高了種群多樣性,且有利于算法快速收斂。 (2)在迭代過程中對(duì)教師個(gè)體執(zhí)行BAS搜索,并對(duì)BAS進(jìn)行改進(jìn),增強(qiáng)TLBO算法對(duì)當(dāng)前最優(yōu)個(gè)體周圍區(qū)域的精細(xì)搜索,提高跳出局部最優(yōu)的能力。 (3)在學(xué)生個(gè)體更新公式中加入混合變異算子,利用柯西函數(shù)較強(qiáng)的局部變異能力和高斯函數(shù)較強(qiáng)的全局變異能力,使算法隨迭代進(jìn)程自適應(yīng)調(diào)節(jié)探索方向,既維持了算法的收斂速度,又可以在陷入局部最優(yōu)時(shí)迅速跳出。 實(shí)驗(yàn)結(jié)果表明,本文提出的BASTLBO算法在低維和高維下的尋優(yōu)均具有較好的求解精度和魯棒性,收斂速度快。并通過對(duì)壓力容器設(shè)計(jì)優(yōu)化問題的求解,驗(yàn)證了BASTLBO 算法解決約束優(yōu)化問題的有效性和優(yōu)越性。未來還會(huì)借鑒其他隨機(jī)搜索算法的優(yōu)點(diǎn),來進(jìn)一步改善算法性能,同時(shí)也將深入研究拓展該算法的應(yīng)用領(lǐng)域。2.3 學(xué)生的混合變異
2.4 BASTLBO算法的步驟
3 實(shí)驗(yàn)與分析
3.1 標(biāo)準(zhǔn)測(cè)試函數(shù)
3.2 天牛須搜索改進(jìn)有效性分析
3.3 不同改進(jìn)策略單一有效性分析
3.4 BASTLBO算法性能測(cè)試
3.5 與其他群智能算法對(duì)比
3.6 用壓力容器設(shè)計(jì)優(yōu)化問題驗(yàn)證算法
4 結(jié)束語