随机爬山算法 vs 第一选择爬山算法

4
随机爬山算法和首选爬山算法有什么区别?
3个回答

10

山峰爬升搜索算法是一种基于邻居更好状态的本地搜索算法族之一。随机山峰爬升从所有更好的邻居状态中选择一个随机更好的状态,而首选山峰爬升则从随机生成的邻居中选择第一个更好的状态。

如果当前状态有很多邻居,则首选山峰爬升将成为一种好的策略。


你的意思是第一选择的山峰爬升算法是经典的山峰爬升算法吗? - Nasser
2
不,爬山算法会选择所有已被访问/计算的邻居中比当前状态更好的最佳邻居,而首选算法只会选择第一个找到的更好状态(并非所有邻居都已被访问/计算)。 - Gusti Ahmad Fanshuri Alfarisy
@GustiAhmadFanshuriAlfarisy,感谢您的好回答。我认为您可能错过了一个重要的点。在通用随机爬山算法中,选择的概率通常随着上坡移动的陡峭程度而变化。 - Md. Abu Nafee Ibna Zahid
感谢您的更正@Md.AbuNafeeIbnaZahid,邻居选择的概率随着上坡移动的陡峭程度而变化。 - Gusti Ahmad Fanshuri Alfarisy

1
我在 Russell, Norvig 中引用如下:
随机爬山法从上升的移动中随机选择;选择的概率可以随着上升移动的陡峭程度而变化。这通常比最陡上升收敛得更慢,但在某些状态景观中,它能找到更好的解决方案。首选爬山法通过随机生成继承者,直到生成一个比当前状态更好的继承者来实现随机爬山法。当一个状态有许多(例如数千个)继承者时,这是一种很好的策略。
因此,首选爬山法是一种特殊的随机爬山法。

1
一般的爬山算法是一种局部搜索算法,它选择最陡峭路径和最佳目标函数值的邻居作为最优解。但由于这个原因,它可能无法达到全局最大值并被困在局部最大值。而随机爬山算法选择上坡移动的邻居,并且选择概率可能会随着上坡移动的陡峭程度而改变。在首选爬山算法中,它随机生成下一个移动并进行搜索,直到找到比所有状态都更好的状态。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接