A genetic algorithm is any type of software that uses variation and selection to produce an evolutionarily tuned output. That output may be a program, a value, or even a picture. The genetic algorithm needs a process for generating new variants and feedback, or fitness criteria, in order to determine which variants to discard and which to use.
For example, imagine a genetic algorithm designed to create images of fictional insects. The initial output is merely a hodgepodge of randomly connected lines. Based on feedback from human operators, images that look nothing like insects are eliminated, and future variations tend to look more and more insect-like. As the outputs become more finely tuned, they eventually begin to look something like insects.
The genetic algorithm is often mentioned in connection with Alife, or artificial life, which is the study of virtual organisms created in a computer. These virtual organisms usually live on a virtual grid, and sometimes even reproduce with each other and consume virtual nutrients. These Alife simulations are occasionally used to study real life forms, or to evolve behaviors shared with real life forms. By creating our own artificial evolutionary environments using genetic algorithms, we can view types of life that previously existed only in the imagination.
In one Alife simulation, "organisms" are merely lit-up pixels, which influence pixels around them based on whether adjacent pixels are lit up or not. Surprisingly, the interactions between these organisms can create complex high-level effects that no one could have predicted by looking at the low-level components.
Because genetic algorithms may explore large portions of the search space to a particular problem, they may yield solutions that human operators never would have thought up. The downside to these programs is that for problems with a very large search space, the number of possible solutions may be huge. Therefore, the system can be computationally intensive. By uniting the power of human thought with the brute search-and-test randomness of genetic algorithms, we can create unique new solutions to problems in biology, engineering, mathematics, and other fields.