書名:代碼本色:用編程模擬自然系統(tǒng)
作者:Daniel Shiffman
譯者:周晗彬
ISBN:978-7-115-36947-5
第9章目錄
9.1 遺傳算法:啟發(fā)自真實現(xiàn)象
1骇陈、目標
- 我們的目標不是深入研究遺傳和進化的科學原理激蹲,我們不會研究旁氏表澡为、核苷酸、蛋白質合成、RNA和其他生物進化相關的話題。
- 相反,我們只討論達爾文進化論背后的核心原理,并根據(jù)這個原理開發(fā)出一套算法二拐。
- 我們并不在乎進化模擬是否精確,只關心進化在軟件中的應用策略凳兵。
2百新、遺傳算法
- “遺傳算法”指的是一種特定算法,它以特定的方式實現(xiàn)庐扫,用于解決特定類型的問題饭望。
- 盡管遺傳算法是本章的基礎,但我們不會用絕對精確的方式實現(xiàn)它形庭,因為我們應該多花精力探索遺傳算法的創(chuàng)新用法铅辞。
3、內(nèi)容
1.傳統(tǒng)遺傳算法
我們從傳統(tǒng)遺傳算法開始萨醒。
這種算法用于解決“解空間過于龐大斟珊,窮舉法耗時過長”的問題。
舉個例子富纸,有一個介于1~1 000 000的數(shù)字囤踩,你要花多少時間才能猜到這個數(shù)字旨椒?
如果用窮舉法,你就要檢查每一種可能:這個數(shù)字是不是等于1堵漱,是不是2综慎,是不是3?……運氣好的話勤庐,你很快就能猜到這個數(shù)字示惊;
如果運氣不好,你就要從1枚舉到1 000 000埃元,這肯定會耗費大量的時間涝涤。
但如果我能告訴你更多的信息,比如猜的數(shù)字是大是小岛杀,是有點大,還是非常大崭孤;如果能得到每次猜測的“契合度”类嗤,我想你的猜測肯定會越來越接近正確答案,解決問題的速度也會更快辨宠。
也就是說遗锣,你的答案可以發(fā)生進化。2.交互式選擇
實現(xiàn)傳統(tǒng)遺傳算法之后嗤形,我們會研究遺傳算法在可視化藝術方面的應用精偿。
交互式選擇指的是事物(通常是由計算機產(chǎn)生的圖像)在用戶交互下發(fā)生進化的過程。
舉個例子赋兵,你在參觀一家博物館笔咽,博物館的墻上掛著幾幅油畫。在交互式選擇技術的幫助下霹期,你只要選擇出最喜歡的畫叶组,程序就會根據(jù)你的喜好自動產(chǎn)生(或者“進化出”)一副新畫供你欣賞。3.生態(tài)系統(tǒng)模擬
如果你去閱讀人工智能方面的在線文檔或教科書历造,通常會看到關于傳統(tǒng)遺傳算法和交互式選擇技術的講解甩十。
但它們不會講解如何在程序中模擬現(xiàn)實世界的進化過程。
本章的最后將探索如何在模擬生態(tài)系統(tǒng)中模擬進化過程吭产。
模擬生態(tài)系統(tǒng)中的對象會相遇侣监、結合,并把基因傳遞給下一代臣淤。
這種技術可以直接應用到每一章最后的生態(tài)系統(tǒng)項目中橄霉。