Любитель подземелий и программирования Geneti c здесь:)
Я думаю, вы неправильно поняли концепцию кроссовера. На ваших клеточных автоматах вы должны иметь генетическую c информацию (хромосомы), чтобы ваша система решала, является ли соответствующая клетка мертвой или живой. Состояние ячейки - это вывод вашей системы.
Вы выполняете перекрестный генетический оператор c между двумя родительскими хромосомами, смешивая их генетическую c информацию. В результате вы получаете новую хромосому, которая кодирует карту аналогично обоим родителям. Новое состояние ваших клеток можно получить, запустив новую хромосому для повторного сопоставления вашего пейзажа.
Кроссовер дает вам новую хромосому для картирования вашего подземелья, но не дает новых состояний для клеток. Чтобы получить новые состояния, просто запустите новую хромосому.
Состояние ваших клеток будет фенотипом, способом, которым проявляется ваша хромосома. Ваша хромосома - это модель, которая решает, жива ли ваша клетка. Меня не волнует модель, которую вы используете. Например, вы используете нейронную сеть с двумя входными узлами. Один входной узел получает координату X ячейки в сетке, а другой узел получает координату Y. Выходной узел представляет собой двоичное значение: DEAD или ALIVE. Эта нейронная сеть имеет определенное количество скрытых слоев и весов, которые закодированы в вашей хромосоме. Выполнив оператор кроссовера, вы создадите новый способ соединения нейронов, который находится между обоими родителями. Но чтобы узнать новое состояние каждой ячейки, вам нужно снова передать координаты в нейронную сеть. Возможно, проверка алгоритма NEAT Стенли проясняет процесс кроссовера: http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf
Если у вас нет модели, которая кодирует состояние каждой ячейки на карте, ваш генет c информация непосредственно о состоянии каждой ячейки. В этой ситуации вы можете разбить родительские сетки на более мелкие, например, 10x10. Затем бегите по карте в тайлах размером 10x10 и выбирайте случайным образом, выбираете ли вы подходящую плитку из parent1 или parent2.
Надеюсь, это поможет!
Альберто