Суррогатная оптимизация для глобальной минимизации длительных целевых функций
surrogateopt
является глобальным решателем для длительных целевых функций.
surrogateopt
пытается решить задачи вида
Решатель ищет глобальный минимум вещественной целевой функции в нескольких размерностях, удовлетворяющих границам, необязательные линейные ограничения, необязательные целочисленные ограничения и необязательные нелинейные ограничения неравенства. surrogateopt
лучше всего подходит для объективных функций, оценка которых занимает много времени. Целевой функцией может быть nonsmooth. Решатель требует конечных границ от всех переменных. Решатель может опционально поддерживать файл контрольной точки, чтобы разрешить восстановление после сбоев или частичного выполнения или продолжение оптимизации после достижения условия остановки. Целевая функция f (x) может быть пустой ([]
), в каком случае surrogateopt
пытается найти точку, удовлетворяющую всем ограничениям.
ищет глобальный минимум x
= surrogateopt(objconstr
,lb
,ub
)objconstr(x)
в области lb <= x <= ub
. Если objconstr(x)
возвращает структуру, затем surrogateopt
ищет минимум objconstr(x).Fval
, при условии objconstr(x).Ineq <= 0
.
Примечание
Передача дополнительных параметров объясняет, как передать дополнительные параметры целевой функции, если это необходимо.
продолжает выполнять оптимизацию из состояния в сохраненном файле контрольной точки. См. «Работа с файлами контрольных точек».x
= surrogateopt(checkpointFile
)
продолжает выполнять оптимизацию из состояния в сохраненном файле контрольной точки и заменяет опции в x
= surrogateopt(checkpointFile
,opts
)checkpointFile
с теми, кто в opts
. См. Файл контрольной точки.
surrogateopt
неоднократно выполняет следующие шаги:
Создайте набор пробных точек путем дискретизации MinSurrogatePoints
случайные точки в границах и вычислите целевую функцию в пробных точках.
Создайте суррогатную модель целевой функции путем интерполяции функции радиального базиса через все случайные пробные точки.
Создайте функцию заслуг, которая придает некоторый вес суррогату и некоторый вес расстоянию от пробных точек. Найдите небольшое значение функции заслуг путем случайной выборки функции заслуг в области вокруг действующей точки (лучшая точка, найденная со времени последнего суррогатного сброса). Используйте эту точку, называемую адаптивной точкой, как новую пробную точку.
Оцените цель в адаптивной точке и обновите суррогат на основе этой точки и ее значения. Считайте «успех», если значение целевой функции достаточно ниже, чем предыдущее лучшее (самое низкое) наблюдаемое значение, и считайте «отказ» в противном случае.
Обновите дисперсию распределения выборки вверх, если перед max(nvar,5)
произойдет три успеха отказы, где
nvar
- количество размерностей. Обновите дисперсию вниз, если max(nvar,5)
отказы происходят до трех успехов.
Продолжайте с шага 3, пока все пробные точки не будут в MinSampleDistance
из оцененных точек. В то время сбросьте суррогат, отбросив все адаптивные точки из суррогата, сбросьте шкалу и вернитесь к шагу 1, чтобы создать MinSurrogatePoints
новые точки случайных испытаний для оценки.
Для получения дополнительной информации см. Surrogate Optimization Algorithm.
Задача Optimize Live Editor обеспечивает визуальный интерфейс для surrogateopt
.