Россия, Волгоградская область |
Эволюционные стратегии
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].
Иногда рекомендуется устанавливать коэффициент мутации обратно пропорционально числу переменных в потенциальном решении (особи) и прямо пропорционально расстоянию от точки оптимального решения. Конечно, в реальных приложениях точное расположение оптимума неизвестно. Однако иногда может быть известна априорная информация об оптимуме (например, порядок величины). Даже ограниченная информация может быть полезна в процессе поиска в ЭС.