我正在尝试使用模拟退火为我的 n 个皇后提出算法。网上有通用的算法,但是当我看它时,我无法理解它是如何工作的。我的节点只有关于棋盘上的命中次数的值。我该如何使用模拟退火算法来实现这一点。什么是“温度”、“时间表”?
请帮我理解这一点。 谢谢
最佳答案
温度是一个数字,代表您接受不会改善解决方案的移动的可能性。你从高温开始(=很可能接受无改进的 Action ),然后慢慢进化到低温(=极不可能接受无改进的 Action )。
我进行了多次尝试才使模拟退火正确。事实上,当我终于开始工作时,我的感觉是这样的:
Tabu search is craftsmanship: every changes makes it better. Simulated annealing is an art: one change makes or breaks it.
你可以找到我的实现here (OptaPlanner 的一部分,java,开源)。
关于simulated-annealing - 使用模拟退火的 N 皇后问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5055184/