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