A genetic algorithm provides a simple way to search for an approximately optimal solution for an otherwise difficult and complex problem. By simulating the process of evolution, random mutation, breeding and selective pressure, a program can evolve a solution to a problem.
Seth Just wrote in with a simple and customizable genetic algorithm written in Perl. Given a problem set, you can define a function to randomly initialize each “individual”, a mutation function to alter an individual, a breeding function that combines individuals with the strongest members, and a fitness function that computes the strength of an individual. His code is well documented and you can adapt it for your own problems fairly easily.
Another cool example is this Flash vehicle simulator. A car with two wheels and two passengers is randomly constructed and its fitness is defined by how far it is able to drive without the passengers touching the ground. At first, most iterations don’t even get past go, but as the evolution proceeds, a more robust vehicle is formed which is capable of navigating the terrain.
He also points us to a couple...