Package-level declarations

Types

Link copied to clipboard

An acquisition function scores a candidate point from the surrogate's posterior prediction and the current incumbent value. Larger is better: the acquisition optimizer maximizes it. All acquisition functions here are written for minimization of the objective.

Link copied to clipboard

Strategy for maximizing an acquisition function over the feasible region. This optimization uses the surrogate only — it makes no simulation oracle calls — so it can afford a large number of candidate evaluations.

Link copied to clipboard
class BayesianOptimizationSolver @JvmOverloads constructor(problemDefinition: ProblemDefinition, evaluator: EvaluatorIfc, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), surrogate: SurrogateModelIfc = GaussianProcessModel(problemDefinition), acquisition: AcquisitionFunctionIfc = ExpectedImprovement(), acquisitionOptimizer: AcquisitionOptimizerIfc = SampledAcquisitionOptimizer(), hyperparameterFitter: HyperparameterFitterIfc = FixedHyperparameters(), initialDesign: InitialDesignIfc = LatinHyperCubeDesign(), incumbentRule: IncumbentRuleIfc = BestPosteriorMeanIncumbent(), initialDesignSize: Int = defaultInitialDesignSize, maximumIterations: Int = boDefaultMaxIterations, replicationsPerEvaluation: ReplicationPerEvaluationIfc, name: String? = null) : StochasticSolver

A Bayesian Optimization (BO) solver for stochastic simulation optimization. BO is a sequential, model-based method for expensive, noisy objectives: it fits a probabilistic surrogate to the observed data and, each iteration, optimizes a cheap acquisition function over the surrogate (no simulation) to choose the single most promising point to evaluate next.

Link copied to clipboard

The minimum observed (penalized) objective value over the observed points.

Link copied to clipboard

The minimum surrogate posterior mean over the observed points. This is noise-robust: it does not reward a point merely for having received a lucky (low) noisy observation. This is the default.

Link copied to clipboard
class ExpectedImprovement(var xi: Double = BayesianOptimizationSolver.defaultXi) : AcquisitionFunctionIfc

Expected Improvement (EI) for minimization. With incumbent f+, predictive mean μ, and predictive standard deviation σ, the improvement is I = f+ - μ - xi, and EI = I·Φ(I/σ) + σ·φ(I/σ) for σ > 0, else max(I, 0). This is the default acquisition.

Link copied to clipboard
class FixedHyperparameters(lengthScaleFactor: Double = 1.0) : HyperparameterFitterIfc

A heuristic, non-iterative hyperparameter setter: the ARD length scales are set to lengthScaleFactor times each input's range, and the signal variance is set to the sample variance of the observed means (or 1.0 if degenerate). This is fast, deterministic, and robust, making it a good default for a first-cut surrogate.

Link copied to clipboard
class GaussianProcessModel @JvmOverloads constructor(val problemDefinition: ProblemDefinition, var kernel: StationaryKernel = RBFKernel(problemDefinition), var constantMean: Double? = null, jitter: Double = defaultJitter) : SurrogateModelIfc

A Gaussian-process (GP) regression surrogate with per-point observation noise, suitable for the stochastic simulation setting: each observed point carries its own noise variance (the variance of the estimated mean). The GP uses a constant prior mean (the data mean by default) and a StationaryKernel.

Link copied to clipboard

Strategy for selecting a Gaussian process's kernel hyperparameters (length scales and signal variance) from data. Implementations set the hyperparameters on the supplied model's kernel; the solver re-fits the model afterward.

Link copied to clipboard
fun interface IncumbentRuleIfc

Strategy for choosing the incumbent value — the "value to beat" passed to the acquisition function. Under simulation noise, the best observed value is optimistically biased, so a posterior-mean-based incumbent is generally preferred.

Link copied to clipboard
fun interface InitialDesignIfc

Strategy for generating the initial design (the first batch of points evaluated before the surrogate-driven search begins).

Link copied to clipboard
fun interface KernelIfc

A covariance (kernel) function for a Gaussian-process surrogate: it returns the prior covariance between the responses at two input points.

Link copied to clipboard

A space-filling Latin-hypercube initial design over the input ranges. This is the default. The points are range-feasible; deterministic-constraint feasibility is governed by the solver's request handling.

Link copied to clipboard
class LowerConfidenceBound(beta: Double = BayesianOptimizationSolver.defaultBeta) : AcquisitionFunctionIfc

Lower Confidence Bound (LCB) for minimization. Minimizing μ - β·σ is equivalent to maximizing β·σ - μ, which is the value returned here. Larger beta favors exploration.

Link copied to clipboard
class Matern52Kernel(signalVariance: Double, lengthScales: DoubleArray) : StationaryKernel

The Matern 5/2 kernel with ARD length scales. It is less smooth than the RBF kernel (twice mean-square differentiable) and is often a more realistic choice for response surfaces.

Link copied to clipboard
class MleHyperparameterFitter(numStarts: Int = defaultNumStarts, lengthScaleLowFactor: Double = 0.05, lengthScaleHighFactor: Double = 2.0) : HyperparameterFitterIfc

A maximum-likelihood hyperparameter fitter: it performs a random multi-start search over the log of the length scales and signal variance, refitting the GP at each candidate and keeping the hyperparameters with the highest log marginal likelihood. Length-scale candidates are drawn log-uniformly between lengthScaleLowFactor and lengthScaleHighFactor times each input range; signal-variance candidates are drawn log-uniformly around the data variance.

Link copied to clipboard
class ProbabilityOfImprovement(var xi: Double = BayesianOptimizationSolver.defaultXi) : AcquisitionFunctionIfc

Probability of Improvement (PI) for minimization: Φ((f+ - μ - xi)/σ).

Link copied to clipboard

A random initial design of distinct input-feasible points (feasible with respect to input ranges, linear, and functional constraints).

Link copied to clipboard
class RBFKernel(signalVariance: Double, lengthScales: DoubleArray) : StationaryKernel

The squared-exponential (radial basis function) kernel with ARD length scales. This is the default kernel; it models very smooth response surfaces.

Link copied to clipboard
class SampledAcquisitionOptimizer(numCandidates: Int = BayesianOptimizationSolver.defaultNumCandidates, numLocalRestarts: Int = BayesianOptimizationSolver.defaultRestarts, localFraction: Double = 0.1) : AcquisitionOptimizerIfc

A robust, dependency-free acquisition optimizer: it scores a Latin-hypercube candidate set over the feasible region plus a set of local candidates around the current best, and returns the best-scoring candidate (rounded to granularity via the problem definition). Because acquisition evaluation is cheap (no simulation), a large candidate set gives good coverage.

Link copied to clipboard
abstract class StationaryKernel(signalVariance: Double, lengthScales: DoubleArray) : KernelIfc

Base class for stationary kernels parameterized by an output scale (signalVariance) and a per-dimension length scale (lengthScales, i.e. automatic relevance determination, ARD).

Link copied to clipboard

A surrogate model that is fit to noisy observations and predicts a posterior mean and variance at an arbitrary input point. Bayesian optimization optimizes a cheap acquisition function over this surrogate rather than over the expensive simulation.