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
nadir
in all dimensions, andsmaller than the respective value in the given point in all dimensions, and
greater than all points in
baseline
in 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
deep
Whether 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)