1. 概念
爬山算法是一种局部择优的方法, 是一种局部贪心的最优算法.
采用启发式方法, 是对深度优先搜索的一种改进, 它利用反馈信息帮助生成解的决策. 该算法每次从当前解的临近解空间中选择一个最优解作为当前解,
直到达到一个局部最优解, 属于人工智能算法的一种.
2. 主要思想
随机选择一个登山的起点;
每次拿相邻点与当前点进行比对, 取两者中较优者, 作为爬坡的下一步;
重复第 2 步, 直至该点的邻近点中不再有比其大的点;
选择该点作为本次爬山的顶点, 即为该算法获得的最优解.
3. 特点
实现简单, 其主要缺点是会陷入局部最优解, 不一定能搜索到全局最优解.
如下图所示: 假设 C 点为当前解, 爬山算法搜索到 A 点这个局部最优解就会停止搜索,
因为在 A 点无论向那个方向小幅度移动都不能得到更优的解.
4. 参考文章
如果想进一步了解爬山算法及其应用, 请参考:
基于爬山算法求解 TSP 问题 (JAVA 实现)
机器学习优化算法之爬山算法小结 http://www.cnblogs.com/gongxijun/p/5873643.html
来源: http://www.jianshu.com/p/81c9077d7407