On the origins of circuits  

Monday, July 02, 2007

Damn Interesting has an article up about an experiment using electronic circuits that simulate evolution. For a brief bit I studied AI in college, the kind that evolves code over time, not positronic brains or robots. Sometimes I wish I would have gone to graduate school and done something like this rather than enter corporate America as a developer. I loved working with circuits (programmatically, not the actual hardware).

He cooked up a batch of primordial data-soup by generating fifty random blobs of ones and zeros. One by one his computer loaded these digital genomes into the FPGA chip, played the two distinct audio tones, and rated each genome's fitness according to how closely its output satisfied pre-set criteria. Unsurprisingly, none of the initial randomized configuration programs came anywhere close. Even the top performers were so profoundly inadequate that the computer had to choose its favorites based on tiny nuances. The genetic algorithm eliminated the worst of the bunch, and the best were allowed to mingle their virtual DNA by swapping fragments of source code with their partners. Occasional mutations were introduced into the fruit of their digital loins when the control program randomly changed a one or a zero here and there.

The results are very interesting. The FPGA evolved as organically as you'd expect biological life to evolve. By organically, of course I mean as naturally or as randomly without design.

Finally, after just over 4,000 generations, test system settled upon the best program. When Dr. Thompson played the 1kHz tone, the microchip unfailingly reacted by decreasing its power output to zero volts. When he played the 10kHz tone, the output jumped up to five volts. He pushed the chip even farther by requiring it to react to vocal "stop" and "go" commands, a task it met with a few hundred more generations of evolution. As predicted, the principle of natural selection could successfully produce specialized circuits using a fraction of the resources a human would have required. And no one had the foggiest notion how it worked.

A typical Field-Programmable Gate Array (FPGA) chipA pair of typical Field-Programmable Gate Array (FPGA) chipsDr. Thompson peered inside his perfect offspring to gain insight into its methods, but what he found inside was baffling. The plucky chip was utilizing only thirty-seven of its one hundred logic gates, and most of them were arranged in a curious collection of feedback loops. Five individual logic cells were functionally disconnected from the rest– with no pathways that would allow them to influence the output– yet when the researcher disabled any one of them the chip lost its ability to discriminate the tones. Furthermore, the final program did not work reliably when it was loaded onto other FPGAs of the same type.

(via Pharyngula)

AddThis Social Bookmark Button

Email this post


Design by Amanda @ Blogger Buster