改进分组教学优化算法(Modified Group Teaching Optimization Algorithm,MGTOA)原文作者

一、算法灵感

  分组教学优化算法(Group Teaching Optimization Algorithm, GTOA)是一种模拟群体教学机制的元启发式优化算法。GTOA的灵感来自于集体教学机制。每个学生都将学习在教师阶段获得的知识,但每个学生的自主权都很弱。本文认为每个学生都有不同的学习动机。优秀学生具有较强的自学能力,而普通学生具有一般的自学动机。为了解决这一问题,本文提出了一种学习动机策略,并添加了基于随机反对意见的学习和重启策略,以提高优化算法(Modified Group Teaching Optimization Algorithm, MGTO)的全局性能。

二、分组教学优化算法

  GTOA的理念是通过模拟小组学习机制来提高整个班级的知识水平。考虑到每个学生都有不同的知识,这在实践中是非常复杂的。为了将分组教学的思想融入优化算法中,本文假设群体、决策变量和适应度值与学生、提供给学生的科目和学生的知识相似。该算法分为以下四个阶段。

2.1 能力分组阶段

  为了更好地展示小组教学的优势,所有学生都会根据自己的知识水平分为两组,老师会对这两组学生进行不同的教学。在分组中,相对强大的一组被称为精英学生,另一组是普通学生。教师在教学时将更有能力制定不同的教学计划。分组后,随着教师的教学,精英学生与普通学生之间的差距会越来越大。为了更好地教学,GTOA的分组是一个动态过程,在一个学习周期后再次进行分组。

2.2 教师阶段

  教师阶段是指学生通过教师获得知识。在GTOA中,教师为两组学生制定两种不同的教学计划。
  教师阶段一:优秀学生接受知识的能力较强,因此教师更注重提高学生的整体平均知识水平。此外,还考虑了学生对知识接受程度的差异。因此,精英学生将根据教师的教学和学生的整体知识水平进行学习。这样可以有效地提高整体知识水平。
x t e a c h e r , i = x i + a × ( x T − F × ( b × M + c × x i ) ) (1) {x_{teacher,i}} = {x_i} + a \times ({x_T} - F \times (b \times M + c \times {x_i}))\tag{1} xteacher,i=xi+a×(xTF×(b×M+c×xi))(1) M = 1 N ∑ i = 1 N x i (2) M = {1 \over N}\sum\limits_{i = 1}^N { {x_i}} \tag{2} M=N1i=1Nxi(2) b + c = 1 (3) b + c = 1\tag{3} b+c=1(3)其中, N N N 是学生人数, x i {x_i} xi 是第 i i i 个学生。 x T {x_T} xT 是一名教师。 M M M 是学生的平均知识。 F F F 1 1 1 2 2 2 的系数, x t e a c h e r , i {x_{teacher,i}} xteacher,i 是通过教师阶段获得的解。 a a a b b b c c c [ 0 , 1 ] [0,1] [0,1] 中的随机数。 F F F 的值可以是 1 1 1 2 2 2
x t e a c h e r , i = x i + 2 × d × ( x T − x i ) (4) {x_{teacher,i}} = {x_i} + 2 \times d \times ({x_T} - {x_i})\tag{4} xteacher,i=xi+2×d×(xTxi)(4)其中, d d d [ 0 , 1 ] [0,1] [0,1] 之间的随机数。
  此外,学生不能保证他们会在教师阶段获得知识,因此指定了最小值来表示学生在教师阶段之后的知识水平。
x t e a c h e r , i = { x t e a c h e r , i , f ( x t e a c h e r , i ) < f ( x i ) x i , f ( x t e a c h e r , i ) ≥ f ( x i ) (5) {x_{teacher,i}} = \left\{ \begin{aligned} {x_{teacher,i}},f({x_{teacher,i}}) < f({x_i}) \cr {x_i},f({x_{teacher,i}}) \ge f({x_i}) \cr \end{aligned} \right. \tag{5} xteacher,i={ xteacher,i,f(xteacher,i)<f(xi)xi,f(xteacher,i)f(xi)(5)

2.3 学生阶段

  学生可以在业余时间通过自学或与其他学生互动来获得知识。学生阶段包括学生阶段一和学生阶段二。为了提高自己的知识水平。在业余时间,学生会将自己在教学阶段学到的知识进行总结,以供自学。
x s t u d e n t , i = { x t e a c h e r , i + e × ( x t e a c h e r , i − x t e a c h e r , j ) + g × ( x t e a c h e r , i − x i ) , f ( x t e a c h e r , i ) < f ( x t e a c h e r , j ) x t e a c h e r , i − e × ( x t e a c h e r , i − x t e a c h e r , j ) + g × ( x t e a c h e r , i − x i ) , f ( x t e a c h e r , i ) ≥ f ( x t e a c h e r , j ) (6) {x_{student,i}} = \left\{ \begin{aligned} {x_{teacher,i}} + e \times ({x_{teacher,i}} - {x_{teacher,j}}) + \cr g \times ({x_{teacher,i}} - {x_i}),f({x_{teacher,i}}) < f({x_{teacher,j}}) \cr {x_{teacher,i}} - e \times ({x_{teacher,i}} - {x_{teacher,j}}) + \cr g \times ({x_{teacher,i}} - {x_i}),f({x_{teacher,i}}) \ge f({x_{teacher,j}}) \cr\end{aligned} \right.\tag{6} xstudent,i= xteacher,i+e×(xteacher,ixteacher,j)+g×(xteacher,ixi),f(xteacher,i)<f(xteacher,j)xteacher,ie×(xteacher,ixteacher,j)+g×(xteacher,ixi),f(xteacher,i)f(xteacher,j)(6)其中, e e e g g g [ 0 , 1 ] [0,1] [0,1] 范围内的两个随机数, x s t u d e n t , i {x_{student,i}} xstudent,i 是学生 i i i 通过从学生阶段学习而获得的知识, x t e a c h e r , j {x_{teacher,j}} xteacher,j 是学生 j j j 通过从教师阶段学习而获取的知识, j j j 是一个 1 1 1 N N N 之间的随机整数。在等式(6)中,右边的第二项和第三项分别表示向其他学生学习和自我学习。
  此外,学生无法通过学生阶段获得知识,因此指定了最小值来表示学生在教师阶段之后的知识水平。
x i = { x t e a c h e r , i , f ( x t e a c h e r , i ) < f ( x s t u d e n t , i ) x s t u d e n t , i , f ( x t e a c h e r , i ) ≥ f ( x s t u d e n t , i ) (7) {x_i} = \left\{ \begin{aligned} {x_{teacher,i}},f({x_{teacher,i}}) < f({x_{student,i}}) \cr {x_{student,i}},f({x_{teacher,i}}) \ge f({x_{student,i}}) \cr\end{aligned} \right.\tag{7} xi={ xteacher,i,f(xteacher,i)<f(xstudent,i)xstudent,i,f(xteacher,i)f(xstudent,i)(7)

2.4 教师分配阶段

  选择优秀的教师可以提高学生的学习能力。建立良好的教师匹配机制对提高学生的知识水平具有重要意义。在GWO算法中,通过选择最好的三只狼来获得平均值,并用于引导所有狼进行捕食。受GWO算法狩猎行为的启发,教师的分配由以下公式表示:
x T = { x f i r s t , f ( x f i r s t ) ≤ f ( x f i r s t + x s e c o n d + x t h i r d 3 ) x f i r s t + x s e c o n d + x t h i r d 3 , f ( x f i r s t ) > f ( x f i r s t + x s e c o n d + x t h i r d 3 ) (8) {x_T} = \left\{ \begin{aligned} {x_{ { {first}}}}{ { }},f({x_{ { {first}}}}) \le f({ { {x_{ { {first}}}} + {x_{ { {second}}}} + {x_{ { {third}}}}} \over 3}) \cr { { {x_{ { {first}}}} + {x_{ { {second}}}} + {x_{ { {third}}}}} \over 3},f({x_{ { {first}}}}) > f({ { {x_{ { {first}}}} + {x_{ { {second}}}} + {x_{ { {third}}}}} \over 3}) \cr\end{aligned} \right.\tag{8} xT= xfirst,f(xfirst)f(3xfirst+xsecond+xthird)3xfirst+xsecond+xthird,f(xfirst)>f(3xfirst+xsecond+xthird)(8)其中, x f i r s t {x_{ { {first}}}} xfirst x s e c o n d {x_{ { {second}}}} xsecond x t h i r d {x_{ { {third}}}} xthird 分别是具有第一、第二和第三适应度值的学生。为了加速算法的收敛,精英学生和普通学生通常使用相同的老师。

三、改进分组教学优化算法

3.1 学习动机

  在原始算法的学生阶段,每个学生都可以通过自学或与同学交流来获得知识。然而,它不适合精英学生和普通学生。精英学生比普通学生有更强的学习能力和动力,更倾向于自学。然而,普通学生的学习能力较弱,往往在同学之间学习。
  因此,精英学生根据等式(9)获得学习动机 D D D。并通过等式(10)找到新的解决方案。普通学生可以根据等式(11)找到新方案。
D = ( 1 − i ) / N ∗ sin ⁡ ( 2 ∗ π ∗ r ) (9) D = (1 - i)/N*\sin (2*\pi *r)\tag{9} D=(1i)/Nsin(2πr)(9) x s t u d e n t , i = x t e a c h e r , i + D × x t e a c h e r , i (10) x_{student,i} = x_{teacher,i} + D \times x_{teacher,i}\tag{10} xstudent,i=xteacher,i+D×xteacher,i(10)其中, r r r [ 0 , 1 ] [0,1] [0,1] 的随机数。
x s t u d e n t , i = { x t e a c h e r , i + e × ( x t e a c h e r , i − x t e a c h e r , j ) + g × ( x t e a c h e r , i − M ) , f ( x t e a c h e r , i ) < f ( x t e a c h e r , j ) x t e a c h e r , i − e × ( x t e a c h e r , i − x t e a c h e r , j ) + g × ( x t e a c h e r , i − M ) , f ( x t e a c h e r , i ) ≥ f ( x t e a c h e r , j ) (11) {x_{student,i}} = \left\{ \begin{aligned} {x_{teacher,i}} + e \times ({x_{teacher,i}} - {x_{teacher,j}}) + g \times ({x_{teacher,i}} - M),f({x_{teacher,i}}) < f({x_{teacher,j}}) \cr {x_{teacher,i}} - e \times ({x_{teacher,i}} - {x_{teacher,j}}) + g \times ({x_{teacher,i}} - M),f({x_{teacher,i}}) \ge f({x_{teacher,j}}) \cr\end{aligned} \right.\tag{11} xstudent,i={ xteacher,i+e×(xteacher,ixteacher,j)+g×(xteacher,iM),f(xteacher,i)<f(xteacher,j)xteacher,ie×(xteacher,ixteacher,j)+g×(xteacher,iM),f(xteacher,i)f(xteacher,j)(11)

3.2 基于随机反向学习机制

  基于对立学习(OBL)是一种新的计算智能方案。在过去的几年里,OBL已经成功地应用于各种基于种群的进化算法。基于随机对立的学习在基于对立的学习的基础上增加 [ 0 , 1 ] [0,1] [0,1] 的随机值,从而获得逆解范围内的随机解。它不仅扩大了搜索范围,而且增强了种群的多样性,使算法具有更强的探索能力和收敛能力。具体公式如下:
x n e w i = ( u b + l b ) − ( x T − t ) / T max ⁡ × r a n d × x i (12) xne{w_i} = (ub + lb) - ({x_T} - t)/{T_{\max }} \times rand \times {x_i}\tag{12} xnewi=(ub+lb)(xTt)/Tmax×rand×xi(12)其中, x n e w i xnew_i xnewi 表示在基于随机对立的学习之后获得的解。
确定通过基于随机反向学习获得的解是否优于原始解:
x i = { x i , f ( x i ) ≤ f ( x n e w i ) x n e w i , f ( x i ) > f ( x n e w i ) (13) x_i = \left\{ \begin{aligned} &x_i{ { }}&,f(x_i) \le f(xnew_i) \cr &xnew_i{ { }}&,f(x_i) > f(xnew_i) \cr\end{aligned} \right.\tag{13} xi={ xixnewi,f(xi)f(xnewi),f(xi)>f(xnewi)(13)

3.3 重启策略

  重启策略可以重新分配长期陷入局部最优状态的解的值,使差解跳出局部最优状态。这种策略可以用物质代替长期陷入局部最优状态的解,使差解跳出局部最优状态。加入重启策略可以增强算法的探索能力,使算法更好地收敛。
  首先,根据公式(14)设置重新启动阈值限制。然后,为每个解设置向量试验,并记录每次迭代后是否获得更好的解。初始值为 0 0 0。如果获得了更好的解决方案,则相应的试验为 0 0 0;否则,相应的试验增加 1 1 1。如果矢量试验大于限制,则执行重新启动策略。
L i m i t = ln ⁡ ( t ) (14) Limit = \ln (t)\tag{14} Limit=ln(t)(14)  重新启动策略通过等式(15)和(16)分别生成两个新的解 T 1 T_1 T1 T 2 T_2 T2 ,并通过等式(17)执行边界处理,然后选择更好的解来替换原始解。在那之后,相应的试验被重新分配到 0 0 0。重启策略的公式如下:
T 1 = l b + r a n d ( ) × ( u b − l b ) (15) {T_1} = lb + rand() \times (ub - lb)\tag{15} T1=lb+rand()×(ublb)(15) T 2 = r a n d ( ) × ( u b + l b ) − X i (16) {T_2} = rand() \times (ub + lb) - {X_i}\tag{16} T2=rand()×(ub+lb)Xi(16) T 2 = l b + r a n d ( ) × ( u b − l b ) ,   i f   T 2 ≥ u b ∣ ∣ T 2 ≤ l b (17) {T_2} = lb + rand() \times (ub - lb){ { }},\ if\ { { }}{T_2} \ge ub||{T_2} \le lb\tag{17} T2=lb+rand()×(ublb), if T2ub∣∣T2lb(17)
在这里插入图片描述

图1 Limit 的示意图

3.4 算法伪代码

  1. 初始化参数 t 、 T m a x 、 u b 、 l b 、 N 、 d i m t、Tmax、ub、lb、N、dim tTmaxublbNdim
  2. 根据公式随机初始化人口 X i X_i Xi
  3. 计算所有个体的适应度值,并选择最优解 G G G
  4. While t < T m a x t<T_{max} t<Tmax
  5.   根据等式(8)定义教师。
  6.   学生分为精英学生( X g o o d X_{good} Xgood)和普通学生( X b a d ) X_{bad}) Xbad)。精英学生的数量是 N g o o d N_{good} Ngood
  7.   For i = 1 i = 1 i=1 to N N N do
  8.     if i < N g o o d i <N_{good} i<Ngood then
  9.       教师阶段是根据等式 (1)、(2)、(3) 和 (5) 实现的。
  10.     else
  11.       教师阶段是根据等式 (4) 和 (5) 来实现的。
  12.     End If
  13.     对更新后的学生进行边界处理。
  14.     计算精英学生的平均知识水平( M M M)
  15.     if i < N g o o d i<N_{good} i<Ngood then
  16.       For j = 1 j = 1 j=1 to d i m dim dim do
  17.         精英学生根据方程 (9) 获得学习动机 D D D,并通过方程 (10) 和 (7) 进行学生阶段。
  18.       End For
  19.     else
  20.       普通学生根据等式 (11) 和 (7) 进行学生阶段。
  21.     End If
  22.   End For
  23.   对更新后的学生进行边界处理。
  24.   通过等式 (12) 使用基于随机反向学习策略生成逆解,并且根据等式 (13) 更新学生位置。
  25.   计算学生的新适应度值,并判断是否更好。如果更好,则替换适应度值和相应的 l i m i t = 0 limit=0 limit=0。否则, l i m i t limit limit 将加 1 1 1
  26.   根据等式(14)定义 l i m i t limit limit
  27.   For i = 1 i = 1 i=1 to N N N do
  28.     While t r i a l ( i ) < L i m i t trial(i) < Limit trial(i)<Limit do
  29.        T 1 T_1 T1 T 2 T_2 T2 由等式 (15) 和 (16) 生成,并且 T 2 T_2 T2 使用等式 (17) 进行边界处理。给 X i X_i Xi 分配一个随机位置。
  30.        t r i a l ( i ) = 0 trial(i)=0 trial(i)=0
  31.     End While
  32.   End For
  33.    t = t + 1 t=t+1 t=t+1
  34. End While

四、实验结果

MGTOA 和 GTOA 在23个经典测试函数(设置维度 d i m = 30 dim=30 dim=30)的F5、F6、F7中的收敛曲线,测试函数公式如下:

函数 公式 理论值
F5 F 5 ( x ) = ∑ i = 1 d − 1 [ 100 ( x i + 1 − x i 2 ) 2 + ( x i − 1 ) 2 ] {F_5}(x) = \sum\nolimits_{i = 1}^{d - 1} {[100{ {({x_{i + 1}} - x_i^2)}^2} + { {({x_i} - 1)}^2}]} F5(x)=i=1d1[100(xi+1xi2)2+(xi1)2] 0.00 0.00 0.00
F6 F 6 ( x ) = ∑ i = 1 d ( x i + 5 ) 2 {F_6}(x) = {\sum\nolimits_{i = 1}^d {({x_i} + 5)} ^2} F6(x)=i=1d(xi+5)2 0.00 0.00 0.00
F7 F 7 ( x ) = ∑ i = 1 d i × x i 4 + r a n d o m [ 0 , 1 ) {F_7}(x) = \sum\nolimits_{i = 1}^d {i \times x_i^4 + random[0,1)} F7(x)=i=1di×xi4+random[0,1) 0.00 0.00 0.00

4.1 F5收敛曲线

在这里插入图片描述

4.2 F6收敛曲线

在这里插入图片描述

4.3 F7收敛曲线

在这里插入图片描述

五、参考文献

[1] Honghua Rao, Heming Jia, Di Wu, et al. A Modified Group Teaching Optimization Algorithm for Solving Constrained Engineering Optimization Problems[J]. Mathematics, 2022, 10, 3765.

猜你喜欢

转载自blog.csdn.net/jiaheming1983/article/details/130171240