爬山算法模拟登山过程,随机选择一个位置登山,每次向更高的方向移动,直到到达山顶,也就是每次在附近空间中选择最优解作为当前解,到达局部最优解。 这样算法陷入局部最优解,能否得到全局最优解取决于初始点的位置。 如果选择初始点位于全局最优解附近,则有可能得到全局最优解。
爬山算法是一种局部偏好法,采用启发式法,是对深度优先搜索的改进,利用反馈信息帮助确定解。 是人工智能算法的一种。
算法描述从当前节点开始,与傲娇的前辈节点的值进行比较。 如果当前节点最大,则返回当前节点,作为最大值(现有山的顶点)。相反,通过使用最高的相邻节点替换当前节点,实现攀登犹豫不决的杯子高处的目的。 像这样循环直到达到最高点。
算法的优缺点优点是避免遍历,通过启发和选择部分节点来提高效率。
坏处不是全面搜索,所以结果可能不是最好的。
爬山算法一般存在以下问题。
1 )局部最大)某个节点比周围任何邻居都高,但它不是整个问题的最高点。
2 )高地)又称平顶,当搜索到达高地时,搜索的最佳方向不确定,会发生随机移动,搜索效率降低。
3 )山脊)搜索可能在山脊两面来回移动,前进步伐小。