Генетический алгоритм - что такое устойчивый отбор? - PullRequest
12 голосов
/ 22 января 2011

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

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

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

1 Ответ

20 голосов
/ 23 января 2011

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

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

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

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

...