dict_recombinators_sbx: Simulated Binary Crossover Recombinator

dict_recombinators_sbxR 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

  • n :: numeric
    Non-negative distribution index of the polynomial distribution for each component. Generally spoken, the higher n, the higher the probability of creating near parent values. This may either be a scalar in which case it is applied to all input components, or a vector, in which case it must have the length of the input components and applies to components in order in which they appear in the priming ParamSet. Initialized to 1.

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)

miesmuschel documentation built on Sept. 11, 2024, 8:23 p.m.