| ||||||||||||||
| ||||||||||||||
|
||||||||||||||
How To Get Started with Artificial LifeArtificial 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 AutomataCellular 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:
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 WorldsCellular 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 ComputingGenetic 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.
ConclusionArtificial 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.
|
|
|||||||||||||
All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -