This program, developped with a student from the french enginer school ENST is a simple demonstration of basic neural network and genetic algorithm techniques.
Creatues are evolving in a 2D virtual world. Each one has 5 different captors (food detection over 3*60 degres, food available for eating, and current life status (hit point)), and 4 effectors ( move forward, rotate left and right, eat). Food randomly appear on the ground. Each creature loose life over time, and regain life by eating.
When all the creatures are "dead", a genetic algorithm is applied to the best 20% of the population to create new creatures.
The neural network used to connect captors and effectors is a MLP (multi-layer perceptron) with one hidden layer. The 3 layers have respectively 5, 5 and 4 neurons. The genes are the neural network weights of each layer.
The genetic algorithm selects randomly each gene from one of the parents, and randomly apply mutations and crossing-over.
s: save current state (in file dump.schmorbs)
l: load saved state
o: add more food
p: remove food
a: stop dislay, makes the simulation run a lot faster.
b: resume display
mouse: click and drag mouse to move the camera
|schmorb.exe||binary executable||142.79 kilobytes|
|glut32.dll||OpenGL utility DLL (required if you don't already have it)||151 kilobytes|