随机爬山和模拟退火有什么区别?

人工智能 比较 模拟退火 元启发式 本地搜索 随机爬山
2021-11-09 06:19:30

我正在阅读本地搜索:爬山及其类型和模拟退火

爬山版本之一是“随机爬山”,其定义如下:

随机爬山在移动之前不会检查所有邻居。相反,这种搜索算法随机选择一个邻居节点,并决定是选择它作为当前状态还是检查另一种状态

一些消息来源提到它可以用来避免局部最优。

然后我正在阅读模拟退火及其定义:

在每次迭代中,都会选择一个随机移动。如果它改善了情况,则接受该举动,否则以小于1的概率接受

那么,这两种方法的主要区别是什么?随机指标是否只选择随机(上坡)继任者?如果它只选择(上坡后继者),那么它如何避免局部最优?

1个回答

Russell 和 Norvig 的书(第 3 版)描述了这两种算法(第 4.1.1 节,第 122 页),这本书是您在研究人工智能中的搜索算法时通常应该使用的参考书。我熟悉模拟退火(SA),因为我过去实现它是为了解决组合问题,但我对随机爬山(SHC)不是很熟悉,所以让我引用书中描述 SHC 的部分.

随机爬山从上坡动作中随机选择;选择的概率会随着上坡移动的陡峭程度而变化。这通常比最陡峭的上升收敛得更慢,但在某些州的情况下,它会找到更好的解决方案。

因此,SHC 随机选择一个“上坡移动”,即改进目标函数的移动(例如,如果您试图解决旅行商问题,“上坡移动”可能是对当前哈密顿循环的任何改变,一种解决方案,以便新的 Halmitonian 循环具有更短的成本)在上坡移动中(因此在一些改进目标的移动中)。

模拟退火中,您执行一些移动。如果这一举措导致了更好的解决方案,那么您始终保留更好的解决方案。如果它导致一个更糟糕的解决方案,你以一定的概率接受那个更糟糕的解决方案。还有其他细节,例如您如何接受更差的解决方案(您可以在 Russell 和 Norvig 的书中找到),但这应该已经阐明 SA 与 SHC 不同:SA 可以接受更差的解决方案以逃避局部最小值,而 SHC 只接受上坡运动。