moptipy.algorithms.so.vector.surrogate package

Continuous optimization algorithms using surrogate models.

Submodules

moptipy.algorithms.so.vector.surrogate.rbf_interpolation module

A meta-algorithm for model-assisted optimization using SciPy’s Interpolation.

This algorithm wraps another numerical optimization algorithm A and proceeds in two stages. First, it samples and evaluates a set of initial points during the warmup phase. These points are directly sampled by A on the original process, the meta-algorithm just collects them.

Then, in the second stage, for each iteration, a model is constructed from all previously sampled and evaluated points. The model is used for interpolating the actual objective function. In each step, the inner algorithm A is applied to this model. It strictly works on the model and does not invoke the original objective. Instead, we maintain the best point that A has sampled on the model based on the modeled objective function. This best point is then evaluated on the actual objective function. Together with its actual objective value, it is added to the set of evaluated points. In the next step, a new model will be constructed based on all the points we have now. This model is then the basis for the next “simulated” run of A, and so on.

Thus, in the second stage, each execution of A on the model problem yields one new point that is actually evaluated. The new point is used to create a better model, and so on. If the models reflect the actual objective function well, this may allow us to achieve better overall solution qualities or to reduce the number of actual objective function evaluations to reach certain goals.

However, this only works if a) we will not do too many actual objective function evaluations (FEs) overall, as the memory requirement grows quadratically with the number of FEs and b) if the dimensionality of the problem is not too high, as the number of points needed to create a reasonably accurate model rises with the dimensions of the search space.

class moptipy.algorithms.so.vector.surrogate.rbf_interpolation.RBFInterpolation(space, inner, fes_for_warmup, fes_per_interpolation, kernel='thin_plate_spline', degree=2, name='RBF')[source]

Bases: Algorithm

A meta algorithm using an RBF-interpolation based surrogate model.

This algorithm uses scipy.interpolate.RBFInterpolator as interpolator surrogate model.

log_parameters_to(logger)[source]

Log all parameters of this surrogate-assisted algorithm.

Parameters:

logger (KeyValueLogSection) – the logger for the parameters

Return type:

None

solve(process)[source]

Apply the surrogate-assisted optimization method to the given process.

Parameters:

process (Process) – the process to solve

Return type:

None