Selector that performs the operation in its operation configuration parameter. This is useful, e.g., to make OptimizerMies's selection operations fully parametrizable.

Configuration Parameters

  • operation :: Selector
    Operation to perform. Initialized to SelectorBest. This is primed when $prime() of SelectorProxy is called, and also when $operate() is called, to make changing the operation as part of self-adaption possible. However, if the same operation gets used inside multiple SelectorProxy objects, then it is recommended to $clone(deep = TRUE) the object before assigning them to operation to avoid frequent re-priming.

Supported Operand Types

Supported Param classes are: ParamLgl, ParamInt, ParamDbl, ParamFct

Dictionary

This Selector can be created with the short access form sel() (sels() to get a list), or through the the dictionary dict_selectors in the following way:

# preferred:
sel("proxy")
sels("proxy")  # takes vector IDs, returns list of Selectors

# long form:
dict_selectors$get("proxy")

Super classes

miesmuschel::MiesOperator -> miesmuschel::Selector -> SelectorProxy

Methods

Inherited methods


Method new()

Initialize the SelectorProxy object.

Usage


Method prime()

See MiesOperator method. Primes both this operator, as well as the operator given to the operation configuration parameter. Note that this modifies the $param_set$values$operation object.

Usage

SelectorProxy$prime(param_set)

Arguments

param_set

(ParamSet)
Passed to MiesOperator$prime().

Returns

invisible self.


Method clone()

The objects of this class are cloneable with this method.

Usage

SelectorProxy$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

set.seed(1)
sp = sel("proxy")
p = ps(x = p_dbl(-5, 5))
# dummy data; note that SelectorBest does not depend on data content
data = data.frame(x = rep(0, 5))
fitnesses = c(1, 5, 2, 3, 0)

sp$param_set$values$operation = sel("random")
sp$prime(p)
sp$operate(data, fitnesses, 2)
#> [1] 1 4

sp$param_set$values$operation = sel("best")
sp$operate(data, fitnesses, 2)
#> [1] 2 4