大家好我正在研究遺傳算法來創建新一代。我遇到了以下問題:使用遺傳算法中的複製和交叉創建新一代
此問題涉及遺傳算法。假設你有一個由10個人組成的人口。每個人都由5位組成。這是最初的人口。
x1 = (1, 0, 0, 1, 1)
x2 = (1, 1, 0, 0, 1)
x3 = (1, 1, 0, 1, 1)
x4 = (1, 1, 1, 1, 1)
x5 = (0, 0, 0, 1, 1)
x6 = (0, 0, 1, 1, 1)
x7 = (0, 0, 0, 0, 1)
x8 = (0, 0, 0, 0, 0)
x9 = (1, 0, 1, 1, 1)
x10 = (1, 0, 0, 1, 0)
個人排名根據適應值(x1具有最大的適應值,x2次優等,等等)。假設在抽樣時,您按照排名順序獲取個人。假設以下情況,創建新一代解決方案:
複製爲20%。交叉是80%(假設交叉掩碼如下:11100;按照與排名相同的順序配對示例)。沒有突變完成。
我的解決方案:複製是20%,這意味着前兩個人口是不變的。下面給出的交叉口罩給予11100我隨機選擇3個字從交叉(11100)面具,所以從x3和x4開始,在這裏我保持前3單詞x3和x4相同,最後交換x3和x4的最後兩個剩餘單詞並生成新的羣體。我遵循x5和x6,x7和x8以及x9和x10的相同規則。我不確定這個答案是正確的還是錯誤的。任何機構都可以幫助我嗎?
20%複製意味着您的個人中有20%會參與重組(您的情況爲交叉)。我理解交叉掩碼作爲位於bit1和bit2之間的交叉點(單點交叉,位枚舉爲(4,3,2,1,0))。這意味着你從一個人身上取得bit2-4,並將他們與另一個人的bit2-4交換來創造你的後代。 – orange