模拟退火算法的个人理解

来源:互联网 发布:免费程序化交易软件 编辑:程序博客网 时间:2024/04/30 19:28

       模拟退火算法(SA, Simulated Analnggggg)是一种启发式的蒙特卡罗(Monte Carlo)方法。这种算法是在给定的模型空间内搜索墓边函数达到全局极小值的最优模型,它已用于各种最优化问题计算。常规的模拟退火法即Kirkpatrick等(1983)提出的Metropolis算法(Metropolis SA),包括以下步骤:

1给定模型每一参数变化范围,在这个范围内随机选择一个初始模型m0,并计算相应的目标函数值E(m0).

2对当前模型m0进行扰动产生一个新模型m,计算相应的目标函数值E(m),得到ΔE= E(m)- E(m0)

3ΔE<0,则新模型m被接受;若ΔE>0,则新模型按概率

P=exp(-ΔE/T)进行接受,T为温度。当模型被接收时,置m0=mE(m)=E(m0)

4在温度T下,重复一定次数的扰动和接受过程,即重复步骤2、3。

5缓慢地降低温度T

6重复步骤2、5,直到收敛条件满足为止。

以上的算法世纪上分两步交替进行计算:1随机扰动产生新模型并计算目标函数(或称能量)的变化;2 决定新模型是否被接收。由于算法是在高温条件开始进行的,因此使E增大的模型可能被接受,因而能舍去局部极小值。通过缓慢地降低温度,算法能收敛到全局最优点。

 

 

个人总结:模拟退火算法是从一个近似解不断逼近真实解的一种优化算法,类似的还有遗传算法,先确定状态的边界,然后确定一个初始温度,一般较高,然后确定一个随机扰动函数和一个能量计算函数,以及确定合适的r即可。个人觉得这个算法关键在于是随机扰动函数的选取还有能量计算函数的选取。把这个算法归为计算几何是因为本人是通过做计算几何的题目了解这个题目的,而这个算法貌似也在《算法导论》的计算几何专题里介绍过。

 

原创粉丝点击