Differential evolution (DE) is an evolutionary algorithm to optimize a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality.
Such methods are commonly known as metaheuristics as they make few or no assumptions about the optimized problem and can search very large spaces of candidate solutions.
DE can therefore also be used on optimization problems that are not even continuous, are noisy, change over time, etc.
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.
[5][6][7][8] Surveys on the multi-faceted research aspects of DE can be found in journal articles.
[9][10] A basic variant of the DE algorithm works by having a population of candidate solutions (called agents).
The process is repeated and by doing so it is hoped, but not guaranteed, that a satisfactory solution will eventually be discovered.
The function takes a candidate solution as argument in the form of a vector of real numbers.
It produces a real number as output which indicates the fitness of the given candidate solution.
Selecting the DE parameters that yield good performance has therefore been the subject of much research.
Rules of thumb for parameter selection were devised by Storn et al.[4][5] and Liu and Lampinen.
A common method involves modifying the target function to include a penalty for any violation of constraints, expressed as:
Conversely, if it's too high, it can greatly slow down or even halt the convergence process.
Despite these challenges, this approach remains widely used due to its simplicity and because it doesn't require altering the differential evolution algorithm itself.
There are alternative strategies, such as projecting onto a feasible set or reducing dimensionality, which can be used for box-constrained or linearly constrained cases.
However, in the context of general nonlinear constraints, the most reliable methods typically involve penalty functions.
Variants of the DE algorithm are continually being developed in an effort to improve optimization performance.