热交换优化 (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)
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.
[1]杨明昊,李云龙.基于热交换优化算法的多阈值图像分割方法[J].科技创新与生产力,2019(05):57-59.
https://mianbaoduo.com/o/bread/YZeYlphy