模拟退火算法_Simulated Annealing 模拟退火算法

模拟退火算法是一种基于概率的全局优化方法,灵感来源于固体退火过程。它允许在函数值上升时仍有一定概率接受新解,以避免陷入局部最优。通过控制温度参数T,算法能够在不同解之间进行探索。虽然理论上保证了收敛到全局最优,但实际运行中可能需要较长时间,并且依赖于运气。该算法在解决最优化问题时提供了一种跳出舒适区的策略。
摘要由CSDN通过智能技术生成

模拟退火算法用于求解全局最优解。鸡汤式的说法是:

要敢于跳出舒适区。

当我们在一个局部最优解附近扰动的时候,如果只根据目标函数是否增长来决定是否要移动,那就有可能停在局部最优。

局部最优可以理解成我们通常的舒适区。习惯了当前的状态,有点小扰动,还是习惯性地回到舒适区。那么你这一辈子就可能止步于此。

ad03664fcb0a2873de3679d93e03b658.png

想要有可能到达更好的位置,就要冒险。哪怕当前的举措会导致利益受损,也要勇于跳出舒适区。

注意只是有可能,有可能更好,也有可能更差。光讲道理是不够的,要量化。

鸡汤和干货的区别就在于有没有数学。

7cab7691908ffba9b444d769adcc7612.png

我们考虑最小化问题

5930f8a8cd0d936d9e046feb8c88f7a2.png

我们在当前的解 9e3ad25bacc82193cc3231d65b194d31.png 领域附近随机选择一个点 b6b08ca3d2ef28572c96c3c101656f2b.png, 如果函数值下降了,我们当然就移动到 b6b08ca3d2ef28572c96c3c101656f2b.png。这是 naive 的随机扰动算法。模拟退火算法是说,即便函数值上升了,我们仍然要以一定的概率移动到 b6b08ca3d2ef28572c96c3c101656f2b.png

fdac16bd8922459b2d71474a6f1795ea.png

怎么选取移动的概率?这个是模拟退火算法名字的来源。

模拟退火算法来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

  来源:百度百科

按照热力学的原理,在当前温度 T 下,出现能量差为 df 的降温概率为 

226e2b35516c453bd462646e23620aec.png

对同样的能量差,温度越低,概率越小。同样的温度,能量差越大,概率越小。慢慢地把温度减小到零,就不会跳出当前的最低能量态。

这里温度就成了最关键的参数。常用的公式是:

8ddd518ddeb540a8bb7a0be73c7e96cc.png

其中a4946aac699b86f39c3d6c979fe9e4a7.png是和问题相关的参数,要足够大,能够跳出局部最优。k 是迭代步数。

Hajek 1988 年证明了这样的选择能够保证算法收敛到全局最优。

这个是理论上的保证。收敛是可以收敛,要多长时间就不知道了,等到天老地荒也是有可能。所以在实际中,能否在可以等待的时间里收敛到全局最优,就要看运气了。

是的,要看运气,因为这是一个随机算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值