Learn R Programming

mlr3mbo (version 0.2.9)

mlr_acqfunctions_ehvi: Acquisition Function Expected Hypervolume Improvement

Description

Exact Expected Hypervolume Improvement. Calculates the exact expected hypervolume improvement in the case of two objectives. In the case of optimizing more than two objective functions, AcqFunctionEHVIGH can be used. See Emmerich et al. (2016) for details.

Arguments

Super classes

bbotk::Objective -> mlr3mbo::AcqFunction -> AcqFunctionEHVI

Public fields

ys_front

(matrix())
Approximated Pareto front. Sorted by the first objective. Signs are corrected with respect to assuming minimization of objectives.

ref_point

(numeric())
Reference point. Signs are corrected with respect to assuming minimization of objectives.

ys_front_augmented

(matrix())
Augmented approximated Pareto front. Sorted by the first objective. Signs are corrected with respect to assuming minimization of objectives.

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage

AcqFunctionEHVI$new(surrogate = NULL)

Arguments

surrogate

(NULL | SurrogateLearnerCollection).


Method update()

Update the acquisition function and set ys_front and ref_point.

Usage

AcqFunctionEHVI$update()


Method clone()

The objects of this class are cloneable with this method.

Usage

AcqFunctionEHVI$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

References

  • Emmerich, Michael, Yang, Kaifeng, Deutz, André, Wang, Hao, Fonseca, M. C (2016). “A Multicriteria Generalization of Bayesian Global Optimization.” In Pardalos, M. P, Zhigljavsky, Anatoly, Žilinskas, Julius (eds.), Advances in Stochastic and Deterministic Global Optimization, 229--242. Springer International Publishing, Cham.

See Also

Other Acquisition Function: AcqFunction, mlr_acqfunctions, mlr_acqfunctions_aei, mlr_acqfunctions_cb, mlr_acqfunctions_ehvigh, mlr_acqfunctions_ei, mlr_acqfunctions_eips, mlr_acqfunctions_mean, mlr_acqfunctions_multi, mlr_acqfunctions_pi, mlr_acqfunctions_sd, mlr_acqfunctions_smsego, mlr_acqfunctions_stochastic_cb, mlr_acqfunctions_stochastic_ei

Examples

Run this code
if (requireNamespace("mlr3learners") &
    requireNamespace("DiceKriging") &
    requireNamespace("rgenoud")) {
  library(bbotk)
  library(paradox)
  library(mlr3learners)
  library(data.table)

  fun = function(xs) {
    list(y1 = xs$x^2, y2 = (xs$x - 2) ^ 2)
  }
  domain = ps(x = p_dbl(lower = -10, upper = 10))
  codomain = ps(y1 = p_dbl(tags = "minimize"), y2 = p_dbl(tags = "minimize"))
  objective = ObjectiveRFun$new(fun = fun, domain = domain, codomain = codomain)

  instance = OptimInstanceBatchMultiCrit$new(
    objective = objective,
    terminator = trm("evals", n_evals = 5))

  instance$eval_batch(data.table(x = c(-6, -5, 3, 9)))

  learner = default_gp()

  surrogate = srlrn(list(learner, learner$clone(deep = TRUE)), archive = instance$archive)

  acq_function = acqf("ehvi", surrogate = surrogate)

  acq_function$surrogate$update()
  acq_function$update()
  acq_function$eval_dt(data.table(x = c(-1, 0, 1)))
}

Run the code above in your browser using DataLab