Differential Mutation implementation for the MOEA/D

variation_diffmut(X, P, B, Phi = NULL, basis = "rand", ...)

Arguments

X

Population matrix

P

Matrix of selection probabilities (generated by define_neighborhood())

B

Matrix of neighborhoods (generated by define_neighborhood())

Phi

Mutation parameter. Either a scalar numeric constant, or NULL for randomly chosen between 0 and 1 (independently sampled for each operation).

basis

how to select the basis vector. Currently supported methods are:

  • basis = "rand", for using a randomly sampled vector from the population;

  • basis = "mean", for using the mean point of the neighborhood;

  • basis = "wgi", for using the the weighted mean point of the neighborhood.

...

other parameters to be passed down to specific options of basis vector generation (e.g., Y, Yt, W, scaling and aggfun, required when basis = "wgi").

Value

Matrix X' containing the mutated population

Details

This function generalizes many variations of the Differential Mutation operator with general form:

u = x_basis + Phi(x_a - x_b)

Where u is the new candidate vector, Phi != 0 is a real number, and x_basis, x_a and x_b are distinct vectors.

This routine is intended to be used internally by perform_variation(), and should not be called directly by the user.

References

K. Price, R.M. Storn, J.A. Lampinen, "Differential Evolution: A Practical Approach to Global Optimization", Springer 2005

F. Campelo, L.S. Batista, C. Aranha (2020): The MOEADr Package: A Component-Based Framework for Multiobjective Evolutionary Algorithms Based on Decomposition. Journal of Statistical Software doi:10.18637/jss.v092.i06

D. V. Arnold, “Weighted multirecombination evolution strategies,” Theoretical Computer Science 361(1):18–37, 2006.