黎延海,雍龍泉,2,拓守恒
(1. 陜西理工大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,陜西 漢中 723001; 2. 陜西省工業(yè)自動(dòng)化重點(diǎn)實(shí)驗(yàn)室,陜西 漢中723001; 3. 西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710121)
教與學(xué)優(yōu)化算法(teaching-learning-based optimization,TLBO) 是Rao等[1]于2011年提出的一種模擬教師教學(xué)和學(xué)生相互學(xué)習(xí)的群體智能優(yōu)化算法。該算法因參數(shù)設(shè)置少、容易實(shí)現(xiàn)、尋優(yōu)性能好,受到了眾多研究者的關(guān)注,在函數(shù)優(yōu)化[2]、工程參數(shù)優(yōu)化[3]、投資組合優(yōu)化[4]和多目標(biāo)優(yōu)化[5-6]等問題上得到了廣泛的應(yīng)用。
TLBO算法作為一種群智能優(yōu)化算法,在求解高維多模態(tài)復(fù)雜優(yōu)化問題時(shí)也容易陷入局部最優(yōu),算法的收斂速度和精度都不夠理想,為此,許多研究者在近幾年相繼提出了一些改進(jìn)的TLBO算法。Ouyang等[7]為平衡全局與局部搜索效率,在“學(xué)階段”增加了全局交叉策略,提出了全局交叉的TLBO算法(teaching-learning-based optimizatio with global crossover,TLBO-GC);Chen等[8]設(shè)計(jì)了局部學(xué)習(xí)和自學(xué)習(xí)方法來提高TLBO的搜索能力,提出了一種改進(jìn)的TLBO算法(improved teaching-learning-based optimization,ITLBO);Zou等[9]利用其他同學(xué)的學(xué)習(xí)經(jīng)驗(yàn),使用兩種隨機(jī)概率來確定學(xué)習(xí)者在不同階段的學(xué)習(xí)方法,提出了一種改進(jìn)的TLBO算法(improved teaching-learning-based optimization with learning experience, LETLBO);王培崇等[10]采用小世界網(wǎng)絡(luò)作為種群的空間結(jié)構(gòu)關(guān)系,提出了具有小世界領(lǐng)域結(jié)構(gòu)的TLBO算法(small world neighborhood TLBO, S-TLBO);畢曉君等[11]在“學(xué)階段”融合差分進(jìn)化算法變異策略,提出了基于混合學(xué)習(xí)策略的教與學(xué)優(yōu)化算法(TLBO based on hybrid learning strategies and disturbance, DSTLBO);Ji等[12]受歷史種群概念的啟發(fā),在標(biāo)準(zhǔn)TLBO算法中引入了自反饋學(xué)習(xí)階段和變異交叉階段,提出了一種TLBO算法的變體(improved version of TLBO, ITLBO);Yu等[13]將精英學(xué)習(xí)策略和多樣性學(xué)習(xí)方法引入到教師階段和學(xué)習(xí)者階段,學(xué)習(xí)者可以根據(jù)自身的特點(diǎn)自適應(yīng)地選擇不同的學(xué)習(xí)階段,提出了一種自適應(yīng)的TLBO算法(self-adaptive TLBO, SATLBO);Niu等[14]對(duì)種群中每個(gè)個(gè)體采用不同的更新機(jī)制,提出了一種修正的TLBO算法(actual teaching learning situation TLBO, ATLS);SHUKLA等[15]在標(biāo)準(zhǔn)TLBO算法中引入鄰近學(xué)習(xí)和差分突變策略,提出了鄰近學(xué)習(xí)策略的TLBO算法(neighbor based TLBO, NTLBO);柳締西子等[16]利用權(quán)重學(xué)習(xí)得到的個(gè)體來指引種群的進(jìn)化,使用Logistics 混沌搜索策略來提高其全局搜索能力,提出了基于混沌搜索和權(quán)重學(xué)習(xí)的教與學(xué)優(yōu)化算法(TLBO based on chaotic search and weighted learning,TLBO-CSWL);何杰光等[17]在原有的個(gè)體更新公式上加入更新個(gè)體局部維度的操作,提出了基于個(gè)體局部維度改進(jìn)的教與學(xué)優(yōu)化算法(local-dimension-improved TLBO, LdimTLBO);Tsai[18]將交叉頻率引入TLBO中,以防止算法過早收斂,提出了受限的教與學(xué)優(yōu)化算法(confined TLBO with variable search strategies, CTLBO)。這些TLBO的改進(jìn)算法在一定程度上提高了算法的優(yōu)化性能,降低了算法陷入局部最優(yōu)的可能,但文獻(xiàn)[19]揭示標(biāo)準(zhǔn)TLBO算法在“教”階段存在固有的起源偏倚,對(duì)原點(diǎn)最優(yōu)問題(以坐標(biāo)原點(diǎn)為最優(yōu)解的問題)有著原始的偏好,但對(duì)非原點(diǎn)最優(yōu)問題(最優(yōu)解不在坐標(biāo)原點(diǎn)的問題)的優(yōu)化效果則不太理想,現(xiàn)有的改進(jìn)TLBO算法也沒能很好地解決這類問題。
為此,本文在對(duì)標(biāo)準(zhǔn)TLBO算法的“教階段”和“學(xué)階段”的空間擾動(dòng)進(jìn)行幾何分析解釋的基礎(chǔ)上,提出了一種基于隨機(jī)交叉-自學(xué)策略的教與學(xué)優(yōu)化算法(teaching and learning optimization al-gorithm based on random crossover-self-studystrategy, CSTLBO)。算法使用各分量取值 [-1,1]的隨機(jī)向量替換了標(biāo)準(zhǔn)TLBO算法中各分量取值[0,1] 的隨機(jī)向量,通過引入隨機(jī)交叉策略和“自學(xué)”策略,增加種群的多樣性,提高算法的全局搜索能力。使用了20個(gè)Benchmark測(cè)試函數(shù)進(jìn)行仿真實(shí)驗(yàn),并與6種TLBO的改進(jìn)算法(TLBO-GC[7]、ITLBO[8]、DSTLBO[11]、ATLS[14]、NTLBO[15]、TLBO-C SWL[16])進(jìn)行了比較,檢驗(yàn)了所提算法的性能。
本文研究的優(yōu)化問題的具體模型為:
式中:X 為決策向量;S 表示搜索空間;xiL和 xiU分別表示第 i 個(gè)決策變量 xi在搜索空間的上界和下界 ;D 是搜索空間的維數(shù);f 為目標(biāo)函數(shù)。
標(biāo)準(zhǔn)TLBO算法是一種模仿整個(gè)課堂教學(xué)過程的高效優(yōu)化方法,通過模擬老師給班級(jí)學(xué)生的教學(xué)過程及班級(jí)中學(xué)員之間的交流學(xué)習(xí)過程,來提高整個(gè)班級(jí)的成績(jī)。主要包括兩個(gè)階段:“教階段”和“學(xué)階段”,其基本步驟如下:
1)初始化。隨機(jī)初始化 NP 位學(xué)員(即個(gè)體) Xj=(x1j,x2j,···,xDj),j=1,2,···,NP 。其中, N P 表示班級(jí)中的學(xué)員數(shù)(即種群的規(guī)模),D 表示學(xué)習(xí)的科目數(shù)(即待優(yōu)化問題的維數(shù))。
2)“教階段”。選取班級(jí)中成績(jī)最優(yōu)(即適應(yīng)度值最小)的學(xué)員作為老師,記做 Xteacher,每個(gè)學(xué)員根據(jù)教師和全體學(xué)員平均水平的差異性(difference)來進(jìn)行學(xué)習(xí),具體如下:
式中:Xjold、Xjnew分別表示第 j 位學(xué)員 Xj在教學(xué)前、后的知識(shí)水平;r=(r1,r2,···,rD) 表示學(xué)習(xí)步長(zhǎng),ri為 [0,1] 間的隨機(jī)數(shù);符號(hào) ? 表示直積運(yùn)算;TF=round[1+rand(0,1)] 表示教學(xué)因子,取值為表示班級(jí)全體學(xué)員的平均知識(shí)水平。
“教階段”完成后,評(píng)估學(xué)員Xj的學(xué)習(xí)成績(jī)(即適應(yīng)度值f(Xj) ),如果,則進(jìn)行更新,即否則不更新。
3)“學(xué)階段”。學(xué)員之間進(jìn)行相互交流,通過向其他同學(xué)學(xué)習(xí),來提升自身的水平。從班級(jí)中隨機(jī)抽取一個(gè)學(xué)員Kk,k是[1,NP]中的一個(gè)隨機(jī)整數(shù),k≠j,學(xué)員Xj(與其進(jìn)行)交流學(xué)(習(xí),)具體(如)下:
4)如果滿足終止條件(達(dá)到最大評(píng)估次數(shù)或最大迭代次數(shù)),則優(yōu)化結(jié)束并輸出最優(yōu)個(gè)體Xbest,否則轉(zhuǎn)至2)繼續(xù)。
為了更好地理解TLBO的工作原理,以二維空間為例,采用幾何分析的方法來解釋算法在“教階段”和“學(xué)階段”的空間擾動(dòng)狀況。
文獻(xiàn)[19]指出式(2)和(3)中的r本質(zhì)上是一個(gè)各分量都取值于[0,1]的D維隨機(jī)向量,考慮到由隨機(jī)參數(shù)所引起的擾動(dòng)的極限情形,容易觀察出“教階段”和“學(xué)階段”的空間擾動(dòng)情形。由于r中的每個(gè)元素都是取值于[0,1]的隨機(jī)數(shù),所以r對(duì)difference的影響實(shí)際是一個(gè)尺度上的縮放,即difference可以為圖1(b)、(c)方框內(nèi)的任意向量。圖1(a)給出了TF(取1或2)的兩種情況下difference的向量表示;圖1(b)描述了“教階段”,應(yīng)用于Xj的兩個(gè)可能的擾動(dòng)框,從概率角度描述了應(yīng)用于Xj每一個(gè)可能的擾動(dòng);圖1(c)描述了“學(xué)階段”,應(yīng)用于Xj的兩種可能的擾動(dòng)框。
圖 1 擾動(dòng)分析的幾何解釋Fig. 1 Geometric interpretation of disturbance analysis
類似于2.1節(jié)的分析,如果將式(2)和式(3)中各分量取值于[0,1]的隨機(jī)向量替換為各分量取值于[-1,1]的隨機(jī)向量,則應(yīng)用于Xj的擾動(dòng)范圍將會(huì)擴(kuò)大,“教階段”的搜索擾動(dòng)范圍會(huì)變?yōu)樵瓉淼?倍,而“學(xué)階段”的擾動(dòng)范圍將變?yōu)樵瓉淼膬杀?,這樣能增大算法跳出局部最優(yōu)的概率,在一定程度上改善算法“早熟”收斂的狀況,提高全局搜索能力。
圖2(a)、(b)分別描述了在“教階段”和“學(xué)階段”,使用各分量取值于[-1,1]的隨機(jī)向量后,應(yīng)用于Xj的可能的擾動(dòng)范圍。
圖 2 擾動(dòng)分析的幾何解釋(ri∈[-1,1])Fig. 2 Geometric interpretation of disturbance analysis(ri∈[-1,1])
為檢驗(yàn)上述對(duì)使用不同取值范圍的隨機(jī)數(shù)所產(chǎn)生的擾動(dòng)狀況的分析,將標(biāo)準(zhǔn)TLBO算法和TLBO1(r為各分量取值于 [-1,1] 的隨機(jī)向量)在6 個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)上進(jìn)行仿真測(cè)試,其中f1~f3是典型的原點(diǎn)最優(yōu)的多峰問題,f4~f6是對(duì)它們進(jìn)行了Shift操作(非原點(diǎn)最優(yōu))。設(shè)置維度D=30,種群大小 N P=10,評(píng)價(jià)次數(shù)為150 000次。表1統(tǒng)計(jì)了30次獨(dú)立運(yùn)行得到的最優(yōu)目標(biāo)值的平均值、標(biāo)準(zhǔn)差及運(yùn)行時(shí)間,圖3給出6個(gè)函數(shù)的收斂曲線。
表 1 30次實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果Table 1 Thirty times optimization statistical results
圖 3 測(cè)試函數(shù)f1~f6的收斂曲線圖Fig. 3 Convergence plot of benchmark function f1~f6
從表1和圖3可以看出,對(duì)原點(diǎn)最優(yōu)問題,標(biāo)準(zhǔn)TLBO算法所得解的精度更高,時(shí)間更短,但對(duì)非原點(diǎn)最優(yōu)問題,TLBO1算法的求解精度和時(shí)間則更優(yōu)。由于標(biāo)準(zhǔn)TLBO算法的“教”階段存在固有的原點(diǎn)偏倚,允許收斂的種群繼續(xù)沿著原點(diǎn)的方向搜索更好的解決方案,從而對(duì)原點(diǎn)最優(yōu)問題能取得更好的優(yōu)化效果。對(duì)非原點(diǎn)最優(yōu)問題,標(biāo)準(zhǔn)TLBO算法在種群收斂到局部最優(yōu)時(shí),要么繼續(xù)利用局部最優(yōu)信息,要么沿著原點(diǎn)方向繼續(xù)探索,由于最優(yōu)解在原點(diǎn)以外的點(diǎn)上,沿原點(diǎn)方向的搜索幾乎毫無意義,所以無法進(jìn)一步獲得高精度的解;而采用各分量取值于 [-1,1]的隨機(jī)向量,使得搜索范圍成倍擴(kuò)大,算法跳出局部最優(yōu)的能力得到提高,獲得最優(yōu)解的概率變大,隨著迭代的 進(jìn)行,能取得更好的優(yōu)化效果。
標(biāo)準(zhǔn)TLBO算法中,由于教師和學(xué)習(xí)對(duì)象都屬于現(xiàn)有種群,所以無論是“教階段”還是“學(xué)階段”的操作都是在當(dāng)前位置的有限范圍內(nèi)進(jìn)行搜索,學(xué)習(xí)者都依據(jù)現(xiàn)有種群的經(jīng)驗(yàn)來提高自己的成績(jī),使得算法具有良好的開發(fā)性能,而跳出局部最優(yōu)的能力不足。為增強(qiáng)算法的全局搜索能力,使迭代過程中算法的探索與開發(fā)過程得到平衡,對(duì)“教”和“學(xué)”階段進(jìn)行改進(jìn),并使用隨機(jī)交叉策略和“自學(xué)”策略,來提高算法對(duì)復(fù)雜多模態(tài)問題的優(yōu)化性能。
當(dāng)班級(jí)中學(xué)生成績(jī)差異較大時(shí),最差成績(jī)往往會(huì)拉低班級(jí)的平均水平,如果教學(xué)過程中重點(diǎn)加強(qiáng)對(duì)最差生的關(guān)注,使其成績(jī)得到大幅度提高,縮小與班級(jí)其他同學(xué)間的差距,則可以加快班級(jí)整體水平的提升。故用班級(jí)中的成績(jī)最差者Xworst替 換班級(jí)平均水平 Xmean,即
式 中r1為各分量取值于 [- 1,1] 的隨機(jī)向量。
其中,r2為各分量取值于 [-1,1] 的隨機(jī)向量,k 是[1,NP] 中的一個(gè)隨機(jī)整數(shù),k≠j,t 為當(dāng)前迭代次數(shù),Tmax為最大迭代次數(shù)。在迭代初期,t 較小,(1-t/Tmax) 的值較大,學(xué)生間的相互討論更多,算法更加注重隨機(jī)性學(xué)習(xí),能夠維持種群多樣性,增大有效搜索范圍;隨著迭代的進(jìn)行,t 逐漸增大,(t/Tmax) 越來越大,學(xué)生會(huì)更多地向老師求教,逐漸側(cè) 重于有向性學(xué)習(xí),使算法的局部搜索能力增強(qiáng)。
3.3.1 隨機(jī)交叉策略
學(xué)生經(jīng)過“教”階段后,各自的成績(jī)會(huì)得到一定程度的提升,但彼此間的差距也會(huì)縮小,即種群的多樣性降低,而通過集體討論交流,每位學(xué)生都可以在不同科目上隨機(jī)地向班級(jí)中不同的同學(xué)求教,并達(dá)到該同學(xué)在此科目上的水平,這實(shí)際上就是種群間的一種隨機(jī)交叉過程,具體為
i=1,2,···,D,j=1,2,···,NP,k 是 [1,NP] 中的一個(gè)不同于 j 的隨機(jī)整數(shù),r and 為 [0,1] 間的隨機(jī)數(shù)。這里使用一種隨機(jī)概率來確定學(xué)習(xí)者與不同學(xué)習(xí)對(duì)象間的交流程度,通過進(jìn)行種群間的隨機(jī)交叉,能夠維 持種群的多樣性,提高算法跳出局部最優(yōu)的能力。
3.3.2 “自學(xué)”策略
實(shí)際學(xué)習(xí)過程中,部分學(xué)生在學(xué)習(xí)之余,也會(huì)根據(jù)自己當(dāng)前的學(xué)習(xí)狀況,挑選部分課程進(jìn)行“自學(xué)”,發(fā)掘新的知識(shí),從而提升自己的學(xué)業(yè)水平。具體如下:對(duì)第 i 門課程,產(chǎn)生一個(gè) [0,1] 間的隨機(jī)數(shù) r and,來用于選擇不同的“自學(xué)”方式。
i=1,2,···,D,j=1,2,···,NP 。其中, S DR(selfdevelopment rate, SDR)為自我拓展率,λ 表示自學(xué)步長(zhǎng),λmax、λmin分別為最大、最小步長(zhǎng)。
磁性纖維素對(duì)亞甲基藍(lán)的吸附過程受吸附反應(yīng)溫度、溶液pH值和吸附時(shí)間的影響,吸附的最佳實(shí)驗(yàn)條件是反應(yīng)溫度293 K;溶液pH值為7;吸附時(shí)間120 min。磁性纖維素對(duì)亞甲基藍(lán)的吸附動(dòng)力學(xué)特征用準(zhǔn)二級(jí)動(dòng)力學(xué)模型擬合較好;等溫吸附以Langmuir擬合最佳,由此可得磁性纖維素對(duì)亞甲基藍(lán)最大理論吸附容量為123.15 mg·g-1。
對(duì)每一科目,學(xué)生會(huì)根據(jù)自己當(dāng)前的知識(shí)水平隨機(jī)進(jìn)行自我調(diào)整,提高學(xué)習(xí)效率,自學(xué)步長(zhǎng)隨迭代的進(jìn)行由 λmax逐步動(dòng)態(tài)縮小為 λmin。搜索前期,步長(zhǎng)值較大,算法具有強(qiáng)的空間擾動(dòng)能力,有助于探索新的未知區(qū)域;隨著迭代的進(jìn)行,步長(zhǎng)值逐漸縮小,使得對(duì)當(dāng)前解的擾動(dòng)幅度變小,有利于提高解的精度,這樣一種動(dòng)態(tài)調(diào)整過程能有效平衡算法在搜索過程中的空間擾動(dòng)能力和局部尋優(yōu)能力。同時(shí),以概率 S DR 在搜索空間進(jìn)行隨機(jī)搜尋,進(jìn)行自我拓展學(xué)習(xí),可以增加算法的全局搜索能力。大量數(shù)值實(shí)驗(yàn)測(cè)試表明,自我拓展率取值不宜過大,當(dāng)SD R∈[0.01,0.1] 時(shí),算法會(huì)有較好的性能。
CSTLBO算法的具體流程如圖4所示。
圖 4 CSTLBO算法流程Fig. 4 Flow chart of CSTLBO algorithm
每次迭代過程中,對(duì)每位學(xué)生而言,依據(jù)選擇概率 SP來選擇“學(xué)”和“自學(xué)”兩種學(xué)習(xí)方式中的一種執(zhí)行,具體如下:
隨迭代的進(jìn)行,SP 的值從 S Pmax逐漸減小到SPmin,表明在迭代初期,同學(xué)之間的信息交流比較多,隨著學(xué)習(xí)的深入,當(dāng)學(xué)生的水平都得到較大提 升后,會(huì)更多地傾向于進(jìn)行自我探索學(xué)習(xí)。
為檢驗(yàn)CSTLBO算法在連續(xù)優(yōu)化問題中的性能,將其與6種TLBO的改進(jìn)算法(ATLS、
NTLBO、TLBO-GC、ITLBO、TLBO-CSWL、DSTLBO)在20個(gè)復(fù)雜Benchmark函數(shù)上進(jìn)行測(cè)試比較。將函數(shù)F1,F(xiàn)3~F4稱為原點(diǎn)最優(yōu)問題(它們?cè)谠c(diǎn)處得到了最優(yōu)值),其余的函數(shù)稱為非原點(diǎn)最優(yōu)問題,其中一些是通過對(duì)原點(diǎn)最優(yōu)問題進(jìn)行移位和旋轉(zhuǎn)得到的,移位函數(shù)取自CEC 2008,移位和旋轉(zhuǎn)函數(shù)取自CEC 2017。
F1為Ackley Function;F2為Michalewics Function;F3為Rastrigin Function;F4為Griewank Function;F5為Schwefel 2.26 Function;F6為Weierstrass Function;F7為FastFractal ‘DoubleDip’ Function;F8為Sphere Shift Function;F9為Ackley Shift Function;F10為Griewank Shift Function;F11為Rastrigin Shift Function;F12為Rosebrock shift Function;F13為Schaffer Shift Function;F14為Bohachevsky Shift Function;F15為Shifted and Rotated Rastrigin’s Function;F16為Shifted and Rotated Expanded Scaffer’sF6Function;F17為Shifted and Rotated Lunacek Bi_Rastrigin Function;F18為Shifted and Rotated Non-Continuous Rastrigin’s Function;F19為Shifted and Rotated Levy Function;F20為Shifted and Rotated Schwefel’s Function.
本文測(cè)試的環(huán)境為:戴爾PC機(jī)Intel Core(TM)i7-4790 3.6 GHz CPU,8 GB內(nèi)存;Window10操作系統(tǒng);MATLAB R2014b軟件。為保證測(cè)試的公平,各種算法采用相同的適應(yīng)度函數(shù)評(píng)價(jià)次數(shù):對(duì)F1~F14,評(píng)價(jià)次數(shù)MaxFEs=5 000×D;對(duì)F15~F20,MaxFEs=10 000×D,其中D為維數(shù)。比較算法的參數(shù)設(shè)置均參考于原文獻(xiàn),本文算法的參數(shù)設(shè)置為: N P=20, S Pmax=0.6, S Pmin=0.2,S DR=0.02,λmax=(xU-xL)/10,λmin=(xU-xL)/(1015)。
為避免偶然因素的影響,所有算法在D=100時(shí)都獨(dú)立運(yùn)行了30次,表2記錄了各種算法在20個(gè)測(cè)試函數(shù)上30次獨(dú)立實(shí)驗(yàn)的統(tǒng)計(jì)結(jié)果,對(duì)F1~F14,記錄了最優(yōu)目標(biāo)值的平均值和標(biāo)準(zhǔn)差,對(duì)F15~F20,記錄了最優(yōu)誤差的平均值和標(biāo)準(zhǔn)差。為檢驗(yàn)本文算法與比較算法之間的差異性,進(jìn)行了顯著性水平為0.05的Wilcoxon秩和檢驗(yàn),“+”、“-”、“≈”分別表示比較算法與本文算法的成績(jī)相比是好、差和相當(dāng)。
表 2 算法30次獨(dú)立測(cè)試結(jié)果(D=100)Table 2 Thirty times optimization results of the algorithm(D=100)
續(xù)表 2
從表2可以看出,所有比較算法在F1這個(gè)原點(diǎn)最優(yōu)問題上的收斂精度優(yōu)于本文算法,在F4上所有算法都能達(dá)到理論最優(yōu)值,除F20外,本文算法在余下的17個(gè)測(cè)試函數(shù)上的平均值和方差都優(yōu)于比較算法,說明所提算法對(duì)非原點(diǎn)最優(yōu)問題的優(yōu)化能力較強(qiáng),效果良好。從Wilcoxon符號(hào)秩檢驗(yàn)的結(jié)果來看,比較算法最多在4個(gè)問題上優(yōu)于或相當(dāng)于本文算法,而在其余測(cè)試問題上都明顯差于本文算法。
為進(jìn)一步分析實(shí)驗(yàn)結(jié)果,圖5~6給出了30次獨(dú)立運(yùn)行的平均最優(yōu)目標(biāo)值收斂曲線(D=100維),圖7~8給出了30次獨(dú)立運(yùn)行的最優(yōu)目標(biāo)值分布盒圖(D=100維)。
圖 5 測(cè)試函數(shù)F11的收斂性曲線Fig. 5 Convergence plot of benchmark function F11
圖 6 測(cè)試函數(shù)F19的收斂性曲線Fig. 6 Convergence plot of benchmark function F19
圖 7 測(cè)試函數(shù)F11的最優(yōu)目標(biāo)值分布盒圖Fig. 7 Boxplot of the optimal value distribution of benchmark function F11
圖 8 測(cè)試函數(shù)F19的最優(yōu)目標(biāo)值分布盒圖Fig. 8 Boxplot of the optimal value distribution of benchmark function F19
從收斂曲線圖不難看出,本文算法對(duì)兩個(gè)復(fù)雜優(yōu)化函數(shù)(Rastrigin Shift Function、Shifted and Rotated Levy Function)的收斂曲線呈逐漸下降趨勢(shì),收斂效果明顯優(yōu)于其他比較算法,說明本文算法的全局搜索能力較強(qiáng),不易陷入局部最優(yōu)。
從統(tǒng)計(jì)盒圖可以看出,本文算法30次獨(dú)立實(shí)驗(yàn)所得的最優(yōu)值的分布基本呈一條直線,差距很小,說明本文算法具有良好的穩(wěn)定性。
為檢驗(yàn)本文所使用的隨機(jī)交叉策略的有效性,選取了復(fù)雜的非原點(diǎn)最優(yōu)問題Weierstrass Function進(jìn)行了測(cè)試,函數(shù)Weierstrass Function具有多個(gè)極小值點(diǎn),算法很容易陷入局部最優(yōu)的狀況。設(shè)置維數(shù)D=30 , 種群大小 N P=20, 最大評(píng)價(jià)次數(shù)MaxFEs=150 000,對(duì)搜索過程中產(chǎn)生的所有搜索點(diǎn)和每代的最優(yōu)搜索點(diǎn)進(jìn)行了跟蹤記錄,用于觀察算法的搜索過程。圖9描繪了搜索點(diǎn)(取30維中的2維繪制)的分布圖。
圖 9 搜索點(diǎn)分布Fig. 9 Search point distribution
從圖9可以看出,未使用隨機(jī)交叉策略的搜索過程中,種群在多個(gè)局部極值處都有聚集,使得在相同評(píng)價(jià)次數(shù)下,無法進(jìn)行有效的開發(fā),所得解的精度不高;而使用了隨機(jī)交叉策略的搜索種群的分布很均勻,沒有發(fā)生陷入局部最優(yōu)的現(xiàn)象,大多數(shù)搜索點(diǎn)都聚集于最優(yōu)解附近,更多地來進(jìn)行局部開發(fā),說明隨機(jī)交叉策略能使算法有效 地跳出局部最優(yōu),增強(qiáng)算法的全局搜索能力。
為進(jìn)一步研究CSTLBO算法的收斂過程,以4個(gè)復(fù)雜非原點(diǎn)最優(yōu)測(cè)試函數(shù)(Schwefel 2.26 Function、Ackley Shift Function、Griewank Shift Function、Rastrigin Shift Function)為例進(jìn)行實(shí)驗(yàn)(取維數(shù)D=100),在搜索過程中跟蹤記錄了算法種群多樣性的變化,如圖10所示。種群多樣性[20]定義如下:
圖 10 4個(gè)復(fù)雜非原點(diǎn)最優(yōu)測(cè)試函數(shù)的種群多樣性曲線Fig. 10 Population diversity curves of four complex non- origin optimal benchmark function
從圖10可以看出,標(biāo)準(zhǔn)TLBO 算法在搜索初期多樣性明顯快速下降,然后在小范圍內(nèi)波動(dòng),前后期變化不是特別明顯,使得種群個(gè)體難以聚集到全局最優(yōu)解,因此求解精度不高;CSTLBO 算法在迭代初期,具有較高的種群多樣性,有利于進(jìn)行全局探索,隨著迭代的進(jìn)行,種群多樣性保持著持續(xù)下降的趨勢(shì),種群逐漸向全局最優(yōu)解聚集,有利于進(jìn)行局部開發(fā),從而能獲得高精度的全局解。
為提高對(duì)非原點(diǎn)最優(yōu)問題的優(yōu)化能力,本文提出了一種基于隨機(jī)交叉-自學(xué)策略的教與學(xué)優(yōu)化算法—CSTLBO。算法使用幾何方法分析了標(biāo)準(zhǔn)TLBO算法在“教”和“學(xué)”階段的擾動(dòng)狀況,改進(jìn)了 “教”和“學(xué)”階段,并引入了隨機(jī)交叉策略和“自學(xué)”策略來提高算法的全局搜索能力。仿真測(cè)試的統(tǒng)計(jì)結(jié)果表明,所提算法求解精度高,穩(wěn)定性好,能對(duì)較多的非原點(diǎn)最優(yōu)問題取得良好的優(yōu)化效果,尤其是對(duì)進(jìn)行了移位操作的復(fù)雜問題。但對(duì)同時(shí)進(jìn)行了移位和旋轉(zhuǎn)操作的問題,優(yōu)化結(jié)果雖優(yōu)于比較算法,但在求解精度上仍有提升空間,在后續(xù)研究中,可以進(jìn)一步研究改進(jìn),同時(shí)也可以將該算法應(yīng)用到實(shí)際的工程優(yōu)化問題,檢驗(yàn)其具體實(shí)用性。