Перейти к основному содержимому

Эволюционная стратегия (ESCH)

КлассВоспроизводимостьСтартовая точкаСвёртка по полосе
глобальныйпри seed ≠ 0используется (первый родитель)любая

Ниже приведено окно настроек метода:

Назначение

Эволюционная стратегия с дифференциальной мутацией: из популяции родителей порождается популяция потомков, лучшие из объединённого набора становятся родителями следующего поколения. Метод работает только с границами диапазонов и не поддерживает ограничения — при наличии целей-ограничений они сворачиваются в целевую функцию как взвешенные штрафы (стартовый рапорт сообщает об этом).

Альтернатива ISRES на задачах без ограничений: другая схема мутации даёт другую траекторию поиска, что полезно как вторая независимая попытка.

Воспроизводимость управляется зерном: при зерне ГСЧ ≠ 0 повторный запуск с теми же настройками даёт идентичную траекторию; при зерне ГСЧ = 0 зерно берётся по времени, и каждый запуск получается новым.

Алгоритм

Эволюционная стратегия с отбором из объединённого набора («плюс»-стратегия). Поколение устроено так: из P родителей рекомбинацией и мутацией порождается 1,5·P потомков, родители и потомки объединяются, и P лучших по F становятся родителями следующего поколения. Родитель не защищён от вытеснения, но и не теряется досрочно: лучшая найденная точка из набора выпасть не может.

Потомок получается двумя механизмами. Рекомбинация набирает координаты от нескольких случайно выбранных родителей; дифференциальная мутация сдвигает точку вдоль разности пары других особей набора:

x=xa+w(xbxc)x' = x_a + w (x_b - x_c)

Масштаб и направление шага задаёт таким образом сама популяция, а не настраиваемый параметр: пока популяция разбросана, шаги крупные, по мере стягивания они сокращаются. Координата, вышедшая за границу диапазона, возвращается в него.

Отдельного механизма для ограничений в методе нет — он работает только с границами диапазонов, поэтому цели-ограничения приходится сворачивать в F взвешенным штрафом. Своего критерия сходимости у метода тоже нет: ни разброс популяции, ни изменение F он не проверяет, поэтому останов задаётся только извне — бюджетом, порогом стагнации или достижением целей.

Параметры

ПараметрПоле в интерфейсеПо умолчаниюДиапазонНа что влияет
Бюджет расчётовБюджет расчетов (0 = авто)0 = авто: max(50, 20·n)0–1000000жёсткий предел числа расчётов модели
Размер популяцииРазмер популяции (0 = авто)0 = авто: 40 родителей и 60 потомков0–100000число родителей в поколении; больше — шире разведка, дороже поколение
Зерно ГСЧЗерно ГСЧ10–1000000000; 0 — по временификсированное значение делает прогон воспроизводимым; 0 — каждый запуск даёт новую траекторию
Останов без улучшенияОстанов без улучшения (0 = выкл)0 = выкл0–100000единственный критерий сходимости метода: остановиться, если лучшая F не улучшалась столько расчётов подряд. Своей сходимости у ESCH нет — ни точности по параметрам, ни по значению функции он не проверяет, поэтому при выключенном пороге прогон всегда расходует весь бюджет

Допуск цели и агрегация — общие поля группы Общие. Помните, что допуск цели не действует, если в наборе есть цель «Минимизировать» или «Максимизировать» (см. Методы оптимизации): в такой задаче порог стагнации — единственное, что может завершить прогон раньше бюджета.

Что видно в мониторе

Метод генерационный, и флажок «Популяция» в шапке графика сходимости монитора показывает разброс каждого поколения — полосу от лучшего до худшего F и линию среднего.

Первое поколение — это родители: метод оценивает их разом до начала цикла, поэтому его полоса шире последующих (родителей 40, потомков в поколении 60 при настройках по умолчанию; при заданном размере популяции P родителей P, потомков 1,5·P). Номер поколения стоит во всплывающей подсказке строки таблицы шагов.

Рестартов у метода нет, поэтому вертикальных границ рестартов на графике не бывает.

Рекомендации

  • При жёстких ограничениях предпочтительнее Адаптивная эволюция (ISRES): она соблюдает ограничения штатно, а не штрафом.
  • Авто-популяция ESCH постоянна (40 родителей) и не зависит от n, поэтому на больших n метод дешевле стартует, но медленнее покрывает пространство.
  • Найденную точку имеет смысл дожать локальным методом — конвейер «Глобальный → локальный» делает это автоматически.
  • Дискретные оси (переменные «с шагом» / «список») поддерживаются округлением к ближайшему узлу: результат корректен, но часть бюджета уходит на повторные попадания в один узел. Стартовый рапорт выдаёт об этом примечание.