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)