Какой разумный способ представить бинарный геном для генетического алгоритма? - PullRequest
4 голосов
/ 15 октября 2010

Мой предыдущий вопрос противоречил моей неопытности и основывался на предположении. Теперь я намного мудрее. (Поместите 1 и 0 в строку? Тьфу! Я смеюсь над предложением!)

Тогда у меня вопрос, как мне кодировать мои геномы ?

На бумаге они выглядят так:

01010011010110010

17 битов, которые кодируют (в некоторых случаях по отдельности, а в некоторых случаях в виде групп) параметры для тестирования.

Требования:

  1. Должен быть масштабируемым. В настоящий момент их может быть 17, но они могут увеличиваться / уменьшаться по мере добавления, удаления или изменения диапазона параметров.
  2. Каждый бит должен быть индивидуально переключаемым, чтобы представлять точечные мутации.
  3. В идеале, должно быть легко взять последние X% двух геномов и переключить их (представляющие кроссовер).
  4. Должен быть прямой способ представления генома в виде открытого текста. Здесь акцент делается на удобстве, а не на человеческом переводе. (Подумайте, сокращения URL.)

У кого-нибудь есть отличные идеи? (Если это полезно, я использую C #.)

Ответы [ 2 ]

3 голосов
/ 15 октября 2010

Как сказал Андрей, BitArray, вероятно, ваш лучший ответ, он отвечает всем вашим требованиям.

1) Вы можете установить количество битов с помощью конструктора

2), который позволяет вам устанавливать (вкл или выкл), Или, И, Xor, Не в битах

3) вы можете перебрать последние x%, чтобы сделать кроссовер

4) есть ToString, которая должна позволять вам выводить его.

3 голосов
/ 15 октября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...