Tuesday, October 2, 2007

Don't Plan, Evolve

Until recently, the only way for humans to create machines and other such things was to plan them and how they would work. Very straightforward.

But with the advent of computers that can do hundreds of computations per second, a new and so far underutilized method of creation has been born. That is an evolutionary approach. Give a computer an objective, a means of evaluating how well a particular method works, and a starting point. Have it tinker with the method, until it finds a better method. Then have it tinker with the new method, until it finds one better than that. Repeat. Eventually, it should find some really good solutions to your problem. That's called a genetic algorithm.

One example is the robot Pino, which can walk bipedally. Most robots that can do that are clumsy and slow. Those robots were made by analysing how humans walk, and having the robot imitate that. But not Pino. Pino learned how to walk by himself. At first, he couldn't, but he learned from each step until he could walk as smoothly as a human.

But genetic algorithms are far more powerful than just that. In that example, the computer can solve one problem, but the algorithm to do that must be planned. John Koza one-upped them by applying genetic algorithms to genetic algorithms. He's evolving computer programs, so given time, they could solve any problem you throw at them. In fact, some of the things that his programs have created have gotten patents.

No comments: