Language agnostic 这一步在模拟退火算法中的作用是什么?

Language agnostic 这一步在模拟退火算法中的作用是什么?,language-agnostic,simulated-annealing,Language Agnostic,Simulated Annealing,这两者都描述了模拟退火算法中的一个类似步骤,我在这里选择了: 维基百科: if P(e, enew, temp(k/kmax)) > random() then // Should we move to it? s ← snew; e ← enew // Yes, change state. Yuval Baror,关于: 我的问题是:这种随机移动能实现什么?目的是避免在局部最佳解决方案上解决问题,而是尝试找到全局最佳解决

这两者都描述了模拟退火算法中的一个类似步骤,我在这里选择了:

维基百科:

  if P(e, enew, temp(k/kmax)) > random() then   // Should we move to it?
    s ← snew; e ← enew                          // Yes, change state.
Yuval Baror,关于:


我的问题是:这种随机移动能实现什么?

目的是避免在局部最佳解决方案上解决问题,而是尝试找到全局最佳解决方案。请参见此处:

你允许一个随机的移动量,这可能会使你的位置一开始变得更差,希望找到一个更好的整体解决方案,而不是仅仅通过采取措施来改善你的位置


名称中的“退火”部分是指允许移动到更差位置的移动量随着时间的推移而减少。

只采取改善情况的解决方案被称为“贪婪”,这意味着你找到了局部最优解。

啊,这就是他们的意思!否则就好像,呃,赢得了这场战争,但输掉了这场战争,对吗?@Az-这就是它的要点:)
If moving the queen to the new column will reduce the number of attacked 
queens on the board, the move is taken. Otherwise, the move is taken only 
with a certain probability, which decreases over time. 
Hence early on the algorithm will tend to take moves even if they 
don't improve the situation. Later on, the algorithm will only make moves 
which improve the situation on the board.