NonUniformMutation

class NonUniformMutation(var b: Double = DEFAULT_B, var bigK: Int = DEFAULT_K, var p3: Double = DEFAULT_P3) : NgaMutationIfc(source)

Non-uniform (Michalewicz) mutation (§A.9): each coordinate is, with probability p3, perturbed by Δ(k, y) = y · U(0,1) · max(0.005, (1 − k/K)^b), where k is the current generation, y is the distance to the chosen bound, and the perturbation direction (toward the upper or lower bound) is chosen with equal probability. The step shrinks as the generation count k approaches bigK, focusing the search late in the run.

Parameters

b

the shape exponent controlling the annealing rate; must be > 0 (default 1.5)

bigK

the generation horizon K over which the step anneals; must be >= 1 (default 50)

p3

the per-coordinate mutation probability; must be in 0,1 (default 0.328)

Constructors

Link copied to clipboard
constructor(b: Double = DEFAULT_B, bigK: Int = DEFAULT_K, p3: Double = DEFAULT_P3)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
var b: Double
Link copied to clipboard
var bigK: Int
Link copied to clipboard
var p3: Double

Functions

Link copied to clipboard

Returns a mutated copy of point.