Ask HN: Are there any very long term genetic programming experiments?
Given that biological evolution has taken billions of years to yield intelligent life, shouldn't computer scientists be carrying out very long term genetic programming experiments?
26 comments
[ 2.5 ms ] story [ 68.8 ms ] threadThis problem is sometimes described as putting colonists on a space ship and sending then off. They travel for generations but before arriving they are overtaken by another ship which started several generations later, but was much faster because technology back on Earth kept advancing.
Then there's the problem with convergence. Even on a scale as large and complicated as Earth creature often reach an adaptive maximum which tends to keep them the same until an external shock. Think sharks, or punctuated equilibrium.
In a computer the simulation will also quickly reach a maximum and there's only so large and complex a simulation can be before you're talking crazy money for the machines. Without crazy money the simulation could hardly be complex enough to keep evolving for ever.
Obviously we have game-of-life like algorithms which can generate new patterns for ever, but they are not under selective pressure.
There's no reason why this would have to be a problem. It should be possibly at any given iteration to take a snapshot of the population and transfer it over to new hardware. One could even consider experiments in which you periodically scaled the population up to utilize an order of magnitude more computing power (to increase diversity in a population that had converged to some local optimum) and then scaled it back down to some randomly selected subset once sufficient divergence had occurred.
Since computing resources can be purchased in small discrete units these days, this might even be a viable method to reduce overall search cost.
http://arxiv.org/abs/astro-ph/9912202 The Effects of Moore's Law and Slacking on Large Computations Authors: C Gottbrath, J Bailin, C Meakin, T Thompson, J.J. Charfman
We show that, in the context of Moore's Law, overall productivity can be increased for large enough computations by `slacking' or waiting for some period of time before purchasing a computer and beginning the calculation.
I think you are missing a critical point. Bio evolution operates with a level of detail unlike anything you would likely see with computer simulations.
It may still take a long time to run enough simulations to get comparable effects.
Assuming, of course, we have a powerful enough machine to do things quick enough.
Let's say biological evolution has been going for 4.5 Billion years, at an average of one mutation per second for all that time. A quick search says that a modern Core 2 Extreme can process about 50,000 MIPS. Let's say that each mutation takes 100 instructions on average (including set-up and tear-down, etc.), and that we have 5,000 MIPS available for this calculation process - then it would be possible to do all that calculation in about 9 seconds of CPU time.
Bottom line - even if my back-of-the-envelope calculation about is two or three orders of magnitude off - is that you don't need you run a long-term experiment to give genetic algorithms the same amount of run-time as nature had with us, you just need a few bucks of AWS credit.
Depends on the simulation, anything approaching an accurate simulation C A N N O T currently be simulated with the technology we have. Take for example the evolution of the brain. A human brain consists of 100 billion nerve cells. A supercomputer simulating an organ this complicated -- using current technology -- would take up the space of several soccer fields and draw $3 billion worth of electricity every year. http://www.spiegel.de/fotostrecke/fotostrecke-19430.html Similar orders of magnitude are applicable to the genome of a fruitfly or an amoeba. There is no satisfactory simulation of a cell ....
You can't simulate biological world-scale evolution right now. As you say, it's just too complex and operating at too large a scale. We somewhat know how, but the technology to actually do it isn't there yet.
Genetic programming, on the other hand, we can do. It's generally used as part of an optimization process, and is simple enough that we can simulate it quite well. To give those processes the amount of run-time that resulted in us (which is what I interpreted the author as talking about) would be trivial, as I showed. To create a virtual world, start it up with some amino acids and a jolt of lightning, and end up with us is way beyond our capability right now - and probably wouldn't end up with "us" anyways, owing to the randomness in there.
I remember downloading the source code sometime years ago; but if they ever published any results, I haven't seen it.