|
|
|
|
|
by snrji
2564 days ago
|
|
When I was in college I was mystified by genetic algorithms, without knowing much about them. After taking 2 subjects on the matter and reading some books, I came to the conclusion that apart from being inherently inefficient (that's what you apply them when you have no alternative), they are actually outperformed by hill climbing (which can be seen as a particular case of the former if population = 1). Also, the crossover operator seems to make more harm than good, and it's not fully understood it's usefulness in nature, although there are some theories (this last point is taken from Pedro Domingos book). |
|
My personal story: I worked for just under a decade on EAs (PhD and professionally, late 90s and early 00s). I don't entirely disagree with you about pure GAs. But even back then, pure GAs were rarely used. But I do disagree about evolutionary algorithms in general.
The usefulness of EAs is highly problem dependent. And I will definitely concede that the space of problems in which they excel and are tractable is smaller than the space of problems for something like a neural network, in my experience.
As for crossover, when it works (and in engineering contexts the operator needs to be designed with the problem in mind) it does so by allowing individuals at different points on the landscape to share the optimisations they find. At the cost of increased genetic load. This, of course, is only useful if the fitness landscape is both heavily multimodal and self-similar. And it requires some effort to avoid the population converging around a single solution (where you do have a stochastic hill climb).
In my experience, EAs come into their own with non-fixed genotypes or complex genotype to phenotype expression. Multivariate optimisations with a fixed number of variables is probably best done with other tools.