2016-05-04 4 views
2

Существует фаза в генетическом алгоритме, где мы должны выбрать кроссовер хромосом от родителей к потомству.Как перекрещивать родителей при использовании метода кодирования значений в генетическом алгоритме?

Это легко сделать через двоичную форму.

Но что делать, если мы кодируем хромосомы, используя кодировку значений?

Скажем, один бит в моих хромосомах является значением типа DOUBLE, скажем, 0.99, его диапазон равен (0-1), так как он будет представлять вероятность.

Как выполнить кроссовер этого ДВОЙНОГО номера?

Конвертировать в двоичный код в кроссовер, а затем конвертировать обратно ...?

+0

По вероятности вы имеете в виду, что каждая аллель хромосомы должна составлять 1? Или вы имеете в виду, что каждый аллель имеет свою собственную вероятность? Если это последний, вы, вероятно, можете просто сделать одноточечный кроссовер ... – DMML

+0

@DMlash Привет, спасибо за ответ, каждый аллель имеет свою собственную вероятность. Как сделать одноточечный кроссовер против двойного типизированного значения? Я знаю, как это сделать против двоичного значения. –

+0

Я полагаю, это зависит от проблемы, которую вы решаете, и имеет ли смысл иметь в этом смысл в первую очередь. Если это имеет смысл, то, как вы говорите, каждая хромосома представляет собой вектор вещественных аллелей длины n. Затем вы рисуете равномерное случайное значение в диапазоне от [1, n]; мы назовем это значение S. Для каждого из родителей вы держите аллели до положения пола (S) (т.е. если значение 5.333, то вы сохраняете элементы в позиции 1,2,3,4,5) и пересекают значения на потолке (S) до n позиций (Ie, 6,7,8, ..., n). – DMML

ответ

0

Вы можете использовать смешивания кроссовера оператора (вариант с α = 0):

p1 first parent 
p2 second parent 
u  random number in [0, 1] 

offspring = (1 - u) * p1 + u * p2 

Предполагая, что p1 < p2, этот оператор кроссовера создает случайное решение в диапазоне [p1, p2].

Оператор смешанного кроссовера имеет интересное свойство: если разница между родителями мала, разница между дочерним и родительским решениями также мала. Таким образом, распространение текущего населения диктует распространение решений в результирующей популяции (это форма adaptation).

Более расширенная версия оператора смесь кроссовера (BLX- α) и другим хорошо известным оператором (моделированной Binary Crossover) описаны в Self-Adaptive Genetic Algorithms with Simulated Binary Crossover по Кальянмой Деб и Hans-Georg Beyer.


Differential Evolution - другая возможность.

+0

Спасибо за ответ, особенно для справочной статьи! –

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

  • Нет связанных вопросов^_^