《Java遺傳演算法程式設計》 2 6 交叉方法

2021-09-23 15:52:11 字數 434 閱讀 6744

在交叉過程中,除了用不同的選擇方法,還有可用不同的方法在兩個個體之間交換遺傳資訊。不同的問題具有不太一樣的特點,採用特定的交叉方法更好。例如,「全一」問題只要求完全由1構成的字串。字串「00111」與字串「10101」具有相同的適應度值,因為它們都包含3個1。對於這種型別的遺傳演算法,情況並非總是如此。設想我們試圖建立乙個字串,它按順序列出數字1到5。在這種情況下,字串「12345」與「52431」的適應度值非常不同。這是因為我們不只是尋求正確的數字,也尋求正確的順序。對於這樣的問題,適合採用考慮基因順序的交叉方法。

我們在這裡實現的交叉方法是均勻交叉(uniform crossover)。在這種方法中,後代的每個基因都有50%的機會來自第乙個親代或其第二個親代,如圖2-2所示。

《Java遺傳演算法程式設計》 2 9 小結

在本章中,你已經學會了實現遺傳演算法的基本知識。本章開頭的偽 提供了乙個通用的概念模型,針對本書其餘部分所有要實現的遺傳演算法 每個遺傳演算法將初始化並評估種群,然後進入乙個迴圈,進行交叉 變異和再評估。僅當終止條件滿足時,才退出迴圈。在本章中,你建立了遺傳演算法的支援元件,尤其是individua...

《Java遺傳演算法程式設計》 2 10 練習

1 執行遺傳演算法幾次,觀察進化過程的隨機性。它通常需要多少代來找到這個問題的乙個解?2 擴大和減小種群規模。減小種群規模如何影響演算法的速度?它是否也影響找到乙個解需要的世代數?擴大種群規模如何影響演算法的速度?它如何影響找到乙個解需要的世代數?3 將變異率設定為0。這將如何影響遺傳演算法尋找解的...

《Java遺傳演算法程式設計》 1 7 搜尋空間

在電腦科學中,如果處理優化問題時有許多候選解需要搜尋,我們就稱解的集合是 搜尋空間 搜尋空間內每個特定的點就是給定問題的乙個候選解。在這個搜尋空間中有距離的概念,相比位置遠離的解,位置彼此靠近的解更可能表現出相似的特徵。為了理解這些距離在搜尋空間中如何組織,請考慮下面使用二進位制遺傳表示的例子 10...