I am making a program to simulate evolution. In my program I have creatures whose properties are defined by an ordered set of 8 genes like this (each gene defines the probability of moving in one of the eight directions):
(3, 54, 2, 45, 2, 1, 1, 12) In the program, the creatures evolve by slight mutations in their genes over time. Each mutation changes the value of a randomly selected gene by $\pm 1$ or leaves it as it is.
Now I wanted to categorize the creatures into different species so I took the standard deviation of the genes of the first creature $\sigma_0$ (whose genes were randomly allocated). I defined relative deviation $\sigma_r$ of any creature by dividing its standard deviation $\sigma$ by $\sigma_0$ :
$\sigma_r = \frac{\sigma}{\sigma_0}$
Now I categorized the creatures based on their $\sigma_r$ value, for example if $\sigma_r$ lied between 0-1 then called all those creatures as of one type, or one 'species'.
This method works somewhat but it is not accurate, for example if two creatures have the following gene sets :
(1, 1, 3, 4, 15, 20, 21, 3) and (3, 21, 20, 15, 4, 3, 1, 1) then according to my method they will be put under the same category as they have exactly same $\sigma$ but in reality they will behave completely different.
So is their any way by which I can accurately categorize them ?