Генетическое программирование: разница между ранком рулетки и выбором турнира
Я читаю слайд о генетическом программировании. На этом слайде сказано, что на этапе выбора есть несколько методов, таких как Roulette
, Rank
или же Tournament
без каких-либо объяснений. Я пробовал Google, но нигде не говорится четко об этих условиях.
Пожалуйста, скажите мне, в чем разница между ними.
1 ответ
Выбор колеса рулетки (aka Fitness пропорциональный выбор)
Пригодность используется, чтобы связать вероятность выбора с каждым человеком.
Если fi - приспособленность индивидуума i в популяции, вероятность его выбора:
pi = fi / Σ j(fj) для j = 1 … N (N - количество особей в популяции)
Он называется колесом рулетки, потому что в казино его можно рассматривать как колесо рулетки:
Это может быть смоделировано следующим (наивным) алгоритмом:
- Рассчитать сумму всех численности населения в популяции (сумма
S
). - Генерация случайного числа
r
в интервале [0; S]. - Пройди по населению и суммируйся. Когда сумма s больше чем r, остановитесь и верните человека, где вы находитесь.
Для возможных реализаций смотрите:
Выбор ранга аналогичен выбору колеса рулетки, за исключением того, что вероятность выбора пропорциональна относительной пригодности, а не абсолютной пригодности.
Не имеет значения, подходит ли наиболее подходящий кандидат в десять раз лучше, чем следующий, или 0,001%. В обоих случаях вероятности выбора будут одинаковыми.
Все, что имеет значение, это ранжирование по отношению к другим лицам.
Выбор ранга легко осуществить, если вы уже знаете, как выбрать колесо рулетки. Вместо того, чтобы использовать пригодность в качестве вероятности для выбора, вы используете ранг. Таким образом, для совокупности из N решений наилучшее решение получает ранг N, второе наилучшее ранг N-1 и т. Д. У худшего человека ранг 1.
( Ранжирование выбора в коде генетического алгоритма)
- Выберите несколько человек наугад из населения (турнир).
- Человек с лучшим фитнесом (победитель) выбирается для кроссовера.
Как вы можете видеть, это эффективно для кода. Он также работает на параллельных архитектурах и позволяет легко регулировать давление выбора (изменение количества участников в турнире).
Конечно, есть много вариантов этих алгоритмов.
Для сравнения вы можете прочитать:
Сравнение эффективности между различными стратегиями отбора на простых генетических алгоритмах (Jinghui Zhong, Xiaomin Hu, Min Gu, Jun Zhang - 2005)