退火算法

介绍

将温度T当作控制参数,目标函数值f视为内能E,而固体在某温度T时的一个状态对应一个解$x_i$,然后算法试图随着控制参数T的降低,使目标函数f(内能E)也逐渐降低,直至趋于全局最小值(退火中低温时的最低能量状态),就像金属退火过程一样。

模拟退火数学原理

模拟退火算法详解 - 知乎

从上面我们知道,会结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,那么具体的更新解的机制是什么呢?如果新解比当前解更优,则接受新解,否则基于Metropolis准则判断是否接受新解。接受概率为:
$$
P=\begin{cases}
1, & E_{t+1}<E_{t}\
e^{\frac{-(E_{t+1}-E_{t})}{kT}}, & E_{t+1}\geq E_{t}
\end{cases}
$$

注意横轴是迭代次数

假设开始状态在A,随着迭代次数更新到B局部最优解,这时发现更新到B时,能量比A要低,则说明接近最优解了,因此百分百转移,状态到达B后,发现下一步能量上升了,如果是梯度下降则是不允许继续向前的,而这里会以一定的概率跳出这个坑,这个概率和当前的状态、能量等都有关系,如果B最终跳出来了到达C,又会继续以一定的概率跳出来,直到到达D后,就会稳定下来。

应用部分

本来打算应用在FIRA中的,在查阅一些论文后发现该算法主要运用在路径规划方面,个人认为在这当中用处不大,并且我现在搞不定,希望未来有一天我能弄懂。。。