Суррогатная оптимизация для глобальной минимизации длительных целевых функций
Функция surrogateopt
является глобальным решателем для длительных целевых функций.
Решатель ищет глобальный минимум целевой функции с действительным знаком в нескольких размерностях согласно связанным ограничениям. surrogateopt
подходит лучше всего для целевых функций, которые занимают много времени, чтобы оценить. Целевая функция может быть несглаженной. Решатель требует конечных границ на всех переменных. Решатель может опционально поддержать файл контрольной точки, чтобы включить восстановление после катастрофических отказов или частичное выполнение или продолжение оптимизации после удовлетворения останавливающемуся условию.
x = surrogateopt(fun,lb,ub)
x = surrogateopt(fun,lb,ub,options)
x = surrogateopt(problem)
x = surrogateopt(checkpointFile)
x = surrogateopt(checkpointFile,opts)
[x,fval] = surrogateopt(___)
[x,fval,exitflag,output] = surrogateopt(___)
[x,fval,exitflag,output,trials] = surrogateopt(___)
поиски глобального минимума x
= surrogateopt(fun
,lb
,ub
)fun(x)
в области lb <= x <= ub
.
Передача Дополнительных Параметров (Optimization Toolbox) объясняет, как передать дополнительные параметры целевой функции при необходимости.
продолжает запускать оптимизацию от состояния в сохраненном файле контрольной точки. Смотрите работу с Файлами контрольной точки.x
= surrogateopt(checkpointFile
)
продолжает запускать оптимизацию от состояния в сохраненном файле контрольной точки и заменяет опции в x
= surrogateopt(checkpointFile
,opts
)checkpointFile
с теми в opts
. Смотрите Файл контрольной точки.
surrogateopt
неоднократно выполняет следующие шаги:
Создайте набор испытательных точек путем выборки случайных точек MinSurrogatePoints
в границах и выполните целевую функцию в испытательных точках.
Создайте суррогатную модель целевой функции путем интерполяции радиальной основной функции через все случайные испытательные точки.
Создайте оценочную функцию, которая дает некоторый вес суррогату и некоторый вес к расстоянию от испытательных точек. Найдите маленькое значение оценочной функции путем случайной выборки оценочной функции в области вокруг действующей точки (лучшая точка, найденная начиная с последнего суррогатного сброса). Используйте эту точку, названную адаптивной точкой, как точка нового рассмотрения дела.
Оцените цель в адаптивной точке и обновите суррогат на основе этой точки и ее значения. Считайте "успех", если значение целевой функции достаточно ниже, чем предыдущее лучшее (самое низкое) значение, наблюдаемое, и считайте "отказ" в противном случае.
Обновите дисперсию демонстрационного распределения вверх, если существует три успеха перед отказами max(nvar,5)
, где nvar
является количеством размерностей. Обновите дисперсию вниз, если существуют отказы max(nvar,5)
перед тремя успехами.
Продолжите от шага 3, пока все испытательные точки не будут в MinSampleDistance
оцененных точек. В то время сбросьте суррогат путем отбрасывания всех адаптивных точек от суррогата, сбросьте шкалу и вернитесь к шагу 1, чтобы создать MinSurrogatePoints
новые случайные испытательные точки для оценки.
Для получения дополнительной информации см. Суррогатный Алгоритм Оптимизации.