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 |