dict_scalors_domcount: Scalor Counting Dominating Individuals

dict_scalors_domcountR Documentation

Scalor Counting Dominating Individuals

Description

Scalor that returns a the number of (weakly, epsilon-) dominated or dominating individuals for each individuum.

Configuration Parameters

  • output :: character(1)
    What to count: individuals that are being dominated by the point under consideration("count_dominated"), or individuals that do not dominate the point under consideration ("count_not_dominating"). In both cases, a larger output means the individual is "better", in some way, according to the fitness values. Initialized with "count_not_dominating".

  • epsilon :: numeric
    Epsilon-value for non-dominance, as used by rank_nondominated. Initialized to 0.

  • jitter :: logical(1)
    Whether to add random jitter to points, with magnitude sqrt(.Machine$double.eps) relative to fitness values. This is used to effectively break ties.

  • scale_output :: logical(1)
    Whether to scale output by the total numberof individuals, giving output between 0 and 1 (inclusive) when TRUE or integer outputs ranging from 0 and nrow(fitnesses) (inclusive) when FALSE. Initialized to TRUE.

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("domcount")
scls("domcount")  # takes vector IDs, returns list of Scalors

# long form:
dict_scalors$get("domcount")

Super classes

miesmuschel::MiesOperator -> miesmuschel::Scalor -> ScalorDomcount

Methods

Public methods

Inherited methods

Method new()

Initialize the ScalorNondom object.

Usage
ScalorDomcount$new()

Method clone()

The objects of this class are cloneable with this method.

Usage
ScalorDomcount$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

Other scalors: Scalor, dict_scalors_aggregate, dict_scalors_fixedprojection, dict_scalors_hypervolume, dict_scalors_nondom, dict_scalors_one, dict_scalors_proxy, dict_scalors_single

Examples

p = ps(x = p_dbl(-5, 5))
data = data.frame(x = rep(0, 5))

sd = scl("domcount")
sd$prime(p)

(fitnesses = matrix(c(1, 5, 2, 3, 0, 3, 1, 0, 10, 8), ncol = 2))

# to see the fitness matrix, use:
## plot(fitnesses, pch = as.character(1:5))

# note that for both 2 and 4, all points do not dominate them
# their value is therefore 1
sd$operate(data, fitnesses)

sd$param_set$values$scale_output = FALSE
sd$operate(data, fitnesses)

sd$param_set$values$output = "count_dominated"
# point 4 dominates three other points, point 2 only one other point.
sd$operate(data, fitnesses)

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