Differential Evolution
Differential Evolution(DE) is a population based algorithm whereby new points are created by taking a random member of the population, performing a “crossover” on it with a “partner”, and replacing it in the population if the result is better than the original.
The Mutation Partner #
The partner for crossover is generated as follows. Suppose we have chosen x for crossover.
- Pick
a,b,crandomly from the population distinct from each other and distinct fromx - Let
v = a + F(b - c)where0<F<1, note thatFis not a functionvis the partner forxThat is, for eachi = 1..n, vi = ai +F(bi - ci)
Crossover #
To cross x with v
for i = 1 to n
if(random < CR)
yi = vi
else
yi = xi
CR is a crossover bias typically 0.5
Algorithm #
- Pick a random population
- Pick a random number
xfrom the population - Pick
a,b,cfrom population distinct from each other andx v = a + F( b - c)- Crossover
xandvwith rateCRto formy - If
ybetter thanx, it replacesxin the population - Go to 2
Parameters #
Population size between 5 and 10 times the size of n
F is between 0 and 2
CR is between 0.5 and 0.9 (biased towards mutant)