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

Доверительная область (BOBYQA)

КлассВоспроизводимостьСтартовая точкаСвёртка по полосе
локальныйполнаяиспользуетсясреднее или сглаженный максимум

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

Назначение

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

Требует гладкой целевой функции: используйте агрегацию «среднее» или «сглаженный максимум». При «худшей точке» выбирайте Симплекс.

Алгоритм

Метод доверительной области без производных. Вокруг текущей точки x_k по набору из m = 2n+1 посчитанных точек строится интерполяционная квадратичная модель

Qk(xk+s)=F(xk)+gks+12sHksQ_k(x_k+s) = F(x_k) + g_k^{\top} s + \frac{1}{2} s^{\top} H_k s

совпадающая с F во всех точках набора. Следующий кандидат — решение задачи min Q_k(x_k+s) при ‖s‖ ≤ Δ_k и соблюдении границ диапазонов, где Δ_k — радиус области доверия, то есть окрестности, в которой модель считается пригодной.

После расчёта F(x_k+s_k) шаг оценивается отношением фактического улучшения к предсказанному:

ρk=F(xk)F(xk+sk)Qk(xk)Qk(xk+sk)\rho_k = \frac{F(x_k) - F(x_k+s_k)}{Q_k(x_k) - Q_k(x_k+s_k)}

При ρ_k близком к единице шаг принимается и Δ_k увеличивается; при малом или отрицательном ρ_k кандидат отвергается, а Δ_k сжимается. Матрица H_k пересчитывается поправкой минимальной нормы Фробениуса, в наборе заменяется одна точка за итерацию — поэтому итерация стоит один расчёт модели, а первые 2n+1 расчётов уходят на построение начального набора.

Гарантия локальная: при гладкой F метод сходится к ближайшему минимуму. На негладкой или шумной F интерполяция портится, ρ_k перестаёт быть показательным и Δ_k сжимается преждевременно — отсюда раздел «Стянувшаяся область доверия — ещё не минимум» ниже.

Параметры

ПараметрПоле в интерфейсеПо умолчаниюДиапазонНа что влияет
Бюджет расчётовБюджет расчетов (0 = авто)0 = авто≥ 2n+2предел числа расчётов. Первые 2n+1 расчётов уходят на построение начальной модели — при 10 параметрах это 21 расчёт до первого осмысленного шага; бюджет должен заметно превышать 2n+1
Начальный шаг (доля диапазона)Начальный шаг (доля диапазона)0,1500,05–0,25радиус начальной области доверия. Больше — быстрее разведка окрестности старта, но риск перескочить узкий минимум; меньше — надёжнее при хорошем старте, медленнее при плохом
Точность по параметрам (доля диапазона)Точность0,00100,0001–0,01останов при стягивании области доверия до этой величины. Меньше — точнее финальная точка, дольше «дожим»; мельче 0,0001 смысла нет (уровень погрешности сетки). Стянувшаяся область доверия НЕ означает, что найден минимум — см. ниже
Останов без улучшенияОстанов без улучшения (0 = выкл)0 = выкл0–100000страховка от «топтания»: остановиться, если лучшая F не улучшалась столько расчётов подряд

Стянувшаяся область доверия — ещё не минимум

Метод останавливается, когда радиус области доверия становится меньше допуска. Это утверждение о шаге поиска, а не о том, что минимум найден. Целевая функция здесь шумит: соседние расчёты с разницей в единицы микрон дают слегка разные значения из-за адаптивной сетки. На таком шуме квадратичная модель метода портится, область доверия сжимается раньше времени, и прогон заканчивается вне минимума — со статусом «достигнута точность по параметрам», невыполненными целями и неизрасходованным бюджетом.

Что делать в этом случае, по порядку:

  1. Запустить оптимизацию ещё раз от точки, записанной в модель: радиус области доверия сбросится к Начальный шаг, и поиск продолжится. Приём рабочий — на реальной задаче три прогона подряд дали 5,07 → 4,19 → 3,80. Учтите, что расчёты прошлого прогона при этом не переиспользуются.
  2. Взять метод, который перезапускается сам: Мультистарт либо Глобальный → локальный с включёнными локальными рестартами — там перезапуски идут внутри одного прогона.
  3. Увеличить Начальный шаг, чтобы метод меньше доверял мелким разностям, и при возможности поднять точность решателя — она и создаёт шум.

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

  • Лучший выбор для дожима после глобального этапа и для узких диапазонов вокруг работающей конструкции.
  • Детерминирован: повторный запуск с теми же настройками повторяет траекторию расчётов.
  • Если метод «застревает» сразу после старта — стартовая точка на границе диапазона или целевая функция негладкая; уменьшите начальный шаг либо смените агрегацию/метод.
  • Плохо работает с дискретными осями (переменные «с шагом» / «список») — для них предпочтите глобальный метод (DIRECT-L, CRS2, конвейер).