Base class for mutation operations on discrete individuals, inheriting from Mutator
.
MutatorDiscrete
operators perform mutation on discrete (logical and factor valued) individuals. Inheriting
operators implement the private $.mutate_discrete()
function that is called once for each individual
and is given a character vector.
MutatorDiscrete
is an abstract base class and should be inherited from. Inheriting classes should implement the private $.mutate_discrete()
function. During $operate()
, the $.mutate_discrete()
function is called once for each individual, with the parameters values
(the
individual as a single character
vector), and levels
(a list of character
containing the possible values for each element of values
). Typically,
$initialize()
should also be overloaded.
Other base classes:
Filtor
,
FiltorSurrogate
,
MiesOperator
,
Mutator
,
MutatorNumeric
,
OperatorCombination
,
Recombinator
,
RecombinatorPair
,
Scalor
,
Selector
,
SelectorScalar
Other mutators:
Mutator
,
MutatorNumeric
,
OperatorCombination
,
dict_mutators_cmpmaybe
,
dict_mutators_erase
,
dict_mutators_gauss
,
dict_mutators_maybe
,
dict_mutators_null
,
dict_mutators_proxy
,
dict_mutators_sequential
,
dict_mutators_unif
miesmuschel::MiesOperator
-> miesmuschel::Mutator
-> MutatorDiscrete
new()
Initialize base class components of the MutatorNumeric
.
MutatorDiscrete$new(
param_classes = c("ParamLgl", "ParamFct"),
param_set = ps(),
packages = character(0),
dict_entry = NULL,
own_param_set = quote(self$param_set)
)
param_classes
(character
)
Classes of parameters that the operator can handle. May contain any of "ParamLgl"
, "ParamFct"
.
Default is both of them.
The $param_classes
field will reflect this value.
param_set
(ParamSet
| list
of expression
)
Strategy parameters of the operator. This should be created by the subclass and given to super$initialize()
.
If this is a ParamSet
, it is used as the MiesOperator
's ParamSet
directly. Otherwise it must be a list
of expressions e.g. created by alist()
that evaluate to ParamSet
s,
possibly referencing self
and private
.
These ParamSet
are then combined using a ParamSetCollection
.
Default is the empty ParamSet
.
The $param_set
field will reflect this value.
packages
(character
)
Packages that need to be loaded for the operator to function. This should
be declared so these packages can be loaded when operators run on parallel
instances. Default is character(0)
.
The $packages
field will reflect this values.
dict_entry
(character(1)
| NULL
)
Key of the class inside the Dictionary
(usually one of
dict_mutators
, dict_recombinators
, dict_selectors
), where it can
be retrieved using a short access function. May be NULL
if the operator
is not entered in a dictionary.
The $dict_entry
field will reflect this value.
own_param_set
(language
)
An expression that evaluates to a ParamSet
indicating the configuration parameters that are entirely owned by
this operator class (and not proxied from a construction argument object). This should be quote(self$param_set)
(the default) when
the param_set
argument is not a list of expressions.