Artificial Life (A-Life) is a branch, or rather, an application of AI. In other words, Artificial Intelligence tries to bestow intelligent properties artificially, and A-Life tries to use these algorithms in life simulations.

A-Life can be organic and non-organic. Without being too specific, A-Life as a subject covers anything from synthetic life created digitally to simulations of life like behavior that has been witnessed in the real world.

Strong A-Lifers support the theory that beings can be created artificially that are embodiments of life – in other words, they are not merely appearing to be alive, they actually are. The counterpoint is weak A-Life whose proponents suggest that we can only simulate the appearance of life, and that the result is not truly alive.

One way that we can try to achieve this simulation is by copying the genetic processing of living organisms, and in the computer world, this area of study is called genetic algorithms.

Genetic Algorithms

Genetic Algorithms (GA) is a field that concerns itself with allowing the steps taken to achieve the solution to a problem to be rearranged by genetic recombination. In other words, we take a population of possible solutions, apply each one, and then measure their success rate. We then take the most successful ones, and recombine them to produce a new population that should, by Darwinian reasoning, be a little bit more successful, globally, than the preceding population.

Initial populations are likely to be largely composed of fairly random behaviors, not necessarily conducive to correct behavior. The programmer can limit the possibility of complete algorithms being gibberish by pre-seeding the population with known solutions.

The scripting language used to create the algorithm representation can also be created with a view to limiting the possibility of solutions being proposed which simply do not work, or violate the rules of the situation in which they are being applied.

Genetic Algorithms and A-Life: A Short Introduction to GA and GP in the Context of Artificial Life
Genetic Algorithms and A-Life: A Short Introduction to GA and GP in the Context of Artificial Life

Genetic Programming

Genetic Programming (GP) is a branch of GA, concerned with finding the best combination of parameters that can be applied to a solution in order to achieve the best result. Hence, we perform similar steps as GA to generate progressive populations, but in each case we are running the same solution algorithm but changing the data each time.

Subsequently, we reduce the possibility of completely inadequate populations creeping into the gene pool, but reduce the flexibility to adapt to different situations.

Combination and Mutation

Both GA and GP rely on the ability to combine and mutate. If we assume that a population consists of children, each having 2 parents, then we can take the representation of the genetic material of each and combine it in different ways.

Depending on the representation permitted by the scripting language and/or data, we can split each genetic string into pieces, and recombine those pieces to create new genetic strings. For example, we can take 4 halves and swap the head or tail portions to create combination offspring, or we can split the 2 strings into 4 pieces each, and cross 2 pieces over. Mutations can also be introduced in which the genetic strings are tweaked by adding randomly generated data to the genetic string. This can produce a more rapid evolution, so long as appropriate measures are taken to avoid unwanted side effects, as noted above.