How spotoptim selects the next point to evaluate: acquisition functions, optimizers, and infill configuration.
After fitting the surrogate model, spotoptim must decide where to evaluate the (expensive) objective function next. This decision is governed by the acquisition function and the acquisition optimizer.
Acquisition Functions
The acquisition parameter controls the strategy:
Value
Name
Behavior
"y"
Predicted Value
Minimizes the surrogate’s prediction (pure exploitation)
"ei"
Expected Improvement
Balances exploitation and exploration via the EI formula
"pi"
Probability of Improvement
Probability of finding a value better than the current best
The default is "y", which simply picks the point where the surrogate predicts the lowest value. This is fast and works well when the surrogate is accurate, but it can get stuck in local minima.
Expected Improvement
Expected Improvement is the most popular acquisition function for Bayesian optimization. It accounts for both the predicted value and the surrogate’s uncertainty:
Tricands generates candidate points from the Delaunay triangulation of existing data. This is a purely geometric approach that does not require gradient information.
By default, spotoptim proposes one new point per iteration. Set n_infill_points to propose multiple candidates at once, which is useful for batch-parallel evaluation:
When the acquisition optimizer fails to find a valid new point (e.g., due to a flat surrogate surface), the fallback strategy is controlled by acquisition_failure_strategy:
"random" (default) — generate a random point within bounds
Surrogate Point Budget
Use max_surrogate_points to limit how many data points the surrogate is fitted on. This keeps surrogate fitting fast when the evaluation budget is large: