doLinearProjectionMutation: Linear projection mutation

Description Usage Arguments Value See Also

View source: R/mutator.linearprojection.R

Description

This is a generalization of the doAxisProjectionMutation. A subset Q \subseteq P (each point selected with independent probability pm) is selected. Next, a random intercept β_0 \in [0, 1] is sampled. In a subsequent step a slope β_1 is sampled uniformly at random from [0, 3] (if β_0 < 0.5) and [-3, 0] (if β_0 ≥q 0.5). This heuristic distinction of cases ensures that with high probability the resulting linear function β_0 + β_1x runs inside the bounding-box [0, 1]^2 at least partially. Finally, all points p \in Q are modified by setting p_2 = β_0 + β_1p_1. Additionally, with probability p.jitter, Gaussian noise with mean zero and standard deviation jitter.sd is added to the second coordinate.

Usage

1
2
doLinearProjectionMutation(coords, pm = 0.1, p.jitter = 0,
  jitter.sd = 0, ...)

Arguments

coords

[matrix]
An n times 2 matrix of point coordinates in [0, 1]^2.

pm

[numeric(1)]
Probability of node mutation. Note that each node is subject to mutation independent of the the nodes. Default is 0.1, i.e., in expectation 10% of the points are mutated.

p.jitter

[numeric(1)]
Probability to add Gaussian noise to mutated points. Default is 0, i.e., no Gaussian noise at all.

jitter.sd

[numeric(1)]
Standard deviation for Gaussian noise. Defaults to 0.1. Note that this parameter has an effect only if p.jitter is greater zero.

...

[any]
Currently not used.

Value

[matrix] Mutated coordinates.

See Also

build

Other mutation operators: doAxisProjectionMutation, doClusterMutation, doCompressionMutation, doExpansionMutation, doExplosionMutation, doGridMutation, doImplosionMutation, doNormalMutation, doRotationMutation, doUniformMutation


jakobbossek/tspgen documentation built on July 3, 2021, 12:01 p.m.