At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Articles » Artificial Life » Beginner

How To Get Started with Artificial Life

Artificial Life is another incredibly interesting and broad field of Artificial Intelligence (some will hold its a separate field entirely). Artificial Life (ALife) basically looks at studying life and its properties on a computer - by either creating digital life within the computer, simulating life or a combination of the two. ALife can be especially exciting for people interested in other fields such as chaos theory since many issues cross between the two fields. This essay will briefly look at some features of ALife as well as a few of its principles.

Conway's Life and Cellular Automata

Cellular Automata (CA) is a field of ALife that looks at simple 1D or 2D units that operate under very simple rules. The most famous CA is Conway's Life. Life is a 2D CA whose world is governed by three simple rules:
  • A cell cannot live with more than 3 cells immediately adjacent to it.
  • A cell cannot live with less than 2 cells immediately adjacent to it.
  • If the number of cells around an empty space is 3, then a new cell is born.
With such simple rules you would expect that simple behaviour would arise. Actually, incredibly complex behaviour arises - from moving gliders (pictured above) to large groups of moving "spaceships", factories and a plethora of other classified Life groups. In fact, it has been proven that Life can be configured to be a universal Turing Machine! This basically means that Life can perform any operation a modern computer could (albeit it pretty slowly).

Cellular Automata are actually useful and not just pretty to look at. CAs are used to study the phenomenological aspects of evolution, communications, growth and even vehicle traffic! They are an excellent means of abstracting a scenario and applying simple rules to see what properties emerge (emergence is a very important concept with ALife).

Another good aspect of CAs are that they can be explored from a hobbyist perspective, enjoying their aesthetic and emergent qualities, or from an academic perspective, looking at the (extensive) mathematical theory behind them and their applications in real-world situations. Readers interested in CAs should look at Generation5's very simple CA Creator and the excellent MCell.

Simulation and Virtual Worlds

Cellular Automata represent small worlds with very simple rules. ALife often looks at worlds much more complicated, spanning multiple life forms, different sexes, regions, interactions and more. One of the most famous examples of an ALife world is TIERRA created by Thomas Ray. There are numerous versions of TIERRA for various platforms, so I'll let you explore them over on the TIERRA homepage.

Another example (a much simpler one) is Shinka, an experimental program that was designed to simulate a simple microprocessor and a random set of instructions (simulated RAM). When the RAM is run, it is actually overtaken by self-replicating code! This was something completely unexpected and is a good example of the emergence that is demonstrated in a lot of ALife simulations.

Simulation also has many, many uses. The most useful (or at least, most widely used) is flocking. Flocking simulates a flock of birds (although it can be altered to simulate a lot of other animals). Flocking is widely used today in computer graphics and gaming. Examples include the bats in Batman, the wildebeest herd in The Lion King, the scarab beetles in the Mummy series and Tomb Raider 4. Flocking is attributed to Craig Reynolds (see the Generation5 interview) and is computationally very simple. Each "bird" follows three rules: separation (don't get too close to others), alignment (steer towards the average heading) and cohesion (steer towards the average position). Again, these simple rules yield incredibly realistic behaviour.

ALife simulation has become the rage in computer games too. When Creature Labs (formerly Cyberlife) released "Creatures" it was a hit. Creatures involved raising little "Norms", incredibly detailed simulated creatures. Norms had digestive and nervous systems, emotions, senses, learning abilities and many more very impressive features. "Creatures" has now expanded into many forms, including the very interesting (and free) "Creatures Docking Station" which takes Creatures to the Internet! For more information, see the Generation5 interviews with Steve Grand, the brains behind "Creatures" (1 | 2).

The field of simulation and virtual worlds is simply too broad to look at here. The best way to broaden your outlook on this aspect of ALife is to read one or two books on the subject. Virtual Organisms is an excellent introduction to the field, whereas Darwin Among the Machines is a slightly more broader, philosophical perspective - looking at the convergence of man, machine and nature.

Genetic Algorithms and Evolutionary Computing

Genetic algorithms are sometimes bundled underneath the title of "Artificial Life", although they are a broad field in their own right. Genetic algorithms (GA) are a subset of evolutionary computing - the study of applying evolutionary techniques to computing algorithms. GAs are the best known example of evolutionary computing although genetic programming is becoming more and more recognized.

The theory behind a GA is relatively simple - basically, a problem is coded in such a way that it can be represented as a vector (list of bits, characters, strings etc.). A random population of these vectors is generated. Darwin's "Survival of the Fittest" principle is then applied - each is run through a fitness function, something that tests just how fit a given vector is. Each vector is assigned a fitness value, then mated with other "fit" vectors. This is repeated many times until a suitable solution is found.

There are literally hundreds of permutations of GAs; varying fitness functions, mating algorithms, mutations, optimizations and the like. See the Generation5 essays or book reviews for more details.

Genetic programming is similar in that it uses evolutionary techniques, but this time they are applied to programs. The programs are normally represented by expression trees. The expression trees are bred in an attempt to provide working solutions to a (normally) large amount of data where classical mathematical techniques cannot be used.

Conclusion

Artificial Life is a great field for people just getting interested in AI since it can be visually interesting, interactive and fun to read about. Also it is academic, applicable and very research-orientated. With ALife being used in many different fields like computer graphics, special effects, simulations and computer games ALife is a worthy field of study. For more information see the Generation5 essays, book reviews and interviews as well as the links below.

Submitted: 25/01/2002

Article content copyright © James Matthews, 2002.
 Article Toolbar
Print
BibTeX entry

See Also
- Artificial Life Online 2.0
- MCell
- Creature Labs
- Cyberlife Research
- Steering Behaviours for Autonomous Characters

Search

Latest News
- Generation5 10-year Anniversary (03/09/2008)
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)

What's New?
- Back-propagation using the Generation5 JDK (07/04/2008)
- Hough Transforms (02/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (11/12/2007)
- Modelling Bacterium using the JDK (19/03/2007)
- Modelling Bacterium using the JDK (19/03/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -