《Java遗传算法编程》—— 1.5 生物进化
本節書摘來異步社區《Java遺傳算法編程》一書中的第1章,第1.5節,作者: 【英】Lee Jacobson(雅各布森) , 【美】Burak Kanber(坎貝爾),更多章節內容可以訪問云棲社區“異步社區”公眾號查看。
1.5 生物進化
生物通過自然選擇的過程進化,這首先由達爾文(1859)在他的著作《物種起源》中提出。正是他的生物進化的概念,啟發了早期的計算機科學家,轉而用生物進化作為其優化技術的模型,并在進化計算的算法中實現。
因為在遺傳算法中使用的許多思想和概念直接來自生物進化,對該主題有基本的了解,有利于深入了解這個領域。既然這樣,在開始探索遺傳算法之前,讓我們先瀏覽一下生物進化的(有點簡化)基礎知識。
所有的生物都含有DNA,它編碼了構成生物體的所有不同性狀。DNA可以看成是生命的“說明書”,以便從頭開始創建生物體。改變生物體的DNA會改變其性狀,諸如眼睛和頭發的顏色。DNA由單個基因組成,這些基因負責編碼生物體的具體性狀。
生物體的基因被分組放在染色體中,一套完整的染色體組成一個生物體的基因組。所有生物體至少具有一條染色體,但通常含有更多,例如人類有46條染色體,有些物種有超過1000條染色體。在遺傳算法,我們通常將染色體稱為候選解。這是因為遺傳算法通常使用一條染色體來編碼候選解。
對于特定性狀的各種可能設置被稱為“等位基因”,性狀編碼在染色體中的位置被稱為“基因座”。我們將特定的基因組稱為“基因型”,該基因型編碼的物理生物體被稱為“表現型”。
兩個生物體交配時,來自兩個生物體的DNA被帶到一起,它們結合的方式導致產生的生物體(通常被稱為的后代)從第一個親代得到50%的DNA,并從第二個親代得到另外50%的DNA。來自生物體DNA的基因偶爾會發生變異,為它提供雙親所沒有的DNA。通過為種群增加以前沒有的基因,這些變異為種群提供了遺傳多樣性。種群中的所有可能的遺傳信息被稱為種群的“基因庫”。
如果產生的生物體對環境適應得足夠好,能夠生存,它自己很可能交配,讓它的DNA繼續留在未來種群中。然而,如果產生的生物體對環境適應得不夠好,不能生存并最終交配,它的遺傳物質將不會傳播到未來種群中。這就是為什么進化偶爾被稱為適者生存,因為只有適者才能達到個體生存并傳遞它們的DNA。正是這種選擇性的壓力,慢慢將進化導向發現越來越適應、越來越好的個體。
生物進化的一個實例
為了闡明這個過程如何逐漸導致進化出越來越適應的個體,請考慮下面的例子。
在一個遙遠的星球上,存在一個物種,它的形狀是白方塊。
白方塊的物種已經和平生活了幾千年,直到最近,一個新的物種趕到,即黑圓圈。
黑圓圈物種是食肉動物,并開始以白方塊種群為食。
白方塊沒有任何辦法來保護自己并抵抗黑圓圈。直到有一天,一個幸存的白方塊隨機變異,從一個白方塊變成一個黑方塊。黑圓圈不再以新的黑方塊為食,因為它的顏色和自己一樣。
一些幸存的方塊種群交配,造就了新一代方塊。這些新方塊繼承了黑方塊的顏色基因。
然而,白方塊繼續被吃掉......
最后,由于黑方塊的進化優勢,看起來類似黑圓圈,他們不再被吃了?,F在,只剩下黑方塊了。
黑方塊不再畏懼黑圓圈,它們再一次自由地生活在和平之中。
總結
以上是生活随笔為你收集整理的《Java遗传算法编程》—— 1.5 生物进化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Excel 职场手册:260招菜鸟变达
- 下一篇: 《编写高质量代码:改善c程序代码的125