翟軍昌,趙 震,張 萍
(1.渤海大學(xué) 信息科學(xué)與技術(shù)學(xué)院,遼寧 錦州 121013;2.鞍山師范學(xué)院 物理科學(xué)與技術(shù)學(xué)院,遼寧 鞍山 114005)
近年來,啟發(fā)式優(yōu)化算法受到越來越多的關(guān)注[1-7]。文獻(xiàn)[1]受教學(xué)過程中教師教學(xué)生和學(xué)生之間相互學(xué)習(xí)提高成績(jī)這一現(xiàn)象的啟發(fā),提出了教-學(xué)優(yōu)化算法(teaching-learning based optimization嗎,TLBO)。TLBO算法結(jié)構(gòu)簡(jiǎn)單,參數(shù)少,具有很好的收斂性,已經(jīng)成功應(yīng)用于解決工程中的優(yōu)化問題[8-10]。
TLBO算法自提出以來受到了廣泛關(guān)注[11-16]。文獻(xiàn)[11]在TLBO算法的基礎(chǔ)上引入了精英策略,提出了ETLBO算法。文獻(xiàn)[12]基于反向?qū)W習(xí)、隨機(jī)擾動(dòng)和隨機(jī)交叉策略提出了TLBOGC算法,雖然在教學(xué)階段結(jié)合擾動(dòng)策略提高解的質(zhì)量獲得了較好的全局搜索性能,但在學(xué)習(xí)階段基于差分進(jìn)化的思想引入隨機(jī)交叉操作增加了算法計(jì)算復(fù)雜度。文獻(xiàn)[13]通過借鑒其他學(xué)習(xí)者的學(xué)習(xí)經(jīng)驗(yàn)提出了LETLBO算法,但算法的局部搜索能力仍需要提高。文獻(xiàn)[14]提出了ITLBO算法,該算法在引入學(xué)生反饋的基礎(chǔ)上加入了差分進(jìn)化算法中的變異和交叉思想,同時(shí)又加入了噪聲擾動(dòng)策略,以提高算法的性能。然而,算法的計(jì)算復(fù)雜度也隨之增加,導(dǎo)致算法計(jì)算時(shí)間過長(zhǎng)。
文中受文獻(xiàn)[12]啟發(fā),提出了一種改進(jìn)教-學(xué)優(yōu)化算法(AITLBO),旨在提高算法的優(yōu)化性能。AITLBO算法在教學(xué)階段通過隨機(jī)擾動(dòng)策略提高教學(xué)效果,避免算法陷入局部最優(yōu),從而提高解的質(zhì)量。在學(xué)習(xí)階段引入了較差學(xué)生向優(yōu)秀學(xué)生學(xué)習(xí)和較優(yōu)學(xué)生向教師重新學(xué)習(xí)的策略,并結(jié)合自我學(xué)習(xí)的反思過程實(shí)現(xiàn)算法對(duì)解空間局部信息更精細(xì)的搜索,提高算法的局部搜索性能。最后通過仿真驗(yàn)證該算法的有效性。
TLBO算法通過教師向?qū)W生傳授知識(shí),學(xué)生從老師那里學(xué)到知識(shí)消化吸收提高之后,再通過學(xué)生之間的相互學(xué)習(xí)提高整個(gè)班級(jí)的成績(jī)。TLBO算法主要包括教學(xué)和學(xué)習(xí)兩個(gè)重要的階段。
在教學(xué)階段,將當(dāng)前最優(yōu)個(gè)體作為教師xteacher對(duì)其他個(gè)體進(jìn)行教學(xué),提高整個(gè)群體的平均值。假設(shè)當(dāng)前學(xué)生為xi,則教學(xué)階段產(chǎn)生的新解為
(1)
TF=round[1+rand]
(2)
在學(xué)習(xí)階段,TLBO算法通過兩個(gè)隨機(jī)選擇的學(xué)生個(gè)體進(jìn)行相互學(xué)習(xí),產(chǎn)生新的個(gè)體。假設(shè)在群體中隨機(jī)選擇兩個(gè)學(xué)生個(gè)體xi和xh,比較兩個(gè)學(xué)生個(gè)體對(duì)應(yīng)的目標(biāo)函數(shù)值f(xi)和f(xh),其中較差個(gè)體向較優(yōu)個(gè)體進(jìn)行學(xué)習(xí)。即
(3)
教師在教學(xué)過程中扮演著重要的角色,尤其是教師的知識(shí)積累和閱歷對(duì)學(xué)生的教學(xué)起著至關(guān)重要的作用。文獻(xiàn)[12]提出了一種擾動(dòng)策略,即在當(dāng)前最優(yōu)解與其他解之間進(jìn)行擾動(dòng),教師通過向其他學(xué)生學(xué)習(xí)提高解的質(zhì)量,提高教師的教學(xué)效果,從而阻止當(dāng)前最優(yōu)解陷入局部最優(yōu)。
在教學(xué)階段,學(xué)生xi向教師xteacher學(xué)習(xí)時(shí),隨機(jī)選擇一個(gè)學(xué)生xr且r≠teacher,對(duì)學(xué)生xi進(jìn)行隨機(jī)擾動(dòng)。對(duì)于任意產(chǎn)生的兩個(gè)隨機(jī)數(shù)rand1和rand2,若滿足rand1 xi,j=xteacher,j+Guass(0,1)×(xteacher,j-xr,j) (4) 其中,xi,j是學(xué)生xi的第j維分量,i=1,2,…,PopSize,j=1,2,…,D;Guass(0,1)是均值為0方差為1的高斯隨機(jī)數(shù)。 在學(xué)生相互學(xué)習(xí)的過程中,如果當(dāng)前學(xué)生是一名優(yōu)秀的學(xué)生,那么優(yōu)秀的學(xué)生通過自己的學(xué)習(xí)經(jīng)驗(yàn)為較差的學(xué)生提供幫助,并對(duì)其未來的學(xué)習(xí)提供有價(jià)值的指導(dǎo)作用。相反,相對(duì)較差的學(xué)生則會(huì)為其他學(xué)生的學(xué)習(xí)起到負(fù)面的影響,容易使其他學(xué)生成績(jī)變差。對(duì)于優(yōu)化問題而言,較優(yōu)解會(huì)對(duì)較差解的進(jìn)化起到引導(dǎo)作用,使其向較優(yōu)的方向逼近。而較差解對(duì)較優(yōu)解則會(huì)起到破壞作用,容易使較優(yōu)解在進(jìn)化過程中喪失某些特質(zhì)。因此,文中提出了一種不同的學(xué)習(xí)策略。 (1)學(xué)生之間相互學(xué)習(xí)。 對(duì)于任意一名學(xué)生xi,當(dāng)他遇到比自己優(yōu)秀的學(xué)生xr時(shí),學(xué)生xi通過與優(yōu)秀學(xué)生xr的交流可以學(xué)到更多的知識(shí),或者擴(kuò)展自己的知識(shí)積累。為使學(xué)生xi從其他優(yōu)秀學(xué)生身上獲得更多的知識(shí),即當(dāng)f(xi) (5) 通過式5,學(xué)生xi通過動(dòng)態(tài)學(xué)習(xí)策略,可以在學(xué)生xr附近區(qū)域內(nèi)隨機(jī)搜索。通過對(duì)xr附近信息的開發(fā)可以使學(xué)生xi追趕甚至超過學(xué)生xr。 對(duì)于任意一名學(xué)生xi,當(dāng)他遇到比自己較差的學(xué)生xr(f(xi)≥f(xr)),為避免較差學(xué)生xr對(duì)優(yōu)秀學(xué)生xi的負(fù)面影響,將其重新與教師xteacher學(xué)習(xí),當(dāng)f(xi)>f(xr)時(shí),采用下面的學(xué)習(xí)策略。 (6) 式6可以保證學(xué)生xi在學(xué)習(xí)中遇到較差的學(xué)生時(shí)總是向最優(yōu)的方向發(fā)展,避免較差學(xué)生對(duì)學(xué)生xi的負(fù)面影響,從而破壞解的結(jié)構(gòu)。 在學(xué)生相互學(xué)習(xí)過程中,當(dāng)前學(xué)生面對(duì)不同適應(yīng)度值的學(xué)習(xí)對(duì)象選擇不同的學(xué)習(xí)策略,可以使學(xué)生始終向最優(yōu)的方向逼近,提高學(xué)生的視野和學(xué)習(xí)的效率。 (2)自我反思學(xué)習(xí)。 在實(shí)際當(dāng)中,學(xué)生可以通過向老師和其他同學(xué)的學(xué)習(xí)提高自己的知識(shí)水平和能力。與此同時(shí),學(xué)生的自我反思理解和自我學(xué)習(xí)消化的過程,也可以使學(xué)生在各個(gè)方面得到提高。所以,通過學(xué)生之間的相互學(xué)習(xí)之后,每個(gè)學(xué)生既保持了自己的特質(zhì),又借鑒并繼承了其他優(yōu)秀學(xué)生的學(xué)習(xí)經(jīng)驗(yàn)。但是在這種相互學(xué)習(xí)策略之后,每個(gè)學(xué)生對(duì)知識(shí)的自我消化理解過程,也就顯得非常重要。 為了提高學(xué)生的學(xué)習(xí)效果,發(fā)揮學(xué)生自我學(xué)習(xí)的能力,在學(xué)生相互學(xué)習(xí)之后,通過下面的學(xué)習(xí)策略,讓學(xué)生進(jìn)行自我學(xué)習(xí)。即 (7) 其中,Guass(0,1)是高斯隨機(jī)數(shù)。 式7的引入,可以使學(xué)生在相互學(xué)習(xí)向最優(yōu)方向逼近的過程中,不斷進(jìn)行自我反思學(xué)習(xí)。對(duì)于算法而言,可以實(shí)現(xiàn)當(dāng)前學(xué)習(xí)個(gè)體在向全局最優(yōu)逼近的過程中實(shí)現(xiàn)對(duì)局部信息更加精細(xì)的搜索,從而跳出局部最優(yōu)。 在AITLBO算法中,學(xué)習(xí)階段初期通過較差學(xué)生向優(yōu)秀學(xué)生學(xué)習(xí)和優(yōu)秀學(xué)生向教師重新學(xué)習(xí)的策略,可以使學(xué)生在一個(gè)更廣泛的搜索空間內(nèi)對(duì)解空間學(xué)習(xí),使較差的學(xué)生向最優(yōu)的方向聚集,從而提高算法的全局搜索性能。在學(xué)習(xí)階段后期增加學(xué)生自學(xué)習(xí)的過程,發(fā)揮學(xué)生自我學(xué)習(xí)的能力,可以使學(xué)生對(duì)自身所學(xué)知識(shí)進(jìn)行擴(kuò)展,提高其局部搜索能力,避免受局部最優(yōu)的困擾。 AITLBO優(yōu)化算法的工作流程為: Step1:定義優(yōu)化問題初始化算法參數(shù)。 優(yōu)化問題定義為: (8) 其中,f(x)是目標(biāo)函數(shù);xjL和xjU分別是決策變量xj的上界和下界;D是決策變量的維數(shù)。 Step2:初始化種群。 根據(jù)種群大小和決策變量的數(shù)量,按照式9隨機(jī)產(chǎn)生一個(gè)初始種群。 xi,j=xjL+rand×(xjU-xjL) (9) 其中,i=1,2,…,Popsize,j=1,2,…,D。 Step3:教學(xué)階段。 Step4:學(xué)習(xí)階段。 對(duì)于任意的學(xué)生xi,隨機(jī)選擇一名學(xué)生xr,如果f(xi) Step5:終止準(zhǔn)則。 如果滿足最大迭代次數(shù),終止程序運(yùn)行,否則執(zhí)行Step3。 為了驗(yàn)證AITLBO算法的性能,文中將其與TLBO[1]、ETLBO[11]、LETLBO[13]、TLBOGC[12]、GWO[4]和ABC[5]幾種優(yōu)化算法進(jìn)行性能測(cè)試。在實(shí)驗(yàn)中選取優(yōu)化算法5個(gè)經(jīng)典標(biāo)準(zhǔn)測(cè)試函數(shù),具體表達(dá)如下: f1:Sphere函數(shù)。 其中,-100≤xi≤100,全局最優(yōu)為0。 f2:Rosenbrock函數(shù)。 其中,-100≤xi≤100,全局最優(yōu)為0。 f3:Ackley函數(shù)。 其中,-100≤xi≤100,全局最優(yōu)為0。 f4:Shifted Rosenbrocks函數(shù)。 其中,zi=xi-oi;oi是偏移量,-100≤xi≤100,全局最優(yōu)為-390。 f5:Shifted rotated Griewank函數(shù)。 其中,zi=xi-oi;oi是偏移量,-100≤xi≤100,全局最優(yōu)為-180。 在仿真實(shí)驗(yàn)中,TLBO、ETLBO、LETLBO、TLBOGC和AITLBO算法的種群大小Popsize=40;ABC算法種群大小取80,limit=50;GWO算法種群大小取80。 當(dāng)向量空間維數(shù)D=50時(shí),所有算法迭代次數(shù)取Gn=3 000,當(dāng)向量空間維數(shù)D=100時(shí),所有算法迭代次數(shù)取Gn=4 000,分別用Best代表最優(yōu)值,Worst代表最差值,Mean代表平均值,Std代表方差,5個(gè)函數(shù)的測(cè)試結(jié)果分別如表1和表2所示。 表1 標(biāo)準(zhǔn)函數(shù)測(cè)試結(jié)果(D=50) 從函數(shù)f1的優(yōu)化結(jié)果可知,幾種教-學(xué)優(yōu)化算法不論在低維空間還是高維空間均可以搜索到最優(yōu)解,而且所得到的最差值和平均值均與最優(yōu)解相同,其優(yōu)化效果明顯優(yōu)于GWO和ABC算法的結(jié)果。 雖然ABC算法在低維空間中對(duì)函數(shù)f2的優(yōu)化結(jié)果優(yōu)于其他幾種算法,但在高維空間中其優(yōu)化效果相對(duì)較差。相比之下,文中AITLBO算法在高維空間中對(duì)函數(shù)f2的優(yōu)化精度明顯優(yōu)于其他幾種算法。 從函數(shù)f3的優(yōu)化結(jié)果可以看出,文中AITLBO算法在低維空間和高維空間均可以搜索到最優(yōu)解,而且所得到的最差值和平均值均與最優(yōu)解相同。TLBO、TLBOGC、GWO和ABC算法均陷入了局部最優(yōu),而ETLBO和LETLBO算法在低維空間和高維空間中均可以搜索到最優(yōu)解,但通過均值和方差兩項(xiàng)指標(biāo)來看算法的穩(wěn)定性相對(duì)較差。 從函數(shù)f4的優(yōu)化結(jié)果可知,幾種優(yōu)化算法均陷入了局部最優(yōu)。其中TLBOGC、ABC和AITLBO算法的優(yōu)化結(jié)果相對(duì)較好,而AITLBO算法所得均值和方差均優(yōu)于其他幾種算法的優(yōu)化結(jié)果。 從函數(shù)f5的優(yōu)化結(jié)果可知,TLBOGC和AITLBO算法的優(yōu)化結(jié)果明顯優(yōu)于其他幾種算法的結(jié)果。在低維空間中兩種算法都可以搜索到最優(yōu)解,但AITLBO算法優(yōu)化得到的均值和方差明顯優(yōu)于TLBOGC算法。在高維空間中,兩種算法的優(yōu)化精度都有所下降,但是AITLBO算法所得結(jié)果明顯優(yōu)于其他幾種算法所得結(jié)果。 從表1和表2中5個(gè)函數(shù)的優(yōu)化結(jié)果整體來看,AITLBO算法的尋優(yōu)精度和穩(wěn)定性明顯優(yōu)于其他幾種算法。 針對(duì)教-學(xué)優(yōu)化算法過早收斂,容易陷入局部最優(yōu)的問題,提出了一種改進(jìn)教-學(xué)優(yōu)化算法(AITLBO)。AITLBO算法避免了在進(jìn)化過程中較差學(xué)生對(duì)較優(yōu)學(xué)生的影響,并引入了自我反思學(xué)習(xí)提高了算法對(duì)局部信息的開發(fā)能力。利用優(yōu)化算法5個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)對(duì)AITLBO算法與其他幾種優(yōu)化算法進(jìn)行尋優(yōu)效果比較,仿真結(jié)果表明AITLBO算法的尋優(yōu)性能得到了有效的提升,驗(yàn)證了算法的有效性和穩(wěn)定性。2.2 改進(jìn)學(xué)習(xí)階段
2.3 AITLBO算法流程
3 仿真實(shí)驗(yàn)
4 結(jié)束語