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

Поиск с ограничениями (COBYLA)

КлассВоспроизводимостьСтартовая точкаСвёртка по полосе
локальныйполнаяиспользуетсякритерий — любая; ограничения — худшая точка

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

Назначение

Локальный поиск для постановки «оптимизировать одно при жёстком соблюдении другого»: цели с признаком «жёсткое ограничение» соблюдаются как условия допустимости, остальные образуют критерий. Типовой сценарий: максимизация КПД при условии КСВН ≤ 2 во всей полосе.

Метод строит линейные аппроксимации критерия и ограничений по симплексу точек, поэтому сходится медленнее Доверительной области, но терпим к умеренной негладкости.

Признак жёсткое ограничение у целей и поле Допуск ограничения активны: COBYLA соблюдает такие цели как жёсткие условия допустимости. Жёсткие ограничения поддерживают также Адаптивная эволюция (ISRES) и конвейер Глобальный → локальный, если локальным этапом выбран COBYLA (пресет «Авто» делает это автоматически, при ручном выборе другого локального этапа ограничение свёртывается в штраф с предупреждением в журнале); прочие методы сворачивают ограничение в целевую функцию штрафом. Настройка ограничений и их допуска описана в Цели и целевая функция.

Алгоритм

Локальный метод линейных аппроксимаций. По симплексу из n+1 точек строятся линейные интерполянты критерия и каждого ограничения:

F^(xk+s)=F(xk)+gs,c^j(xk+s)=cj(xk)+ajs\hat F(x_k+s) = F(x_k) + g^{\top} s, \qquad \hat c_j(x_k+s) = c_j(x_k) + a_j^{\top} s

Кандидат — решение линейной задачи min F̂ при ĉ_j ≤ 0 для всех ограничений и ‖s‖ ≤ ρ_k, где ρ_k играет роль радиуса области доверия. Ограничения входят в подзадачу шага отдельно от критерия, поэтому метод удерживает поиск у границы допустимой области, а не платит за её нарушение штрафом в F.

Точки сравниваются по составной функции

Φ(x)=F(x)+μmax(0,maxjcj(x))\Phi(x) = F(x) + \mu \max(0, \max_j c_j(x))

где множитель μ подстраивается по ходу прогона так, чтобы недопустимая точка не выглядела лучше допустимой. Когда линейная модель перестаёт давать улучшение, ρ_k уменьшается и симплекс перестраивается на меньшем масштабе; останов — при ρ_k ниже допуска.

Линейная модель дешевле квадратичной (n+1 точка против 2n+1) и терпимее к негладкости, но сходится медленнее: кривизну она не воспроизводит вовсе, поэтому у дна и вдоль искривлённой границы допустимой области шаги систематически короткие.

Параметры

ПараметрПоле в интерфейсеПо умолчаниюДиапазонНа что влияет
Бюджет расчётовБюджет расчетов (0 = авто)0 = авто≥ n+2предел числа расчётов
Начальный шаг (доля диапазона)Начальный шаг (доля диапазона)0,1500,05–0,25размер первых пробных шагов; влияние как у Доверительной области
Точность по параметрам (доля диапазона)Точность0,00200,0005–0,01останов при стягивании шага

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

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