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