| mlr_acqfunctions_ehvigh | R Documentation |
Expected Hypervolume Improvement. Computed via Gauss-Hermite quadrature.
In the case of optimizing only two objective functions AcqFunctionEHVI is to be preferred.
"k" (integer(1))
Number of nodes per objective used for the numerical integration via Gauss-Hermite quadrature.
Defaults to 15.
For example, if two objectives are to be optimized, the total number of nodes will therefore be 225 per default.
Changing this value after construction requires a call to $update() to update the $gh_data field.
"r" (numeric(1))
Pruning rate between 0 and 1 that determines the fraction of nodes of the Gauss-Hermite quadrature rule that are ignored based on their weight value (the nodes with the lowest weights being ignored).
Default is 0.2.
Changing this value after construction does not require a call to $update().
bbotk::Objective -> mlr3mbo::AcqFunction -> AcqFunctionEHVIGH
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.
hypervolume(numeric(1)).
Current hypervolume of the approximated Pareto front with respect to the reference point.
gh_data(matrix())
Data required for the Gauss-Hermite quadrature rule in the form of a matrix of dimension (k x 2).
Each row corresponds to one Gauss-Hermite node (column "x") and corresponding weight (column "w").
Computed via fastGHQuad::gaussHermiteData.
Nodes are scaled by a factor of sqrt(2) and weights are normalized under a sum to one constraint.
new()Creates a new instance of this R6 class.
AcqFunctionEHVIGH$new(surrogate = NULL, k = 15L, r = 0.2)
surrogate(NULL | SurrogateLearnerCollection).
k(integer(1)).
r(numeric(1)).
update()Update the acquisition function and set ys_front, ref_point, hypervolume and gh_data.
AcqFunctionEHVIGH$update()
clone()The objects of this class are cloneable with this method.
AcqFunctionEHVIGH$clone(deep = FALSE)
deepWhether to make a deep clone.
Rahat, Alma, Chugh, Tinkle, Fieldsend, Jonathan, Allmendinger, Richard, Miettinen, Kaisa (2022). “Efficient Approximation of Expected Hypervolume Improvement using Gauss-Hermit Quadrature.” In Rudolph, Günter, Kononova, V. A, Aguirre, Hernán, Kerschke, Pascal, Ochoa, Gabriela, Tušar, Tea (eds.), Parallel Problem Solving from Nature – PPSN XVII, 90–103.
Other Acquisition Function:
AcqFunction,
mlr_acqfunctions,
mlr_acqfunctions_aei,
mlr_acqfunctions_cb,
mlr_acqfunctions_ehvi,
mlr_acqfunctions_ei,
mlr_acqfunctions_ei_log,
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
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("ehvigh", surrogate = surrogate)
acq_function$surrogate$update()
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.