| dict_scalors_aggregate {miesmuschel} | R Documentation |
Scalor giving Weighted Sum of Multiple Scalors
Description
Scalor that applies multiple other Scalors and calculates their weighted sum.
Configuration Parameters
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 ofscalors[[1]],scalors[[2]], etc. Depending onscaling, the outputs ofscalorsis multiplied with this (whenscalingis"linear"or"rank"), or ties between ranks are broken with it (whenscalingis"tiebreak"). Initialized to 1. -
scaling::character(1)
How to calculate output values, one of"linear","rank"or"tiebreak". Whenscalingis"linear", then the output is calculated as the weighted sum of the outputs ofscalors, weighted byweight_1,weight_2etc. Whenscalingis"rank", then the output is calculated as the weighted sum of therank()ofscalors, weighted byweight_1,weight_2etc., with ties broken by average. Whenscalingis"tiebreak", then the output is calculated as the averagedrank()of thescalorswith the highestweight_#, with ties broken by the averagerank()of the second highestweight_#, with remaining ties broken byscalorswith third highestweight_#etc. Initialized to"linear". -
scale_output::logical(1)
Whether to scale the output to lie between 0 and 1. Initialized toFALSE.
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("aggregate", <scalors>)
scls("aggregate", <scalors>) # takes vector IDs, returns list of Scalors
# long form:
dict_scalors$get("aggregate", <scalors>)
Super classes
miesmuschel::MiesOperator -> miesmuschel::Scalor -> ScalorAggregate
Active bindings
Methods
Public methods
Inherited methods
Method new()
Initialize the ScalorAggregate object.
Usage
ScalorAggregate$new(scalors)
Arguments
Method prime()
See MiesOperator method. Primes both this operator, as well as the wrapped operators
given to scalors during construction.
Usage
ScalorAggregate$prime(param_set)
Arguments
param_set(
ParamSet)
Passed toMiesOperator$prime().
Returns
invisible self.
Method clone()
The objects of this class are cloneable with this method.
Usage
ScalorAggregate$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
See Also
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
Examples
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)