首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T在模拟退火中代表什么?

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

Stack Overflow用户
提问于 2013-06-22 13:29:42
回答 1查看 432关注 0票数 2

我想在不同的情况下使用模拟退火。网络中的每种模拟退火算法都给出了算法的温度实例。就像在wiki中一样

代码语言:javascript
复制
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)。我有下一个状态(Snew)和它们的值(Enew)。那么国际象棋的“T”是什么?我需要它吗!这个算法有没有一般的形式?我的意思是,没有这个温度的例子,我可以得到基本的想法!我什么也找不到。请帮帮忙。提前谢谢......

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-22 14:09:35

网络上的所有示例都使用温度示例,因为这是模拟退火的标准术语-- SA是一种受物理学启发的技术,模仿了一种称为退火的真实世界现象。这与遗传算法的所有示例谈论基因和染色体的方式非常相似。

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

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

至于如何在你的应用程序中使用这个想法。需要一些洞察力和创造力才能让大多数元启发式算法正常工作。但是你永远找不到一篇关于SA的讨论,它不是关于温度的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17247615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档