Удаление особи из популяции
Как уже было сказано, удаление турнирным методом - довольно продолжительная по времени выполнения процедура.
Вспомним, что целью турнирной селекции является такой выбор особи для удаления, чтобы вероятность удаления худшей особи была выше вероятности удаления лучшей. Сохраняя это требование можно предложить более эффективные, чем турнирный метод, способы. Поясним одну из таких схем на рисунке.
Здесь показана популяция из 8 хромосом и функция вероятности удаления той или иной хромосомы из популяции. В нашей реализации мы храним популяцию в упорядоченной (возрастающей по функции приспособленности) коллекции.
Рис.1.9. Нелинейная функция, определяющая вероятность удаления хромосомы
Очевидно, что требованиям удовлетворяет функция от номера хромосомы в популяции, которая:
1. Возрастает в диапазоне номеров хромосом.
2. Суммарная вероятность удаления равна 1 (что соответствует равенству 1 интеграла данной функции на диапазоне номеров).
Для простоты и не теряя при этом существенно качественной картины, можно использовать линейную функцию.
Рис.1.10. Линейная функция, определяющая вероятность удаления хромосомы
Таким образом, алгоритм удаления будет следующим:
Цикл прохода по хромосомам в списке в обратном порядке:
Если случайная величина оказывается меньше вероятности удаления текущей хромосомы, то удалить эту хромосому и прекратить цикл.
Если цикл так и не удалил хромосому, удалить первую хромосому.