爬山算法

Hill Climbing

搜索不关心路径,只从当前状态出发,通常只移动到当前状态的某个邻域,一般情况下不保存搜索路径

爬山算法

最陡峭上升版本,假设当前状态为,其邻域状态为,每一个状态的得分可以由得分函数来衡量

设我选择的下一个搜索状态为,其中满足

爬山法有时被称为贪婪局部搜索,因为它只考虑选择最好的一个邻域状态,而不考虑更未来应该怎么走,所以在遇到局部最大值、山脊、高原的时候,爬山法都会到达无法再取得进展的地方

随机爬山法

随机爬山在上山的过程中随机选择下一步,被选中的概率可能随着上山的陡峭程度不同而不同。这种算法通常比最陡上升算法慢,但是在某些状态空间地形图上能找到更好的解

首选爬山法

假设当前状态为,其邻域状态为,在很大时,可以选择首选爬山法

设我选择的下一个搜索状态为,其中满足

随机重启爬山法

之前三个算法都是不完备的,经常会在局部极大值卡住

随机重启爬山法通过随机生成初始状态,来引导爬山法搜索,直到找到目标