welcome: please sign in
Why Pure Evolutionary Programming is Dumb

Evolutionary programs are dumb for a simple reason: they don't remember any of the mistakes they make. Evolutionary programs only care about things that have worked before -- what's encoded in their DNA.

As a result, an evolutionary search is dumb. For simple problems, they work well, because you can leave your computer on overnight and explore the entire search space. However, with a large problem, your algorithm is sending out a vanishingly-thin thread into an enormous multidimensional search space. In the average case, the search will take eons to hit upon the answer.

If you want to solve hard problems with evolutionary programming, become a Buddhist monk. Sit on a rock meditating while your computer spends eons trying to solve the problem. Teach your children to meditate and maintain the great computer during its search for the answer. Thousands of generations from now, your great**1000 grandchildren will get to see the answer.

Eventually it occurs to you that, like in nature, you can do multiple searches in parallel. Insects don't have just one offspring -- they have thousands! Now you can make a really big computer that sends out 128 vanishingly-thin threads into an enormous multidimensional search space. Not a great improvement, but it's something! The solution will only take 100 generations now.

Maybe, 20 years into the program, you need a break from meditating and decide to start looking at the results of the evolutionary search. Using a handy tool called "intelligence", you notice patterns in the successes and failures of the search. There's a giant cliff in your search space that the evolved programs keep falling off of and dying. Perhaps you could accelerate the search by building a fence in front of that cliff. Now you can skip 30% the search space. It'll only take 70 generations!

Now you start getting more interested in what's actually going on. With more detailed analysis, you notice that certain combinations of parameters in the programs always fail. You have discovered a logical principle! It allows you to throw away 30% of the search space. Now it'll only take 40 generations!

A little further down the line, you hit upon the idea of gradient descent learning and simulated annealing. Now, instead of just jumping around randomly, you can jump around a bit, but also follow the contours of your search space, which lead you to the optimal answers. Now you can ignore most of the search space and focus on the areas that look promising. You've only got 1 generation left!

Suddenly it strikes you that the machines can be doing these things you're doing with your brain. Heck, they're better at finding patterns in gigabytes of numbers in multiple dimensions than you are! You develop a machine learning algorithm that can automatically discover patterns and principles amongst evolved programs in the search space. You also discover dimensionality reduction, which flattens the search space by orders of magnitude.

You end up with a search algorithm that runs in a day.

Good for you! You have discovered the power of intelligence.

Why_Pure_Evolutionary_Programming_is_Dumb (last edited 2010-11-12 01:01:28 by Chris)