dict_scalors_aggregate {miesmuschel} | R Documentation |
Scalor giving Weighted Sum of Multiple Scalors
Description
Scalor
that applies multiple other Scalor
s and calculates their weighted sum.
Configuration Parameters
This operation has the configuration parameters of the Scalor
s 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 ofscalors
is multiplied with this (whenscaling
is"linear"
or"rank"
), or ties between ranks are broken with it (whenscaling
is"tiebreak"
). Initialized to 1. -
scaling
::character(1)
How to calculate output values, one of"linear"
,"rank"
or"tiebreak"
. Whenscaling
is"linear"
, then the output is calculated as the weighted sum of the outputs ofscalors
, weighted byweight_1
,weight_2
etc. Whenscaling
is"rank"
, then the output is calculated as the weighted sum of therank()
ofscalors
, weighted byweight_1
,weight_2
etc., with ties broken by average. Whenscaling
is"tiebreak"
, then the output is calculated as the averagedrank()
of thescalors
with the highestweight_#
, with ties broken by the averagerank()
of the second highestweight_#
, with remaining ties broken byscalors
with 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
deep
Whether 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)