Algorithm 如何在模拟退火中找到邻近解?
我正在研究一个优化问题,并试图将模拟退火作为一种启发式方法。我的目标是在给定一些代价函数的情况下优化k个对象的放置。解的形式是一组k个有序对,表示M*N网格中的点。我不确定如何在给定当前解决方案的情况下找到最佳的相邻解决方案。我考虑过在随机方向上将每个点移动1或0个单位。在给定一组当前点的情况下,找到相邻解的好方法是什么Algorithm 如何在模拟退火中找到邻近解?,algorithm,optimization,simulated-annealing,Algorithm,Optimization,Simulated Annealing,我正在研究一个优化问题,并试图将模拟退火作为一种启发式方法。我的目标是在给定一些代价函数的情况下优化k个对象的放置。解的形式是一组k个有序对,表示M*N网格中的点。我不确定如何在给定当前解决方案的情况下找到最佳的相邻解决方案。我考虑过在随机方向上将每个点移动1或0个单位。在给定一组当前点的情况下,找到相邻解的好方法是什么 既然我也在尝试了解更多关于SA的知识,那么什么是好的邻居查找算法,以及邻居应该与当前的解决方案有多接近?此外,如果涉及随机性,为什么选择“邻居”比生成随机解更好?我会将您的问题
既然我也在尝试了解更多关于SA的知识,那么什么是好的邻居查找算法,以及邻居应该与当前的解决方案有多接近?此外,如果涉及随机性,为什么选择“邻居”比生成随机解更好?我会将您的问题分成几个小问题:
我会说,最后一个子弹是最重要的。仔细看看你的问题,只考虑它的“强”>“实用”>强>方面。例如,你的问题的大小可能允许你列举一些东西,或者可能,一些布局是不可能的,等等。知识本身,所以帮助它吧
如何理解你的启发式方法是好的?只有通过实际评估。准备一套有明显/众所周知答案的测试,并尝试不同的方法。如果有,使用众所周知的基准我希望这会有所帮助。啊,我明白了——我试图使我的方法尽可能通用,以实现可伸缩性。我将限制范围并包含针对当前问题的特定细节。谢谢你的全面回答@JoelAbraham SA是一种非常强大的技术,但它的能力并不是无限的。如果您觉得这样可以回答所有问题,请不要忘记将您的问题标记为已回答:)