全国服务热线:0898-08980898
当前位置: 首页 > 星辉登录星辉登录

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

发布时间:2024-09-09 12:26:30点击量:

今天为各位讲解教学优化算法(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), M_{j,i} 为全体学生在决策变量j(j=1,2,……,m)的平均值,在当前迭代次数中目标函数值最优的学生记为kbest(注意,kbest是1~n中的某一个数,学生kbest被视为教师)。

因此,当前全体学生在每个变量(每个科目/目标)的平均值教师每个变量差值计算公式如下:

\	ext{ Difference_Mean }_{j, k, i}=r_{i}\\left(X_{j, \	ext{ kbest }, i}-T_{F}M_{j, i}\\right)

其中, X_{j, \	ext{ kbest }, i} 为教师kbest在第i次迭代中的第j个决策变量; r_j 为0~1之间的随机数; T_F 为教学因子,随机取值为1或2。

为了尽可能让全体学生在知识方面达到教师的水平,因此需要更新每个学生的决策变量值,更新公式如下:

X_{j, k, i}^{\\prime}=X_{j, k, i}+\	ext{ Difference_Mean }_{j, k, i}

其中,X_{j, k, i} 为学生k在第i次迭代中的第j个决策变量; X_{j, k, i}^{\\prime}X_{j, k, i}更新后的值,如果学生k在决策变量更新后的目标函数值更优,那么X_{j, k, i}^{\\prime}才会被接受,否则 X_{j, k, i}会维持不变。

在教师阶段的最后,要保留更新后每个学生的全体决策变量值,这些值将作为学习阶段的输入

(2)学习阶段

在学习阶段,学生通过相互交流来提高知识储备水平。交流方式为随机交流,即一个学生随机与另外一个学生进行交流,如果对方知识储备比自己丰富,则自己会学习到新知识。

假设学生数目为n,现在从n个学生中随机选择2个目标函数值不相同的学生P(1~n之间的随机数)和Q(1~n之间的随机数),即 X_{\	ext{total- }P, i}^{\\prime}\
eq X_{\	ext{total- }Q, i}^{\\prime} ,其中和X_{\	ext{total- }P, i}^{\\prime} X_{\	ext{total- }Q, i}^{\\prime}分别是X_{\	ext{total- }P, i} X_{\	ext{total- }Q, i}在教师阶段更新后的目标函数值。

如果优化问题为最小化问题,则决策变量更新公式如下:

\\begin{aligned}&X_{j, P, i}^{\\prime \\prime}=X_{j, P, i}^{\\prime}+r_{i}\\left(X_{j, P, i}^{\\prime}-X_{j, Q, i}^{\\prime}\\right) \	ext{, If }X_{\	ext{total }-P, i}^{\\prime}<X_{\	ext{total }-Q, i}^{\\prime}\\\\ &X_{j, P, i}^{\\prime}=X_{j, P, i}^{\\prime}+r_{i}\\left(X_{j, Q, i}^{\\prime}-X_{j, P, i}^{\\prime}\\right), \	ext{ If }X_{\	ext{total }}^{\\prime}-Q, i<X_{\	ext{total }-P, i}^{\\prime}\\end{aligned}

如果学生P更新决策变量后的目标函数值更小,则接受 X_{j, P, i}^{\\prime \\prime}

如果优化问题为最大化问题,则决策变量更新公式如下:

\\begin{aligned}&X_{j, P, i}^{\\prime \\prime}=X_{j, P, i}^{\\prime}+r_{i}\\left(X_{j, P, i}^{\\prime}-X_{j, Q, i}^{\\prime}\\right) \	ext{, If }X_{\	ext{total- }Q, i}^{\\prime}<X_{\	ext{total-P, }, i}^{\\prime}\\\\ &X_{j, P, i}^{\\prime \\prime}=X_{j, P, i}^{\\prime}+r_{i}\\left(X_{j, Q, i}^{\\prime}-X_{j, P, i}^{\\prime}\\right), \	ext{ If }X_{\	ext{total-P }, i}^{\\prime}<X_{\	ext{total-Q, }i}^{\\prime}\\end{aligned}

如果学生P更新决策变量后的目标函数值更大,则接受X_{j, P, i}^{\\prime \\prime}

▎实例讲解

接下来以求解一个最小化问题为例,讲解TLBO算法实现过程。

f(x)=\\sum_{i=1}^{n}x_{i}^{2}\\quad-100 \\leq x_{i}\\leq 100

假设种群数目为5,决策变量数目为2,迭代次数为1,则TLBO算法求解过程如下所示。

(1)初始化种群

随机生成5个满足决策变量约束的个体,具体值如表2.1所示。

很明显第5个个体的目标函数值最小,因此第5个个体是当前阶段的教师。

(2)教师阶段

现阶段,教师努力提高整个班级的成绩均值。假设对于变量x_1而言,r_1=0.58 ,对于变量x_2 而言, r_2=0.49 ,同时T_F=1,则 x_1x_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交流。假设在学习阶段,对于变量x_1 而言, r_1=0.81 ,对于变量 x_2 而言, r_2=0.92

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

\\begin{aligned}&\\left(x_{1}\\right) \	ext{ new for learner }1=-60.684+0.81(-5.684-(-60.684))=-16.134 \\\\ &\\left(x_{2}\\right) \	ext{ new for learner }1=23.26+0.92(28.26-23.26)=27.86 \\end{aligned}

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

\\begin{aligned}&\\left(x_{1}\\right) \	ext{ new for learner }2=-5.684+0.81(-5.684-(-64))=41.552 \\\\ &\\left(x_{2}\\right) \	ext{ new for learner }2=28.26+0.92(28.26-31)=25.7392 \\end{aligned}

依次计算出个体3、4、5的变量 x_1x_2的值,具体结果如表2.4所示,这里需要注意一点,因为个体5的变量 x_1 计算结果为-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代码


▎作者新书购买链接

京东自营购买链接

《MATLAB智能优化算法:从写代码到算法思想》(曹旺)【摘要 书评 试读】- 京东图书?item.jd.com/13422442.html?item.jd.com/13422442.html

当当自营购买链接

《MATLAB智能优化算法:从写代码到算法思想》(曹旺)【简介_书评_在线阅读】 - 当当图书?product.dangdang.com/29301483.html?product.dangdang.com/29301483.html

地址:海南省海口市  电话:0898-08980898  手机:13988888888
Copyright © 2012-2018 星辉娱乐|注册登录平台用户APP下载中心 版权所有  ICP备案编号:粤ICP备88888888号  

平台注册入口