В настоящее время я пытаюсь реализовать очень простой пример генетических алгоритмов.
В какой-то момент вам нужно выполнить «Перекрестный -Овер» (биологию )с двумя числами (родители ), чтобы получить «ребенка».
Вы можете найти объяснение Креста -здесь:
Как «скрестить» две строки (1234 и abcd -> 12cd и ab34)
(Второй пример, более простой «один -пункт» Cross -Over — это то, что я пытаюсь сделать.)
Хромосомы (родителей и дочерних )являются числами, но "Перекрестить -Над" будет битовой операцией.
Я нашел решение для одной из «хромосом», которое выглядит следующим образом:
>>>
оператор)<<
оператор)Так что это сохранит конец одной из хромосом и заполнит начало нулями.
Но я действительно не знаю, как решить проблему другой хромосомы, а затем еще и -Перекреститься.
(Вероятно, XOR, когда я сохранил начало/конец хромосом, а остальные заполнил нулями.)
Или мне стоит подойти к этой проблеме с другой стороны?