爬山法是深度优先搜索的改进算法。在这种方法中,使用某种贪心算法来帮助我们决定在搜索空间中向哪个方向搜索。由于爬山法总是选择往局部最优的方向搜索,所以可能会有“无解”的风险,而且找到的接不一定是最优解。但是他比深度优先搜索的效率要高很多。
主要的算法描述如下:
1、构造由根节点组成的1元栈。
2、检查该栈的栈顶元素是否为目标节点,如果是,那么停止,否则转向3.
3、从栈中删除栈顶元素并扩展该元素,增加该元素的后代到栈中,进栈的次序按照评估函数值的顺序(一般可以使用堆)
4、如果栈是空的,那么失败,否则,转向步骤2.