Выбор заводчиков в генетическом алгоритме - PullRequest
0 голосов
/ 04 февраля 2019

Я реализую генетический алгоритм, и я не знаю, как выбрать заводчиков для следующего поколения:

У меня есть список всех подсчитанных прошлых особей,

Это нормально, если я выберу заводчиков из этого списка?или мне лучше выбрать лучшие из последнего поколения?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Вы можете попробовать один из следующих методов, чтобы выбрать заводчиков (родитель) - Выбор колеса рулетки - Стохастическая универсальная выборка - Выбор турнира - Случайный выбор

Ссылка: https://www.tutorialspoint.com/genetic_algorithms/genetic_algorithms_parent_selection.htm

0 голосов
/ 05 февраля 2019

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

0 голосов
/ 04 февраля 2019

Это обычно предпочтительнее выбрать те, которые имеют наивысшее значение пригодности

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