Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Evolution

Create creatures and let them evolve to see how they master various tasks. · By Keiwan

Chromosomes

A topic by brunoschull created Jun 03, 2019 Views: 494 Replies: 1
Viewing posts 1 to 2

Hi.  I've been diving into the details of the simulator and neural networks, and I am trying to understand the mechanics of chromosomes.

My assumption is that the chromosome for one creature encodes all of the weights in the neural network at the end of the time interval for that creature.  These weights are ultimately what vary between creatures and are what must be passed down from generation to generation.

Is this correct? 

In the information section, the chromosome is described as a binary string of numbers, but I am having a hard time understanding how a binary string of numbers corresponds to the multiple weights in a network. 

Are the weights organized something like this?

w1, w2
w3, w4
w5, w6
w6, w8

I made a quick image to show one possible way that chromosomes and the two-point crossover might work. 

Is this an accurate representation?


OK, thank you very much, 

Bruno

Hi. I received some information about chromosomes, so I can try to answer my own questions. 

Chromosomes do  encode the weights in the neural network.  These weights are what vary between creatures, and are what is passed down from generation to generation.

The weights are numbers (1.3, 0.2, -0.8). 

To make a chromosome, these numbers are converted into a binary format (https://en.wikipedia.org/wiki/Single-precision_floating-point_format).   Then the binary representations are placed one after the other to form a long string that might look something like this

00111111101001100110011001100110 00111110010011001100110011001101 10111111010011001100110011001101 

During the reproduction step, the binary strings from each parent are cut at a specific point, and the corresponding parts from each parent are exchanged, creating two new offspring  using one part from each parent.

This is an example of one-point crossover, not two-point crossover, as I showed in the picture above.

OK, I hope that helps others understand how chromosomes work. 

Bruno