Code center > Suggestions
Genetic Distance
EricL:
Every bot has a guarenteed unique ID (guarenteed unique in a single sim. Not necessarily guarenteed uinique in teleporter connected multi-sims like internet mode. Not yet that is. I'll work on it.).
For every extant bot I now maintain an orderred ancestor list of unique IDs for the last 100 ancestors and the number of mutations each ancestor had at the time it spawned the next descendent in the line leading to the extant bot.
I have implemented some routines internally that can find the most recent common ancestor of any two extant bots and determine the gentic distance between them. (Well, okay. Not actually genetic distance per se. I'm not actually comparing the genomes and determining how they differ. Rather, by distance here I mean the number of mutations that seperate them on both lines of descent. I walk up one side of the phylogeny and down the other and add up number of mutations at each generation. I have no way to know if those mutations impacted expression or not, were in coding regions or not, were large or small, etc.) Also, viruses complicate things as does non-asexual reproduction, but lets put those aside for a momnet.
I'm soliciting suggestions as to what to do with this information now that I have it. What do people want to know or what features do people want to see that leverages this?
Fair warning, some things may be computationally expensive. I had thought of a graph that showed for each species the maximum genetic distance within the species. This number climbing from a mean might indicate a speciation event. But this graph would involve m(n^2) genetic distance compares (I think) where m is the number of speceis and n is the number of individuals/species for every data point. I'm working on ideas to short cut this, but stiil, yuck.
Another thing I'm working towards is automatic species forking based on genetic distance. If someone wants to do some deep thinking about when and how to effeciently recognize actual speciation, that would be helpful.
Other ideas are also welcome. Things that operate from a single bot will be much more effecient than species wide graphs. e.g. a graph that charts the average genetic distance to the oldest bot of a species is way way more effeceint than the one I mention above.
And yes, I have plans to dump this to a CSV file for massaging in Excel, etc.
Numsgil:
A graph tree would be great. You wouldn't need to update it other than when the user requests it. At the top of the tree (bottom?) is the most recent common ancestor for the species. As you travel up, you move forward in time and the tree branches to show new, well, branches in the evolutionary tree.
If you recorded the lineages of dead bots too (not sure how practical this is, though) you could demonstrate evolutionary dead ends. But I won't hold my breath for this part.
The thickness of a branch of the tree would represent the number of individuals who trace their ancestry through that branch. Or the amount of energy gathered by individuals who trace their ancestry, preferably, but this information probably isn't available.
This would allow an easy to interpret graphical representation of the evolution of your bots.
EricL:
--- Quote from: Numsgil ---A graph tree would be great....
--- End quote ---
Ooh Ooh, I like that very much. Probably post 2.44, but probably the first thing I work on in January.
shvarz:
Of course the most obvious thing is to automate the tracking of speciation. I don't think your genetic distance is much help, however, because you don't know whether these mutations are just drift or were selected for. And without sexual reproduction genetic distance does not matter for defining species. The mutation counter already tracks accumulation of mutations. I think that just from the practical point of view we just need to know if there are distinct groups of bots co-existing in a sim. Also for vanity reasons I'd like to see if a bot that evolved in my sim spreads through other sims
So, I think the easiest thing to do is just create new species when bots don't have a common ancestor for N generations. We can start with 100 and see how it goes. I'm sure this will result in speciation, simply because sims run at different speeds.
Peter:
You mean something like this, screenshots of DB2.1 and at the bottom you see some text about a database file generated by DarwinBots and you see a graph made in excel, has DB made in earlier versions a database file?
To me it seems now a little like we're reinventing the wheel, so where is the database?
Navigation
[0] Message Index
[#] Next page
Go to full version