mlr_acqfunctions_ehvi {mlr3mbo}R Documentation

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.

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

Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.

Usage
AcqFunctionEHVI$new(surrogate = NULL)
Arguments
surrogate

(NULL | SurrogateLearnerCollection).


Method update()

Updates acquisition function and sets ys_front, 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

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_pi, mlr_acqfunctions_sd, mlr_acqfunctions_smsego

Examples

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 = OptimInstanceMultiCrit$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)))
}

[Package mlr3mbo version 0.2.2 Index]