T在模拟退火中代表什么?

时间:2013-06-22 05:29:42

标签: algorithm artificial-intelligence simulated-annealing

我想在不同情况下使用模拟退火。网络中的每个模拟退火算法都为算法提供了温度示例。喜欢在wiki中

s ← s0; e ← E(s)                                  // Initial state, energy.
sbest ← s; ebest ← e                              // Initial "best" solution
k ← 0                                             // Energy evaluation count.
while k < kmax and e > emax                       // While time left & not good enough:
 T ← temperature(k/kmax)                         // Temperature calculation.
 snew ← neighbour(s)                             // Pick some neighbour.
 enew ← E(snew)                                  // Compute its energy.
 if P(e, enew, T) > random() then                // Should we move to it?
  s ← snew; e ← enew                            // Yes, change state.
 if enew < ebest then                            // Is this a new best?
   sbest ← snew; ebest ← enew                    // Save 'new neighbour' to 'best found'.
 k ← k + 1                                       // One more evaluation done
return sbest                                      // Return the best solution found.

现在这个“T”代表什么?假设我将使用模拟退火来下棋。我将使用此算法来查找计算机的下一步。我现在的状态(S)和它的值(e)。我接下来陈述(重新)和他们的价值观(enew)。国际象棋会有什么'T'?我需要它吗!这个算法有什么一般形式吗?我的意思是没有这个温度的例子,我可以得到基本的想法!我找不到任何东西。请帮忙。提前谢谢......

1 个答案:

答案 0 :(得分:3)

网上的所有示例都使用温度示例,因为这是模拟退火的标准术语 - SA是一种物理启发技术,模仿现实世界称为退火的现象。它与遗传算法的所有例子如何谈论基因和染色体的方式大致相同。

如果你追溯到足够远的数学,各种优化元启发式和一些物理过程之间会有一些迷人的联系,通常由熵的概念来弥合。

但是,非常粗略地说,模拟退火中的温度T对应于算法“跳跃”的意愿或能力。在搜索全局(或至少是更好的本地)最小值时超出局部最小值。高温对应于较高的随机性,跳跃更多,甚至可能最终配置更差;低温对应于较低的随机性(最终是纯粹的贪婪算法),无论多浅,都无法逃避任何局部最小值。

关于如何将这个想法用于您的应用程序。它需要一些洞察力和一些创造力才能使大多数元启发式工作正常。你永远不会找到一个没有谈论温度的SA的讨论。