一、模拟退火算法简介
模拟退火算法(Simulated Annealing, SA)是一种通用的随机搜索算法,是对局部搜索算法的扩展。与一般局部搜索算法不同,SA
以一定的概率选择邻域中目标值相对较小的状态,是一种理论上的
全局最优算法。
模拟退火算法是源于对热力学中退火过程的模拟,在某一给定初温下,通过缓慢下降温度参数,使算法能够在多项式时间内给出一个
近似最优解
。
二、模拟退火算法与金属退火过程对比
物理退火过程:
加温过程----固态溶解为液态的过程,分子的分布从有序的晶体态转化为无序的液态,消除原有的非均匀态。
等温过程----在退火中,需要保证系统在每一个温度下都达到充分的平衡状态。
冷却过程----液态凝固成固态晶体的过程。系统能量逐渐下降,从而得到低能有序的晶体结构。
模拟退火过程:
设定初始高温,相当于物理退火的加温过程。初始温度要足够高,在实际应用中,要根据以往的经验,通过反复实验来确定T0的值。
热平衡达到,相当于物理退火的等温过程。是指在一个给定温度下,SA用特殊的抽样策略进行随机搜索,最终达到平衡状态的过程。这是SA算法的内循环过程。
降温函数,相当于物理退火的冷却过程。用来控制温度的下降方式,这是SA算法的外循环过程。常用的降温函数有Tk+1=Tk-DT,Tk+1=Tk*r,其中r∈(0.95,0.99)。
1953年,Metropolis等提出了一种
重要性采样法(Metropolis准则),即
以概率接受新状态。
Metropolis准则
在温度t,由当前状态i产生新状态j,两者的能量分别为Ei 和 Ej ,若Ei >Ej ,则接受新状态j为当前状态;否则,以一定概率: