模拟退火算法(Simulated Annealing)
1 模拟退火算法介绍
模拟退火算法属于启发式优化算法中的一种,该算法通过不断地在当前解的周围寻找更优解来进行迭代从而找到问题的最优解。
模拟退火算法如其名,类似于热力学中的退火过程。在某个给定的初始温度下,随着温度的不断下降,算法将在多项式时间内寻找到问题的近似最优解。
2 步骤
- 初始化温度T,初始解状态S,每个温度t下的迭代次数L
- 当k = 1,2,……,L时,进行3~6
- 对当前解进行变换得到新解S’(例如对某些解中的元素进行互换,置换)
- 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数
- 若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/(KT))接受S′作为新的当前解(k为玻尔兹曼常数,数值为:K=1.3806505(24) × 10^-23 J/K)
- 如果满足终止条件则输出当前解作为最优解,结束程序。
- 减小T,转到第2步,直到T小于初始设定的阈值。
