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...
Especially: Evolution, Ecology and Optimization of Digital Organisms and Zen and the Art of Creating Life
2)The Santa Fe Institute
3)Kevin Kelly's Out of Control: The New Biology of Machines, Social Systems and the Economic World
Its wonderful how these things can find odd and interesting solutions to problems in some cases and completely miss them in others.
One of the things that anyone learns who has tried this kind of method is that you can't hurry things to a result - that you often need to actively intervene to slow the evolutionary march, or even back it up (as in the article) or the system can easily get stuck exploring an area with a local optimimum extensively and miss a better one thats just a ways away.
Wonderfully fun stuff though and well worth investigating.
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.
having just successfully completed an undergraduate project in which i have used genetic algorithms to achieve full adaptive image compression, i have learnt rather a lot about these curious beasts that is seldom mentioned in modern text. the use of genetic algorithms in a computer does in no way prove or disprove any evloution/anti-evolution argument. these algorithms do not magically evolve new creatures, or new solutions. they just search the solution space in a highly parallel manner, and they surprise people because they come up with solutions they did not consider. the solution is there waiting in solution space - but you can't find it because your brain is not capapble, you don't spend enough time on it... whatever. this is not new, its not intelligent, its not the creation of a new species. think of genetic algorithms as exploiting adaptive characteristics, simple as that, i.e. skin colour changing due to intensity of sunlight. of course... there are fields of research that involve using one class of genetic algorithms to derive the schemata (structure) of another class, but the research has come up with nothing to date.
-Drew
It's alive, IT'S ALIVE!.....damn, it chewed up my paycheck.
Table-ized A.I.
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).
Oh wow, that's certain to offend any Christians in the audience...
It's based on Karl Sims work, which I saw presented about 10 years ago at SIGGRAPH. His page is at http://www.genarts.com/karl/
I tried implementing something in LISP then C based on Sims' work way back but got stuck; I'm glad evolvo has emerged so I can actually play with it.
For the record, I'm one of Dr. Adami's grad students in (The Digital Life Lab) at Caltech. Most of the programming is done at our sister lab in Michigan.
We recently released Avida version 2.0, with a new GUI and complete with god mode where you can inspect and edit the genome of any organism at any point.
We encourage you to play with Avida yourself. You can get information and a Mac OS X binary at:
Avida's Hompeage. Older versions for linux and windows are available there as well.
The intrepid can build the current version for OS X or Linux from source, please see Avida's Sourceforge Project. If you want the nice GUI, you'll need QT.
Other information about Avida, our lab's research, and artificial life in general can be found at:
The Digital Life Lab Homepage
Our sister lab at MSU, run by Professors Charles Ofria and Richard Lenski.
The Int'l Society For Artificial Life
I stole this sig from someone cleverer than me.
Actually, this is incorrect. We started with simple digital organisms that were only capable of self-replication, and put them in an environment where they would get more CPU time (basically have their priority increased) if they performed certain mathematical computations, in this case bitwise boolean logic operations.
The organisms were only given a nand instruction to work with, and combinations of nands (linked together carefully with proper juggling of data) could be used to create any of the others. The equals operation (returns 1 where bits in the two sequences are the same, 0 where they differ) seems to require at least 19 instructions to perform. Its important to note that we did not reward partials solutions -- they either got the correct answer of they didn't.
For those interested, we also have a lot of our data related to the paper on our servers, http://myxo.css.msu.edu/papers/nature2003
Charles Ofria (Second author of the paper, and primary author of the software)
A couple of years ago, Richard Formato (WW1RF) released Yagi Genetic Optimizer, the third edition of his software for using genetic algorithms for antenna design. This stuff does really work, and is useful. It's freeware, but for ms-dos, here