1.概念
爬山算法是一種局部擇優的方法,是一種局部貪心的最優算法。
採用啓發式方法,是對深度優先搜索的一種改進,它利用反饋信息幫助生成解的決策。 該算法每次從當前解的臨近解空間中選擇一個最優解作爲當前解,
直到達到一個局部最優解,屬於人工智能算法的一種。
2.主要思想
- 隨機選擇一個登山的起點;
- 每次拿相鄰點與當前點進行比對,取兩者中較優者,作爲爬坡的下一步;
- 重複第2步,直至該點的鄰近點中不再有比其大的點;
- 選擇該點作爲本次爬山的頂點,即爲該算法獲得的最優解。
3.特點
實現簡單,其主要缺點是會陷入局部最優解,不一定能搜索到全局最優解。
如下圖所示:假設C點爲當前解,爬山算法搜索到A點這個局部最優解就會停止搜索,
因爲在A點無論向那個方向小幅度移動都不能得到更優的解。
4.參考文章
如果想進一步瞭解爬山算法及其應用,請參考:
基於爬山算法求解TSP問題(JAVA實現)
機器學習優化算法之爬山算法小結