SmartBots - Evolutionary Simulation

Generation: Time:
Advance generation Speed:

This generation

Alive agents:
Dead agents:
Total food eaten:
Average food eaten:
Best food eaten:



Selected agent

Fullness:
Food eaten:
Network:



Population progress

Amount of food collected by the best agent (red) and on average (white) over time

Overview

This is a simulation of a population of virtual agents (you could imagine them as living cells, animals, robots etc.), which compete for survival. Each agent must eat food to avoid starving, but there is a limited amount of food available at any time. After a certain amount of time has passed, the simulation will advance to the next generation, in which a new population of agents is created from the combination and mutation of the genetic code of the previous population. The better an agent performs (the more food it collects), the more likely it is to be selected for breeding. This simulates natural selection, and results in the agents of each successive population performing better than the last.

At the start of the simulation, most agents show no useful correlation between their senses (their current direction, and the direction to the closest food) and their movements, often resulting in spiral or sporadic paths. As time goes on the agents eventually evolve to track the closest food, actively moving towards it. The intricacies of these behaviours are completely different every time the simulation is run, as they evolve organically from the random initial conditions. For example, later populations tend to develop a predominant direction in which the agents move. This is because the population shares a lot of its genetic code, and because all agents moving in one direction seems to result in each agent coming across more food.

Tip: most significant population improvement usually has happened by about generation 50-75, which takes a few minutes to get to at maximum speed with drawing turned off.

Interface

Controls