leshchenko1979 / fishbowl

Simulating evolution of fish intelligence in a fishbowl using genetic algorithms
0 stars 0 forks source link

Running multiple fish through a single NN probably creates a mess with recurring links #20

Closed leshchenko1979 closed 4 years ago

leshchenko1979 commented 4 years ago

Investigate and, if confirmed, insert an additional network into neat.population when splitting the fish

leshchenko1979 commented 4 years ago

Confirmed - two brains are using the same context, which messes up the recurring parts of the network, which are in turn much needed in vision processing.

Need to clone the brain of the splitting fish with network.clone() and add it to neat.population with neat.resize().

leshchenko1979 commented 4 years ago

To dos:

leshchenko1979 commented 4 years ago

Alternatively we can switch to another paradigm altogether:

  1. The fitness function is how long a certain fish has survived.
  2. One of the fish (or both of them) mutates on split.
  3. When the simulation time elapses for a generation, surviving fish are evaluated on their lifetime.
  4. When the simulation ends because all of the fish have died out, the score is proportional on the recorded lifetime of the corresponding fish.