Friday, April 21, 2006

Computer Programs that Create Computer Programs

Popular Science has a story on the first steps toward biological computing. Not the biotech kind, but rather getting non-destructive computer programs to adapt to input and create new routines to solve problems.
As a high-school student in the 1950s, John Koza yearned for a personal computer. That was a tall order back then, as mass-produced data processors such as the IBM 704 were mainframes several times the size of his bedroom. So the cocksure young man went rummaging for broken jukeboxes and pinball machines, repurposing relays and switches and lightbulbs to make a computer of his own design.

Within certain parameters, his computer was a success, flawlessly reckoning the day of the week whenever he dialed in a calendar date, but the hardwiring made it useless for anything else. Koza’s first invention was not about to supplant IBM, but the mothballed gizmo remains in his basement to this day, a reminder to himself that the intelligence of a machine is a matter of adaptability as much as accuracy.

Over the past several decades, Koza has internalized that lesson as deeply as any computer scientist alive and, arguably, made more of the insight than any coder in history. Now 62 and an adjunct professor at Stanford University, Koza is the inventor of genetic programming, a revolutionary approach to artificial intelligence (AI) capable of solving complex engineering problems with virtually no human guidance. Koza’s 1,000 networked computers don’t just follow a preordained routine. They create, growing new and unexpected designs out of the most basic code. They are computers that innovate, that find solutions not only equal to but better than the best work of expert humans. His “invention machine,” as he likes to call it, has even earned a U.S. patent for developing a system to make factories more efficient, one of the first intellectual-property protections ever granted to a nonhuman designer.

Yet as impressive as these creations may be, none are half as significant as the machine’s method: Darwinian evolution, the process of natural selection. Over and over, bits of computer code are, essentially, procreating. And over the course of hundreds or thousands of generations, that code evolves into offspring so well-adapted for its designated job that it is demonstrably superior to anything we can imagine. The age of creative machines has arrived. And its prophet is John Koza.