模拟退火算法是一种通用的随机搜索算法,是对局部搜索算法的扩展。与一般几部搜索算法不同,SA以一定的概率选择领域中目标值相对较小的状态,是一种理论上的全局最优算法。
组合优化问题的求解过程与物理退火过程之间的对应关系
模拟退火算法的构造及流程
SA算法是一种企大师的随机寻优算法,它模拟了物理退火过程,由一个给定的初始高温开始,利用具有概率突跳特性的Metropolis抽样策略在解空间中随机进行搜索,伴随温度的不断下降重复抽样过程,最终得到问题的全局最优解。
算法要素构成
算法要素包括:状态表达、邻域定义、热平衡达到、降温控制。
状态表达跟GA和TS中的编码含义相同,利用一种数学形式来描述系统所处的一种能量状态。在SA中一个转态就是问题的一个解,而问题的目标函数就对应于状态的能量函数。
邻域定义:在SA中,邻域移动分为两种方式:无条件移动和有条件移动。若新解的目标函数值小于当前解的目标函数值(新状态的能量小于当前状态的能量),则进行无条件移动;否则,依据一定的概率进行有条件移动。
热平衡达到:热平衡的达到相当于物理退火中的等温过程,是指在一个给定温度
T
T
Tk下,SA基于Metropolis准则进行随机搜索,最终达到一种平衡状态的过程。这是SA算法中的内循环过程,为了保证能够达到平衡状态,内循环次数要足够大才行。
降温函数:降温函数用来控制温度的下降方式,这是SA算法中的外循环过程。
算法流程
图中:
S
S
S是一个离散有限的状态空间;
i
i
i代表状态;
T
T
T0为初始温度;
T
T
T
f
f
f为终止温度;
T
T
T
k
k
k为当前温度;
Δ
f
\Delta f
Δf为目标函数增量;
n
n
n为当前内循环迭代次数;
n
n
n(
T
T
T
k
k
k)为设定的内循环次数。
与GA,TS相比,SA的一大优点是理论较为完善
算法的收敛性分析:利用Markov过程(马尔科夫链) 可以进行分析。