模拟退火也叫做蒙特卡罗退火、统计冷却、概率爬山、随机松弛和概率交换算法,它来自于对热力学过程的模拟。为了生成规则晶体,先将原材料加热到熔化状态,再将晶体熔融液徐徐降温,使之凝固成晶体结构。在冷却过程中,如果降温太快,则会带来一些不良后果,特别是导致所形成的晶体不够规则,并且能量远远高于一个完美结构的晶体。物理系统和优化问题之间有明显的相似点,例如,物理系统中的能量就相当于优化问题的评估函数;快速淬火就相当于局部搜索;徐徐退火就相当于模拟退火的过程;温度就相当于模拟退火的控制参数T(后面有详细内容)等等。
在搜索过程中如果过早结束,就会陷入局部最优的情况,为了跳出局部最优,引入一个接受概率P和参数T。在当前解的邻域内选择一点,如果比当前解好,则总是接受它;如果没有当前解好则以接受概率接受它。注意,接受概率中的T是随着时间从大到小变化的(冷却温度),一开始T值很大,近似于随机搜索(随机选择当前解);后来T很小,近似于普通搜索法(选择最优作为当前解)。其中接受概率的定义为:
这是针对极大化问题的,如果是极小化问题则只需将指数的分子的两个变量交换位置。
由公式可以看出,当T很大时,则两个点的质量竞争的重要性就很小,对结果影响不大,这是概率接近于0.5,等同于随机选取;当T很小(T=1&#