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