模拟退火

概念

模拟退火是随机化算法,可以用来解决一类不是单峰函数的问题。

其优于爬山算法的原因是其能通过接受当前最优解附近的非最优解,来跳出局部最优解。

对于新状态得到的解,若其更优则更新答案,否则以一定概率来判断是否接受新状态。

设温度为 (T),新状态和当前状态的能量差为 (Delta E(Delta E geqslant0)),新状态得到的解不优,却仍接受新状态来状态转移的概率为:

[large P(Delta E)=e^{frac{-Delta E}{T}} ]

具体退火时有三个参数,初始温度,降温系数,终止温度,每尝试进行一次转移,就让当前温度乘以降温系数,直到温度小于终止温度,退火就结束。

为了解的精确,可以进行多次退火。每次退火以过程中遇到的最优解作为最终结果。

应用

实现:[AHOI2014/JSOI2014]保龄球

[TJOI2010]分金币

原文地址:https://www.cnblogs.com/lhm-/p/13520304.html