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.
The code of the JSGenetic library is on GitHub, and the live example of the code is on my github page at this address.
It’s been a long time since I decided to try to use genetic algorithms for optimizing a web page style, and here’s my first try. The idea is simple: generating some random styles and then making the user choose which one he prefer. Then using the genetic rules to combine the chosen CSS with the other’s. Actually with a ‘population’ of only six elements it doesn’t have a real genetic value, but the principle is the same.
The problem with this kind of implementation is that you need a human to select the best styles generated, and this prevents from having large population and selection. However, a possibility could be to implement this server side, taking advantage of the selection made by multiple users.
Here’s the link.
My experiments with genetic programming are going on. I’m trying to focus on something more useful, so I’ve made a little page which uses gp to search the shortest path to connect a number of points, randomly generated, or specified by the user.
It is possible to modify the parameters of the genetic algorithm, editing the JSON object in the textarea.
The page is here.
I started reading something about genetic programming, and i must say it’s really interesting. I decided to try to implement a genetic algorithm just to go deeper and better understand how it works, so i developed a little gp evolving enviroment.
Everything in that page is really messed up, and it doesn’t completely work for now: anyway, if you want to give it a try, it’s here.