模拟退火
模拟退火:
一、原理
是模拟统计物理中固体物质的结晶过程。模拟退火来自冶金学的专有名詞退火。退火是将材料加热后再经特定速率冷却,目的是增大晶粒的体积,並且減少晶格中的缺陷。材料中的原子原来会停留在使内能有局部最小值的位置,加热使能量变大,原子会离开原来位置,而随机在其他位置中移动。退火冷却时速度较慢,使得原子有较多可能可以找到内能比原先更低的位置。
模拟退火的原理也和金属退火的原理近似:
我们将热力学的理论套用到统计学上,将搜索空间内每一点想象成空气内的分子;分子的能量,就是它本身的动能;而搜索空间内的每一點,也像空气分子一样带有“能量”,以表示该点对命题的合適程度。算法先以搜索空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率。
在退火的过程中,如果搜索到好的解接受;否则,以一定的概率接受不好的解(即实现多样化或变异的思想),达到跳出局部最优解得目的。
二、模型
第一步是由一个产生函数从当前解产生一个位于解空间的新解。
第二步是计算与新解所对应的目标函数差。因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算。
第三步是判断新解是否被接受,判断的依据是一个接受准则,
最常用的接受准则是Metropolis准则: 若Δt′<0则接受S′作为新的当前解S,否则以概率exp(-Δt′/T)接受S′作为新的当前解S。
第四步是当新解被确定接受时,用新解代替当前解,这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可。而当新解被判定为舍弃时,则在原当前解的基础上继续下一轮试验。
三、接受概率
解释:
温度越高,选择 “不好的” 概率越大,温度变低,相当于“不好的”都尝试过了,概率变小
朝闻道