Масштабирование соответствия преобразует необработанные счета соответствия, которые возвращаются функцией соответствия, в значения в области значений, который подходит для функции выбора. Функция выбора использует масштабированные значения соответствия, чтобы выбрать родительские элементы следующей генерации. Функция выбора присваивает более высокую вероятность выбора индивидуумам с более высокими масштабными значениями.
Область значений масштабированных значений влияет на эффективность генетического алгоритма. Если масштабированные значения изменяются слишком широко, индивидуумы с самыми высокими масштабированными значениями воспроизводятся слишком быстро, переняв население генофонд слишком быстро и предотвратив появление генетического алгоритма поиска других областях пространства решений. С другой стороны, если масштабированные значения изменяются лишь немного, все индивидуумы имеют примерно одинаковые шансы на воспроизведение, и поиск будет прогрессировать очень медленно.
Опция масштабирования соответствия по умолчанию, Rank
, масштабирует необработанные счета на основе ранга каждого индивидуума вместо его счета. Ранг индивидуума - его позиция в отсортированных счетах: ранг самого подгоняемого индивидуума - 1, следующего по подгонке - 2 и так далее. Функция рангового масштабирования присваивает масштабированные значения так, чтобы
Масштабированное значение индивидуума с ранговым n пропорционально .
Сумма масштабированных значений по всей совокупности равняется количеству родительских элементов, необходимых для создания следующей генерации.
Ранговое масштабирование соответствия удаляет эффект распространения необработанных счетов.
Следующий график показывает необработанные счета типичного населения из 20 индивидуумов, отсортированные в порядке возрастания.
Следующий график показывает масштабированные значения необработанных счетов с помощью рангового масштабирования.
Поскольку алгоритм минимизирует функцию соответствия, более низкие необработанные счета имеют более высокие масштабированные значения. Кроме того, поскольку масштабирование ранга присваивает значения, которые зависят только от ранга индивидуума, показанные масштабированные значения будут одинаковыми для любого населения размера 20 и количества родительских элементов, равного 32.
Чтобы увидеть эффект масштабирования, можно сравнить результаты генетического алгоритма с помощью рангового масштабирования с одной из других опций масштабирования, таких как Top
. По умолчанию масштабирование сверху присваивает 40 процентов самых подходящих индивидуумов тому же масштабу и присваивает остальным индивидуумам значение 0. Используя функцию выбора по умолчанию, только 40 процентов наиболее подходящих индивидуумов могут быть выбраны в качестве родительских элементов.
Следующий рисунок сравнивает масштабированные значения населения размера 20 с количеством родительских элементов, равным 32 с помощью рангового и верхнего масштабирования.
Поскольку верхнее масштабирование ограничивает родительские элементы самыми подходящими индивидуумами, это создает менее разнообразные населения, чем ранговое масштабирование. Следующий график сравнивает отклонения расстояний между индивидуумами в каждой генерации с помощью рангового и верхнего масштабирования.