模拟退火算法中的初始温度


14

我已经在模拟退火算法中对不同的初始温度进行了一些测试,并注意到起始温度会影响算法的性能。

有什么方法可以计算出良好的初始温度吗?


2
初始温度与问题域和用于算法的梯度下降部分的其他参数有很大关系。您能否提供更多背景信息?
2013年

Answers:


9

0.8t分钟δ ë 最大 - ë 分钟 π 分钟1maxtmintδtEmaxtEmintŤπmint1|N(mint)|t

Ñ

πi=|N(i)|exp(Ei/T)j|N(j)|exp(Ej/T)
,其中表示的邻居。N(i)i

最后,是接受正跃迁的概率。现在,我们可以 基于正过渡的“随机”集合获得接受概率的估计:χ χ Ť 小号exp(δt/T)tχ^χ(T)S

χ^(T)=tSπmint1|N(mint)|exp(δt/T)tSπmint1|N(mint)|=tSexp(Emaxt/T)tSexp(Emint/T).

我们想要找到一个温度,使得,其中是我们想要的接受概率。 χ Ť 0= χ 0 χ 0] 0 1 [T0χ(T0)=χ0χ0]0,1[

S E 最大t E 最小t S T 1 T 0T0是通过迭代方法计算的。会生成一些状态以及每个状态的邻居。这为我们提供了一组转换的。存储与子集的状态相对应的能量和。然后选择的值,该值可以是任何正值。然后使用递归公式找到SEmaxtEmintST1T0

Tn+1=Tnln(χ^(Tn))ln(χ0)1/p
,其中是实数。p1

当接近我们可以停止。现在是所需的初始温度的良好近似值。有关更多的移植,证明和讨论,请参阅原始论文的第一部分[1]。χ^(Tn)χ0TnT0


[1] Ben-Ameur,Walid。“计算模拟退火的初始温度。” 计算优化与应用29,没有。3(2004):369-385。


3

这是一个非常高级的主题,与获得非常严格的最优值有关。根据我的理解,初始温度通常被认为是“温度计划”策略的一部分,对此进行了深入研究。换句话说,初始温度条件和温度衰减算法(您没有提到)都会影响总体优化结果。两者的简单策略或启发式方法通常会产生良好或“足够好”的结果。

但是,至少有一篇论文单独研究了初始温度。[1] 底线是,除非您进行非常高级的工作,否则将初始温度视为问题的一个参数,并在整个优化过程中迭代不同的初始温度(在发现确实确实会影响结果之后)是非常合理的,一种可能普遍的做法。

或者,甚至只是选择给出良好结果的初始温度也是很普遍的(这似乎有些令人惊讶,而且问题实例的优化结果与反复试验发现的“更好”的初始温度参数大相径庭) 。正如dhj指出的那样,某些问题对初始温度比其他问题更加敏感。

[1] 计算模拟退火 Ben-Ameur 2004 的初始温度

[2] 高效的模拟退火时间表:派生 Lam和Delosme

[3] Munakata和Nakamura 模拟退火的温度控制


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.