| dict_scalors_aggregate | R Documentation |
Scalor that applies multiple other Scalors and calculates their weighted sum.
This operation has the configuration parameters of the Scalors that it wraps: The configuration
parameters of the operator given to the scalors construction argument are prefixed with "scalor_1",
"scalor_2", ... up to "scalor_#", where # is length(scalors).
Additional configuration parameters:
weight_1, weight_2, ... :: numeric(1)
Weight factors of scalors[[1]], scalors[[2]], etc. Depending on scaling, the outputs of scalors
is multiplied with this (when scaling is "linear" or "rank"), or ties between ranks are broken
with it (when scaling is "tiebreak"). Initialized to 1.
scaling :: character(1)
How to calculate output values, one of "linear", "rank" or "tiebreak". When scaling is "linear",
then the output is calculated as the weighted sum of the outputs of scalors, weighted by weight_1,
weight_2 etc. When scaling is "rank", then the output is calculated as the weighted sum of the
rank() of scalors, weighted by weight_1, weight_2 etc., with ties broken by average. When scaling
is "tiebreak", then the output is calculated as the averaged rank() of the scalors with the
highest weight_#, with ties broken by the average rank() of the second highest weight_#, with
remaining ties broken by scalors with third highest weight_# etc. Initialized to "linear".
scale_output :: logical(1)
Whether to scale the output to lie between 0 and 1. Initialized to FALSE.
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("aggregate", <scalors>)
scls("aggregate", <scalors>) # takes vector IDs, returns list of Scalors
# long form:
dict_scalors$get("aggregate", <scalors>)
miesmuschel::MiesOperator -> miesmuschel::Scalor -> ScalorAggregate
scalors(list of Scalor)
Scalors being wrapped. These operators are run and their outputs weighted.
new()Initialize the ScalorAggregate object.
ScalorAggregate$new(scalors)
scalors(list of Scalor)
Scalors to wrap. The operations are run and weighted by weight_# configuration parameters,
depending on the scaling configuration parameter.
The constructed object gets a clone of this argument. The $scalors field will reflect this value.
prime()See MiesOperator method. Primes both this operator, as well as the wrapped operators
given to scalors during construction.
ScalorAggregate$prime(param_set)
param_set(ParamSet)
Passed to MiesOperator$prime().
invisible self.
clone()The objects of this class are cloneable with this method.
ScalorAggregate$clone(deep = FALSE)
deepWhether to make a deep clone.
Other scalors:
Scalor,
dict_scalors_domcount,
dict_scalors_fixedprojection,
dict_scalors_hypervolume,
dict_scalors_nondom,
dict_scalors_one,
dict_scalors_proxy,
dict_scalors_single
Other scalor wrappers:
dict_scalors_fixedprojection,
dict_scalors_proxy
p = ps(x = p_dbl(-5, 5))
data = data.frame(x = rep(0, 5))
sa = scl("aggregate", list(
scl("one", objective = 1),
scl("one", objective = 2)
))
sa$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))
# default weight 1 -- sum of both objectives
sa$operate(data, fitnesses)
# only first objective
sa$param_set$values[c("weight_1", "weight_2")] = c(1, 0)
sa$operate(data, fitnesses)
# only 2 * second objective
sa$param_set$values[c("weight_1", "weight_2")] = c(0, 2)
sa$operate(data, fitnesses)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.