| dict_scalors_hypervolume {miesmuschel} | R Documentation |
Hypervolume Scalor
Description
Scalor that returns the hypervolume of each individual, relative to nadir and as a contribution over baseline.
The returned scalar value is the measure of all points that have fitnesses that are
greater than the respective value in
nadirin all dimensions, andsmaller than the respective value in the given point in all dimensions, and
greater than all points in
baselinein at least one dimension.
baseline should probably be a paradox::ContextPV and generate fitness values from the Archive
in the context using mies_get_fitnesses.
Configuration Parameters
-
scale_output::logical(1)
Whether to scale output to lie between 0 and 1. -
nadir::numeric
Nadir of fitness values relative to which hypervolume ution is calculated. -
baseline::matrix
Fitness-matrix with one column per objective, giving a population over which the hypervolume improvement should be calculated.
Supported Operand Types
Supported Domain classes are: p_lgl ('ParamLgl'), p_int ('ParamInt'), p_dbl ('ParamDbl'), p_fct ('ParamFct')
Dictionary
This Scalor can be created with the short access form scl()
(scls() to get a list), or through the the dictionary
dict_scalors in the following way:
# preferred:
scl("hypervolume")
scls("hypervolume") # takes vector IDs, returns list of Scalors
# long form:
dict_scalors$get("hypervolume")
Super classes
miesmuschel::MiesOperator -> miesmuschel::Scalor -> ScalorHypervolume
Methods
Public methods
Inherited methods
Method new()
Initialize the ScalorHypervolume object.
Usage
ScalorHypervolume$new()
Method clone()
The objects of this class are cloneable with this method.
Usage
ScalorHypervolume$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
See Also
Other scalors:
Scalor,
dict_scalors_aggregate,
dict_scalors_domcount,
dict_scalors_fixedprojection,
dict_scalors_nondom,
dict_scalors_one,
dict_scalors_proxy,
dict_scalors_single
Examples
sv = scl("hypervolume")
p = ps(x = p_dbl(-5, 5))
# dummy data; note that ScalorHV does not depend on data content
data = data.frame(x = rep(0, 5))
fitnesses = matrix(c(1, 5, 2, 3, 0, 3, 1, 0, 10, 8), ncol = 2)
sv$param_set$values$baseline = matrix(c(1, 1), ncol = 2)
sv$param_set$values$nadir = c(0, -1)
sv$prime(p)
sv$operate(data, fitnesses)