| mlr_acqfunctions_smsego | R Documentation |
S-Metric Selection Evolutionary Multi-Objective Optimization Algorithm Acquisition Function.
"lambda" (numeric(1))
\lambda value used for the confidence bound.
Defaults to 1.
Based on confidence = (1 - 2 * dnorm(lambda)) ^ m you can calculate a
lambda for a given confidence level, see Ponweiser et al. (2008).
"epsilon" (numeric(1))
\epsilon used for the additive epsilon dominance.
Can either be a single numeric value > 0 or NULL (default).
In the case of being NULL, an epsilon vector is maintained dynamically as
described in Horn et al. (2015).
This acquisition function always also returns its current epsilon values in a list column (acq_epsilon).
These values will be logged into the bbotk::ArchiveBatch of the bbotk::OptimInstanceBatch of the AcqOptimizer and
therefore also in the bbotk::Archive of the actual bbotk::OptimInstance that is to be optimized.
bbotk::Objective -> mlr3mbo::AcqFunction -> AcqFunctionSmsEgo
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::OptimInstanceBatch to be terminated via a bbotk::TerminatorEvals.
new()Creates a new instance of this R6 class.
AcqFunctionSmsEgo$new(surrogate = NULL, lambda = 1, epsilon = NULL)
surrogate(NULL | SurrogateLearnerCollection).
lambda(numeric(1)).
epsilon(NULL | numeric(1)).
update()Update the acquisition function and set ys_front, ref_point and epsilon.
AcqFunctionSmsEgo$update()
reset()Reset the acquisition function.
Resets epsilon.
AcqFunctionSmsEgo$reset()
clone()The objects of this class are cloneable with this method.
AcqFunctionSmsEgo$clone(deep = FALSE)
deepWhether to make a deep clone.
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.
Other Acquisition Function:
AcqFunction,
mlr_acqfunctions,
mlr_acqfunctions_aei,
mlr_acqfunctions_cb,
mlr_acqfunctions_ehvi,
mlr_acqfunctions_ehvigh,
mlr_acqfunctions_ei,
mlr_acqfunctions_ei_log,
mlr_acqfunctions_eips,
mlr_acqfunctions_mean,
mlr_acqfunctions_multi,
mlr_acqfunctions_pi,
mlr_acqfunctions_sd,
mlr_acqfunctions_stochastic_cb,
mlr_acqfunctions_stochastic_ei
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)))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.