Сначала я попытался смоделировать то, на что, как я думал, похожи органические системы. В конечном итоге решили, что это нехорошо, и стали более агрессивными: 10% остались, 20% мутировали, 60% скрещивались и 10% были случайными.
Тогда я заметил, что мои лучшие 10% были примерно одинаковыми. Поэтому я увеличил случайность до 30%. Это помогло некоторым, но не сильно.
Я попробовал пропустить несколько островков, пропустить поколение и пересеять, что дало лучшие результаты, но все еще крайне неудовлетворительно, с очень небольшим разбросом в 10% лучших, сумасшедших длинных поколений, чтобы получить какие-либо результаты. В основном код узнал, как взломать мою оценку пригодности.
Получить лучших исполнителей действительно легко, так что не беспокойтесь о том, чтобы держать их слишком много. Скрещивание помогает урезать положительные и отрицательные черты, поэтому они полезны, но на самом деле вы хотите получить много хороших случайных результатов. Сосредоточьтесь на мутациях и новых случайностях, чтобы привнести особенности, и позволить скрещиваниям и лучшим исполнителям. просто следите за лучшими и улучшайте их медленнее. IE: материал, основанный на последнем поколении, просто находит лучшие локальные максимумы, случайные люди находят лучшие глобальные максимумы.
Я все еще верю, что оптимальные ответы на ваш вопрос можно найти, наблюдая за природными явлениями, например, в недавней статье о случайности траекторий полета плодовой мухи, которые могут сработать.
Вероятно, лучший ответ - просто запустить его и настроить, не бойтесь подправить его довольно сильно, население устойчиво. Убедитесь, что вы реализовали способ сохранения и продолжения.