模拟退火(SA)学习记录

以前听说过这个玄学算法
今天碰见了就来学学
推荐一下这篇博客
因为概念性的东西牵扯到物理,就不过多讨论了
其实这东西并不难
如果我们要找一个函数的极值(比如最小值)
复制一下其他博客的图
在这里插入图片描述
这个函数并没有什么规律,有一个正常的思路是选一个点出发
贪心地选择最小的,这样最终找到的可能是一个局部的最小值,但不一定是全局最优解
这个算法的缺陷在于会陷入一个局部胜利而忘却整体大局
所以有一个名叫爬山的算法就是从许多不同点出发找最低值,也是有可能找到最低值的
但是模拟退火的核心思想就是它有概率会跳出一个低谷,这样他就能再次寻找最低值了,那么这个概率怎么选呢

插入一段物理

一个物体在冷却过程中如果冷却过快会不易形成结晶体,所以要徐徐退火
引出几个量

T T T :当前温度
Δ T \Delta T ΔT:温度变化率,也就是下一秒的温度等于这一秒的温度乘 Δ T \Delta T ΔT
x x x: 函数坐标,可以理解为一个状态
F ( x ) F(x) F(x):状态为x时的最优解
Δ F \Delta F ΔF:下一个状态的取值与当前取值的变化量,即 Δ F = F ( x 2 ) − F ( x 1 ) \Delta F=F(x_2)-F(x_1) ΔF=F(x2)F(x1)

根据科学家的研究,这个跳出去的概率就是 e Δ F T e^{\frac{\Delta F}{T}} eTΔF
不过因为这是个玄学算法,所以最好多执行几次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值