劉 印,李 丹
(東北大學秦皇島分校,河北 秦皇島 066000)
教與學優化算法是印度學者Rao等在2011年提出的一種算法,是現代元啟發式算法之一。它的原理是通過模擬傳統的課堂教學中老師對學生的教授,以及學生自己的自學這兩個過程,來達到尋優的目的[1]。自算法提出就獲得了世界各地的學者關注,并被考慮作為解決復雜優化問題的最優算法之一。自算法提出以來,被用于多個領域。例如,Rao等用教與學算法來優化無約束函數和約束函數。華潔等[2]用教與學算法對沼氣的液化換熱器結構進行了優化。何紅等[3]利用改進的教與學算法對旅游線路進行了優化。To等用教與學算法對平面鋼框架的設計進行了優化。Basu等用教與學算法處理多區域的經濟負荷分配問題。拓守恒等[4]使用教與學優化算法對神經網絡中的權值和閥值進行了一定優化。

學生根據教師Xteacher和學生的平均值Xmean之間的差異進行學習:

學生之間可以通過互動來提高他們的水平:

在“教學階段”和“學習階段”完成之后,執行貪婪選擇策略決定是否更新適應度和學生的成績。
在教學過程的前期,因為老師和學生之間的差距很大,且學生對于要學習的知識比較陌生,所以學生的學習效率較高,學習知識快。而在經歷了一段時間的學習后,學生所掌握的知識逐漸增多,與老師的差距漸漸縮小,學習的效率逐漸下降。為了解決此問題,引入自適應教學因子:

其中,TFmin為教學因子最小值;TFmax為教學因子最大值;tmax是最大迭代次數;ti是當前迭代次數。
在學習階段引入基于差分進化思想的多樣化學習方法。當選擇的學生Xj優于學生Xi時,期望學生Xi接近更好的學生Xj以提高解決方案的質量。同時,學生的互相學習也受到老師的指導,學生和老師的水平相差越大,受到的影響也越大。

當所選擇的學生Xj比學生Xi差時,隨機從班級選出另外兩個學生Xr1和Xr2,借鑒DE交叉和選擇環節生成Xinew。

CR為DE中的交叉因子。這種改進不僅在學習階段中合理控制老師的影響,還使更多的學生參與到了當前學生的學習過程,提高了種群的多樣性。
為對本文算法性能進行評價,本節選取9個具有不同屬性的測試函數進行評估,并與5種改進的教與學優化算法(Teaching Learning Based Optimization,TLBO)算法比較。其中F1-F4單峰函數,而F5-F9是多峰函數。所有測試函數在D=30的維度上進行測試。種群數量NP設置為40,迭代次數為1 000,每個函數獨立測試30次。
圖1顯示了幾種算法在9個測試函數上的迭代曲線,其中,t為迭代次數,縱坐標F為適應度函數值。為方便觀察將其取log值,曲線越靠近下方則代表收斂性能越優秀。
圖1顯示本文所提出的算法整體效果上表現最優,兼顧了收斂速度和收斂精度,在所有測試函數上的表現均比較優異,雖然算法的運行時間有一定的增加,但這是可以接受的。總的來說,DITLBO算法的改進是成功的,很大程度上提高了TLBO算法的綜合能力。


圖1 幾種算法的收斂曲線比較
本文提出了一種基于差分進化的自適應教與學優化算法。針對高維復雜優化問題中容易陷入局部最優的不足,采用自適應教學因素和基于差分進化的學生階段來提高基本的TLBO。對CEC的9個復雜測試函數進行了實驗分析,證明了該方法的有效性。所提出的方法能夠有效地為這些復雜的測試函數提供穩定和高質量的解。未來的研究工作將進一步提高算法能力,并嘗試將其應用于解決一些實際問題。