Если вы знаете, как кодируется ваш геном, т. Е. Какие последовательности хромосом образуют группы, вы можете расширить (поскольку вы упоминаете дженетику) io.jenetics.MultiPointCrossover
, чтобы избежать разделения групп.(Исходный код доступен на GitHub .)
Это может быть так же просто, как сохранение диапазонов генов, которые образуют группы, если один из индексов случайного среза разделит группу, приспособив индекс кближайший конец группы.(Конечно, это приведет к статистически более высокой вероятности порезов на концах групп; вероятно, было бы лучше создать новое случайное место, пока оно не пересекает группу.)
Но это также верно (как отмечает Пит), чтобы иметь гены, которые не имеют смысла (игнорируются) на основе других генов;если комбинация против выживания, она будет выбрана.