2010-10-15 41 views
4

我的previous question掩蓋了我的經驗並且基於一個假設。現在我更聰明瞭。 (把1和0的字符串?呸!我的建議笑!)什麼是一種明智的方式來表示遺傳算法的二進制基因組?

我的問題是,然後,我應該如何編碼的基因組我

在紙面上,它們是這樣的:其編碼(在某些情況下單獨使用,並且在一些情況下,作爲基團)中的參數將被測試

01010011010110010 

17比特。

的要求是:

  1. 需要具有可擴展性。目前可能有17個,但隨着選項的添加,刪除或修改範圍,這可能會增加/縮小。
  2. 每一位都需要單獨翻轉以代表點突變。
  3. 理想情況下,應該很容易取兩個基因組的最後X%並切換它們(代表交叉)。
  4. 必須有明確表示基因組的明文方式。這裏強調的是方便而不是人的可譯性。 (認爲​​URL縮寫。)

任何人有任何偉大的想法? (如果它是有用的,我使用C#。)

+0

在變換或交叉位時,「BitArray」中的編碼組可能會生成無效成員。看看[這裏](http://www.obitko.com/tutorials/genetic-algorithms/encoding.php)瞭解一些替代編碼。 – 2010-10-15 16:46:33

回答

3

像安德烈說,BitArray可能是你最好的答案,它滿足您的所有需求。

1)你可以設置的位數與構造

2)它允許你設置(開或關),或和,異或,非對位

3),你可以循環在你最後的x%做交叉

4)有一個ToString應該允許你輸出它。

相關問題