读书笔记《集体智慧编程》Chapter 5 : Optimization
生活随笔
收集整理的這篇文章主要介紹了
读书笔记《集体智慧编程》Chapter 5 : Optimization
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本章概要
本章介紹了優化問題的基本概念,以及常見的優化算法(隨機搜索,爬山,模擬退火,遺傳算法)。讀完本章后,感覺茅塞頓開,之前一直認為遺傳算法高深莫測,原來這些算法都是根據生物,物理的啟發而來的,頓時親切了許多。
?
什么是優化(Optimization)
一個問題的解有一系列組合,在這些組合中找出最優的解的過程就是優化。最笨的方法,枚舉出所有可能的結果,找出最優的解。但是,往往可能性太多,計算機根本上無法枚舉出所有的解決方案。
?
成本函數(Cost Function)
最優的解決方案在成本函數中得到最大或最小值。成本函數是指導優化繼續進行的根本。
?
優化算法
- 隨機搜索:計算一組隨機的組合方案,在這個方案中找到最優秀解,比較盲目,有可能最優解并不在這個隨機的解決方案中。
- 爬山:個人理解就是貪心算法,找到相比于當前解決方案而言最優的相鄰方案,如此往復,直到找不到更優的方案為止。顯著的問題就是只能找到局部最優解,無法找到全局最優解。改進算法是當找到一個最優解后,隨機開始另一組探尋,多嘗試幾次。這樣,雖然可以找到全局最優解,但是不能保證每次都可以。
- 模擬退火(Simulated Annealling):此方法受物理中鍛造合金的啟發,首先將合金加熱到一個高的溫度,然后慢慢冷卻,在冷卻過程中,可以找到low energy configuration。算法大體思想與爬山有點類似,首先隨機選取一個相鄰的解決方案,如果更優,那么選取,否則,不拒絕,也不選取,會通過一個概率計算到底是拒絕還是選取,開始時,此概率會比較大,溫度比較高,但是每一次選舉后,溫度會降低,選擇較差方案的概率會降低。當溫度降到一定程度,過程結束。這個方法可以使得優化在開始時,允許出現非最優解,這樣可以加大找到全局最優解的機會。
- 遺傳算法(Genetic Algorithm):遺傳算法受到生物遺傳的啟發,主要思路是首先隨機組合第一代解決方案,根據目標函數的結果排序,取出最優的一部分作為第二代(稱之為精英),其他的全部淘汰掉(是不是很殘忍),然后在在精英中通過突變或者雜交的方式,創建出第其他的方案,稱之為第二代,然后對第二待排序,任然取出精英,如此往復,直到精英基本不變或者代數到達一定上限時結束。
?
優化算法的不足
上面提到的優化算法依賴一個事實,最優解通常與次優解較近,但是如果較遠,如下圖所示:
全局最優點在比較靠右的地方,但是由于最優點的兩邊是一些不好的點,所以根據上面的優化算法,找到全局最游解的概率不高。如果解空間無規律,那么可能隨機搜索會比其他優化方案更好。
總結
以上是生活随笔為你收集整理的读书笔记《集体智慧编程》Chapter 5 : Optimization的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python: 使用装饰器“@”取得函数
- 下一篇: hdu - 3415 Max Sum o