Evolutionary Programming can broadly be divided into two categories, Genetic Algorithms, and Artificial Life. GAs are algorithms that rely on a model of evolution in order to compute something, while Artificial Life aims to simulate life itself.
This repository is primarily intended to provide a resource for myself while I am taking CSC-295, Evolutionary Programming, at Grinnell College. It provides simple examples of a Genetic Algorithm and an ALife example with Unity/C#. Both of these methods would be appropriate to implement for general video game life simulations or computations.
One Genetic Algorithm is shown here. This algorithm aims to solve the "problem" of turning a random binary string into a string of all 1's. It does this by creating a simple fitness function F = Sum(Genome)
. Asexual reproduction is used, which has the drawback of making large genome length computations particularly slow.
Two ALife examples are shown here, Asexual and Sexual methods are given.