模拟退火理解

1.爬山算法

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

主要过程:

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

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

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

2.模拟退火

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

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

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

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

假设评价函数为C(x),且结果越小,说明解越好;原解为x,评价为C(x),此时从临近区产生一个新的解x'、评价为C(x');C(x')-C(x);若<0,说明新解更好,代替原解成为最优解;反之,说明新解没有原来的解好,此时计算概率,由于<0,所以p一定是0-1之间的数,所以随机生成一个0-1的随机数,若在概率范围内,就接受这个点。

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


2.1 模拟退火的优点

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

你可能感兴趣的:(模拟退火理解)