美文网首页
模拟退火原理介绍

模拟退火原理介绍

作者: 佩鸿PH | 来源:发表于2017-06-07 12:12 被阅读0次

在优化问题中,我们希望找到一个最优解,但实际上这是难以达到的。尤其是当问题较为复杂,求解空间维度较高时,我们需要在巨大的求解空间中搜索所有的可行解,并确定最优解。这样做计算量十分巨大,几乎无法在有限的计算时间和计算资源下完成。在实际问题中,我们并不需要精确的最优解,只需要一个近似最优解即可,这个近似最优解与完美的最优解应该足够接近。

模拟退火(Simulated Annealing, SA)算法是对热力学中退火过程的模仿。将金属加热到高温,此时金属内部分子热运动非常剧烈,内部的分子结构会出现很大变化;之后让它缓慢降低温度,随着温度的降低,分子热运动的剧烈程度逐渐减弱,内部分子结构变化较小,逐渐趋于稳定。在寻找问题的最优解时,我们可以先给定一个初始解。此时温度较高,初始解有很大的概率发生变化,产生一个新的解;随着温度的降低,解发生变化的概率逐渐减小。假定我们需要求解一个函数f(x)的最小值,那么模拟退火算法的过程描述如下:

产生新解的方式很多,以二进制编码为例,假如一个解为01001101,可以随机选取一位进行取反。假如选中了第3位,则第3位按位取反,新解为01101101。这个过程有点类似于遗传算法中的基因突变。上述算法描述中每个温度值只产生了一次新解,实际问题中可以产生多次。

算法的关键在于Metropolis准则。如果新解的函数值较小,自然要把新解作为当前解;如果新解函数值较大,则它仍有一定概率被选作当前解。这个概率与df有关,df越大,说明新解越差,它被选作当前解的概率也越小;此外,这个概率还和当前温度有关,当前温度越高,概率越大(类似于分子热运动越剧烈)。

参考资料
[1] Lee Jacobson, Simulated Annealing for beginners, http://www.theprojectspot.com/tutorial-post/simulated-annealing-algorithm-for-beginners/6

相关文章

  • 模拟退火原理介绍

    在优化问题中,我们希望找到一个最优解,但实际上这是难以达到的。尤其是当问题较为复杂,求解空间维度较高时,我们需要在...

  • Simulated Annealing (SA) Algorit

    1 模拟退火算法(Simulated Annealing Algorithm)介绍    模拟退火算法是一种通用概...

  • 第六章 更多监督训练

    介绍Lunar Lander示例 监督训练没有训练集 使用遗传算法 使用模拟退火算法 遗传算法和模拟退火算法的训练...

  • 模拟退火算法

    1.概念 介绍模拟退火前,请先了解爬山算法。因为模拟退火算法是爬山算法的改进版,它在爬山算法的基础上引入了随机化。...

  • 模拟退火算法

    爬山算法(HillClimbing) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次...

  • 模拟退火算法的简单介绍

    模拟退火是对热力学退火过程的模拟,在某一给定初温下,通过缓慢下降温度参数,使算法能够在多项式时间内给出一个近似最优...

  • 数学建模

    1.启发式算法 它主要包括禁忌搜索,模拟退火,遗传算法,神经网络,蚁群算法 模拟退火算法 Metropolis准则...

  • 旅行商问题的近似最优解(局部搜索、模拟退火、遗传算法)

    旅行商问题的近似最优解(局部搜索、模拟退火、遗传算法) 关键字:旅行商问题,TSP,局部搜索,模拟退火,遗传算法 ...

  • ElasticSearch整理

    基本介绍 Shard机制 分词原理 路由原理 存储原理 常用api介绍 Filter Cache 一些优化 历史数...

  • 2018-11-14

    昨天学习了模拟退火算法以及一个小智力题:海盗分赃~ 模拟退火算法前先看了爬山算法,爬山算法是一种简单的贪心搜索算法...

网友评论

      本文标题:模拟退火原理介绍

      本文链接:https://www.haomeiwen.com/subject/ofvofxtx.html