dict_recombinators_sbx {miesmuschel}R Documentation

Simulated Binary Crossover Recombinator

Description

Numeric Values between two individuals are recombined via component-wise independent simulated binary crossover. See Deb (1995) for more details.

This operator is applied to all components; It is common to apply the operator to only some randomly chosen components, in which case the rec("cmpmaybe") operator should be used; see examples.

Configuration Parameters

Supported Operand Types

Supported Domain classes are: p_int ('ParamInt'), 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("sbx")
recs("sbx")  # takes vector IDs, returns list of Recombinators

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

Super classes

miesmuschel::MiesOperator -> miesmuschel::Recombinator -> miesmuschel::RecombinatorPair -> RecombinatorSimulatedBinaryCrossover

Methods

Public methods

Inherited methods

Method new()

Initialize the RecombinatorSimulatedBinaryCrossover object.

Usage
RecombinatorSimulatedBinaryCrossover$new(keep_complement = TRUE)
Arguments
keep_complement

(logical(1))
Whether the operation should keep both resulting individuals (TRUE), or only the first and discard the complement (FALSE). Default TRUE. The ⁠$keep_complement⁠ field will reflect this value.


Method clone()

The objects of this class are cloneable with this method.

Usage
RecombinatorSimulatedBinaryCrossover$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

References

Deb, Kalyanmoy, Agrawal, Bhushan R, others (1995). “Simulated binary crossover for continuous search space.” Complex systems, 9(2), 115–148.

See Also

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

Examples

set.seed(1)
rsbx = rec("cmpmaybe", rec("sbx"), p = 0.5)
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)

rsbx$prime(p)
rsbx$operate(data)

rsbx = rec("sbx", n = c(0.5, 1, 10))
rsbx$prime(p)
rsbx$operate(data)

[Package miesmuschel version 0.0.4 Index]