dict_scalors_hypervolume: Hypervolume Scalor

dict_scalors_hypervolumeR 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, and

  • smaller 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)

miesmuschel documentation built on Sept. 11, 2024, 8:23 p.m.