模拟退火理解

1.爬山算法

爬山算法是一种简单的局部贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。

主要过程:

随机选择一个登山的起点;每次拿相邻点与当前点进行比对,取两者中较优者,作为爬坡的下一步;重复第2步,直至该点的邻近点中不再有比其大的点;选择该点作为本次爬山的顶点,即为该算法获得的最优解。

从爬山算法的流程可以看出,它的实现虽然简单,但在遇到局部最优问题时,是很容易陷入局部最优、找不到全剧最优解的,同时初始随机登山点的选择,也对算法的结果影响很大、

所以,,它亟待解决的问题就是如何避免陷入局部最优。

2.模拟退火

模拟退火来自模拟物体在加热后分子达到高度混乱状态,然后慢慢冷却,物体内部的分子各自达到自己应该的状态;

简单来说、在过去的爬山算法中,当遇到临近点没有当前点好时,直接舍弃。这样确保了一时的最优,但从全局的角度,则丧失了寻找其它可能存在的局部最优点的情况。。

因此在模拟退火的算法中,对一个不佳的临近点,会在一定概率下接受它成为最新点,这个概率就是退火的核心思想啦啊啦啦。模拟退火其实也是一种贪心的思想,但是它通过概率接受较差的解、带来了跳出局部解的机会。

那这个概率怎么算了,就要看看退火中的一个核心概念--温度T;

假设评价函数为C(x),且结果越小,说明解越好;原解为x,评价为C(x),此时从临近区产生一个新的解x'、评价为C(x');\Delta t=
C(x')-C(x);若\Delta t

<0,说明新解更好,代替原解成为最优解;反之,说明新解没有原来的解好,此时计算概率p=e^ \frac{-\Delta t}{T} ,由于\Delta t

<0,所以p一定是0-1之间的数,所以随机生成一个0-1的随机数,若在概率范围内,就接受这个点。

这个概率与\Delta t

和T有关,\Delta t

取决于新的解与原来解之间的差距,越差的点被保留的概率就越低;对于T,则是T越高,点被保留的概率越大,因此这个T就像现实生活中的温度一样,会逐步减少。因此在退火算法的最开始,最优点会波动的很厉害、但随着温度的逐渐降低,点就不再波动,稳定下来了,,


2.1 模拟退火的优点

迭代搜索效率高,并且可以并行化;算法中有一定概率接受比当前解较差的解,因此一定程度上可以跳出局部最优;算法求得的解与初始解状态S无关,因此有一定的鲁棒性;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.概念 介绍模拟退火前,请先了解爬山算法。因为模拟退火算法是爬山算法的改进版,它在爬山算法的基础上引入了随机化。...
    木木与呆呆阅读 1,425评论 8 12
  • 在算法里面有一类问题叫做最优化问题,这类问题通常的特点是问题的解空间很大,用传统的算法没有办法穷举。比如时间复杂度...
    DayDayUpppppp阅读 3,873评论 0 4
  • ->点击访问个人博客,相互交流学习<- 一、技术论述 1.随机方法 学习在构造模式分类器中起着中心的作用。一个通常...
    JackHCC阅读 2,681评论 1 1
  • 作:流寻常 每到一座城市,首先去看那里的人,其次去看那里的景,不管城市再怎样千变万化,它只是把别的城市的复制,只有...
    虚构我的生活阅读 196评论 0 1
  • 有那么一个瞬间,迫切的希望自己能冲出那无形的枷锁,释放巨大的能量。就像雄鹰冲向广袤的天空那般迅捷、有力,而后自在遨游。
    Concht阅读 116评论 0 0