"Double Geometric" mutation operator for integer parameters: with probability p a random geometrically distributed value is added, and another (different) one subtracted.

mutDoubleGeomScaled scales sdev with each component's range and then uses geomp = (sqrt(2 * sdev^2 + 1) - 1) / sdev^2.

mutDoubleGeom(ind, p = 1, geomp = 0.9, lower, upper)

mutDoubleGeomScaled(ind, p = 1, sdev = 0.05, lower, upper)

Arguments

ind

[integer] individual to mutate.

p

[numeric(1)] per-entry probability to perform mutation.

geomp

[numeric] geometric distribution parameter.

lower

[integer] lower bounds of ind values. May have same length as ind or may be a single number, if the lower bounds are the same for all values.

upper

[integer] upper bounds of ind values. May have same length as ind or may be a single number, if the upper bounds are the same for all values.

sdev

[numeric] standard deviation, relative to upper - lower.

Value

[integer]

See also