例如,0 < = x < = 31,二進制形式31的長度是5,因爲31 = 11111在基數2中。 然而,如何處理,比如說,0 < = x < = 25 if我保留長度5,可能會生成11110(30)等數字,超過11001(25)。 我想知道是否有映射可以解決這個問題。 非常感謝!在遺傳算法中,如何處理函數約束的二元表示?
-2
A
回答
0
如果我的理解正確,那麼您正在詢問如何處理自動生成的解決方案,這些解決方案超出了您的約束範圍。在這種情況下,您有幾種選擇,首先,您可以簡單地殺死這些無效的解決方案,並生成更多內容,直到您的約束條件滿足爲止更好的選擇是在指定範圍內規範化所有值,例如0到31或0到64等
我在這個例子的Evaluate Fitness函數中有這種類型的規範化的例子。
http://johnnewcombe.net/blog/gaf-part-2/
的代碼是根據各地的遺傳算法框架對於.NET但該技術可以應用到任何圖書館或本地增長算法。
+0
感謝您的回覆!規範化是一個好主意! –
+0
爲了澄清'正常化'的方法,我在這裏增加了一個關於這個主題的帖子:[http://johnnewcombe.net/blog/gaf-part-9/](http://johnnewcombe.net/blog/gaf-部分-9 /)。 –
相關問題
- 1. 遺傳算法的二進制表示
- 2. 在Matlab中使用遺傳算法時如何設置整數約束?
- 3. 如何設置Matlab遺傳算法約束?
- 4. 使用Matlab遺傳算法優化昂貴的適應度函數約束
- 5. Python遺傳算法的二進制數
- 6. 如何在遺傳算法的某些條件下編寫線性約束?
- 7. '至少有一個選擇'遺傳算法約束
- 8. 遺傳算法的目標函數
- 9. 遺傳算法近似函數
- 10. 特定遺傳算法成本函數
- 11. 遺傳算法的數獨
- 12. 遺傳算法
- 13. 如何在遺傳算法中將數字表示爲染色體?
- 14. 的遺傳算法
- 15. java將二維數組作爲遺傳算法中的對象
- 16. Asp.net中處理約束SqlException
- 17. 二次函數的約束優化
- 18. PyBrain的遺傳算法示例/教程?
- 19. 遺傳算法 - 求解具有硬行和軟列約束的矩陣
- 20. 在「選民」中選擇一個倖存的遺傳算法遺傳算法
- 21. 圖像處理項目的遺傳算法
- 22. Python:爲遺傳算法排序列表中的部分元素
- 23. DEAP遺傳算法
- 24. Python遺傳算法
- 25. 遺傳算法庫
- 26. 遺傳算法在R
- 27. 約束和算法
- 28. 課程表組成的遺傳算法
- 29. 遺傳算法和細胞遺傳算法有什麼區別
- 30. 遺傳算法處理負面適應值
你的問題很不清楚。您能否擴展它以清楚地解釋您希望達到的目標以及您的問題是什麼? –
@AndrasDeak很抱歉讓您困惑。我的問題是:如果x屬於[0,25],通常,因爲基數2中的25 = 11001,並且11001的長度爲5,我將隨機生成一些長度爲5的向量,使用1和0。在域[0,25]中以二進制表示x;然而,由於25不是2^k-1的形式,(與31 = 11111不同),生成的數字可能會落在域之外,比如26 = 11010。我的問題是:是否有一個一對一的映射,可以解決這個困境:) –
是否有一個原因爲什麼你不生成整數高達25,*然後*將其轉換爲二進制? –