Эволюционные стратегии
9.1. Двукратная эволюционная (1+1)- стратегия
Здесь потомок принимается в качестве нового члена популяции (он заменяет своего родителя), если значение фитнесс функции (ЦФ) на нем лучше, чем у его родителя и выполняются все ограничения. Иначе, (если значение фитнесс-функции на нем хуже, чем у родителей), потомок уничтожается и популяция остается неизменной.
Рассмотрим выполнение оператора мутации на конкретном примере следующей функции [2]
( 9.3) |
в предположении поиска максимума.
Для определенности предположим, что в -поколении текущая особь имеет вид:
( 9.4) |
Тогда потомок определяется следующим образом:
( 9.5) |
где числа 0.4 и 0.3 получены случайным образом в соответствии с распределением Гаусса.
Поскольку (значение ЦФ потомка лучше, чем у родителя), то полученный потомок заменяет родителя.
В целом алгоритм процесса эволюции двукратной (1+1)- эволюционной стратегии можно сформулировать следующим образом.
- Выбрать множество параметров , необходимых для представления решения данной проблемы, и определить диапазон допустимых изменений каждого параметра:
установить номер поколения (итерации) ; задать стандартное отклонение для каждого параметра, функцию , для которой необходимо найти оптимум, и максимальное число поколений .
- Для каждого параметра случайным образом выбрать начальное значение из допустимого диапазона: множество этих значений составляет начальную популяцию (из одной особи) .
- Вычислить значение оптимизируемой функции для родительской особи .
- Создать новую особь-потомка в соответствии с (9.2)
- Вычислить значение для особи-потомка .
- Сравнить значения функций для родителя и потомка; если значение потомка лучше, чем у родительской особи, то заменить родителя на потомка , иначе оставить в популяции родителя.
- Увеличить номер поколения ;
- Если не достигнуто максимальное число поколений , то переход на шаг 4, иначе выдать найденное решение .
Несмотря на то, что фактически здесь популяция состоит из одной особи, рассмотренная стратегия называется двукратной ЭС. Причина в том, что здесь фактически происходит конкуренция потомка и родителя. Обычно вектор стандартных отклонений остается неизменным в течении всего процесса эволюции. Если все его компоненты одинаковы и оптимизационная задача регулярна, то можно доказать следующую теорему сходимости [1,2].
Теорема. Для и регулярной оптимизационной задачи с (минимизация), либо (максимизация), имеет место равенство
( 9.6) |
Эта теорема утверждает, что оптимальное решение регулярной оптимизационной задачи находится с вероятностью, равной единице при , но при этом совершенно ничего не говорится о том, как и каким образом двигаться к этому оптимальному решению. Поэтому, чтобы оптимизировать скорость сходимости этого процесса, И. Решенберг [1] (основоположник ЭС) предложил правило успеха "1/5".
Смысл его заключается в следующем - правило применяется после каждых поколений процесса (где – параметр этого метода):
( 9.7) |
где - отношение числа успешных мутаций к общему числу произведенных мутаций (число успехов, деленное на ), которое называется коэффициентом успеха для оператора мутации в течении последних поколений; величина – регулирует увеличение/уменьшение отклонения мутации.
Обычно на практике оптимальные значения полагают равными следующим величинам: . Смысл этого правила в следующем:
- если коэффициент успеха , то отклонение увеличивается (мы идем более крупными шагами);
- если коэффициент успеха , то отклонение уменьшается (шаг поиска уменьшается).
Идеи И.Решенберга получили дальнейшее развитие в концепции "эволюция окна" [3] при которой результат применения оператора мутации принимается только в том случае, если он лежит в пределах некоторой окрестности (окна) родительской особи в пространстве решений. Динамическое изменение шага мутации в сочетании с эволюцией величины окна ведет к метаэволюции [3].
Иногда рекомендуется устанавливать коэффициент мутации обратно пропорционально числу переменных в потенциальном решении (особи) и прямо пропорционально расстоянию от точки оптимального решения. Конечно, в реальных приложениях точное расположение оптимума неизвестно. Однако иногда может быть известна априорная информация об оптимуме (например, порядок величины). Даже ограниченная информация может быть полезна в процессе поиска в ЭС.