[SciPy-Dev] Robert Kern's accursed excellent DE implementation

James Phillips zunzun at zunzun.com
Tue Mar 24 15:00:14 EDT 2015


I have been using Robert Kern's implementation of the Differential
Evolution (DE) genetic algorithm for a decade, for the purpose of
guessimating initial parameter estimates for curve fitting and surface
fitting in my oprn source pyeq2 fitting library.

I can't find anything that works better, which gives rise to my current
problem.

In trying to improve performance of my fitting library, I tried to use GPU
calculations for each generation of the genetic algorithm, I found the
following:

1) Robert's 2005 implementation of DE is not parallelizeable, as each
crossover withing a generation can affect the population from which new
items will be created.  That is, within a given generation the population
*changes* as the algorithm runs the generation itself, and it must run
serially in it's present form.

2) I can rework the algorithm to be parallelizeable by separating out
"crossover", "breeding" and "evolving" into three separate steps, but
months of testing show that population size and number of generations must
beconsiderably  increased to match the results from Robert's version.  That
is, making the algorithm parallelizable means slowing it down so I can
speed it up!

I would like to increase performance, but cannot find any way to equal
Robert's results without reducing performance prior to parallelization.

Any suggestions?

James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20150324/72d040ac/attachment.html>


More information about the SciPy-Dev mailing list