schmorb

nameschmorb
languagec++
OSwindows
availabilitybinary
statusstable
licence?
categoryIA

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.exebinary executable142.79 kilobytes
glut32.dll OpenGL utility DLL (required if you don't already have it)151 kilobytes

Screenshots

Sample run
Sample run
Sample run
Sample run

contact:
Valid HTML 4.01! Valid CSS!