evolution of fish. each fish is a neural net.
The purpose of this application is to develop a "killer fish" - a fish that eats maximum pieces of food in a constant time period.
The world is populated by 20 fish and 40 pieces of food.
every time a generation begins. the food is scatted in a random distribution on a certain random location on the screen. (random piles of food).
When being eaten, the food shows up in a new random pile in the screen.
Every fish has a brain - Neural Net. It has 2 inputs:
the direction and velocity of the fish. (himself).
the relative location of the closest food.
and two outputs:
velocity of right wheel.
velocity of left wheel.
You can refer to the movement as a tank with two chains, and the output as the velocity of each chain.
the target is to find weights for the neural net that will give the fish a "killer-brain"...
When running the application you will see the generations go by. In each generation we select the best fish in generation and breed them to form new 20 fish.
the brains (Neural Nets) of the initial 20 fish are created randomly. This explains why they are so "stupid".
look how they improve as time goes by. their logic is being build by evolution, without interference.