Because the universe is beautiful enough without having to lie about it

Natural Computation

July 17th, 2008 Posted in Education, Natural Computation

It always annoys me when people who don’t understand evolution talk about how it’s just plain chance, and the probability of random mutations causing co-ordinated adaptive biological processes is infinitely small.  Many people will recall Fred Hoyle‘s sadly misguided comment about how evolution is like a tornado passing through a junkyard and creating a Boeing 747. That last one makes me particularly sad as Hoyle, an otherwise great scientist who founded the department where I studied for my PhD, seemed unable or unwilling to understand the process of evolution and made many ridiculous comments over his life that greatly subtracted from his research legacy.

However, those who understand evolution understand the core fact that not only is evolution not a random process, but it is precisely the opposite – natural selection is a highly methodical and nonrandom process which works to push populations of individuals towards increasing fitness within their ecological niches.  A great way to demonstrate this fundamental fact is to simulate evolutionary processes in a computer which is, by amazing coincidence, exactly what I spent almost four years studying during my time as a postdoctoral researcher in Birmingham University, UK.

Evolutionary computation is a vast and rapidly expanding field of research, which uses the power of natural selection in nature, and applies it to problems within the realm of computer science. Often these are problems with hugely complicated search spaces that would just be way too large to exhaustively explore.  Evolutionary computation works just like natural evolution and generates a population of potential solutions which are evaluated, selected based on a measure of an individual’s ability to solve the problem at hand, ‘mutated’ and ‘interbred’ with each other. Gradually, over the generations, solutions become better adapted to the problem and, given sufficient time, will solve the problem to any arbitrary accuracy, provided the type of solution used is actually capable of solving the problem.

An example might be tuning parameters for some chemical process, which might have twenty variables, each of which could take, say, 100 different values.  How do you find the optimal values for those parameters? Well, the chance of getting the best answer by chance is 1:100^20, or 1 in 1 followed by forty zeroes.  But to evolutionary computation, that’s a doddle; I’ve solved problems with a search space that was well over 1 in 10^1000 (1 followed by 1000 zeroes) in the past, and that would be nowhere near the limits. Most of the difficulty of this method is concerned with how many clues you get that you’re moving in the right direction – if it’s impossible to tell accurately whether or not any individual is better than any other, then that’s going to be a very difficult problem to solve.  If, however (as is the case in the natural world), it’s fairly easy to see which individual is stronger, then the progress proceeds very reliably. Which is just as well, because that’s how evolution works.

Please ask me for more details, folks – I could talk about this my whole life.  I might even post the response I got when I wrote off to the Institute for Creation Research about how they explain the evils of evolutionary computation. 🙂

Be Sociable, Share!
  1. 2 Responses to “Natural Computation”

  2. By Automatthias on Aug 17, 2008

    I once had a course of genetic algorithms at my university. On one of the first classes, the said something like: ‘Presented principles are the same with the ones governing biological organisms. Some of those principles have be shown to be false, by the way. Now, let us move to…’

    I never quite understood, what he meant.

  3. By Colin on Aug 17, 2008

    An interesting comment. I wonder what he meant.

    Well it could beone of two things… Genetic-type algorithms aren’t an exact copy of natural processes. Apart from anything else, genetic algorithms almost always have a goal towards which the solutions try to move. They also have various other simplifications – most of the differences are because, with computers, you aren’t constrained to use only the techniques that a living organism could use.

    Another possibility is that yor professor didn’t like the theory of evolution, which is worrying…

Post a Comment

To protect against spammers, please enter the letters you see below

Please don’t bother posting "you’re wrong, you jerk" comments, unless you can back them up with valid scientific research papers.