The Differential Evolution algorithm involves maintaining a population of candidate solutions subjected to iterations of recombination, evaluation, and selection. The recombination approach involves the creation of new candidate solution components based on the weighted difference between two randomly selected population members added to a third population member. This perturbs population members relative to the spread of the broader population. In conjunction with selection, the perturbation effect self-organizes the sampling of the problem space, bounding it to known areas of interest.
Differential Evolution has a specialized nomenclature that describes the adopted conguration. This takes the form of DE/x/y/z, where x represents the solution to be perturbed (such a random or best). The y signifies the number of difference vectors used in the perturbation of x, where a difference vectors is the difference between two randomly selected although distinct members of the population. Finally, z signifies the recombination operator performed such as bin for binomial and exp for exponential.
Differential evolution was designed for nonlinear, non-differentiable continuous function optimization. The weighting factor F in [0; 2] controls the amplification of differential variation, a value of 0.8 is suggested. The crossover weight CR in [0; 1] probabilistically controls the amount of recombination, a value of 0.9 is suggested. The initial population of candidate solutions should be randomly generated from within the space of valid solutions. The popular configurations are DE/rand/1/* and DE/best/2/*.
The following algorithm provides a pseudocode listing of the Differential Evolution algorithm for minimizing a cost function, specifically a DE/-rand/1/bin configuration.