2017-02-10 129 views
1

考慮到這個問題:擁有一個1000個實數的向量,找到7個部分中的1000個元素的優化分區,以便部分之和具有近似(近似)值。高效的遺傳算法

你會如何使染色體的表現,運算符(變異,交叉),適應度函數,選擇......讓你解決問題中最有效的&優化方式?

我的想法是給每個數字一個索引(最低的數字有索引1,最高的索引1000例如)...但我不認爲這是最有效的方式?歡迎任何建議!

回答

0

由於它是一個分區問題,我認爲你需要將整個集合放在一個染色體中。假設您有一個長度爲1000的數組,其值可以從1到7.適應度函數可以計算每個分區總和的差值(越小越好)。交叉點可以用單點或雙點完成。然後,突變可以隨機地將個體基因從它的值改變爲隨機值,比如說102的位置是4,然後突變爲1.有了這個解決方案,你可以保證每個染色體都是有效的解決方案,儘管可能是一個不好的解決方案,不必在每次迭代之後檢查不符合問題規則的染色體(如果您選擇每個分區有一個染色體,則會出現問題)。像往常一樣,交叉標準和變異的可能性需要在獲得最佳性能之前進行探索和調整。