教学学习优化的实施
介绍
教学学习优化(TLBO)基于教师和学生之间的关系。在一个特定的班级中,教师通过他/她的辛勤工作向学生传授知识。学生们之间相互交流并提高他们的知识。
让我们通过这篇文章深入了解教学学习优化。
什么是TLBO
让我们考虑一个群体p(特别是一个班级)和班级中的学生数量l。对于优化问题可能存在决策变量(学生获取知识的主题)。学习可以通过以下两种方式进行:
- 通过教师(教学阶段)
-
通过学生之间的互动(学习阶段)
我们关注的是学生的结果,即适应度值。
TLBO优化函数
优化算法中涉及两种类型的函数。
- 球函数 -用于评估性能
数学表达式如下:
\mathrm{f(x_{1,}x_{2},………x_{n})=\sum ^{n}_{i=0} ::x^{2}_{i}}
最小值为f(0,…0) = 0
- Rastrigin函数 -非凸函数用作测试函数,数学表达式如下:
\mathrm{f(x_{1,}x_{2},………x_{n})=10+}\mathrm{\sum_{i=1}^{n} (x^{2}_{i}-10\cos::\cos(2\prod x_{i})}
在Python中实现TLBO算法
示例
import numpy as np
from pyMetaheuristic.algorithm import teaching_learning_based_optimization
from pyMetaheuristic.utils import graphs
def eas_opt(varval = [0, 0]):
x_1, x_2 = varval
fval = -np.cos(x_1) * np.cos(x_2) * np.exp(-(x_1 - np.pi) ** 2 - (x_2 - np.pi) ** 2)
return fval
plt_params = {
'min_values': (-6, -6),
'max_values': (6, 6),
'step': (0.2, 0.2),
'solution': [],
'proj_view': '3D',
'view': 'notebook'
}
graphs.plot_single_function(target_function = eas_opt, **plt_params)
params = {
'population_size': 15,
'min_values': (-5, -5),
'max_values': (5, 5),
'generations': 500,
'verbose': True
}
tlbo = teaching_learning_based_optimization(target_function = eas_opt, **params)
vars = tlbo[:-1]
min = tlbo[ -1]
print('Variables: ', np.around(vars, 5) , ' Minimum Value Found: ', round(min, 5) )
plt_params = {
'min_values': (-6, -6),
'max_values': (6, 6),
'step': (0.2, 0.2),
'solution': [vars],
'proj_view': '3D',
'view': 'notebook'
}
graphs.plot_single_function(target_function = eas_opt, **plt_params)
输出
Generation = 0 f(x) = -0.5748727344288006
Generation = 1 f(x) = -0.7555913129284719
Generation = 2 f(x) = -0.9219320357862593
Generation = 3 f(x) = -0.9644524112155972
Generation = 4 f(x) = -0.9809361915349301
Generation = 5 f(x) = -0.991863434885587
Generation = 6 f(x) = -0.9984949247685845
Generation = 7 f(x) = -0.9991563851570532
Generation = 8 f(x) = -0.9997584334443873
Generation = 9 f(x) = -0.9997584334443873
Generation = 10 f(x) = -0.9998450580252695
Generation = 11 f(x) = -0.9998982502404465
Generation = 12 f(x) = -0.999961847330126
Generation = 13 f(x) = -0.9999810734164969
Generation = 14 f(x) = -0.9999930426674921
Generation = 15 f(x) = -0.9999995055655798
Generation = 16 f(x) = -0.9999999410594664
Generation = 17 f(x) = -0.9999999410594664
Generation = 18 f(x) = -0.9999999877205884
Generation = 19 f(x) = -0.9999999877205884
Generation = 20 f(x) = -0.9999999931826284
-------------------------------------------------------------
-------------------------------------------------------
Generation = 500 f(x) = -0.9999999991966855
Variables: [3.14161 3.14158] Minimum Value Found: -1.0
教学学习优化的优点
- TLBO算法在工作中只需要两个参数,分别是种群的大小和迭代次数。
-
它更准确,不需要导数,
-
跟随完整路径生成解决方案
教学学习优化的缺点
-
这是一个耗时的方法
-
优化算法运行需要大量的空间
结论
教学学习优化是一种基于种群的算法,它在很大程度上依赖于教师与学习者之间以及学习者之间的学习关系。