
Random selector that disregards fitness and individual values and selects individuals randomly. Depending on the configuration parameter replace
,
it samples with or without replacement.
sample_unique
:: character(1)
Whether to sample individuals globally unique ("global"
), unique within groups ("groups"
), or not unique at all ("no"
, sample with replacement).
This is done with best effort; if group_size
(when sample_unique
is "groups"
) or n_select
(when sample_unique
is "global"
)
is greater than nrow(values)
, then individuals are selected with as few repeats as possible. Initialized to "groups"
.
Supported Domain
classes are: p_lgl
('ParamLgl'), p_int
('ParamInt'), p_dbl
('ParamDbl'), p_fct
('ParamFct')
This Selector
can be created with the short access form sel()
(sels()
to get a list), or through the the dictionary
dict_selectors
in the following way:
# preferred:
sel("random")
sels("random") # takes vector IDs, returns list of Selectors# long form:
dict_selectors$get("random")
miesmuschel::MiesOperator
-> miesmuschel::Selector
-> SelectorRandom
Other selectors:
Selector
,
SelectorScalar
,
dict_selectors_best
,
dict_selectors_maybe
,
dict_selectors_null
,
dict_selectors_proxy
,
dict_selectors_sequential
,
dict_selectors_tournament
set.seed(1)
sr = sel("random")
p = ps(x = p_dbl(-5, 5))
# dummy data; note that SelectorRandom does not depend on data content
data = data.frame(x = rep(0, 5))
fitnesses = c(1, 5, 2, 3, 0)
sr$prime(p)
sr$operate(data, fitnesses, 2)
sr$operate(data, fitnesses, 2)
sr$operate(data, fitnesses, 2)
sr$operate(data, fitnesses, 4)
sr$operate(data, fitnesses, 4)
sr$operate(data, fitnesses, 4)
Run the code above in your browser using DataLab