是基于 Monte-Carlo 迭代求精法的一种随机搜索算法。在搜索过程中,既能向
目标函数优化的方向迭代,又以一定的概率接受目标函数劣化的情况,从而避免陷
入局部最优点,保证获得全局最优解的可靠性。在求解组合优化问题时,模拟退火
法将每种组合状态 x
i
看成某一物质体系的微观状态,而 E(x
i
)看成该物质体系在状
态 x
i
下的内能,并用控制参数 T 类比温度。
整个模拟退火算法主要包括两个部分:Metropolis 抽样算法和缓慢的退火过
程。
2.1 Metropolis 抽样算法
对于每个温度 T,用 Metropolis 抽样法模拟该体系的热平衡态,即选择一个
初始起点 x(0),给定随机步长 Dx,在每一步中,计算出目标函数中的能量变化:
(1)
如果为负,则 Dx 被接受;如果为正值,则 Dx 以概率
(2)
被接受。因此,在某一给定温度 T 下,当前解 x(k)随 k 增加的取值序列:
x(0), x(1), x(2), …, x(i), …, x(k)所对应的准则值序列
E(x(k))
不是
单调减的,即
要防止这种情况发生,只要令:
xx(0)=x(0)
(3)
这样,可在不改变控制过程和轨迹序列的条件下,重新构造其准则值为单调减
的最优解更新序列 xx(k),最后得到的最优解必定是搜索过程中所经历的所有状态
下的最优解。并且,在某一个温度 T 下,若从某一个
i
起,有
xx(i) = xx(i+1)= … = xx(i+q)
(4)
成立,则表明连续搜索过的
q
个解都不比
xx(i)
好。因此,可以设定一个阈值
q
0
,当
q>q
0
时,令 Metropolis 抽样算法在该 T 下停止,于是得到该温度 T 时的最
优解
xx(T)
。
2.2 退火过程:
选择足够高的初始温度 T
0
,温度降低系数 χ
T
可以通过试凑法来选择:
0<χ
T
<1 (5)
如果 χ
T
太小,系统将会陷入到局部最小值;而 χ
T
太大,就会增加不必要的
计算时间。
当温度逐渐降低时,对于一组给定的 M 个步长,可以进行下一次迭代过程:
; (6)
式中:――增长因子;一般选取>1,典型情况,=3,。
在退火过程中,设在某个 T
i
时最后得到的最优解
xx(k)
为
xx(T
i
)
,并且有:
xx(T
i
) = xx(T
i+1
)= … = xx(T
i+p
)
(7)
成立,则表明温度连续下降
p
次后,对解的最优性没有改善,这样,可通过设
定一个阈值
p
0
,当
p>p
0
时,退火过程停止。这时得到的当前解即为系统的全局最
优解。