Differential Evolution

## Keywords

Differential Evolution

## Review Status

Reviewed; revised 2009-02-02.

# The algorithm

A more recent contribution to population-based methods is Differential Evolution (DE) [1] which was developed for the optimisation of continuous objective functions. The pseudocode below describes the algorithm. Initially, the procedure randomly generates and evaluates $n_P$ solutions, stored in real-valued vectors of length $d$. In each generation, the algorithm creates a candidate solution for each existing solution $P^{(k)}_{\cdot ,i}$ (ie, for each current element of the population) through differential mutation (Line 7) and uniform crossover (Lines 8-10). Differential mutation generates a new solution by multiplying the difference between two randomly selected solution vectors by a scale factor $\mathtt{F}$, and adding the result to a third vector. Then an element-wise crossover takes place with probability $\mathtt{CR}$ between this ‘auxiliary’ solution $P^{(v)}_{\cdot , i}$ and the existing solution $P^{(k)}_{\cdot ,i}$. The resulting new candidate solution is denoted $P^{(u)}_{\cdot ,i}$: if it is better than $P^{(k)}_{\cdot ,i}$, it replaces it; if not, the old solution is kept. The algorithm terminates after a predefined number of generations.

(1)

 Concepts … Tutorials … Tips … Related Articles …

 References 1. Storn, R. and K. Price (1997). Differential evolution - A simple and efficient heuristic for global optimization over continuous spaces. Journal of Global Optimization 11, 341-359. Weblinks Differential Evolution homepage by R. Storn and K. Price The R-package NMOF contains an implementation of Differential Evolution (the function DEopt). The package is available from R-Forge .
page revision: 83, last edited: 07 Sep 2011 04:40