4 ms·
Evolution is too inefficient
by sriram_sun 17y ago
Evolution is too inefficient
- phaedrus 17y agoBefore you get downvoted for sounding glib, allow me to elaborate on what you said: "The search space for evolving bug fixes in a program is likely to be extraordinarily large. Furthermore there will be places of sharp division in the fitness landscape between working programs and nonworking programs. Therefore I'm skeptical whether evolving bug fixes is likely to be computationally tractable in the general case."
- cabalamat 17y agoWell said. I'd add that evolution works for organisms because they have evolved evolvability. By this I mean that the source code isn't fragile, so that you can take the source code from two organisms of the same (sexually reproducing) species, mix and match them together, and the resulting DNA codes for a viable organism. This even works for closely related species as the existance of mules demonstrates. Programs written by humans in the sort of programming languages we use do not have this characteristic of robustness. Genetic programming would work better using languages specifically designed to be robust in this sense.
- tengkahwee 17y agoBut if we can speed up evolution several thousand folds...
- marciovm123 17y agoIt might be inefficient in absolute time, but in terms of programmer effort genetic algorithms can be tremendously efficient. I used a genetic algorithm to optimize a signal processing routine in my research (I'm a grad student in biological engineering, the project is sizing nanoparticles). It took me 3 days to write and debug a mutation algorithm, a fitness score, and a backbone that iterates breeding a new generation of code and keeping the most fit offspring. I started running the code on a Friday and by Monday morning, at around 500 generations, the fitness score had improved 60%. Colleagues of ours working on a very similar problem spent 3 months doing the same thing manually and only got to about 55% improvement. I spent that weekend sailing and thinking, I'm glad my computer is doing my work for me right now.