如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间
什么是退火:是指将固体加热到足够高的温度,使分子呈随机排列状态,然后逐步降温使之冷却,最后分子以低能状态排列,固体达到某种稳定状态。
物理退火过程:
温度越低,物体的能量状态越低,到达足够的低点时,液体开始冷凝与结晶,在结晶状态时,系统的能量状态最低。
数学表述:在温度T,分子停留在状态r满足Boltzmann概率分布
在同一个温度T,选定两个能量E1
Boltzmann概率分布告诉我们:
模拟退火算法最早的思想由Metropolis等(1953)提出,1983年Kirkpatrick等将其应用于组合优化。是模仿自然界退火现象而得,利用了物理中固体物质的退火过程与一般优化问题的相似性,从某一初始温度开始,伴随温度的不断下降,结合概率突跳特性在解空间中随机寻找全局最优解。
介绍模拟退火前,需要先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。
爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如上图所示:假设从当前解出发,爬山算法搜索到这个局部最优解就会停止搜索,因为在局部最优解位置无论向那个方向小幅度移动都不能得到更优的解。
而模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合一定的概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。如下:
e23b45cc-2379-11eb-905e
关于爬山算法与模拟退火,有一个有趣的比喻:
退火算法的基本思想:在一定温度下,搜索从一个状态随机地变化到另一个状态;随着温度的不断下降直到最低温度,搜索过程以概率1停留在最优解。
算法的目的
Metropolis准则(1953)——以概率接受新状态:固体在恒定温度下达到热平衡的过程可以用Monte Carlo方法(计算机随机模拟方法)加以模拟,虽然该方法简单,但必须大量采样才能得到比较精确的结果,计算量很大。
组合优化与物理退火的相似性比较:
模拟退火算法的基本步骤:
代码表示:
文字表述:
集成电路设计:利用模拟退火算法进行超大规模集成电路的最优设计,是目前模拟退火算法最成功的应用实例之一。用模拟退火算法几乎可以很好地完成所有优化的VLSI设计工作。如全局布线、布板、布局和逻辑最小化等。
图像处理中的应用:模拟退火算法可用来进行图像恢复等工作,即把一幅被污染的图像重新恢复成清晰的原图,滤掉其中被畸变的部分。因此它在图像处理方面的应用前景是广阔的。
神经网计算机中的应用:模拟退火算法具有跳出局部最优陷阱的能力。在Boltzmann机中,即使系统落入了局部最优的陷阱,经过一段时间后,它还能再跳出来,系统最终将往全局最优值的方向收敛