m1 m2 .exp( f t) t
m1 m2
ln
f m2
m2 m1(1 )
只要将 设定为初始接受率 0,就能求出相应的 t0值.
9
2. 齐次算法的温度下降方法 为避免算法进程产生过长的马氏链,控制参数
tk 的衰减量以小为宜.我们可猜想在控制参数小 衰减量的情况下,两个相继值 tk 和tk1 上的平稳 分布是相互逼近的.因此,如果在值tk 上已经达 到准平衡,则可以期望在tk 值衰减为tk1 值后,可 能只需进行少量的变换就足以恢复tk1 值上的准平 衡.这样就可以选取较短长度的马氏链来缩减 CPU时间.
通过数值计算, 可以估计出温度t0 .
6
(2)由
exp( fij ) 1 t0
可给出一个估计值为t0 =Kδ,
K充分大的数,其中,
max f ( j) | j D min f ( j) | j D
实际计算中,可以选 K=10,20,100…等实验值.
对一些问题,有时可以简单地估计,如对TSP的
2.3 实现的技术问题(冷却进度表)
模拟退火算法的渐近收敛性意味着:对多数组合优 化问题来说,算法的执行过程只有进行无限多次变换 后,才能返回一个整体最优解.因而作为最优化算法, 模拟退火算法的执行过程不能囿于多项式时间,它是 一种指数时间算法,因而无法应用于实际.
按理论要求,齐次算法要在每一个温度迭代无穷步 以达到平稳分布,而非齐次算法要求温度下降的迭代 次数是指数次.从应用的角度来看,在可接受的时间 里得到满意的解就可以了,因此本节介绍的技术问题 无法保证模拟退火算法得到全局最优解.应用这些技 术的模拟退火算法还是一种启发式算法.
别记录模拟退火算法中接受和被拒绝的个数,