智能优化算法:学校优化算法-附代码

智能优化算法:学校优化算法


摘要:学校优化算法(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)=TFrM(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=1NXk(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[XoldpXq(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.

4.Matlab代码

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值