Eppley Institute for Cancer Research

University of Nebraska Medical Center

Home - Introduction - CommonTasks - Index - About

Differential Evolution Algorithm

The Differential Evolution Algorithm (DEA) is employed by BEAM-ish as a way to fit on or more Gaussians to a reflection profile.  The DEA part of the family of genetic algorithms.  These algorithms try to mimic the processes used in biology to solve engineering problems.

The DEA operates by setting up a population of solutions and then evolving that population towards a specific goal.  It uses two mechanisms to achieve this goal.  The first is recombination.  Recombination is the process of combining data from two parent solutions to derive a new child solution.  The other method is mutation.  Mutation is the act of randomly generating a new parameter that may not be a combination of existing solutions.  In order to operate efficiently the user must supply constraints to the parameter space.  These constraints are fairly straight forward for the fitting within BEAM-ish.  In general the height of the Gaussian cannot not be much greater than the total height of the peak and cannot be less than zero.  Its width cannon be more than the full width quarter maximum and not less than zero.  It must be centered some where within the window were the reflection peak is located.  The background cannot be more than 20% of the maximum and must not be less than zero.

Internal testing has shown that the DEA finds solutions that are better than the LM method greater than 93% of the time in terms of the sum of the squared error.  It is roughly 5 times faster.  It does not require roughly accurate initial conditions to converge to a solution.

Currently, it uses 15 consecutive generations where no members have been replaced or a maximum of 600 generations evolved as termination conditions.

There have been solutions that stopped early in the evolution process but that were not good fits to the data.  In these cases rerunning the algorithm on the data again caused a much better solution to be evolved.  It is possible that for some reason the randomly initialized solutions just did not converge properly or were not well randomized across the parameter space.

The pseudo code that was used to develop the fitter came from:

M. Wormington, C. Panaccione, K. M. Matney, and K. D. Bowen, Characterization of Structures from X-ray Scattering Data Using Genetic Algorithms. Philos. Trans. R. Soc. London, Ser. A 1999, 357, 2827-2848.