Implements the "/current-to-pbest" mutation for the ExpDE framework
mutation_current_to_pbest(X, mutpars)
population matrix
mutation parameters (see Mutation parameters
for details)
Matrix M
containing the mutated population
The mutpars
parameter contains all parameters required to define the
mutation. mutation_current_to_pbest()
understands the following fields in
mutpars
:
f
: scaling factor for difference vector(s).
Accepts numeric vectors of size 1 or nvecs
.
p
: either the number of "best" vectors to use (if given as a
positive integer) or the proportion of the population to use as "best"
vectors (if 0 < p < 1).
This routine will search for the performance vector
of population X
(J
) in the parent environment (using
parent.frame()
. This variable must be defined for
mutation_current_to_pbest()
to work.
This routine also implements one special case:
current-to-best mutation (current_to_best
), by setting
mutpars$p = 1
);
Flat recombination (flat
), by setting
recpars$alpha = recpars$beta = 0
)
J. Zhang, A.C. Sanderson, "JADE: Adaptive differential evolution with optional external archive". IEEE Transactions on Evolutionary Computation 13:945-958, 2009