智能优化算法:学校优化算法
摘要:学校优化算法(school-based optimization (SBO) algorithm)是于2018年提出的一种启发式元启发式优化算法,其灵感来自于在多教室学校中运行的传统教育过程。SBO是一种协同优化策略,允许对搜索空间进行广泛的探索,并得到高质量的解决方案。
1.算法原理
SBO是一种多种群元启发式算法,它将单个教师的单课堂教学环境扩展到多个教室、多个教师的学校。在SBO 算法中,独立的教室同时探索搜索空间,每个教室使用TLBO; 然后,在每次迭代结束时,一组教师(每个教室一名教师)被召集起来。在下一次迭代之前,每个教室从教师库中指派一名新教师,允许教室之间的知识转移。教师被分配到教室使用轮盘赌选择机制基于教师的健康值。此外,每个新任教师每个教室应有一个比现任教师更好的健康。
在每个阶段,每个班级的所有学生都要接受评估(共有个教室) ,每个教室里最好的学生(以健康程度衡量)被选为教室的老师,所有的老师都被召集到教师队伍中。在每次迭代之前,每个教室用轮盘赌从教师池中选择一个新的教师,然后根据教师的健康值将其细分为若干部分。教师分配机制允许SBO算法使用多个教师来指导优化。结果,这种机制降低了算法收敛到局部最优的可能性。例如,如果一个教室汇聚到一个当地的最优,这个信息不一定会分发到其他教室,因为该教室的老师的表现有较低的可能性被选为一个新的教师。此外,通过从其他教室中选择一个更好的老师,发展了当地最佳状态的教室有机会从这种状态中得到改善。在每个班级接受一名新教师后,教学机制被独立应用于每个班级,并启动新一轮的教师鉴定和交流。平行课堂之间的协作互动一直持续到满足终止标准为止,通常是一些分析,其中最佳解决方案保持不变.
1.1 教师阶段
在教师阶段模拟这一过程的优化算法中,教师机制应该应用到整个设计变量的范围内。每个设计变量都被视为课程中的不同主题。在教师阶段,学生根据教师提供的信息更新各科的知识。用数学术语来说,教学阶段的定义是:
X
n
e
w
k
j
=
X
o
l
d
k
(
j
)
±
Δ
(
j
)
(1)
X_{new}^k{j}=X_{old}^k(j)±\Delta(j)\tag{1}
Xnewkj=Xoldk(j)±Δ(j)(1)
Δ ( j ) = T F ∗ r ∣ M ( j ) − T ( j ) ∣ (2) \Delta(j)=T_F*r|M(j)-T(j)|\tag{2} Δ(j)=TF∗r∣M(j)−T(j)∣(2)
M ( j ) = 1 N ∑ k = 1 N X k ( j ) (3) M(j)=\frac{1}{N}\sum_{k=1}^NX^{k}(j)\tag{3} M(j)=N1k=1∑NXk(j)(3)
其中
X
k
(
j
)
X^k(j)
Xk(j)代表第
k
k
k个变量的j维。
T
F
T_F
TF为教学因子,
r
r
r是[0,1]之间的随机数。
M
(
j
)
M(j)
M(j)为班级的平均水平,
T
(
j
)
T(j)
T(j)为教师状态。
Δ
(
j
)
\Delta(j)
Δ(j)代表班级平均水平与教师水平的距离(其标志的选择应确保学生始终朝着老师移动)。原始的教与学算法中,班级的平均值计算采用(3)式进行计算,基于学生表现价值的加权平均数能提供更好的结果。基于适应度的均值定义为:
M
(
j
)
=
∑
k
=
1
N
(
X
k
(
j
)
/
F
k
)
∑
k
=
1
N
(
1
/
F
k
)
(4)
M(j)=\frac{\sum_{k=1}^N(X^k(j)/F^k)}{\sum_{k=1}^N(1/F^k)}\tag{4}
M(j)=∑k=1N(1/Fk)∑k=1N(Xk(j)/Fk)(4)
1.2 学习者阶段
学习者阶段的互动学习可以提高学生的个人表现,从而提高整个班级的表现。学习阶段的程序包括以下步骤:
(a)随机选择一名学生 p p p
(b)随机选择另一名学生,使 p ≠ q p ≠ q p=q
©评价两名学生的适应性
(d) 如果
F
p
<
F
q
F^p<F^q
Fp<Fq,(即学生
p
p
p比学生
q
q
q好) ,然后更新位置:
X
n
e
w
p
(
j
)
=
X
o
l
d
p
(
j
)
+
r
∗
[
X
o
l
d
p
−
X
q
(
j
)
]
(5)
X_{new}^p(j)=X_{old}^p(j)+r*[X_{old}^p-X^q(j)]\tag{5}
Xnewp(j)=Xoldp(j)+r∗[Xoldp−Xq(j)](5)
否则按下式更新:
X
n
e
w
p
(
j
)
=
X
o
l
d
p
(
j
)
+
r
∗
[
X
q
(
j
)
−
X
o
l
d
p
]
(6)
X_{new}^p(j)=X_{old}^p(j)+r*[X^q(j)-X_{old}^p]\tag{6}
Xnewp(j)=Xoldp(j)+r∗[Xq(j)−Xoldp](6)
SBO算法流程如下:
2.算法结果
3.参考文献
[1] Mohammad Farshchin et al., School based optimization algorithm for design of steel frames[J]. Engineering Structures, 171,2018,326-335.