surrogate является функцией, которая аппроксимирует целевую функцию. Суррогат полезен, потому что он занимает время, чтобы оценить. Так, например, чтобы искать точку, которая минимизирует целевую функцию, просто оцените суррогат на тысячах точек и примите оптимальное значение как приближение к минимизатору целевой функции.
Суррогатная оптимизация подходит лучше всего для длительных целевых функций. Целевая функция не должна являться гладкой, но алгоритм работает лучше всего, когда целевая функция непрерывна.
Суррогатная оптимизация пытается найти глобальный минимум целевой функции с помощью немногих оценок целевой функции. Для этого алгоритм пытается сбалансировать процесс оптимизации между двумя голами: исследование и скорость.
Исследование, чтобы искать глобальный минимум.
Скорость, чтобы получить хорошее решение в немногих оценках целевой функции.
Алгоритм, как доказывали, сходился к глобальному решению для непрерывных целевых функций на ограниченных областях. Смотрите Гутманна [1]. Однако эта сходимость не быстра.
В общем случае нет никакого полезного критерия остановки, который останавливает решатель, когда это около глобального решения. Как правило, вы устанавливаете останавливающийся критерий многих функциональных оценок или количества времени, и берете лучшее решение, найденное в пределах этого вычислительного бюджета.
Для получения дополнительной информации surrogateopt
алгоритм, см. Суррогатный Алгоритм Оптимизации.
[1] Гутманн, H.-M. Радиальный метод основной функции для глобальной оптимизации. Журнал Глобальной Оптимизации 19, Выпуск 3, 2001, стр 201–227. https://doi.org/10.1023/A:1011255519438