童 楠,符 強(qiáng),2,鐘才明
(1.寧波大學(xué) 科學(xué)技術(shù)學(xué)院,浙江 寧波 315212; 2.寧波大學(xué) 電路與系統(tǒng)研究所,浙江 寧波 315211)(*通信作者電子郵箱fuqiang@nbu.edu.cn)
群體智能方法源于對(duì)簡單社會(huì)系統(tǒng)的模擬,描述了個(gè)體通過相互之間的信息交互機(jī)制進(jìn)行合作,通過協(xié)作表現(xiàn)出宏觀智能行為的群體特征,已成為人工智能領(lǐng)域的新研究熱點(diǎn)。與其他方法相比,群體智能方法在魯棒性、可擴(kuò)展性、支持分布式并行計(jì)算等方面都體現(xiàn)出明顯優(yōu)勢(shì),具有很好的應(yīng)用開發(fā)前景。
教與學(xué)優(yōu)化(Teaching-Learning-Based Optimization, TLBO)算法[1]是近年來發(fā)展較快的一種新型群體智能方法。TLBO算法利用班級(jí)代表所求問題的解空間,班級(jí)中的每一名學(xué)生則對(duì)應(yīng)解空間中的一個(gè)解。所有學(xué)生通過教師的課堂教學(xué)學(xué)習(xí)科目知識(shí),同時(shí)向身邊的同學(xué)請(qǐng)教,不斷增加自己對(duì)科目的知識(shí)理解。通過學(xué)生群體的迭代學(xué)習(xí)交流,班級(jí)整體知識(shí)水平將逐步提高,最終完成對(duì)解空間的搜索過程,獲取問題的最優(yōu)解。
TLBO算法結(jié)構(gòu)簡單、搜索能力較強(qiáng),在空氣動(dòng)力設(shè)計(jì)[2]、車間調(diào)度[3]、風(fēng)力發(fā)電[4]、網(wǎng)絡(luò)規(guī)劃[5]、電力調(diào)節(jié)[6]等眾多領(lǐng)域中已得到較好的應(yīng)用與推廣。然而,在求解高維復(fù)雜非線性問題時(shí),TLBO算法也存在易陷入局部最優(yōu)區(qū)域、發(fā)生早熟收斂等問題。為提高算法優(yōu)化性能,文獻(xiàn)[7]通過調(diào)節(jié)教師人數(shù)、采用自適應(yīng)教學(xué)因子、增加討論學(xué)習(xí)等手段來激勵(lì)學(xué)生學(xué)習(xí)興趣,優(yōu)化TLBO算法的全局搜索能力;文獻(xiàn)[8]提出一種基于精英機(jī)制的TLBO算法,保留每次迭代所產(chǎn)生的精英學(xué)生,不斷加強(qiáng)學(xué)生群體的學(xué)習(xí)能力,強(qiáng)化算法的優(yōu)化性能;文獻(xiàn)[9]通過建立高斯分布模型以實(shí)現(xiàn)更多樣化的教師選擇,并利用隨機(jī)搜索來平衡局部勘探與全局開發(fā)的雙重要求,提高了TLBO算法的搜索性能;文獻(xiàn)[10]在TLBO算法中引入動(dòng)態(tài)自適應(yīng)學(xué)習(xí)因子及動(dòng)態(tài)隨機(jī)搜索機(jī)制,提高了算法的求解精度;文獻(xiàn)[11]將Nelder-Mead單純形算法的局部優(yōu)化思想融入TLBO算法中,利用擴(kuò)展、反射、收縮等操作不斷修正,提升算法的搜索精度。
本文分析了TLBO算法易于發(fā)生早熟現(xiàn)象的機(jī)制原因,并從教學(xué)過程完整性出發(fā),提出一種基于自主學(xué)習(xí)行為的TLBO(Self-learning Mechanism-based TLBO, SLTLBO)算法,在教師常規(guī)教學(xué)以及同伴影響之外,強(qiáng)調(diào)學(xué)生的自主學(xué)習(xí)行為與反思對(duì)于提高自身科目認(rèn)知能力的重要作用,并通過標(biāo)準(zhǔn)測(cè)試函數(shù)對(duì)其進(jìn)行了性能驗(yàn)證。
在TLBO算法中,學(xué)生主要通過兩個(gè)階段獲取科目知識(shí),提升自身水平。首先是“教”階段,學(xué)生將在課堂上接受教師的傳統(tǒng)授課,進(jìn)行科目知識(shí)學(xué)習(xí);其次是“學(xué)”階段,每名學(xué)生與身邊同學(xué)進(jìn)行相互交流比較,進(jìn)一步加深對(duì)于科目內(nèi)容的理解。
“教”階段模擬教師的課堂教學(xué)過程。在該階段中,教師對(duì)班級(jí)內(nèi)所有學(xué)生進(jìn)行統(tǒng)一授課,時(shí)時(shí)監(jiān)測(cè)整個(gè)班級(jí)的接受程度,并對(duì)平均水平進(jìn)行調(diào)節(jié),以達(dá)到提高全班整體水平的目的?!敖獭彪A段示意圖如圖1(a)所示。
班級(jí)里的任意一名學(xué)生Xi在”教”階段接受教師授課后,所產(chǎn)生的知識(shí)更新描述如式(1)所示:
Xi(t+1)=Xi(t)+r1*(Xteacher(t)-TF*mean)
(1)
其中:教學(xué)因子TF=round[1+rand(0,1)],取值為1或者2,決定教師對(duì)班級(jí)內(nèi)學(xué)生群體的教學(xué)力度;平均個(gè)體mean代表班級(jí)平均水平;隨機(jī)數(shù)r1在[0,1]區(qū)間取值。
“學(xué)”階段模擬學(xué)生之間的交流學(xué)習(xí)。班級(jí)內(nèi)所有學(xué)生聽取教師傳授科目知識(shí)以后,每個(gè)個(gè)體均獲得不同程度的知識(shí)掌握水平,此時(shí)學(xué)生根據(jù)自身對(duì)科目知識(shí)的理解,在班級(jí)中隨機(jī)尋找其他學(xué)生進(jìn)行討論,并對(duì)比其他同學(xué)與自己的差異,提升自己的知識(shí)理解能力?!皩W(xué)”階段示意圖如圖1(b)所示。
圖1 TLBO算法的“教”與“學(xué)”階段示意圖Fig. 1 Schematic diagram of TLBO algorithm for "Teaching" and "Learning" stages
學(xué)生Xi在“學(xué)”階段中得到的知識(shí)更新描述如下所示:
Xi(t+1)=
(2)
其中:隨機(jī)數(shù)r2、r3在[0,1]區(qū)間取值,f(Xi(t))、f(Xj(t))對(duì)應(yīng)學(xué)生Xi、Xj的科目成績。式(2)表明,如果學(xué)生Xj的科目成績優(yōu)于學(xué)生Xi的科目成績,則學(xué)生Xi向?qū)W生Xj執(zhí)行同向?qū)W習(xí);反之,學(xué)生Xi執(zhí)行反向?qū)W習(xí)。
在TLBO算法中,教師通過”教”階段帶領(lǐng)全體學(xué)生實(shí)現(xiàn)整體水平提升,不斷趨向問題最優(yōu)解;同時(shí)每個(gè)學(xué)生通過向身邊同伴學(xué)習(xí),拓展多樣化的學(xué)習(xí)途徑,進(jìn)一步提高自己對(duì)知識(shí)的掌握層次。與其他同類群體智能方法相比較,TLBO算法具有更多的學(xué)習(xí)途徑,在求解問題時(shí)表現(xiàn)出較高的收斂速度及較好的收斂精度。
然而,在實(shí)際教學(xué)過程中,學(xué)生個(gè)體的個(gè)性化學(xué)習(xí)對(duì)于其能力的提升起著極其重要的作用。班級(jí)內(nèi)的學(xué)生群體具有多元智力層次,在相同授課模式下表現(xiàn)出的接受能力不同;同時(shí)每名學(xué)生作為一個(gè)獨(dú)立個(gè)體,學(xué)習(xí)風(fēng)格也各不相同。因此,應(yīng)當(dāng)允許每個(gè)個(gè)性化的學(xué)生進(jìn)行差異化學(xué)習(xí)。然而在TLBO算法中,”教”階段中的教師依據(jù)班級(jí)平均零水平組織同一尺度的教學(xué)活動(dòng),忽視了學(xué)生在學(xué)習(xí)中表現(xiàn)出的差異性,壓制了學(xué)生個(gè)體的學(xué)習(xí)主動(dòng)性,因此使得學(xué)生群體過早表現(xiàn)出趨同性,抑制了學(xué)生群體的再提升能力。雖然學(xué)生在“學(xué)”階段可以通過與其他同伴的溝通來獲取更多的學(xué)習(xí)機(jī)會(huì),但是,由于其他同伴具備的知識(shí)水平也非常有限,制約了有效信息的交互與獲取,因此需要在TLBO算法中構(gòu)建更為完善的教學(xué)模式,從而提高算法的搜索性能。
由2.1節(jié)分析可知,TLBO算法中的教學(xué)環(huán)節(jié)設(shè)置不夠完善,其統(tǒng)一教學(xué)模式不利于調(diào)動(dòng)所有學(xué)生的主觀能動(dòng)性。由于學(xué)生個(gè)體無法充分發(fā)揮自身的學(xué)習(xí)能力,最終影響整體的學(xué)習(xí)效果,因此在求解復(fù)雜非線性優(yōu)化問題時(shí),容易過早陷入局部最優(yōu)區(qū)域。鑒于此,本文從教學(xué)環(huán)節(jié)設(shè)計(jì)出發(fā),對(duì)TLBO算法實(shí)施了以下優(yōu)化措施。
2.2.1自主學(xué)習(xí)階段
學(xué)生Xi在接受課堂教學(xué),并經(jīng)過同伴交流之后,應(yīng)當(dāng)根據(jù)自己的學(xué)習(xí)特點(diǎn),主動(dòng)分析自己當(dāng)前的學(xué)習(xí)效能,并采取多樣化學(xué)習(xí)行為,真正實(shí)現(xiàn)自我提升。首先學(xué)生Xi對(duì)比自己與教師的差距,向教師要求靠攏,彌補(bǔ)自身不足,進(jìn)行同向?qū)W習(xí);同時(shí)考察全班其他同學(xué)的學(xué)習(xí)情況,找出學(xué)習(xí)最差的學(xué)生Xworst,吸取其教訓(xùn),并參照學(xué)生Xworst與自己的差異,進(jìn)行反向?qū)W習(xí),以期獲得更好的知識(shí)理解。自主學(xué)習(xí)階段的數(shù)學(xué)描述如式(3)所示:
Xi(t+1)=Xi(t)+r4*(Xteacher(t)-Xi(t))-
r5*(Xworst(t)-Xi(t))
(3)
其中,隨機(jī)數(shù)r4、r5在[0,1]區(qū)間取值。式(3)表明學(xué)生Xi綜合考慮最優(yōu)個(gè)體(教師Xteacher)、最差個(gè)體(Xworst)與自己的差異性后,分別執(zhí)行靠近與遠(yuǎn)離的多樣化操作,以獲取更好的科目成績。
2.2.2反思階段
反思活動(dòng)是學(xué)生吸收外來信息,完成外向?qū)W習(xí)活動(dòng)后發(fā)起的內(nèi)在思考,是促進(jìn)學(xué)生開展有效學(xué)習(xí)的積極探索活動(dòng),具有個(gè)性化創(chuàng)新的特征,能幫助學(xué)生實(shí)現(xiàn)自我超越,優(yōu)化思維品質(zhì),有效促進(jìn)學(xué)生對(duì)科目知識(shí)的認(rèn)知水平。學(xué)生Xi進(jìn)行反思行為的數(shù)學(xué)描述如式(4)所示:
Xi(t+1)=normrnd(Xi(t), |Xteacher-Xi(t)|)
(4)
其中:normrnd為滿足高斯分布的隨機(jī)數(shù);Xi(t)、|Xteacher-Xi(t)|分別決定高斯函數(shù)的均值與方差。式(4)說明,學(xué)生Xi將對(duì)自己現(xiàn)有學(xué)習(xí)狀況進(jìn)行深入思考,并對(duì)照教師標(biāo)準(zhǔn)進(jìn)行反思改進(jìn),自發(fā)產(chǎn)生變異性調(diào)整,有效預(yù)防自身停滯在原有水平,完善自己的知識(shí)掌握能力。
SLTLBO算法流程如下,算法的時(shí)間復(fù)雜度為O(m2) 。
BEGIN
初始化,隨機(jī)設(shè)置學(xué)生狀態(tài),設(shè)置學(xué)生數(shù)m、收斂條件等;
計(jì)算每名學(xué)生的科目成績(適應(yīng)度值);
FORi=1 TOIteration
/*Iteration為迭代次數(shù)*/
執(zhí)行”教”階段,利用式(1)對(duì)學(xué)生進(jìn)行狀態(tài)更新,如果更新后學(xué)生的科目成績更優(yōu),則替換更新前學(xué)生;
執(zhí)行“學(xué)”階段,利用式(2)對(duì)學(xué)生進(jìn)行狀態(tài)更新,如果更新后學(xué)生的科目成績更優(yōu),則替換更新前學(xué)生;
執(zhí)行自主學(xué)習(xí)階段,利用式(3) 對(duì)學(xué)生進(jìn)行狀態(tài)更新,如果更新后學(xué)生的科目成績更優(yōu),則替換更新前學(xué)生;
執(zhí)行反思階段,利用式(4) 對(duì)學(xué)生進(jìn)行狀態(tài)更新,如果更新后學(xué)生的科目成績更優(yōu),則替換更新前學(xué)生;
對(duì)所有學(xué)生個(gè)體進(jìn)行域約束;
結(jié)束迭代,輸出結(jié)果。
END
本文選取了10個(gè)標(biāo)準(zhǔn)Benchmark測(cè)試函數(shù)對(duì)SLTLBO算法進(jìn)行性能驗(yàn)證,其中f1~f5為連續(xù)性單峰函數(shù),f6~f10為連續(xù)性多峰函數(shù),均為具有普遍性、代表不同數(shù)據(jù)特征的測(cè)試函數(shù),常用于檢測(cè)優(yōu)化算法的全局搜索能力。其表達(dá)式與相關(guān)參數(shù)如表1所示。
為了更好說明SLTLBO算法的優(yōu)化性能,本文利用PSO算法[12]、ABC算法[13]以及TLBO算法[8]與SLTLBO算法一起進(jìn)行測(cè)試對(duì)比。文中所涉及測(cè)試算法均在Windows XP操作系統(tǒng)下,通過Matlab 2013編譯調(diào)試。硬件環(huán)境為Inter Pentium CPU G645(2.9 GHz) 1.82 GB內(nèi)存。
所有算法的參數(shù)設(shè)置:種群規(guī)模大小為50,最大迭代次數(shù)為1 000。測(cè)試數(shù)據(jù)變量維數(shù)分別為30、100;另外,PSO算法的慣性權(quán)重在[0.2,0.9]區(qū)間線性遞減,c1=c2=2。
為減少單次算法操作的偏頗性,文中所有算法針對(duì)每個(gè)測(cè)試函數(shù)各獨(dú)立運(yùn)行20次,統(tǒng)計(jì)20次測(cè)試結(jié)果的均值衡量算法收斂精度,并通過20次結(jié)果的方差對(duì)比算法魯棒性。分別在變量維數(shù)為30及100的條件下進(jìn)行了兩組測(cè)試,結(jié)果如表2、3所示。表2顯示,在30維的10個(gè)函數(shù)優(yōu)化測(cè)試中,ABC算法未能得到理論最優(yōu)值,PSO算法僅在f8函數(shù)測(cè)試中獲得理論最優(yōu)值,TLBO算法在f8、f10兩個(gè)測(cè)試函數(shù)中獲取理論最優(yōu)值,而SLTLBO算法在f1、f3、f7、f8、f9、f10等6個(gè)函數(shù)中搜索到理論最優(yōu)值。從整體函數(shù)測(cè)試結(jié)果來看,SLTLBO
算法明顯具有更好的收斂精度,搜索能力優(yōu)于其他對(duì)比算法。表3顯示,當(dāng)變量維數(shù)增加到100時(shí),PSO算法、ABC算法、TLBO算法的搜索能力明顯減弱,如ABC算法在30維f4函數(shù)優(yōu)化過程中表現(xiàn)出較好的搜索性能,但是在100維f4函數(shù)的優(yōu)化結(jié)果中卻表現(xiàn)最差。而STLBO算法則表現(xiàn)出更加顯著的優(yōu)勢(shì),10個(gè)測(cè)試函數(shù)均獲得最好的優(yōu)化結(jié)果,并依然在f1、f3、f7、f8、f10等5個(gè)函數(shù)中搜索到理論最優(yōu)值,在100維函數(shù)的測(cè)試結(jié)果中也體現(xiàn)出其精準(zhǔn)搜索的能力。表2、3的測(cè)試結(jié)果還顯示,SLTLBO算法在維數(shù)不同的兩組測(cè)試中,針對(duì)10個(gè)函數(shù)的20次優(yōu)化結(jié)果方差均很小,這說明SLTLBO算法在處理高維復(fù)雜問題時(shí)同時(shí)也具備較好的魯棒性。
為了更直觀地觀察SLTLBO算法的搜索性能,比較SLTLBO算法與其他各算法在搜索效率方面的差異性,繪制f1~f10的適應(yīng)度進(jìn)化曲線及統(tǒng)計(jì)盒圖,限于篇幅限制,只列出變量維數(shù)為30時(shí)的圖形,如圖2~11所示。
表1 標(biāo)準(zhǔn)測(cè)試函數(shù)Tab. 1 Standard function used in the experiment
表2 30維函數(shù)測(cè)試結(jié)果對(duì)比Tab. 2 Comparison of test results of 30 dimensional functions
表3 100維函數(shù)測(cè)試結(jié)果對(duì)比Tab. 3 Comparison of test results of 100 dimensional functions
從進(jìn)化曲線可以看出,SLTLBO算法在200代內(nèi)即完成了f4、f6、f7、f8、f10等5個(gè)函數(shù)的目標(biāo)優(yōu)化過程,在其他5個(gè)函數(shù)的進(jìn)化曲線中也具有最大的曲線斜率,這表明SLTLBO算法在搜索過程中能夠迅速判斷優(yōu)化路徑,具有較強(qiáng)的搜索效率;而從統(tǒng)計(jì)盒圖可以看出,不同函數(shù)測(cè)試條件下,PSO、ABC和TLBO算法在20次優(yōu)化結(jié)果中的不確定性較明顯,波動(dòng)區(qū)間較大,而SLTLBO算法在所有函數(shù)測(cè)試中均具有較小的方差,表現(xiàn)出很好的算法穩(wěn)定性。
本文分析了TLBO算法的優(yōu)化機(jī)制及其易于陷入早熟收斂的原因,從完善教學(xué)環(huán)節(jié)出發(fā),提出了一種基于自主學(xué)習(xí)行為的TLBO算法(SLTLBO),在傳統(tǒng)TLBO算法中的“教”與“學(xué)”階段的基礎(chǔ)上,突出學(xué)生自主學(xué)習(xí)的重要性,利用自主學(xué)習(xí)環(huán)節(jié)及反思行為增強(qiáng)學(xué)生的學(xué)習(xí)能力,提升其知識(shí)水平。利用10個(gè)Benchmark測(cè)試函數(shù)驗(yàn)證了算法搜索能力,并與PSO、ABC和TLBO等算法進(jìn)行了優(yōu)化性能對(duì)比,實(shí)驗(yàn)結(jié)果表明,本文提出的SLTLBO算法在收斂精度、收斂速度和魯棒性等方面均具有明顯優(yōu)勢(shì)。今后的研究內(nèi)容主要包括SLTLBO算法的理論分析,以及算法中的結(jié)構(gòu)、參數(shù)設(shè)置對(duì)尋優(yōu)效果的影響研究。
參考文獻(xiàn):
[1]RAO R V, SAVSANI V J, VAKHARIA D P. Teaching-learning-based optimization: a novel method for constrained mechanical design optimization problems [J]. Computer-Aided Design, 2011, 43(3): 303-315.
[2]QU X, ZHANG R, LIU B, et al. An improved TLBO based memetic algorithm for aerodynamic shape optimization [J]. Engineering Applications of Artificial Intelligence, 2017, 57: 1-15.
[3]朱傳軍,宋文家,張超勇,等.基于維修時(shí)間窗的柔性作業(yè)車間調(diào)度優(yōu)化研究[J].中國機(jī)械工程,2016,27(10):1337-1343. (ZHU C J, SONG W J, ZHANG C Y, et al. Research on optimization of FJSP based on maintenance time window [J]. China Mechanical Engineering, 2016, 27(10): 1337-1343.)
[4]Gü?YETMEZ M, ?AM E. A new hybrid algorithm with genetic-teaching learning optimization (G-TLBO) technique for optimizing of power flow in wind-thermal power systems [J]. Electrical Engineering, 2016, 98(2): 145-157.
[5]SELVAM K, VINOD KUMAR D M, SIRIPURAM R. Distributed generation planning using peer enhanced multi-objective teaching-learning based optimization in distribution networks [J]. Journal of the Institution of Engineers (India): Series B, 2016, 98(2): 203-211.
[6]SAHU R K, PANDA S, ROUT U K, et al. Teaching learning based optimization algorithm for automatic generation control of power system using 2-DOF PID controller [J]. International Journal of Electrical Power & Energy Systems, 2016, 77: 287-301.
[7]RAMA KRISHNA P V, SAO S. An improved TLBO algorithm to solve profit based unit commitment problem under deregulated environment [J]. Procedia Technology, 2016, 25: 652-659.
[8]RAO R V, PATEL V. Comparative performance of an elitist teaching-learning-based optimization algorithm for solving unconstrained optimization problems [J]. International Journal of Industrial Engineering Computations, 2013, 4(1): 29-50.
[9]OUYANG H, WANG Q, KONG X. Modified teaching-learning based optimization for 0-1 knapsack optimization problems [C]// Proceedings of the 29th Chinese Control and Decision Conference. Piscataway, NJ: IEEE, 2017: 973-977.
[10]王培崇.改進(jìn)的動(dòng)態(tài)自適應(yīng)學(xué)習(xí)教與學(xué)優(yōu)化算法[J].計(jì)算機(jī)應(yīng)用,2016,36(3):708-712. (WANG P C. Improved dynamic self-adaptive teaching-learning-based optimization algorithm [J]. Journal of Computer Applications, 2016, 36(3): 708-712.)
[11]ZHANG H, LI B, ZHANG J, et al. Parameter estimation of nonlinear chaotic system by improved TLBO strategy [J]. Soft Computing, 2016, 20(12): 4965-4980.
[12]DASHTI S E, RAHMANI A M. Dynamic VMs placement for energy efficiency by PSO in cloud computing [J]. Journal of Experimental & Theoretical Artificial Intelligence, 2016, 28(1/2): 97-112.