Digital Darwin
An anonymous reader writes "Using genetic algorithms to breed strings of computer code graphically, this week's Nature magazine describes results from Caltech and Michigan State. Their program is Avida. While they mainly mimic mutation, not genetic cross-over [or inheritance (thus wiping away much memory of initial conditions)], their simulations show how a short-term backward step in survival strategies can generate innovative advances. It is not unlike running a maze which necessarily involves testing alot of dead-ends, and thus shares the graphical look of Conway's classic Game of Life." Here's a National Geographic story about this as well, or see their press release.
And I wish everyone could see them at work. It's really kind of breathtaking how stumbling around in the parameter space, and filtering the bad missteps, can mimic the results of engineering. I think the minor problem of the small number of noisy anti-evolutionists would become even more minor. I mean, it's kind of hard to say that an algorithm doesn't work when you can compile a few thousand lines of c and then watch it work.
Tierra was by Tom Ray, a pioneer in the AL field. It was a great idea, but failed to turn around with interesting biodiversity. You'd create creatures, they'd optimize themselves, some variants and parasites would evolve, but then things would simmer down within a few hours and you'd be in a steady state for ever.
;)
Network Tierra was Ray's response to this. It was supposed to allow a "Cambrian explosion" of biodiversity, by providing tons of (networked computer) space for the little creatures to explode into, and then specialize, in. This led to interesting migration behavior, and one of my all-time favorite web-pages, but it too failed to spark that je ne sais quois, that spark of life.
Anyways, it did spark Avida and the Digital Life Lab at Cal Tech. Avida is essentially a deeper look at the fundamentals behind AL. In Tierra, I think the design philosophy was something like "make it look a lot like a living ecological system and the life-force will appear out of the ether", and actually, Tierra was a great leap forward beyond more mundane genetic programming a la John Koza.
Avida, on the other hand, is much more systematic in exploring the parameter space (which is large and sensitive) for setting up an AL system. This turned out to be fruitful, as Adami found that only when certain, very narrow, environmental conditions were met would the little creatures start outsmarting that Creationist boogeyman, the Second Law of Thermodynamics.
Turns out that Tierra didn't have spatiality (needed to be more restrictive on who could sleep with who) and mutation rates (some power law math that's way over my head) set right.
But the real punch-line to this whole story is that the direct beneficiary of these insights in Microsoft! Hah!
Microsoft was funding Adami's work because Windoze crashed too much. They were searching for a way of programming - in this case using closed instruction sets like Avida's (another deep topic) - that would be inherently robust to problems like seg faults and illegal instructions.... e.g. Adami's instruction set was engineered so that little programs (creatures) couldn't crash the Avida VM when they mutated into new, unknown programs.. or in Windoze's case, when a coder did something stoopid. It's funny that MS was researching this, since releatively low-tech solutions such as protected memory and QA take care of this. (not to mention Java
technique that has always made me think.
I read a magazine article about this a while back. (probably Sci Am.)
One researcher setup a problem to be solved with an analog circut. The problem was to distinguish between the words yes and no.
Nobody can explain how the circut that evolved actually works. Like us, there were parts of the circut that seemed redundant or unnecessary. Sort of like the appendix.
This whole thing makes me wonder just what we don't know that we think we do.
Blogging because I can...
This isn't really a challenging assertion, and is well discusssed in evolutionary psychological circles. Consider any given genetic setback. In order for the organism suffering this set back not to be disadvantaged, it must develop a mechanism which compensates for the setback at least as much as the organism is disadvantaged. Simple statistics will show that any solution which is at least as good as another solution is probably better. Because unless it is exactly as good, it is better, and the range of better solutions is much wider than the range of exactly as good solutions. So you don't need this study to show you that, you just need your highly genetically evolved brain.
There is really nothing particularly amazing about evolutionary or genetic algorithms. They just try a bunch of stuff until they find something that works. In general, they are terribly inefficient algorithms.
The only reason evolution has been able to come up with amazing results like human life is the immense computing capability of the natural world. One gram of hydrogen has 6.02 x 10^23 atoms. Even if you could represent each of those atoms with one bit of information, we are nowhere near being able to track all of those atoms on a computer. Even a Terabyte of memory is less than 10^13 bits. This doesn't even begin to consider the 36 x 10^46 pairwise forces between the atoms. The computing power of the earth is immensely more than anything that we will ever attain in von neumann style computers.
When you start to consider the astronomical number of chemical reactions that occur continously on the earth, it makes sense that even a dumb algorithm like evolution could come up with some pretty amazing stuff. Add to this the multitude of other planets in the universe and intelligent life almost seems inevitable. Assume the universe is infinite, and intelligent life _is_ inevitable (every configuration of matter occurs with probability 1).