教学优化算法(Teaching-learning-based optimization, TLBO)是一种基于种群的启发式随机群智能算法。与其他的进化算法类似,该方法也存在迭代过程。该过程分为两步,每个阶段执行各自的优化。相比于其他的算法,教学优化算法的主要优势在于概念简单、超参数量少、收敛快速。本文对教学优化算法进行简单介绍,并对教学优化算法在各方面的一些改进扩展进行描述。
在教学优化算法中,学生被当作是分布在决策变量空间中的搜索点,其中,最优的学生被定义为该班级的教师。与传统的进化算法和群智能算法不同的是教学优化算法的迭代进化过程包括教学阶段和学习阶段,如图1所示。在教学阶段,为了提高班级的平均水平,学生会通过向教师学习来提高自身水平;之后在学习阶段,会通过与随机选择的另一位学生进行互动学习来提高自身水平。
记决策变量维度为 D D D,第 i i i个学生(搜索点)表示为 X i = ( x i 1 , x i 2 , … , x i D ) X_i=(x_{i1},x_{i2},…,x_{iD}) Xi=(xi1,xi2,…,xiD), f ( X i ) f(X_i) f(Xi)表示为适应度函数,目标是尽可能接近该函数的极小值。 N N N表示学生总量。班级中第 i i i个学生 X i = ( x i 1 , x i 2 , … , x i D ) X_i=(x_{i1},x_{i2},…,x_{iD}) Xi=(xi1,xi2,…,xiD)可以被初始化为:
其中 X j m a x X_j^{max} Xjmax和 X j m i n X_j^{min} Xjmin分别为第j维决策变量的上下界,rand是[0,1]之间的随机数。
在教学阶段,模拟学生通过学习教师与班级平均水平的差异来提高自身水平。对于班级中的第i个学习者 X i X_i Xi,更新机制表示如下:
其中, n e w X i newX_i newXi是学生 X i X_i Xi的新取值, T e a c h e r Teacher Teacher是当前最优值的学生,并且 M e a n = 1 / N ∑ i = 1 N X i Mean=1/N \sum_{i=1}^N X_i Mean=1/N∑i=1NXi是班级的平均状态。 T F = r o u n d [ 1 + r a n d ( 0 , 1 ) ] TF=round[1+rand(0,1)] TF=round[1+rand(0,1)]是一个教学因子,决定了要改变的均值的大小。 r a n d rand rand是随机向量,其每个元素都是 [ 0 , 1 ] [0,1] [0,1]范围内的随机数。在教学阶段之后,学生的值将采用其原先适应度和新适应度之间较小的,然后进入学习阶段。
在学习阶段,模拟学生之间相互讨论、展示和交流的方式进行学习,以提高自身水平。对于学习者 X i X_i Xi,更新公式为:
其中, n e w X i newX_i newXi是学生 X i X_i Xi的新取值, X k X_k Xk是从班级中随机选取的另一个与 X i X_i Xi不同的学生, f ( X i ) f(X_i ) f(Xi)和 f ( X k ) f(X_k ) f(Xk)分别是学生 X i X_i Xi和 X k X_k Xk的适应度。 r a n d rand rand是随机向量,其每个元素都是 [ 0 , 1 [0,1 [0,1]范围内的随机数。和教学阶段类似,学生的值将采用其原先适应度和新适应度之间较小的,然后进入下一轮的教学阶段。
整个算法流程总结如下:
教学优化算法的改进和变种非常多,下面介绍一些常用改进方案。
在最初的教学优化算法中,只有一个教师进行教学,当学生的适应度函数值普遍较高时,教学阶段所带来的效果不够明显;而当学生的适应度函数值普遍较低时,收敛速度又会降低。所以改进的教学优化算法提高了教师的教学能力,通过改进,根据学生的适应度函数值高低将班级划分为多个小班级,每个小班级选取一名教师进行该小班级的教学。进一步,这种多个小班级,可以采用K均值聚类的方式实现。
此外,最初的教学优化算法中教学因子只能是1或2,能力过分单一,影响搜索的能力,容易走入极端的学习状态。所以改进了其中的教学因子部分,使其变为一个自适应的连续值,其表达式为 T F = T F m a x − T F m a x − T F m i n i t e r m a x i t e r TF=TF_{max}-\frac{TF_{max}-TF_{min}}{iter_{max} }iter TF=TFmax−itermaxTFmax−TFminiter,其中 T F m a x TF_{max} TFmax和 T F m i n TF_{min} TFmin分别为 T F TF TF的最大值和最小值, i t e r m a x iter_{max} itermax为最大迭代次数。这种方式与粒子群算法中的线性递减惯性权重[7]类似,能在搜索初期加快迭代的步伐,而在后期进行稳定的搜索。
如果采用小班级教学时,在学习阶段,由于每个小班级中的成员与其他成员相似度可能会比较高,所以可以考虑采用和其他班级成员进行交互学习,提升学习阶段的效果。这种方法还能在一定程度上避免算法陷入局部极小值,保存了样本多样性。
本文对教学优化算法进行介绍,并通过三种函数样例测试该算法的优化效果。教学优化算法由于其自身简单、易收敛的优势,在应用领域经常会被用到。不过该算法在一些场景下仍然存在不足,研究人员基于这些问题也开发出许多不同的变体,以提高其优化性能,并已成功应用于各种优化领域。除此之外,对教学优化算法的收敛特性和动力学进行理论分析仍然是十分有必要的。
[1] Luke S. Essentials of Metaheuristics. Lulu, 2013[J].
[2] 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.
[3] Rao R V, Savsani V J, Vakharia D P. Teaching–learning-based optimization: an optimization method for continuous non-linear large scale problems[J]. Information sciences, 2012, 183(1): 1-15.
[4] Yu K, Wang X, Wang Z. Constrained optimization based on improved teaching–learning-based optimization algorithm[J]. Information Sciences, 2016, 352: 61-78.
[5] Rao R V, Savsani V J, Balic J. Teaching–learning-based optimization algorithm for unconstrained and constrained real-parameter optimization problems[J]. Engineering Optimization, 2012, 44(12): 1447-1462.
[6] 黄祥东. 教与学优化算法的研究与应用[D].中国矿业大学,2016.
[7] Shi Y, Eberhart R C. Empirical study of particle swarm optimization[C]//Proceedings of the 1999 Congress on Evolutionary Computation-CEC99 (Cat. No. 99TH8406). IEEE, 1999, 3: 1945-1950.
[8] 平良川,孙自强.教学优化算法的改进及应用[J].计算机工程与设计,2018,39(11):3531-3537.