Skip the navigation

Only the Strong Survive

Computing by Natural Selection

By Gary Anthes
July 22, 2002 12:00 PM ET

Computerworld - MELANIE MITCHELL
Position: Research computer scientist
Employer: Santa Fe Institute, a New Mexico think tank specializing in emerging science
Research interests: Intelligent systems and machine learning, complex systems, evolutionary computation and artificial life



Melanie Mitchell says computer scientists and biologists can learn a lot from each other. She's studying how natural systems perform computation, and she's using her findings to develop new kinds of computational methods. Mitchell recently told Computerworld's Gary H. Anthes how we can solve some complex problems by letting systems evolve solutions through a process of natural selection.
Melanie Mitchell, a research computer scientist at the Santa Fe Institute
Melanie Mitchell, a research computer scientist at the Santa Fe Institute
Is evolutionary computing beginning to move out of the academic realm? This whole field has really exploded recently. More and more people are using evolutionary methods to do real-world applications. Examples are factory job scheduling, supply chain optimization and automatic design of things like circuits.

What's driving this? People have learned how to exploit these methods better, and more and more people are getting interested in biologically inspired methods in computer science. And we have the kind of computer power to really use these algorithms on a much larger scale. They are very computationally intensive, and a lot of people are now looking at genetic algorithms implemented on a parallel computer or some large network of computers.

Is anything holding back even wider use of evolutionary computing? People don't understand very well what characterizes problems that evolutionary methods work well on. That's an open problem. There's some intuition, but no real formal analysis.

Nevertheless, what can you say about why this method is sometimes so effective? More and more people in the field of artificial intelligence are finding that if you want to create very complex computing systems that act intelligently or in lifelike ways, that's very difficult to engineer by hand. You have to let systems learn on their own. Evolutionary computing is one kind of machine learning; neural networks is another.

You're doing research in co-evolutionary computing. How does that differ from evolutionary computing? In machine learning, the traditional way you get a system to do what you want is you come up with a fixed set of training examples - examples of the problem it's going to be faced with. Then you try the system out on the training examples, and if it gets the right answer, it gets credit, and if it gets the wrong answer, it gets punished.
But in co-evolution, you actually evolve the training examples, and they evolve to be increasingly challenging. So you try to evolve test cases; you are generating


Our Commenting Policies