Differential evolution
   HOME

TheInfoList



OR:

In evolutionary computation, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a
candidate solution In mathematical optimization, a feasible region, feasible set, search space, or solution space is the set of all possible points (sets of values of the choice variables) of an optimization problem that satisfy the problem's constraints, potent ...
with regard to a given measure of quality. Such methods are commonly known as
metaheuristic In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an optimizati ...
s as they make few or no assumptions about the problem being optimized and can search very large spaces of candidate solutions. However, metaheuristics such as DE do not guarantee an optimal solution is ever found. DE is used for multidimensional real-valued functions but does not use the
gradient In vector calculus, the gradient of a scalar-valued differentiable function of several variables is the vector field (or vector-valued function) \nabla f whose value at a point p is the "direction and rate of fastest increase". If the gr ...
of the problem being optimized, which means DE does not require the optimization problem to be
differentiable In mathematics, a differentiable function of one real variable is a function whose derivative exists at each point in its domain. In other words, the graph of a differentiable function has a non-vertical tangent line at each interior point in its ...
, as is required by classic optimization methods such as
gradient descent In mathematics, gradient descent (also often called steepest descent) is a first-order iterative optimization algorithm for finding a local minimum of a differentiable function. The idea is to take repeated steps in the opposite direction of the ...
and quasi-newton methods. DE can therefore also be used on optimization problems that are not even
continuous Continuity or continuous may refer to: Mathematics * Continuity (mathematics), the opposing concept to discreteness; common examples include ** Continuous probability distribution or random variable in probability and statistics ** Continuous ...
, are noisy, change over time, etc. DE optimizes a problem by maintaining a population of candidate solutions and creating new candidate solutions by combining existing ones according to its simple formulae, and then keeping whichever candidate solution has the best score or fitness on the optimization problem at hand. In this way, the optimization problem is treated as a black box that merely provides a measure of quality given a candidate solution and the gradient is therefore not needed. DE was introduced by Storn and Price in the 1990s. Books have been published on theoretical and practical aspects of using DE in parallel computing,
multiobjective optimization Multi-objective optimization (also known as multi-objective programming, vector optimization, multicriteria optimization, multiattribute optimization or Pareto optimization) is an area of multiple criteria decision making that is concerned with ...
, constrained optimization, and the books also contain surveys of application areas. Surveys on the multi-faceted research aspects of DE can be found in journal articles .S. Das, S. S. Mullick, P. N. Suganthan,
Recent Advances in Differential Evolution - An Updated Survey
" Swarm and Evolutionary Computation, doi:10.1016/j.swevo.2016.01.004, 2016.


Algorithm

A basic variant of the DE algorithm works by having a population of candidate solutions (called agents). These agents are moved around in the search-space by using simple mathematical formulae to combine the positions of existing agents from the population. If the new position of an agent is an improvement then it is accepted and forms part of the population, otherwise the new position is simply discarded. The process is repeated and by doing so it is hoped, but not guaranteed, that a satisfactory solution will eventually be discovered. Formally, let f: \mathbb^n \to \mathbb be the fitness function which must be minimized (note that maximization can be performed by considering the function h := -f instead). The function takes a candidate solution as argument in the form of a
vector Vector most often refers to: *Euclidean vector, a quantity with a magnitude and a direction *Vector (epidemiology), an agent that carries and transmits an infectious pathogen into another living organism Vector may also refer to: Mathematic ...
of
real number In mathematics, a real number is a number that can be used to measure a ''continuous'' one-dimensional quantity such as a distance, duration or temperature. Here, ''continuous'' means that values can have arbitrarily small variations. Every ...
s and produces a real number as output which indicates the fitness of the given candidate solution. The
gradient In vector calculus, the gradient of a scalar-valued differentiable function of several variables is the vector field (or vector-valued function) \nabla f whose value at a point p is the "direction and rate of fastest increase". If the gr ...
of f is not known. The goal is to find a solution \mathbf for which f(\mathbf) \leq f(\mathbf) for all \mathbf in the search-space, which means that \mathbf is the global minimum. Let \mathbf \in \mathbb^n designate a candidate solution (agent) in the population. The basic DE algorithm can then be described as follows: * Choose the parameters \text \geq 4, \text \in ,1/math>, and F \in ,2/math>. ** \text is the population size, i.e. the number of candidate agents or "parents"; a typical setting is 10n. ** The parameter \text \in ,1/math> is called the ''crossover probability'' and the parameter F \in ,2/math> is called the ''differential weight''. Typical settings are F = 0.8 and CR = 0.9. ** Optimization performance may be greatly impacted by these choices; see below. * Initialize all agents \mathbf with random positions in the search-space. * Until a termination criterion is met (e.g. number of iterations performed, or adequate fitness reached), repeat the following: ** For each agent \mathbf in the population do: *** Pick three agents \mathbf,\mathbf, and \mathbf from the population at random, they must be distinct from each other as well as from agent \mathbf. (\mathbf is called the "base" vector.) *** Pick a random index R \in \ where n is the dimensionality of the problem being optimized. *** Compute the agent's potentially new position \mathbf = _1, \ldots, y_n/math> as follows: **** For each i \in \, pick a uniformly distributed random number r_i \sim U(0,1) **** If r_i < CR or i = R then set y_i = a_i + F \times (b_i-c_i) otherwise set y_i = x_i. (Index position R is replaced for certain.) *** If f(\mathbf) \leq f(\mathbf) then replace the agent \mathbf in the population with the improved or equal candidate solution \mathbf. * Pick the agent from the population that has the best fitness and return it as the best found candidate solution.


Parameter selection

The choice of DE parameters \text, \text and F can have a large impact on optimization performance. Selecting the DE parameters that yield good performance has therefore been the subject of much research.
Rules of thumb In English, the phrase ''rule of thumb'' refers to an approximate method for doing something, based on practical experience rather than theory. This usage of the phrase can be traced back to the 17th century and has been associated with various t ...
for parameter selection were devised by Storn et al. and Liu and Lampinen. Mathematical convergence analysis regarding parameter selection was done by Zaharie.


Variants

Variants of the DE algorithm are continually being developed in an effort to improve optimization performance. Many different schemes for performing crossover and mutation of agents are possible in the basic algorithm given above, see e.g.


See also

*
Artificial bee colony algorithm In computer science and operations research, the artificial bee colony algorithm (ABC) is an optimization algorithm based on the intelligent foraging behaviour of honey bee swarm, proposed by Derviş Karaboğa (Erciyes University) in 2005. Alg ...
*
CMA-ES Covariance matrix adaptation evolution strategy (CMA-ES) is a particular kind of strategy for numerical optimization. Evolution strategies (ES) are stochastic, derivative-free methods for numerical optimization of non-linear or non-convex continu ...
*
Evolution strategy In computer science, an evolution strategy (ES) is an optimization technique based on ideas of evolution. It belongs to the general class of evolutionary computation or artificial evolution methodologies. History The 'evolution strategy' optimizat ...
* Genetic algorithm


References

{{DEFAULTSORT:Differential Evolution Evolutionary algorithms