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

Назначение
Устойчивый глобальный поиск на изрезанном ландшафте. Метод адаптирует ковариационную матрицу распределения проб, «подстраивая» форму и масштаб шага под локальную геометрию целевой функции. Работает поколениями: за один шаг рассчитывается батч из λ проб (размер поколения), по которому обновляются среднее и ковариация. Наиболее эффективен на 10–40 непрерывных переменных.
Стартовая точка (текущая геометрия) используется как начальное среднее распределения.
Воспроизводимость управляется зерном: при зерне ГСЧ ≠ 0 повторный запуск с теми же настройками даёт идентичную траекторию; при зерне ГСЧ = 0 зерно берётся по времени, и каждый запуск получается новым.
Алгоритм
Поиск пробами из многомерного нормального распределения. На поколении g
генерируется λ проб
где m_g — среднее (текущая оценка положения оптимума), σ_g — общий масштаб
шага, C_g — ковариационная матрица, задающая форму и ориентацию облака проб.
Начальное m_0 — стартовая точка (текущая геометрия), σ_0 — поле Начальный шаг.
Пробы упорядочиваются по F, и μ = λ/2 лучших дают новое среднее взвешенной
суммой m_{g+1} = Σ w_i x_i. По той же выборке обновляется C: слагаемое ранга
μ подстраивает форму облака под геометрию отобранных проб, слагаемое ранга 1
вытягивает её вдоль пути эволюции — накопленной суммы последних сдвигов
среднего. Масштаб σ управляется отдельно, по длине сопряжённого пути: если
сдвиги среднего идут в одну сторону, шаг увеличивается, если гасят друг друга —
уменьшается.
Практический смысл адаптации C: метод сам выучивает масштабы переменных и
корреляции между ними, поэтому плохая обусловленность задачи (один размер влияет
на F в сотни раз сильнее другого) перестаёт замедлять поиск. Цена — расчёт и
память порядка n², отсюда рекомендуемый диапазон n ≈ 10–40.
Когда поколение стягивается, включается рестарт с удвоением λ (стратегия
IPOP): распределение проб снова разбрасывается, что даёт следующую попытку выйти
из локального минимума в пределах остатка бюджета.
Параметры
| Параметр | Поле в интерфейсе | По умолчанию | Диапазон | На что влияет |
|---|---|---|---|---|
| Бюджет расчётов | Бюджет расчетов (0 = авто) | 0 = авто: max(50, 20·n) | 0–1000000 | жёсткий предел числа расчётов модели, суммарный по всем рестартам |
| Начальный шаг (доля диапазона) | Начальный шаг (доля диапазона) | 0,30 | 0,01–1,00 | начальное СКО поиска в нормированных координатах. Больше — шире стартовая разведка, меньше — надёжнее при хорошем старте |
| Размер поколения | Размер поколения (0 = авто) | 0 = авто: 4 + floor(3·ln n) | 0–100000 | λ — число оценок за поколение. Больше — устойчивее к локальным минимумам, но дороже поколение |
| Зерно ГСЧ | Зерно ГСЧ | 1 | 0 — по времени | фиксированное значение делает прогон воспроизводимым; 0 — каждый запуск даёт новую траекторию |
| Рестарты (IPOP) | Рестарты (IPOP) | вкл | вкл/выкл | при сходимости поколения — рестарт с удвоением λ в пределах остатка бюджета (стратегия IPOP) |
Что видно в мониторе
Рестарты и поколения метода видны в мониторе оптимизации:
- на графике сходимости каждый IPOP-рестарт отмечен вертикальной линией с подписью «рестарт N»;
- флажок «Популяция» показывает разброс поколения — полосу от лучшего до худшего
значения
Fи линию среднего. По сужению полосы видно, как поколение сходится, а по удвоению ширины блоков после границы рестарта — как выросла λ; - в таблице шагов первый шаг рестарта помечен токеном «рестарт N», а во всплывающей подсказке любой строки стоят номера рестарта и поколения;
- в итогах прогона печатается строка «Рестартов поиска: N» — её нет, если рестартов не было.
Поколение продолжает нумерацию через рестарт, а не начинается заново: это позиция в прогоне, а не в текущем запуске. Бюджет расчётов тоже суммарный по всем рестартам, поэтому рестарт происходит только если в остатке бюджета помещается следующая, удвоенная λ; иначе прогон завершается со статусом «достигнут допуск по параметрам».
Рекомендации
- Хороший выбор для изрезанного ландшафта средней размерности (n≈10–40), где локальные методы застревают.
- При малом бюджете расчётов предпочтите Адаптивный глобальный (MaxLIPO).
- Найденную точку имеет смысл дожать локальным методом — Доверительная область (BOBYQA).
- Для полной воспроизводимости прогона задайте зерно ГСЧ ≠ 0; серия запусков с зерно ГСЧ = 0 показывает разброс и мультимодальность задачи.
- Плохо работает с дискретными осями (переменные «с шагом» / «список») — для них предпочтите глобальный метод (DIRECT-L, CRS2, конвейер).