具有动态自适应学习机制的教与学优化算法


文章目录

  • 具有动态自适应学习机制的教与学优化算法
  • 1.教与学优化算法
  • 2.改进教与学优化算法
  • 2.1 动态自适应学习
  • 2.2 教师的动态随机搜索
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.python代码



摘要:为了克服教与学优化(TLBO)算法容易出现早熟和解精度低的问题,提出了一种动态自适应学习的改进教与学优化(DSLTLBO)算法。在DSLTLBO算法的"教"阶段,引入一个自适应变化的因子,使当前个体在早期主要向最优个体学习,后期能够较好地维持自身状态,种群多样性得以保持。在算法的后期,教师个体通过执行动态随机搜索算法,提高最优个体勘探新解的能力。

1.教与学优化算法

2.改进教与学优化算法

2.1 动态自适应学习

TLBO算法思想源于模拟班级的教学过程, 所以从 生活中的现象着手改进算法是一种可行的途径。考虑 在教师的“教”过程中, 学生新状态的生成取决于自身状 态的转化比例和通过学习所获得知识的转化比例之和。 而标准算法中公式 (1) 的 具有动态自适应学习机制的教与学优化算法-附代码_算法 部 分为学生向教师学习获得的知识,而该式中学生自身的 知识状态完全向新状态转化, 与现实情况不相符。故将 式 (1) 修改成为式 (3), 学生的原状态按比例向新状态进 行转换。
具有动态自适应学习机制的教与学优化算法-附代码_学习_02
具有动态自适应学习机制的教与学优化算法-附代码_学习_03是一个非线性自适应因子, 具有动态自适应学习机制的教与学优化算法-附代码_学习_04 为预设最大迭代次数, 具有动态自适应学习机制的教与学优化算法-附代码_自适应_05 为当前迭代次 数, 具有动态自适应学习机制的教与学优化算法-附代码_机器学习_06 为变化速率。很容易看出来, 在算法早期,种群主 要向教师个体学习,可以快速向最优个体周围靠拢。而 随着迭代的进行 具有动态自适应学习机制的教与学优化算法-附代码_算法_07

2.2 教师的动态随机搜索

DRS通过动态调整步长实现对个体周围空间的精细搜索。在群智能算法中,种群的最优个体包含了较多的引导种群向全局最优收敛的信息。如果群智能算法能够实现全局收敛,最优个体所形成的搜索空间,一定包含着全局最优解形成的搜索空间。所以,为了提高算法的精度,在算法后期(本文为预设迭代次数的2/3后开始)引入教师个体执行DRS。

算法 1 DRS 算法
输入: 个体 具有动态自适应学习机制的教与学优化算法-附代码_算法_08, 迭代次数 具有动态自适应学习机制的教与学优化算法-附代码_自适应_09
输出: 个体 具有动态自适应学习机制的教与学优化算法-附代码_算法_08
步骤1 初始化步长 具有动态自适应学习机制的教与学优化算法-附代码_算法_11
步骤2 生成向量 具有动态自适应学习机制的教与学优化算法-附代码_机器学习_12
步骤4 生成向量 具有动态自适应学习机制的教与学优化算法-附代码_机器学习_13具有动态自适应学习机制的教与学优化算法-附代码_自适应_14
步骤 5 选择 具有动态自适应学习机制的教与学优化算法-附代码_机器学习_15 中优者作为 具有动态自适应学习机制的教与学优化算法-附代码_算法_08
步骤6 调整步长 具有动态自适应学习机制的教与学优化算法-附代码_算法_11
步骤 7 迭代没有结束, 则转步骤 2 ; 否则输出 具有动态自适应学习机制的教与学优化算法-附代码_算法_08, 结束 算法。

算法 2 动态自适应教与学优化算法(Dynamic Selfadapting Learning TLBO, DSLTLBO)
输入: 种群规模 具有动态自适应学习机制的教与学优化算法-附代码_自适应_09, 最大迭代次数 具有动态自适应学习机制的教与学优化算法-附代码_学习_20
输出:最优个体 具有动态自适应学习机制的教与学优化算法-附代码_机器学习_21
步骤 1 在解空间内初始化种群 具有动态自适应学习机制的教与学优化算法-附代码_优化算法_22
步骤2 挑选出最优个体, 即教师个体, 标记为 具有动态自适应学习机制的教与学优化算法-附代码_优化算法_23
步骤3 基于公式(3)执行“教”。
步骤4 执行“学”算子。
步骤5 如果是算法后期,则教师个体执行 DRS算法。
步骤 6 算法不满足终止条件, 则转步骤 2 ; 否则输出最佳 个体 具有动态自适应学习机制的教与学优化算法-附代码_机器学习_21,终止算法。

3.实验结果

具有动态自适应学习机制的教与学优化算法-附代码_学习_25

4.参考文献

[1]李丽荣,李木子,李崔灿,王培崇.具有动态自适应学习机制的教与学优化算法[J].计算机工程与应用,2020,56(19):62-67.

5.Matlab代码

6.python代码