I’ve created a little Genetic Algorithm library called JSGenetic, which takes care of the population management of a genetic algorithm.
As a test for this library, I’ve re-implemented an old project, the Genetic Environment, which is basically a simulation of an environment made by resources (water and food) which spontaneously grows or rains on the field, and by “animals”, which have a genetic code that specifies their behavior given what they see of the environment: they can actually “see” only north, south, east and west. The animals also have a little memory of 4 bits, and can understand if they are running out of water or food.
The genetic code of the animals is initially set to random, and is progressively processed by the genetic library which selects the individuals which survive more time.
After some generations, it’s clear that the individuals live longer because of the selection made on their genetic code, which defines how they behave.