Open Freakwill opened 4 years ago
Thanks for this study, I never benchmarked the algorithms like that. AFAIK, they should be roughly equivalent offering different trade-offs between exploration and exploitation.
My first guess is that the simple algorithm uses more exploration as in a single generation individuals can be mated and mutated, while in the (µ + λ) algorithm individual can only be mated or mutated.
My second guess is your parameters, in the simple algorithm you use 75% crossover and 15% mutation, while in the (µ + λ) algorithm you use 30% crossover and 70% mutation.
crossover
Thank you for your guesses.
I think, more important is the time costed in the final analysis, whatever how much exploration is took.
To change the parameters of (µ + λ) algorithm could not make it better than SGA, I think. And the original ES algorithm, there is no crossover (This is the reason why I turn up mutpb
).
this is interesting, I am using a modified eaMuPlusLambda to train neural networks for motion control and atari-game-playing. eaMuPlusLambda seems to perform well for me. I haven't tried eaSimple.
Could it be, that the evaluation in your example is not "difficult enough" to benefit from mupluslambda? e.g. for problems with an non deterministic evaluation function?
I guess, that eaSimple behaves basically like a MuCommaLambda. And in my experiments I have observed very bad performance when I drop the parent generation from the population.
I have tried many examples, showing that
eaMuPlusLambda/ES
is worse thaneaSimple/SGA
in performance. That is disappointed.