Surrogate optimization is an optimization methodology applied with black-box models that are computationally expensive to evaluate. By iteratively constructing surrogate models which can be evaluated quickly compared to the black-box model, the optimizer can perform a wider search with more evaluations in less time, increasing the chance of finding a global optimum. This approach is widely used in applications such as design optimization. The Global Optimization Toolbox™ in MATLAB® provides a surrogate optimization solver that can assist with these applications.
A black-box model relates inputs to outputs without exposing the inner workings of the model. Engineers use surrogate models to identify optimal parameters for black-box models that require running a simulation, training a machine learning model, or solving FEA/CFD models where the parameters are both continuous and discrete.
An alternative approach is to build a surrogate model, such as a reduced order model (ROM), and then apply optimization to the surrogate model.
How Surrogate Optimization Works
A surrogate optimization algorithm starts with a set of points that are either randomly generated or provided as data. The optimizer evaluates the black-box model at these points and builds an initial surrogate model by fitting or interpolation.
The algorithm generates many candidate points at each iteration. The optimizer evaluates points by a merit function that typically includes the surrogate model objective value and criteria such as measures of feasibility, expected improvement, and coverage of the solution space. The optimizer can use local search or nonlinear optimization to improve the candidate set. The best candidate is evaluated with the black-box model and its value is used to update the surrogate model.