Суррогатная оптимизация для глобальной минимизации длительных целевых функций
surrogateopt
функция является глобальным решателем для длительных целевых функций.
Решатель ищет глобальный минимум целевой функции с действительным знаком в нескольких размерностях согласно связанным ограничениям и дополнительным целочисленным ограничениям. 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
новое случайное испытание указывает для оценки.
Для получения дополнительной информации см. Суррогатный Алгоритм Оптимизации.