DE is a population-based ('safety-in-numbers') optimisation method and it uses a selection method to allow certain members of the population to evolve to the next generation. I programmed a C++11 and tested against the usual suspects (recall the 'iv' thread as well). It is extremely robust as far as I can see but compute-intense. It seems that choosing its hyperparameters is an art..That's OK. I've got it. And I see from Storn and Price that the 1985 SDE method was obsoleted by DE circa 1995 because of a massive reduction in the number of function evaluations needed! (Table 3). So, while an SDE approach indeed works, it's not a good one. Well, I learned something today.
The Rastrigin function is non-convex and has many local minima. For n = 10 I got the answer with a population 6000 and 50000 generations.
https://en.wikipedia.org/wiki/Rastrigin_function
(BTW Ackley in 2d is a piece of cake NPOP = NGEN = 100 does the job; ODE solver converges to a local minimum).
DE is not meant for sequential code.@Alan, how does MM cope with DE (efficiency)?