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.
I thought only god could do that?
I went to battle MC Escher but drew a blank
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
...their simulations show how a short-term backward step in survival strategies can generate innovative advances.
Sounds similar to what brought the great amount of development power to the Free Software movement. When people are stuck with something as uninnovative as Windows for so long, nature will eventually devise a workaround to the previous lack of competition to stimulate the industry.
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...
had a nice article about this recently (pp. 52-59 of the Feb 2003 issue). They showed evolutionary design examples primarily in the electronics field, and included an E.D. circuit that was an improvement over existing technology.
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
"Our work allowed us to see how the most complex functions are built up from simpler and simpler functions."
Um... wtf everyone knows this already... you don't need a computer 'simulation' to tell you this. It's been known for years that each complex function is made possible by the perfectly working, ultra-simple functions underneath. I'm not even into biology or anything either...
You're nothing; like me.
if intelligence is intelligence then why is artifical intelligence artificial intelligence? we are starting of in this field all wrong because its name implies a lower class of entity. when robots become sentient will we treat them as animals because we are used to thinking this way? will we be the masters of our own destuction? i dont know, why dont you brood over it a little while. anyway i dont care much for ai, i would rather humans become insanely intelligent.
I know you are psychotic, but please make an effort.
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.
Those interested in playing with Avida and seeing how evolution can be modeled using computation, thermodynamics, and information theory should get a copy of Cristoph Adami's book, Introduction to Artificial Life
I had the fortune to take Dr. Adami's class on the subject. It was an eye-opener to say the least. I think I remember more about statistical physics from his brief overview than I do from any other classes I took on the subject.
I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!
I've posted this link before on /., but I figure a story like this is going to stir up a great number of people that would both strongly agree and disagree. So, here it is.
Project Steve
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).
A lot of "engineers" work that way -- particularly "software engineers".
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
You are such a loser, can you not make any sort of rational arguement? Or must just fall back "you're going to hell"? Do you not have a brain? Who are you, mere mortal, mere worm, to pass judgement on anyone? You know the will of God, do you? You are a hate filled leper, passing your disease from one generation to the next, filling minds with fear, anger, and hate. YOU are the sinner.
between the greater and lesser infinities sleep the dreams undreamt
I realize the articles might be new, but the last code release was 9-29-2000. There is a message at the top of the page from Sept 2002 promising new code soon. This probably would have been even more impressive over 2.5 years ago.
They took my appendix out, now I can't frixnab anymore. YOU BASTARDS!
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
> their simulations show how a short-term backward
> step in survival strategies can generate
> innovative advances
Considering how human society is beginning to prevent evolution in our species, I'm looking forward to some innovations!
http://www.cafeshops.com/darwinman/
Of course this will probably increase the acceptance of Darwin's own ideas, some of which are here:
...We shall see that all these questions, as indeed as obvious in respect to most of them, must be answered in the affirmative, in the same manner as with the lower animals."
"It might also naturally be inquired whether man, like so many other animals, has given rise to varieties and sub-races, differing but slightly from each other, or to races differing so much that they must be classed as doubtful species..."
"At some future period, not very distant as measured by centuries, the civilized races of man will almost certainly exterminate, and replace, the savage races throughout the world. At the same time the anthropomorphous apes, as Professor Schaaffhausen as remarked, will no doubt be exterminated. The break between man and his nearest allies will then be wider, for it will intervene between man in a more civilized state, as we may hope, even that the Caucasian, and some ape as low as a baboon, instead of as now between the Negro or Australian and the gorilla." (Quoted from Decent of Man, Chapter Six: On the Affinities and Genealogy of Man, on the Birthplace and Antiquity of Man)
"...Do the races or species of men, whichever term may be applied, encroach on and replace one another, so that some finally become extinct?
Darwinism sounds like blatant racism to me...
#Secret Windows Source Code, in MS C% - if (uptime >= "24 hours") then bsod() else print "Windows License Violation!"
I've done work (including professional) with genetic algorithms. I wouldn't say I'm an expert, but I do have a number of books on the subject.
They really are very keen, GAs. Amazing to see work.
It's funny, because typically crossover (and inheritance) are the big operators, not mutation. But it is helpful to study each operator individually, even though they work best together.
--
Marc A. Lepage
Software Developer
This may come as a shock to readers who aren't trained in biological sciences, but we presume that nature does not "begin with the end in mind." Thus, a "genetic" algorithm only loosely follows genetics, because there is some assumption about "fitness" (i.e., a particular purpose for the alogorithm) that nature never makes about a biological system.
I'm not sure what the correct semantics might be -- "self modifying algorithm" or "self evaluating, self modifying algorithm" or whatever -- but "genetic" ain't it.
Note that in his later works (e.g., "Descent of Man"), Darwin floated the concept of sexual selection, aka "survival of the sexiest." Simply put, no matter how cool & useful your new mutation may be, if you don't breed, ultimately you die & your mutation vanishes. Applying this concept to fitness-testing a "genetic" algorithm might be pretty interesting...
I think that's the missing ingredient in "genetic" algorithms -- if the algo does what it (teleologically) is supposed to do it survives, whether or not it attracts a cute algo of the opposite gender & begets a litter of fuzzy logic.
"Obviously, I'm not an IBM computer any more than I'm an ashtray" (Bob Dylan)
First of all, selection (inheritance, reproduction) is one of the three operators of GAs. If you are not selected for reproduction, you do not reproduce.
Secondly, that answers your fitness question. In a GA, the fitness function is used to determine who reproduces. This is the same as in nature, where some complex fitness criterion determines who gets to reproduce and who does not. That fitness criterion is unknown, but that doesn't mean it doesn't exist.
--
Marc A. Lepage
Software Developer
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.
Speaking of this topic, my favorite anti-evolutionist thing is the 'analogy' of evolution to a tornado in a junkyard putting together a plane. What a piece of junk that argument is. I think you have to laugh about anti-evolution things, or you'll just get depressed about humanity.
When 72 Nobel Laureates say your 'science' isn't science, your boat is sinking.
Can someone who really dug into this explain what's new about this work?
I'm not saying that nothing is new --- just that all the links seem to point to stuff that's so vague, it could describe any work in Artificial Life. And the notion that the path to a global maximum leads through some steps down seems like no biggie, either --- it's well known that for any interesting search problem hill-climbing isn't enough.
So.... what's new? I'm sure there's something or these folks wouldn't have gotten an Nature paper.
The code IS published on their website, and if you are so confident in your conclusions why don't you analyze the code yourself and give us a full report of your findings.
The article's primary goal was to establish an example of how evolution can generate complex functionality that didn't exist before.
... "biologists have concluded that such features [for the eye] must have arisen through lots of intermediates and, moreover, that these intermediate structures may once have served different functions from what we see today."
... (drum roll please) programs that do the same math calculations a little bit faster. Note, they didn't end up doing different math calculations or anything other than the original functionality.
From the article
In other words a cell might have been part of the immune system but suddenly it was discovered to be usefull for vision. But then they devise a test where they start out with programs that already do a mathematical calculation then after a simulated millions of yr's of evolution they end up with
They started with human produced programs.
They only improved the speed of those programs they didn't produce any other type of output.
They didn't bother documenting how much they improved the calculation speed. Did it approach a limit where improvements stopped?
Having, in fact, read the code myself, and worked with it for three straight years, I can tell you that you are dead wrong.
These little programs do things we never, ever expected. And some things we don't even know how to control. They cheat! They take advantage of every element of the system that's possible in ways we sometimes don't even understand.
And they write their own code in ways no human ever could. I've had experiences where it takes upwards of an hour to understand a 20-instruction-long digital organism because the code is so twisted. Stuff no programmer could ever have written, not even the obfuscated code gurus.
Like any evolving organism, they'll do whatever it takes to get ahead.
I stole this sig from someone cleverer than me.
When do we get to see the "Proof" of evolution? Where are all of the missing links. There must be millions of them somewhere because we have the "results" all around us. It's this one minor glich that causes me to question evolutionists claims. I can't prove creation and you can't prove evolution.
Telecommuting! What about socialization?
Even a clear case of synchronically irreducible complexity, should one ever be found, is not sufficient to disprove evolution.
:-) Much later, the socket appeared at the top of the abdomen and the organisms were able to plug their heads into their abdomens! Then the old head-attachment mechanism was no longer needed, and gradually disappeared over many generations.
Consider the (silly) example of a creature whose head attaches to its body via a three-prong connector and socket, so that its head would literally fall off if either were not exactly the way it is. Assume the connector and socket to be irreducible.
One might claim that it is unlikely that this creature could have evolved because both the socket and the connector mutation would have had to appear simultaneously. But this is wrong: perhaps an earlier form of the organism had a different way to hold its head onto its body. Then the three prong connector appeared on the creature's neck due to a mutation, and proved beneficial because it allowed the creature to recharge from a wall socket.
It sounds dumb, but I think similar arguments have been used to argue that the anatomy of a whale couldn't have evolved naturally, ignoring the fact that many of a whale ancestor's parts served different functions when they lived on land.
My bicyles
Do you have an example of some of this code generated by an organism?
If I have nothing to hide, don't search me
The parts of working on this that have amazed me most are when the evolution doesn't go as I've planned. In particular, when writing Avida, the best debugging technique I have is to just run it, and then see how some of the evolved organisms work. If I made any mistakes, they will find a way to exploit my errors.
One key thing about Avida is that its not exactly a genetic algorithm. The digital organisms must self-replicate. No matter how skilled they are at performing any of the rewarded computations, if they can't also copy themselves their genetic material will not make it into the next generation. Some people may consider this a minor difference, but it causes certain side effects, such as an evolution toward being more robust to mutations (See this previous space.com article), and in general helps prevent the population from running into a complexity barrier.
Now, back to the organisms exploiting any mistakes I've made. The story that convices most biologists that these organisms can, in some sense be considered alive is this. I was working on a project where I didn't want any more beneficial mutations to be able to occur, so that I might be able to study more ecological effects. Since I'm using a computer system, I actually have the ability to fully analyze every mutation as it happens -- I can take the resulting organism, start up a new population, and run it for a while to see how it does. Now obviously this will slow down an experiment tremendously, but if I'm willing to take such a time hit, it will work. I can then take any mutation that would be beneficial, kill off those organisms (or even just revert that mutation). I implemented it and set it up to do.
What happened? Well, I watched the run as it was going (looking particularly at these test environments), and was surprized to see the fitness of the organisms appeared to be dropping. I couldn't understand it; just because there would be no mutations to improve their ability to survive, it still shouldn't drop. So I looked more carefull in the population itself, and there the fitness appeared to continue to rise. In enither case did I see the stasis that I expected.
Upon further investigation, it turned out that the organisms had evolved a way to distinguish between the test environments and the real one. I had made a slight difference on how I gave them the input numbers to the computations they needed to be able to perform, thinking it would really matter in the end. But from the organisms persepective they were able to use this -- if the inputs looked like those from a test environment, the organisms would purposfully not perform any tasks, while if they were from a real population they would do all of the rewarded tasks they could and continue to adapt to perform more.
It shocked me that they were able to figure this out so easily. A biologist friend of mine equated it to predator avoidance -- if they showed a particular behavior they would be killed for it, so they were careful how they did it. Kind of like if a squirral wasn't careful collecting nuts, a bird might swoop down and get it. Even being careful there is an occasional problem, but they can do quite well for themselves.
I went in and fixed it: I made both the real population and the test environment as random as possible, and started my runs up again.
Did this work? Of course not. What they started to do now was just play a probability game. They would ususally do all of their tasks, but sometimes they would do none of them. If an otherwise beneficial mutation happened to occur when they weren't doing tasks, it would slip through and get into the population, never to be checked again. This really slowed down the rate of evolution (most beneficial mutations were purged), but enough still slipped though.
I am actually at a loss on how to get rid of them all! Here I have this system that should make experimental evolution all the easier because I have "complete control" over it, when in truth life does always seem to find a way.
Charles Ofria
Creationism can explain everything. That makes it just as worthless as something that can explain nothing.
Litigious bastards
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
Where are all of the missing links.
By definition they are all missing. Every time we discover a "missing link" it's no longer missing, is it? And we've discovered tons of them.
The NON-missing links are all around us. We've found millions of fossils, and they are virtually all a "link" between some other pair of animals or fossils. The 7 Archaeopteryx fossils are a perfect link between reptiles and birds. Virtually every living thing is a "link" between some other pair of living things. Land mammals are a link between whales and fish.
There have been billions of years, with millions of species at any given time. There will always be "missing links" unless we could somehow see them all.
We have a few million fossils, but really really old fossils are rare. Some species leave tons of fossils and some some species leave almost none. So we have a picture with lots of "holes", but all the peices we have and all the pieces we find in the fully linked evolutionary picture.
We've got a trillion piece jigsaw puzzle and we have a few million pieces in place. It's enough to say it is a picture of a tree and we can describe the shape of various pieces of the tree.
Evolution is science because every time we find a new piece it can either be evidence supporting evolution or it can be evidence evolution is wrong. When we find a new piece and it fits in the picture and the tree becomes more clear. Evolution can be disproven if we find pieces that don't fit the tree picture. That is why it is science. Every new piece we find that does fit the picture is more proof.
There is tons of evidence for evolution. I guess you never studied evolution if you don't think there's tons of evidence. As if the biological, chemical, and fossil evidence weren't enough there's mathmatical analysis of the power of the evolutionary process and I've personally run evolutionary computer programs. Mutation is a bit of a red herring, it is the weakest process going on. It is the genetic recombination where the real power lies. Recombination is almost infinitely more powerful than mutation. I've seen it in action.
Even if you could prove life on earth isn't explained by evolution, evolution would still be a powerful and important discovery. It will start becoming more common in the computer field. Even if evolution didn't create humans, it is powerful enough to have done so.
Arguing against evolution is almost like arguing against the laws of gravity. They are both useful. They both explain all available evidence. Many smart people have worked really hard to prove each of them wrong and always failed. If you doubt evolution (or the laws of gravity) then you are perfectly free to look for evidence proving it wrong. If you manage to prove evolution (or the laws of gravity) are wrong then I promise you will become quite famous.
Creationism isn't science because no matter how many pieces of the picture we find and no matter what they look like they can never "disprove" creationism, and therefore new pieces are never support for creationism either. Someone can talk about creation-scients till they are blue in the face, it doesn't make it science.
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
"You can design, animate and breed a wide variety of plants. By using the "evolutionary arts" of variation and selection in the plant breeder, you can quickly and easily create whole families of unique plants for your 3D scenes."