What Is Surrogate Optimization?
A surrogate is a function that approximates another function. The surrogate is useful because it takes little time to evaluate. So, for example, to search for a point that minimizes an objective function, simply evaluate its surrogate on thousands of points, and take the best value as an approximation to the minimizer of the objective function.
Surrogate optimization is best suited to time-consuming objective functions. The objective function need not be smooth, but the algorithm works best when the objective function is continuous.
Surrogate optimization attempts to find a global minimum of an objective function using few objective function evaluations. To do so, the algorithm tries to balance the optimization process between two goals: exploration and speed.
Exploration to search for a global minimum.
Speed to obtain a good solution in few objective function evaluations.
The algorithm has been proven to converge to a global solution for continuous objective functions on bounded domains. See Gutmann [1]. However, this convergence is not fast.
In general, there is no useful stopping criterion that stops the solver when it is near a global solution. Typically, you set a stopping criterion of a number of function evaluations or an amount of time, and take the best solution found within this computational budget.
For details of the surrogateopt
algorithm, see Surrogate Optimization Algorithm.
References
[1] Gutmann, H.-M. A radial basis function method for global optimization. Journal of Global Optimization 19, Issue 3, 2001, pp. 201–227. https://doi.org/10.1023/A:1011255519438