schmorb
| name | schmorb |
| language | c++ |
| OS | windows |
| availability | binary |
| status | stable |
| licence | ? |
| category | IA |
Abstract
This program, developped with a student from the french enginer school ENST is a simple demonstration of basic neural network and genetic algorithm techniques.
Documentation
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.
Keys:
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
Download
| schmorb.exe | binary executable | 142.79 kilobytes |
| glut32.dll | OpenGL utility DLL (required if you don't already have it) | 151 kilobytes |


