找回密码
 立即注册
查看: 389|回复: 0

优化算法 | 教学优化算法(附MATLAB代码)

[复制链接]
发表于 2021-12-7 06:54 | 显示全部楼层 |阅读模式
今天为各位讲解教学优化算法(Teaching-Learning-Based Optimization Algorithm,TLBO),TLBO算法与遗传算法、粒子群算法、人工蜂群算法等群智能优化算法相比,其特殊之处在于没有过多的参数需要设置,而是只需要设置种群大小、迭代次数等几个共有的基本参数。
▎教学优化算法基本思想
TLBO算法基本思想源于教师的工作对学生的影响,即教师的教学水平会影响学生的学习成绩。TLBO的过程分为两个阶段:
(1)教师阶段:学生向教师学习。
(2)学习阶段:学生之间相互学习。
在TLBO算法中,学生群体对应种群;教师安排给学生的各个任务目标对应优化问题中的决策变量;学生的学习成绩对应优化问题的适应度值;种群中的最优解对应教师
举个例子让各位能更好地理解上述含义,假设现有3名学生同时在学习语文数学,每门课的满分均为100分,两门课总成绩越高表示学生在学习方面能力越强。这3名学生成绩如下表所示:
学生序号语文成绩数学成绩
学生19090
学生28080
学生37070
那么这3个学生实际上就为1个种群决策变量即为语文课成绩数学课成绩;学生的总成绩即为适应度值;因为学生1的总成绩最高,所以学生1即为种群中的教师
▎教学优化算法数学公式推导
由前文可知,TLBO算法分为两个阶段,即教师阶段和学习阶段。因此,接下来分别推导两个阶段数学公式。
(1)教师阶段
在该阶段,学生向教师学习,教师努力提高学生们的平均成绩,即尽可能让全体学生在知识方面达到他/她的水平
假设在第i次迭代中,有m个决策变量(即m个科目/目标),学生的数目为n(k=1,2,……,n), 为全体学生在决策变量j(j=1,2,……,m)的平均值,在当前迭代次数中目标函数值最优的学生记为kbest(注意,kbest是1~n中的某一个数,学生kbest被视为教师)。
因此,当前全体学生在每个变量(每个科目/目标)的平均值教师每个变量差值计算公式如下:


其中,   为教师kbest在第i次迭代中的第j个决策变量; 为0~1之间的随机数; 为教学因子,随机取值为1或2。
为了尽可能让全体学生在知识方面达到教师的水平,因此需要更新每个学生的决策变量值,更新公式如下:


其中, 为学生k在第i次迭代中的第j个决策变量;  为 更新后的值,如果学生k在决策变量更新后的目标函数值更优,那么才会被接受,否则 会维持不变。
在教师阶段的最后,要保留更新后每个学生的全体决策变量值,这些值将作为学习阶段的输入
(2)学习阶段
在学习阶段,学生通过相互交流来提高知识储备水平。交流方式为随机交流,即一个学生随机与另外一个学生进行交流,如果对方知识储备比自己丰富,则自己会学习到新知识。
假设学生数目为n,现在从n个学生中随机选择2个目标函数值不相同的学生P(1~n之间的随机数)和Q(1~n之间的随机数),即   ,其中和分别是在教师阶段更新后的目标函数值。
如果优化问题为最小化问题,则决策变量更新公式如下:


如果学生P更新决策变量后的目标函数值更小,则接受  。
如果优化问题为最大化问题,则决策变量更新公式如下:


如果学生P更新决策变量后的目标函数值更大,则接受。
▎实例讲解
接下来以求解一个最小化问题为例,讲解TLBO算法实现过程。


假设种群数目为5,决策变量数目为2,迭代次数为1,则TLBO算法求解过程如下所示。
(1)初始化种群
随机生成5个满足决策变量约束的个体,具体值如表2.1所示。


很明显第5个个体的目标函数值最小,因此第5个个体是当前阶段的教师。
(2)教师阶段
现阶段,教师努力提高整个班级的成绩均值。假设对于变量而言, ,对于变量而言, ,同时,则 和平均值差值的计算公式如下:


difference_Mean(x1)和difference_Mean(x2)分别加到上表中的前两列,同时更新每个个体的目标函数值,更新结果如表2.2所示。



现在比较表2.1和表2.2中每个个体的目标函数值,保留目标函数值更小的个体,则将表2.1和表2.2合并后表格如表2.3所示。


(3)学习阶段
在学习阶段,每个学生相互交流以便获得新知识。在本案例中,个体1与2交流、个体2与4交流、个体3与5交流、个体4与1交流、个体5与1交流。假设在学习阶段,对于变量 而言,   ,对于变量   而言,   。
对于个体1而言,因为个体2的目标函数值小于个体1的目标函数值,则知识从个体2转移至个体1,变量  和   的计算公式如下:


同理对于个体2而言,因为个体2的目标函数值小于个体4的目标函数值,则知识从个体2转移至个体4,变量  和 的计算公式如下:


依次计算出个体3、4、5的变量  和 的值,具体结果如表2.4所示,这里需要注意一点,因为个体5的变量  计算结果为-110.34小于边界值-100,故将其赋值为-100。


现在比较表2.3和表2.4中每个个体的目标函数值,保留目标函数值更小的个体,则将表2.3和表2.4合并后表格如表2.5所示。


综上所述,在1次迭代过程中,随机产生初始解的最小目标函数值为1053,经过教师阶段和学习阶段后的最小目标函数值降低至830.9355。
▎问题与思考
在学习阶段,我们只是假设其中一种可能的交流方式,实际上学生之间的交流方式有很多种。比如说,可以让个体1分别与个体2、3、4、5交流,然后取交流后最好的个体作为个体1。其他个体也按照同样方式和另外4个个体交流,然后分别取交流后的最优个体对本身进行替换






调整学生交流方式后,在1次迭代过程中,最小目标函数值由1053降低至551.4767。
▎教学优化算法代码获取方式
优化算法 | 教学优化算法(附MATLAB代码)

咱们下期再见
▎近期你可能错过了的好文章:
新书上架 | 《MATLAB智能优化算法:从写代码到算法思想》
优化算法 | 灰狼优化算法(文末有福利)
优化算法 | 鲸鱼优化算法
遗传算法(GA)求解带时间窗的车辆路径(VRPTW)问题MATLAB代码
粒子群优化算法(PSO)求解带时间窗的车辆路径问题(VRPTW)MATLAB代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-14 13:00 , Processed in 0.096495 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表