| dict_recombinators_maybe {miesmuschel} | R Documentation | 
Recombinator Choosing Action Probabilistically
Description
Recombinator that chooses which operation to perform probabilistically. The Recombinator wraps two other Recombinators given during construction,
and for each group of $n_indivs_in individuals, the operation to perform is sampled: with probability p (configuration parameter), the Recombinator given to
the recombinator construction argument is applied, and with probability p - 1 the one given to recombinator_not is applied.
The values of $n_indivs_in and $n_indivs_out is set to the corresponding values of the wrapped Recombinators. Both recombinator and recombinator_not
must currently have the same respective $n_indivs_in and $n_indivs_out values.
Configuration Parameters
This operator has the configuration parameters of the Recombinators that it wraps: The configuration parameters of the operator given to the recombinator construction argument
are prefixed with "maybe.", the configuration parameters of the operator given to the recombinator_not construction argument are prefixed with "maybe_not.".
Additional configuration parameters:
-  
p::numeric(1)
Probability per group ofn_indivs_inindividuals with which to apply the operator given to therecombinatorconstruction argument. Must be set by the user. 
Supported Operand Types
Supported Domain classes are the set intersection of supported classes of recombinator and recombinator_not.
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("maybe", <recombinator> [, <recombinator_not>])
recs("maybe", <recombinator> [, <recombinator_not>])  # takes vector IDs, returns list of Recombinators
# long form:
dict_recombinators$get("maybe", <recombinator> [, <recombinator_not>])
Super classes
miesmuschel::MiesOperator -> miesmuschel::Recombinator -> RecombinatorMaybe
Active bindings
recombinator(
Recombinator)
Recombinatorbeing wrapped. This operator gets run with probabilityp(configuration parameter).recombinator_not(
Recombinator)
AlternativeRecombinatorbeing wrapped. This operator gets run with probability1 - p(configuration parameter).
Methods
Public methods
Inherited methods
Method new()
Initialize the RecombinatorMaybe object.
Usage
RecombinatorMaybe$new(recombinator, recombinator_not = NULL)
Arguments
recombinator(
Recombinator)
Recombinatorto wrap. This operator gets run with probabilityp(Configuration parameter).
The constructed object gets a clone of this argument. The$recombinatorfield will reflect this value.recombinator_not(
Recombinator)
AnotherRecombinatorto wrap. This operator runs whenrecombinatoris not chosen. By default, this isRecombinatorNull, i.e. no operation, with bothn_indivs_inandn_indivs_outset to matchrecombinator. This does not work whenrecombinatorhasn_indivs_in < n_indivs_out, in which case this argument must be set explicitly.
With this default, theRecombinatorMaybeobject applies therecombinatoroperation with probabilityp, and no operation at all otherwise.
The constructed object gets a clone of this argument. The$recombinator_notfield will reflect this value.
Method prime()
See MiesOperator method. Primes both this operator, as well as the wrapped operators
given to recombinator and recombinator_not during construction.
Usage
RecombinatorMaybe$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
RecombinatorMaybe$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
See Also
Other recombinators: 
OperatorCombination,
Recombinator,
RecombinatorPair,
dict_recombinators_cmpmaybe,
dict_recombinators_convex,
dict_recombinators_cvxpair,
dict_recombinators_null,
dict_recombinators_proxy,
dict_recombinators_sbx,
dict_recombinators_sequential,
dict_recombinators_swap,
dict_recombinators_xonary,
dict_recombinators_xounif
Other recombinator wrappers: 
OperatorCombination,
dict_recombinators_cmpmaybe,
dict_recombinators_proxy,
dict_recombinators_sequential
Examples
set.seed(1)
rm = rec("maybe", rec("xounif", p = 1), p = 0.5)
p = ps(x = p_int(1, 8), y = p_dbl(1, 8), z = p_lgl())
data = data.frame(x = 1:8, y = 1:8, z = rep(TRUE, 4))
rm$prime(p)
rm$operate(data)
rm$param_set$values$p = 0.3
rm$operate(data)
rm2 = rec("maybe",
  recombinator = rec("xounif", p = 1),
  recombinator_not = rec("xounif", p = 0.5),
  p = 0.5
)
rm2$prime(p)
rm2$operate(data)