Генетический алгоритм - что такое устойчивый отбор?

Я делаю последний год проекта по генетическим алгоритмам - в частности, типа ласки Докинса. Я сделал выбор в рулетку и турнир, все еще для выбора в устойчивом состоянии, но я не уверен, что именно, и ссылки, которые я нахожу в Интернете, довольно расплывчаты.

Кто-нибудь знает, как это должно быть реализовано? Любые указатели были бы великолепны.

Большое спасибо.

1 ответ

Решение

Как правило, прогон генетического алгоритма делится на поколения - каждое поколение вашего процесса отбора и воспроизводства заменяет всю (или, по крайней мере, большую часть) популяции. В устойчивом генетическом алгоритме вы заменяете только несколько человек одновременно.

Используйте стандартную технику отбора, чтобы выбрать родителей, чтобы произвести этих немногих потомков. Затем случайным образом выберите одинаковое количество особей, убейте их и замените их потомством (вы можете выбрать негодных особей на смерть, но это может уничтожить разнообразие населения в нетривиальной проблеме).

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

Базовая реализация должна быть довольно простой, но вы можете проверить основы метаэвристики (страницы 45-46, электронная книга доступна бесплатно).

Другие вопросы по тегам