教学优化算法的简单介绍
目录
- 摘要
- 背景
- 算法
- 学生初始化
- 教学阶段
- 学习阶段
- 流程总结
- 优缺点
- 优点
- 缺点
- 一些改进
- 总结
- 参考文献
摘要
教学优化算法(Teaching-learning-based optimization, TLBO)是一种基于种群的启发式随机群智能算法。与其他的进化算法类似,该方法也存在迭代过程。该过程分为两步,每个阶段执行各自的优化。相比于其他的算法,教学优化算法的主要优势在于概念简单、超参数量少、收敛快速。本文对教学优化算法进行简单介绍,并对教学优化算法在各方面的一些改进扩展进行描述。
背景
- 近年来,随着各种领域的优化问题不断增多,更多的优化方法被提出以适用于各类问题。在早期,大多数优化算法主要关注数学技术。而这些方法的主要问题在于容易陷入局部最优解而无法找到最优解。而最近,各种启发式算法成为了热点[1],这其中包括如遗传算法、演化规划、演化策略、遗传规划等所属的进化算法,蚁群算法、粒子群算法等所属的群智能算法,以及引力搜索算法、人工水滴算法等所属的非生物学元启发式算法。
- 然而这些方法中,除了种群大小和迭代次数,往往还存在一些其他需要设定的超参数。合理设置和适当调整这些特定于算法的超参数,对于这些算法的搜索能力至关重要。因此,希望能开发没有算法特定超参数的优化算法。
- Rao等人提出了基于教学学习的优化算法[2-3],它的灵感来自于课堂教学过程,模仿教师对学生的影响。与其他群体智能算法类似,教学优化算法基于种群的启发式随机优化算法,但它的优点在于不需要任何特定于算法的超参数。
算法
在教学优化算法中,学生被当作是分布在决策变量空间中的搜索点,其中,最优的学生被定义为该班级的教师。与传统的进化算法和群智能算法不同的是教学优化算法的迭代进化过程包括教学阶段和学习阶段,如图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]范围内的随机数。和教学阶段类似,学生的值将采用其原先适应度和新适应度之间较小的,然后进入下一轮的教学阶段。
流程总结
整个算法流程总结如下:
- 输入:初始化 N N N(学生数量)和 D D D(决策变量维度)
- 输出:教师 X T e a c h e r X_{Teacher} XTeacher
- Step1 初始化所有的学生,并评估适应度函数值。
- Step2 令适应度函数值最小的学生为 X T e a c h e r X_{Teacher} XTeacher,计算所有学生的均值 X M e a n X_{Mean} XMean.
- Step3 当满足终止条件(通常为最大轮次)时,直接退出,输出结果;否则继续向下执行。
- Step4 对于每一个学生,首先计算 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));再根据公式(2)计算学生的新适应度函数值;如果新适应度函数值低于原适应度函数值,则更新学生的值。
- Step5 对于每一个学生,随机选取另一个与之不同的学生,用公式(3)计算学生的新适应度;如果新适应度函数值低于原适应度函数值,则更新学生的值。
- Step6 更新 X T e a c h e r X_{Teacher} XTeacher和 X M e a n X_{Mean} XMean,重复执行Step3.
注意,上述过程中没有考虑到有约束的情况。对于有约束问题,可以采用多种类型的约束处理技术,例如静态罚函数、动态罚函数、自适应罚函数等,也有一些文献[4-5]对教学优化问题进行改进,使其适用于各种有约束问题。
优缺点
优点
- 教学优化算法属于全局优化算法,与遗传算法和粒子群算法类似,在整个解空间进行搜索,可以达到全局最优值。而且相比于粒子群算法,教学优化算法简化了每一轮内的信息共享机制,所有进化的个体可以更快收敛到全局最优解。
- 学习阶段具有并行性,各个学生之间的学习是一种随机的并行关系,加快了全局搜索的速度。
- 算法简易,超参数少,相比于遗传算法和粒子群算法,教学优化算法所需要的超参数只有种群数量,不涉及到优化过程本身。从而简化了优化的初始设置过程。
缺点
- 记忆能力较差。最初的解集在搜索过程中将会改变,不能很好地保持种群多样性。
- 教学优化算法的理论基础薄弱。对于其中存在的如多样性过早丢失之类的缺点,缺乏理论的验证。
- 缺少收敛分析方法,同属于全局优化算法的遗传算法和粒子群算法都有比较成熟的方法判定收敛,而教学优化算法很难准确估计收敛速度[6]。
- 在教学阶段具有固有的原点偏差,也即该算法有向原点附近搜索的倾向性。当解决一些远离原点的优化问题时,该算法通常会失去优势。有些文献基于这一点对教学优化算法进行改进[8]。
一些改进
教学优化算法的改进和变种非常多,下面介绍一些常用改进方案。
在最初的教学优化算法中,只有一个教师进行教学,当学生的适应度函数值普遍较高时,教学阶段所带来的效果不够明显;而当学生的适应度函数值普遍较低时,收敛速度又会降低。所以改进的教学优化算法提高了教师的教学能力,通过改进,根据学生的适应度函数值高低将班级划分为多个小班级,每个小班级选取一名教师进行该小班级的教学。进一步,这种多个小班级,可以采用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.
教学优化算法的简单介绍相关推荐
- 搜索引擎优化排名的简单介绍
本篇文章给大家谈谈搜索引擎优化排名,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔. 本文目录一览: 1.怎么在搜索引擎中优化短视频排名? 2.怎样推广优化搜索引擎排名 3.搜索引擎关键词s ...
- 机器学习十大算法的简单介绍
1.线性回归 (Linear Regression) 2.逻辑回归 (Logistic Regression) 3.决策树 (Decision Tree) 4.支持向量机(SVM) 5.朴素贝叶斯 ( ...
- 模拟退火算法(SA)简单介绍,附用python3求解最大值案例
简介 模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解.其思想借鉴于固体的退火原理,当固体的温度很高的时候,内能比较大,固体的内部粒子 ...
- JAVA数据结构与算法【简单介绍】
前几天去面一个大厂,面试官特别好,面试官说到,我们的学习不能本末倒置,数据结构和算法是程序的基础,如果数据结构你没有学好,你真正意义上不算会写代码.你的代码是各处粘贴,杂乱无章的. 由于现在大多用JA ...
- 基于教学优化算法(TLBO)求解TSP问题 (Matlab代码实现)
- 【MATLAB】FOA优化算法整定PID控制器参数(五)—— 一阶带时延的被控对象
[MATLAB]FOA优化算法整定PID控制器参数(五)-- 一阶带时延的被控对象 目录 [MATLAB]FOA优化算法整定PID控制器参数(五)-- 一阶带时延的被控对象 1研究背景 2果蝇优化算法 ...
- NSGA-3优化算法介绍及案例实现(三个测试函数DTLZ1、DTLZ2和DTLZ3)
NSGA-3优化算法介绍及案例实现 目录 NSGA-3优化算法介绍及案例实现 0研究背景 1NSGA-3算法的简单介绍 1.1 与NSGA-2算法的不同 1.2 NSGA-2算法的详细说明 2NSGA ...
- 萤火虫算法_智能优化算法萤火虫算法
今天介绍的算法是萤火虫算法(Firefly Algorithm,简称FA),也是一种仿生优化算法.从算法名字就知道了,该算法的思想来源于萤火虫,具体是萤火虫的闪烁行为.下面是展开对算法相关内容的介绍. ...
- 群体智能优化算法之细菌觅食优化算法(Bacterial Foraging Optimization Algorithm,BFOA)
获取更多资讯,赶快关注上面的公众号吧! 文章目录 第十四章 细菌觅食优化算法 14.1 介绍 14.2 BFOA的基本原理与流程 14.2.1 趋向性操作 14.2.2 复制操作 14.2.3 迁徙操 ...
最新文章
- (Mirage系列之六)在Mirage里使用Collection
- git-【五】远程仓库
- 灰盒测试—数据库软件
- Flash存储控制器组成!(flash)
- springMVC获取异步请求的参数,返回异步请求数据(json),跨域访问简单了解,文件上传,与Restful风格
- php2612,达人曝光LGLSNJ2612AR质量好吗?怎么样呢?体验报告揭秘
- nginx 带宽_Nginx的Gzip功能
- 用python画的基本知识_Opencv-python画图基础知识
- VB 写文件关联程序
- validation problems were found problem cvc-complex-type.2.4a
- 加密狗检测不到mysql_广联达检测不到加密锁
- 微PE系统安装包下载及安装教程,纯净微pe系统安装
- VMWare 各版本下载地址
- 计算机打字练习程序,一个简单的打字练习程序
- 新手也可以制作出大片的效果——Movavi Video Editor 15 Plus Mac
- JSR303注解字段校验
- Hey~程序员,你的桌面风格该换了
- Axure视频教程2:制作第一个原型
- 给研发培训资料两篇(架构设计大数据)
- 更换Eclipse黑色皮肤