Evolution, Genetic Algorithms, and AI

I talked a lot about evolution before; I find it fascinating. There are many lessons to be drawn from the study of evolution as an epiphenomenon (i.e. I don’t want to study its effects; I want to study its emergence). Here is one interesting angle.

Photosynthesis is one of the most interesting forms of harnessing the energy of the Sun. There are good reasons why having such an efficient mechanism is beneficial to organisms (curiously, the animal kingdom has foregone this mechanism as it’s mostly only applicable to stationary organisms, or organisms with certain energy needs (or something else; I admit that I simply don’t know enough biology to be able to answer that)) — the organism that has evolved an ability to gather the energy from the sun is much less dependent on volatile scarce resources and instead can use what is essentially an infinite source of energy.

Similarly, fireflies have evolved the ability to emit light. The mechanism that makes it possible is a very efficient way of emitting light (if you ever touched one in flight I’m sure you were shocked at how unwarm it was).

It seems that evolution happens to come up with some pretty interesting solutions to problems. So why not use evolution to solve our problems for us, i.e. create artificial conditions where survival necessitates a development of a specific mechanism. For example, if we wanted Nature to help us come up with walls that withstand bomb blasts, we would create extremely harsh conditions that simulate bomb blasts (for example, create a chamber featuring extremely strong winds and extremely frequent earthquake-like conditions) and see what evolution does for us while trying to maximize the changes of survival of organisms that have the unfortunate luck of living in such a chamber.

If you studied computer science, you will no doubt tell me that we already do something like that — genetic algorithms are essentially a way to come up with solutions to problems by letting the strongest algorithms survive. This is true, but one crucial difference is that natural evolution has at its disposal two things that genetic algorithms don’t — the complexity of organisms already in existence, and the complexity of laws of physics. In other words, the reason evolution comes up with very impressive results is that it’s essentially an incredibly powerful computational system that operates on extremely complex systems (both the organisms and the conditions). Evolution comes up with designs only as strong as the conditions it operates under, or, in other words, the information content of the designs that are a result of evolution is significantly smaller than the information content of the models that evolution operates on. In the case of genetic algorithms, such models are usually fairly simple and in general, it’s not particularly useful to spend a lot of effort constructing an elaborate world for genetic algorithms to roam in–usually computer scientists use their own intelligence and solve the problem with pen and paper.

For example, it turns out that photosynthesis is probably not possible without quantum effects (this is by itself quite a breathtaking thing, if it’s true). If I wanted to simulate a world in which the “algorithm” of photosynthesis would appear through evolution, I would have to ensure that the world my algorithms live in is as complex as our current knowledge of physics (and even that might not be enough!), as well as ensure that the “organisms” are complex enough so as to take advantage of photosynthesis.

This indirectly points to my belief that we are far away from any semblance of actual artificial intelligence (like one featured in countless movies). Intelligence evolved in organisms which were incredibly complex, in a world that was just as complex. It’s likely (though not certain — after all, evolution is not the most efficient problem-solver) that intelligence has a very large information content.

So we probably can’t emulate evolution effectively. But we can still take advantage of it, since many of mankind’s inventions are influenced by what we have observed in the natural world. One big problem to running any kind of experiments like this is that evolution is painfully slow: it takes thousands of generations to see any meaningful change. I think we can get around this in three ways:

  • Making it desirable in our constructed universe to a generation to be short-lived — that way mutations will happen more frequently
  • Parallelizing the problem by crossing populations or taking advantage of horizontal evolution — that way it will take fewer generations in the critical path of change that generates our desired outcome
  • (This one I’m less bullish on) Increasing the probability of mutations, through the introduction of radioactivity — that way mutations will happen faster, so the critical path of change will involve fewer generations

In the extreme, we are limited by the speed of cell division (because that’s when mutations happen) which becomes the clock speed of our genetic computers.