Welcome to FishTank's Page

Click to play video
Click to load video from YouTube

Learn to swim and eat with Neuronal Networks

Our tank contains a set of fishes having a funnel-shaped area of perception. To survive they need to find and consume food. Their fitness describes the time span of survival. Fishes learn to survive based on fitness and NeuroEvoluting Augmenting Topologies (NEAT) algorithm.

Neuronal-Inputs: A small funnel-shaped area around the fish, separated into small tiles. Every tile is a input neuron. If food is perceived within a tile the corresponding input fires.
Neuronal-Output: 4 Neurons for acceleration, deceleration, upwards and downwards.

Behavior is learned by NEAT

Every fish starts with input neurons and output neurons only. No neurons are connected. The simulation starts with the first generation of fishes. No fish moves and all fishes die by starvation :-/

Then... Fishes mutate their behavior by randomly adding connections and new neurons between input and output neurons. These fishes are the next generation. During next round of simulation some fishes start to behave in some random way. Swimming around, avoiding food or eating it. The round ends when all fishes died by starvation. Providing a fitness value (time of survival) for every single fish.

Evolution... The fishes having the right behavior leading to a longer time of survival (higher fitness) are selected, their behaviors are merged and randomly mutated and transferred into the next generation of fishes. The less successful fishes are sorted out.

Preserving good behavior and sorting out bad one leads to a better adjustment to a given task. The video shows the end of our simulation after some generations. While all fishes died this little friend learned how to survive.

He lived for 4 days until the cleaning lady pulled the plug for her vacuum cleaner...

Links

Youtube Video: https://www.youtube.com/watch?v=rSSO_gpAJUs
Git Repository: https://github.com/RobinSunCruiser/aquamarin
JAR Download: aquamarin.jar

Contact

For questions or feedback, please use the contact form on the main website.