dict_recombinators_convex {miesmuschel}R Documentation

Convex Combination Recombinator

Description

Numeric Values between various individuals are recombined via component-wise convex combination (or weighted mean). The number of individuals over which the convex combination is taken must be determined during construction as n_indivs_in.

The number of output individuals is always 1, i.e. n_indivs_in are used to create one output value. When using this recombinator in a typical EA setting, e.g. with mies_generate_offspring, it is therefore recommended to use a parent-selector where the expected quality of selected parents does not depend on the number of parents selected when n_indivs_in is large: sel("tournament") is preferred to sel("best").

Configuration Parameters

Supported Operand Types

Supported Domain classes are: p_dbl ('ParamDbl')

Dictionary

This Recombinator can be created with the short access form rec() (recs() to get a list), or through the the dictionary dict_recombinators in the following way:

# preferred:
rec("convex")
recs("convex")  # takes vector IDs, returns list of Recombinators

# long form:
dict_recombinators$get("convex")

Super classes

miesmuschel::MiesOperator -> miesmuschel::Recombinator -> RecombinatorConvex

Methods

Public methods

Inherited methods

Method new()

Initialize the RecombinatorConvex object.

Usage
RecombinatorConvex$new(n_indivs_in = 2)
Arguments
n_indivs_in

(integer(1))
Number of individuals to consider at the same time. When operating, the number of input individuals must be divisible by this number. Default 2.
The ⁠$n_indivs_in⁠ field will reflect this value.


Method clone()

The objects of this class are cloneable with this method.

Usage
RecombinatorConvex$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

Other recombinators: OperatorCombination, Recombinator, RecombinatorPair, dict_recombinators_cmpmaybe, dict_recombinators_cvxpair, dict_recombinators_maybe, dict_recombinators_null, dict_recombinators_proxy, dict_recombinators_sbx, dict_recombinators_sequential, dict_recombinators_swap, dict_recombinators_xonary, dict_recombinators_xounif

Examples

set.seed(1)
rcvx = rec("convex", n_indivs_in = 3)
p = ps(x = p_dbl(-5, 5), y = p_dbl(-5, 5), z = p_dbl(-5, 5))
data = data.frame(x = 0:5, y = 0:5, z = 0:5)

rcvx$prime(p)
rcvx$operate(data)  # mean of groups of 3

rcvx = rec("convex", 3, lambda = c(0, 1, 2))$prime(p)
rcvx$operate(data)  # for groups of 3, take 1/3 of 2nd and 2/3 of 3rd row

lambda = matrix(c(0, 1, 2, 1, 1, 1, 1, 0, 0), ncol = 3)
lambda

rcvx = rec("convex", 3, lambda = lambda)$prime(p)
rcvx$operate(data)  # componentwise different operation


[Package miesmuschel version 0.0.4-2 Index]