智能优化算法:热交换优化算法
摘要:热交换优化 (Thermal Exchange Optimization,TEO)算法是于2017年提出的一种基于牛顿冷却定律的新型优化算法,具有收敛快寻优强的特点。
1.算法原理
热交换优化 (Thermal Exchange Optimization,TEO)算法是一种基于牛顿冷却定律的新型优化算法,在该算法中,物体的热损失率与物体和其周围环境的温度差成正比 。在 TEO 算法中,一些 Agent 被定义为冷却对象,其余 Agent 代表环境。更新对象之间的温度公式定义为:
T i e n v = ( 1 − ( c 1 + c 2 ) ∗ ( 1 − t ) ) ∗ r a n d ( 0 , 1 ) ∗ T i e n v ′ (1) T_i^{env} = (1-(c_1+c_2)*(1-t))*rand(0,1)*T_i^{env'} \tag{1} Tienv=(1−(c1+c2)∗(1−t))∗rand(0,1)∗Tienv′(1)
t = l / L (2) t=l/L \tag{2} t=l/L(2)
式中: T i e n v T_i^{env} Tienv为改变后的物体温度; c 1 , c 2 c_1,c_2 c1,c2 为控制变量; T i e n v ′ T_i^{env'} Tienv′ 为初始的物体温度; l l l为当前迭代数; L L L为最大迭代数。
根据前面的步骤和式 (1),然后更新每个对象的新温度,表达式为:
T
i
n
e
w
=
T
i
e
n
v
+
(
T
i
o
l
d
−
T
i
e
n
v
)
e
x
p
(
−
β
t
)
(3)
T_i^{new}=T_i^{env}+(T_i^{old}-T_i^{env})exp(-\beta t) \tag{3}
Tinew=Tienv+(Tiold−Tienv)exp(−βt)(3)
β = c o s t ( o b j e c t ) c o s t ( w o r s t o b j e c t ) (4) \beta = \frac{cost(object)}{cost(worst\, object)} \tag{4} β=cost(worstobject)cost(object)(4)
当一个对象的性质已降低 β,温度会进行交换。每个对象的 β 值根据式 (4)进行评估。
为防止物体温度落入局部最优,设置参数
P
r
o
Pro
Pro,它指定是否必须更改每个冷却对象的组件。如果
r
a
n
d
(
0
,
1
)
<
P
r
o
rand(0,1)<Pro
rand(0,1)<Pro,则随机选取第
i
i
i 个物体的一个维度,其值再生的表达式为:
T
i
,
j
=
T
i
,
m
i
n
+
r
a
n
d
(
0
,
1
)
∗
(
T
j
,
m
a
x
−
T
j
,
m
i
n
)
(5)
T_{i,j}=T_{i,min}+rand(0,1)*(T_{j,max}-T_{j,min})\tag{5}
Ti,j=Ti,min+rand(0,1)∗(Tj,max−Tj,min)(5)
式中:
T
i
,
j
T_{i,j}
Ti,j 为第
i
i
i 个
A
g
e
n
t
Agent
Agent 的第
j
j
j 个变量。
T
j
,
m
a
x
T_{j,max}
Tj,max 和
T
j
,
m
i
n
T_{j,min}
Tj,min为第
j
j
j 个变量的上界和下界。
算法步骤:
Step1.设置参数,初始化种群
Step2.计算适应度值
Step3.根据式(1)更新温度(即位置)
Step4.根据式(3)更新温度
Step5.根据选择概率Pro利用式(5)进行变异
Step6.记录并更新全局最优位置。
Step7.判断是否满足停止条件,如果满足,则输出最优位置,否则重复步骤Step2-Step7.
2.实验结果
3.参考文献
[1]杨明昊,李云龙.基于热交换优化算法的多阈值图像分割方法[J].科技创新与生产力,2019(05):57-59.
4.Matlab代码
热交换优化算法
5.Python代码
上述代码见个人资料介绍