2014-10-22 5 views
3

Может кто-нибудь объяснить мне, как работает кроссовер Order? Я приведу этот пример, и я хочу понять его в общих чертах для реализации после.Заказать Кроссовер (OX) - генетический алгоритм

Родитель 1 = 1 2 3 | 4 5 6 7 | 8 9

Родитель 2 = 4 5 2 | 1 8 7 6 | 9 3

и раствор два childreen:

Дети 1 = 2 1 8 | 4 5 6 7 | 9 3

Дети 2 = 3 4 5 | 1 8 7 6 | 9 2

Я понимаю некоторые части, но другие нет.

Благодаря

ответ

3

Одно из таких решений для упорядоченного Crossover детализированы в this post.

Этот ответ содержит примерный код Java с документацией, описывающей процессы, используемые для упорядоченного кроссовера.

Кроме того, this paper от Moscato обеспечивает разбивку процесса OX.

Надеюсь, это поможет!

+0

спасибо, я получил его сейчас. –

9

В основном, валок последовательных аллелей от родителей 1 падает вниз, а остальные значения помещается в ребенке в порядке, в котором они появляются в родительских 2.

enter image description here

Шаг 1: Выберите случайный валок последовательных аллелей от родителей 1. (подчеркнуто)

Шага 2: Отбрось валок вниз к ребенку 1 и выделить эти аллели в родитель 2.

Шаг 3: Начиная с правой стороны от swath, захватить аллели от родителя 2 и вставить их в Child 1 на правый край валка. Так как 8 находится в этом положении в Parent 2, он вставляется в Child 1 сначала на правый край валка. Обратите внимание, что аллели 1, 2 и 3 пропускаются, потому что они выделены и 4 вставлены во 2-е место в Child 1.

Шаг 4: Если вы желаете второго ребенка от двух родителей, переверните Parent 1 и Parent 2 и вернуться к этапу 1.

Смежные вопросы