背景:
李航的《統計學習方法》一書中提到:決策樹算法通常采用啟發式算法,故了解之
問題解答:
時間有限,這里也只是將算法和啟發式算法的區別和簡單發展摘錄如下:
一、算法和啟發式方法之間的差別很微妙,兩個術語的意思也有一些重疊。就本書的目的而言,它們之間的差別就在於其距離最終解決辦法的間接程度:算法直接給你解決問題的指導,而啟發式方法則告訴你該如何發現這些指導信息,或者至少到哪里去尋找它們。
二、發展
40年代:由於實際需要,提出了啟發式算法(快速有效)。
50年代:逐步繁榮,其中貪婪算法和局部搜索 等到人們的關注。
60年代: 反思,發現以前提出的啟發式算法速度很快,但是解得質量不能保證,而且對大規 模的問題仍然無能為力(收斂速度慢)。
70年代:計算復雜性理論的提出,NP問題。許多實際問題不可能在合理的時間范圍內找到全局最優解。發現貪婪算法和局部搜索算法速度快,但解不好的原因主要是他們只是在局部的區域內找解,等到的解沒有全局最優性。由此必須引入新的搜索機制和策略…Holland的遺傳算法出現了(Genetic Algorithm)再次引發了人們研究啟發式算法的 興趣。
80年代以后:模擬退火算法(Simulated Annealing Algorithm),人工神經網絡(Artificial Neural Network),禁忌搜索(Tabu Search)相繼出現。
最近比較熱或剛熱過去的:演化算法(Evolutionary Algorithm), 蟻群算法(Ant Algorithms), 擬人擬物算法,量子算法等。
三、具體實現
1.模擬退火算法
2.遺傳算法
參考鏈接:
http://www.jianshu.com/p/e7164b9837bb
http://summerbell.iteye.com/blog/422398