Differential evolution algorithm
The differential evolution algorithm consists in 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 confuses the members of the population in relation to the spread of the whole population. In conjunction with selection, the perturbation effect self-organizes the sampling of the problem space, linking it to known areas of interest.
Differential evolution has a specialized nomenclature which describes the adopted configuration. This takes the form of DE / x / y / z, where x represents the solution to be disturbed (such random or better). The y stands for the number of difference vectors used in the perturbation of x, where a difference vector is the difference between two randomly selected, albeit distinct, members of the population. Finally, z means that the recombination operator performed, such as bin for binomial and exp for exponential.
Differential evolution was designed for a optimization nonlinear and nondifferentiable continuous function. The weighting factor F in [0; 2] controls the amplification of the differential variation, a value of 0.8 is suggested. The weight of the crossover CR in [0; 1] probabilistically controls the amount of recombination, a value of 0.9 is suggested. The initial population of candidate solutions must be randomly generated from the space of valid solutions. Popular configurations are DE/rand/1/* and DE/best/2/*.
The following algorithm describes the differential evolution algorithm to minimize a cost function, in particular a DE / -rand / 1 / bin configuration.