| mlr_acqfunctions_smsego {mlr3mbo} | R Documentation |
Acquisition Function SMS-EGO
Description
S-Metric Selection Evolutionary Multi-Objective Optimization Algorithm Acquisition Function.
Parameters
-
"lambda"(numeric(1))
\lambdavalue used for the confidence bound. Defaults to1. Based onconfidence = (1 - 2 * dnorm(lambda)) ^ myou can calculate a lambda for a given confidence level, see Ponweiser et al. (2008). -
"epsilon"(numeric(1))
\epsilonused for the additive epsilon dominance. Can either be a single numeric value > 0 orNULL(default). In the case of beingNULL, an epsilon vector is maintained dynamically as described in Horn et al. (2015).
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
deepWhether to make a deep clone.
References
Ponweiser, Wolfgang, Wagner, Tobias, Biermann, Dirk, Vincze, Markus (2008). “Multiobjective Optimization on a Limited Budget of Evaluations Using Model-Assisted S-Metric Selection.” In Proceedings of the 10th International Conference on Parallel Problem Solving from Nature, 784–794.
Horn, Daniel, Wagner, Tobias, Biermann, Dirk, Weihs, Claus, Bischl, Bernd (2015). “Model-Based Multi-objective Optimization: Taxonomy, Multi-Point Proposal, Toolbox and Benchmark.” In International Conference on Evolutionary Multi-Criterion Optimization, 64–78.
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 = 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("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)))
}