mlr_acqfunctions_smsego {mlr3mbo}R Documentation

Acquisition Function SMS-EGO

Description

S-Metric Selection Evolutionary Multi-Objective Optimization Algorithm Acquisition Function.

Parameters

Super classes

bbotk::Objective -> mlr3mbo::AcqFunction -> AcqFunctionSmsEgo

Public fields

ys_front

(matrix())
Approximated Pareto front. 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.

epsilon

(numeric())
Epsilon used for the additive epsilon dominance.

progress

(numeric(1))
Optimization progress (typically, the number of function evaluations left). Note that this requires the bbotk::OptimInstance to be terminated via a bbotk::TerminatorEvals.

Methods

Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.

Usage
AcqFunctionSmsEgo$new(surrogate = NULL, lambda = 1, epsilon = NULL)
Arguments
surrogate

(NULL | SurrogateLearnerCollection).

lambda

(numeric(1)).

epsilon

(NULL | numeric(1)).


Method update()

Updates acquisition function and sets ys_front, ref_point, epsilon.

Usage
AcqFunctionSmsEgo$update()

Method clone()

The objects of this class are cloneable with this method.

Usage
AcqFunctionSmsEgo$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_ehvi, mlr_acqfunctions_ehvigh, mlr_acqfunctions_ei, mlr_acqfunctions_eips, mlr_acqfunctions_mean, mlr_acqfunctions_pi, mlr_acqfunctions_sd

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("smsego", surrogate = surrogate)

  acq_function$surrogate$update()
  acq_function$progress = 5 - 4 # n_evals = 5 and 4 points already evaluated
  acq_function$update()
  acq_function$eval_dt(data.table(x = c(-1, 0, 1)))
}

[Package mlr3mbo version 0.2.2 Index]