ExpDE is a modular implementation of the Differential Evolution metaheuristic, which aims at providing a platform for the experimental investigation of the effect of different recombination / mutation / selection operators.
Install the package directly from CRAN using:
install.packages("ExpDE")
To get the latest version from Github, use:
# install.packages("devtools")
devtools::install_github("fcampelo/ExpDE")
Full usage instructions and examples can be found in the documentation of ExpDE::ExpDE()
. Type ?ExpDE
to check it.
- Best (
mutation_best
) - Current-to-pbest (
mutation_current_to_pbest
- includes special casecurrent-to-best
) - Mean (
mutation_mean
) - Rand (
mutation_rand
) - Weighted global intermediate (
mutation_wgi
)
It is also possible to run the algorithm without using any differential mutation operator (mutation_none
). Run mutation_operators()
for a list of available
variants.
- Arithmetic (
recombination_arith
) - Binomial (
recombination_bin
) - BLX-α-β (
recombination_blxAlphaBeta
- includes special casesblxAlpha
andFlat
) - Eigenvector-based (
recombination_eigen
) - Exponential (
recombination_exp
) - Geometric (
recombination_geo
) - Linear BGA (
recombination_lbga
) - Linear (
recombination_linear
) - M-max (
recombination_mmax
) - N-point (
recombination_npoint
) - One-point (
recombination_onepoint
) - pbest (
recombination_pbest
) - SBX (
recombination_sbx
) - Wright (
recombination_wright
)
It is also possible to run the algorithm without using any recombination operator (recombination_none
). Run recombination_operators()
for a list of available
variants.
- Standard DE (
selection_standard
)
- Maximum number of iterations (
stop_maxiter
) - Maximum number of function evaluations (
stop_maxeval
)
popsize <- 200
mutpars <- list(name = "mutation_best", f = 0.6, nvecs = 1)
recpars <- list(name = "recombination_sbx", eta = 10)
selpars <- list(name = "selection_standard")
stopcrit <- list(names = "stop_maxeval", maxevals = 100000)
probpars <- list(name = "sphere", xmin = rep(2, 10), xmax = rep(20, 10))
seed <- 1234
showpars <- list(show.iters = "numbers", showevery = 10)
out <- ExpDE(popsize, mutpars, recpars, selpars,
stopcrit, probpars, seed, showpars)
If you find any bugs or has any suggestions for improvement, please feel free to contact me.
Cheers,
Felipe