山峰爬升搜索算法是一种基于邻居更好状态的本地搜索算法族之一。随机山峰爬升从所有更好的邻居状态中选择一个随机更好的状态,而首选山峰爬升则从随机生成的邻居中选择第一个更好的状态。 如果当前状态有很多邻居,则首选山峰爬升将成为一种好的策略。
我在 Russell, Norvig 中引用如下:随机爬山法从上升的移动中随机选择;选择的概率可以随着上升移动的陡峭程度而变化。这通常比最陡上升收敛得更慢,但在某些状态景观中,它能找到更好的解决方案。首选爬山法通过随机生成继承者,直到生成一个比当前状态更好的继承者来实现随机爬山法。当一个状态有许多(例如数千个)继承者时,这是一种很好的策略。因此,首选爬山法是一种特殊的随机爬山法。
一般的爬山算法是一种局部搜索算法,它选择最陡峭路径和最佳目标函数值的邻居作为最优解。但由于这个原因,它可能无法达到全局最大值并被困在局部最大值。而随机爬山算法选择上坡移动的邻居,并且选择概率可能会随着上坡移动的陡峭程度而改变。在首选爬山算法中,它随机生成下一个移动并进行搜索,直到找到比所有状态都更好的状态。