2016-03-09 2 views
-5

Я работаю над базовым генетическим алгоритмом на Java с населением в 20 хромосом, я планирую сохранить 20% основной родительской популяции для следующего поколения, мой вопрос заключается в создании следующего поколения после того, как было найдено самое сильное из нынешнего поколения, создаются ли дети нового поколения, основанные на возможности кроссовера и мутации родителей? Или следующее поколение детей случайно генерируется снова, но с самыми сильными предыдущими родителями.Вопросы генетического алгоритма

Благодаря

+0

Интересно, но я не вижу связи с Java. – laune

+0

@Rami Итак, как вы хотите, чтобы этот вопрос о биологии был связан с Java? – user3437460

+0

@laune Алгоритм основан на Java – Rami

ответ

0

Для следующего поколения это разумно иметь все 3 на основе вероятностей.

Кроссовер приблизит вас к желаемому решению.

Мутации стараются не застревать на локальном оптимуме.

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

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

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