Как перевести набор / хромосомы / s в атрибут? - PullRequest
2 голосов
/ 16 сентября 2011

Итак, так как ответ на этот в основном сказал, что я действительно должен изучить кодирование генов моих существ *, что я и сделал!

Итак, я создал следующую аккуратную маленькую (byte [] -) структуру:

Gene = {X, X, X, X, Y, Y, Y, Y, Z, Z, Z, Z}

Где

  • X = Представляет определенную черту в существе.
  • Y = Эти блоки управляют тем, как, если и когда произойдут кроссоверы и мутации (16 возможных значений, я думаю, этого должно быть более чем достаточно!)

  • Z = длина цепи (в основном, это для будущих сборок, где я хочу, чтобы эволюция управляла даже длиной всей цепи) .

(То есть Z и Y можно рассматривать как META-информацию)

(Прежде чем спросить, да, это 12-байт :))

У меня к вам следующий вопрос:

Как бы я соединил эти характеристики каждого «существа»?

В принципе, я вижу это таким образом (и, вероятно, именно так я это буду реализовывать): Каждое «существо» может бегать, есть и размножаться, основные вещи. Я не думаю (я точно не надеюсь , по крайней мере, так!) Мне понадобится фитнес-функция как таковая , но я надеюсь, что эволюция, как в гонке за едой , партнеры и космос заставят существ эволюционировать.

Это неправильный взгляд? Было бы проще (заметьте, я программист, , а не математик!), Чтобы посмотреть на него как на один большой граф и "просто" взять его оттуда?

Или, tl; dr: Можете ли вы указать мне правильное направление на статьи, исследования и / или примеры реализации этого?

(еще больше; др; как мне перевести ген, скажем, например, на длину ноги?)

* Прочитайте вопрос, я создаю своего рода симулятор.

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Раньше я не видел метаинформации, подобной вашим Y и Z, в последовательности генов генетического алгоритма (в моем ограниченном знакомстве с техникой). Ваш генетический алгоритм нетрадиционен?

Сколько черт у существа? Если ваши X представляют значения признаков, а последовательность гена может иметь переменную длину (Z), то что произойдет, если для всех признаков не определено достаточно X? Что произойдет, если у существа больше Х, чем черт характера?

  • Z должно быть фиксированным значением.
  • Y должны быть параметрами вашей рутины генетической эволюции
  • должен быть X (или набор X) для каждой черты существа (не больше, не меньше)

Если число X у вас фиксированное, то для каждой черты вы назначаете определенный индекс (или набор индексов) для представления этой черты.

EDIT:

Вы должны определить кодировку своих черт, которые X должны представлять: для длины ноги, например, вы можете иметь несколько байтов, представляющих длину ноги. Если бы байты 3-5 были длиной ноги, вы могли бы представить длину в вашем X -векторе следующим образом:

[...101......]

Там, где точки - это представления других черт. Вышеуказанный фрагмент представляет длину ноги 5 (что бы это ни значило). В приведенном ниже геноме все еще есть 5 в качестве длины ноги, но другие черты также заполняются.

[001101011011]

1 голос
/ 16 сентября 2011

Взгляд на Митчелла, 1998, Введение в генетические алгоритмы , гл.3.3, я нашел ссылку на Forrest and Jones, 1994, Моделирование сложных адаптивных систем с помощью Echo. , которая относится к программному обеспечению Echo, которое, кажется, делает то, что вы ищете (развивающееся существо в мире).На данный момент я не могу найти ссылку на него, но вот диссертация по реализации jEcho , Брайан Макиндои.

...