Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Explain the Differential Evolution method

Can someone please explain the Differential Evolution method? The Wikipedia definition is extremely technical.

A dumbed-down explanation followed by a simple example would be appreciated :)

like image 629
Gili Avatar asked Sep 21 '11 02:09

Gili


People also ask

Is differential evolution An evolutionary algorithm?

Differential evolution (DE) is a popular evolutionary algorithm inspired by Darwin's theory of evolution and has been studied extensively to solve different areas of optimisation and engineering applications since its introduction by Storn in 1997.

Who invented differential evolution?

Differential evolution was proposed by K.V. Price and R. Storn in 1995 [1]. At that time, Price was asked to solve the Chebyshev polynomial fitting problem [1]-[5] by Storn [2], [5].

What is mutation in differential evolution?

DE is an evolutionary algorithm that processes a population of individuals represented by -dimensional vectors of real numbers. In each iteration, for each parent , a mutant is created by means of a differential mutation operator. The mutant is then crossed-over with the parent and yields an offspring .

What is multi objective differential evolution?

In this paper, a Pareto-based multi-objective differential evolution (DE) algorithm is proposed as a search strategy for mining accurate and comprehensible numeric association rules (ARs) which are optimal in the wider sense that no other rules are superior to them when all objectives are simultaneously considered.


1 Answers

Here's a simplified description. DE is an optimisation technique which iteratively modifies a population of candidate solutions to make it converge to an optimum of your function.

You first initialise your candidate solutions randomly. Then at each iteration and for each candidate solution x you do the following:

  1. you produce a trial vector: v = a + ( b - c ) / 2, where a, b, c are three distinct candidate solutions picked randomly among your population.
  2. you randomly swap vector components between x and v to produce v'. At least one component from v must be swapped.
  3. you replace x in your population with v' only if it is a better candidate (i.e. it better optimise your function).

(Note that the above algorithm is very simplified; don't code from it, find proper spec. elsewhere instead)

Unfortunately the Wikipedia article lacks illustrations. It is easier to understand with a graphical representation, you'll find some in these slides: http://www-personal.une.edu.au/~jvanderw/DE_1.pdf .

It is similar to genetic algorithm (GA) except that the candidate solutions are not considered as binary strings (chromosome) but (usually) as real vectors. One key aspect of DE is that the mutation step size (see step 1 for the mutation) is dynamic, that is, it adapts to the configuration of your population and will tend to zero when it converges. This makes DE less vulnerable to genetic drift than GA.

like image 137
Bob Roberts Avatar answered Jan 01 '23 21:01

Bob Roberts