C# Stuff
Delphi Stuff
Artificial Life
Genetic Algorithms
Classifier Systems

Artificial Life

What is artificial life (ALife for short)? Generally speaking, it's a closed environment in which a number of individuals make their living (not to be confused with a job in an IT consulting company).

Some ALife systems have 100% computer constructed environments and inhabitants. A virtual reality, if you like. Other systems have physical environments and mechanical inhabitants in the form of self-governing robots.

No matter the implementation of the system the concept is that the inhabitants are autonomous and self-governing. Nobody tells them what to do - they adapt their behaviour to the circumstances. The circumstances are the environment and (probably) their neighbours. If you've read my page on sandpile models, you'll see the similarities.

This is very like what happens in nature (and indeed all symbiotic systems): carnivores and herbivores live in a balance, adjusting their behaviour to each other and to the environment. It is a very short step to see the creatures of nature as problem solvers, solving the problems they face through simple evolution: either you adapt or you die.

What makes ALife interesting, in my opinion anyway, is that a very limited range of simple behaviours can create a seemingly "intelligent" system when you put all the inhabitants together. Consider an ant's nest: most people would agree that an ant is not particularly intelligent by itself. It acts on instinct and pheromones, collecting food, fighting, looking after the eggs, etc., filling out the roles as needed. However, by coordinating their behaviour ants form an entity that can seem almost intelligent when seen from above. You might say they combine into a very efficient problem solver. The ants can now achieve more complex tasks like building an ant's nest or forage the area for food.

The interesting thing is you can have a number of not very bright individuals (they may be entirely driven by stimulus-response), but they can combine into an adaptive system, that - although not intelligent - is certainly "smarter" than before. The individuals are just as dumb as they always were, but together they achieve a synergism that enables them to solve the relatively complex problems they face.

You can take this one step further: let the individuals represent suggestions to the solution of a problem. Select the individuals according to some measure of fitness and recombine them into new individuals (new solutions). This way you narrow in a solution by induction. This is what is called a genetic algorithm. It is a heuristic method, so you never know for sure you get the best solution, but it is a very effective way of examining a large number of possible solutions.

Updated 13 Nov 2015
Send e-mail