Генетический алгоритм - что такое устойчивый отбор?
Я делаю последний год проекта по генетическим алгоритмам - в частности, типа ласки Докинса. Я сделал выбор в рулетку и турнир, все еще для выбора в устойчивом состоянии, но я не уверен, что именно, и ссылки, которые я нахожу в Интернете, довольно расплывчаты.
Кто-нибудь знает, как это должно быть реализовано? Любые указатели были бы великолепны.
Большое спасибо.
1 ответ
Как правило, прогон генетического алгоритма делится на поколения - каждое поколение вашего процесса отбора и воспроизводства заменяет всю (или, по крайней мере, большую часть) популяции. В устойчивом генетическом алгоритме вы заменяете только несколько человек одновременно.
Используйте стандартную технику отбора, чтобы выбрать родителей, чтобы произвести этих немногих потомков. Затем случайным образом выберите одинаковое количество особей, убейте их и замените их потомством (вы можете выбрать негодных особей на смерть, но это может уничтожить разнообразие населения в нетривиальной проблеме).
Вы должны оценивать пригодность только один раз на человека - после оценки пригодности сохраните ее, а затем повторно используйте это число в будущем. Подсказка: когда создается новый человек, пометьте его как неоцененный, а затем оцените его в первый раз, когда он нужен (таким образом, если человек создан и затем случайно выбран для смерти перед использованием, вы не тратите время на оценку его фитнес).
Базовая реализация должна быть довольно простой, но вы можете проверить основы метаэвристики (страницы 45-46, электронная книга доступна бесплатно).