Evolutionary Programming

Written By Torahteen

Here I am again. I think I did a bit better on my last article. I hope that you all agree (though you by no means have to). This time, I'm comin' at you with "Evolutionary Programming". Enjoy!

What is Evolutionary Programming?

Evolutionary Programming (EP) is programming meant to simulate and predict evolutionary solutions, using problems that are usually based on real-world situations. It is a simulation based on the way genes are maintained through the process of evolution. There are numerous ways that EP has been implemented, none of which can be considered absolutely correct (though some may be considered more correct than others). But they all come from the basic fact that those that are more adapted to thier environment thrive.

Applications of EP

EP can be used in many different applications in life. EP is used in the study of evolutionary science in Biology. By creating and using different algorithms, scientists can come up with more precise information of how and why creatures evolve the way they have, and attempt to predict the way they will evolve.

EP can also be used in many aspects of AI in gaming. Although not yet used, EP could be used to simulate civilizations in future games. Think about a game that allowed you to build your own civilation by helping it along, all the while it evolved from generation to generation? I don't know about you, but that seems like a pretty cool game to me (hmm... Maybe I should try that one out).

How does it work?

EP uses Genetic Algorithms to create a "survival of the fittest" situation. Every "being" has a certain number of "chromosomes" that determine its ability to survive in the current situation. These chromosomes are usually stored in a binary string (1011 1001 0001 1010). Every "generation", the chromosomes are combined to form a new generations chromosomes. New beings are given these chromosomes. Then, every beings chromosomes are analyzed and the being is given a fitness value. The fitness values are analyzed and a percentage of the beings are removed (those with the lowest fitness scores). The process is then repeated. Every few generations (a random decision), a mutation takes place, toggling one of the chromosomes. Depending on whether or not the new chromome increases the fitness value, the new chromosome will either thrive or perish.

Terminology
  • Being:  The objects that are being used to hold the chromosome values
  • Chromosome:  A bit value that defines an attribute (strong, smart, intuitive, etc.)
  • Generation:  A unit of time that spans one combination of chromosomes
  • Mutation:  The process of toggling a random chromosome bit value

Conclusion

There are many uses for EP. Although EP is a fairly new branch of AI, it does have some literature. I suggest searching for "Evolutionary Programming" on Google or the like and reading some of the articles you'll find. AI Depot has some nice articles on the subject, along with a lot of tutorials and articles on many other AI related fields.

That's it for this article. Somewhat short, but it gets to the point. To follow next month will be the start of a series on Implementing EP. Until next time!
   - Torahteen