7
« on: May 13, 2013, 01:26:58 PM »
Okay, I'd really like your feedback, but I will issue the disclaimer that I'm using this post more as a brain-dump/note-taking device than anything else. And I might be repeating other people's ideas here -- I certainly haven't read through all the posts on this issue.
I was thinking of nifty ways to classify species in DB, as part of graphing and record-keeping efforts but also to facilitate the possibility of sexual reproduction.
Here are some criteria that occur to me:
1. In order for two organisms to be of the same species, their DNA needs to be relatively similar in length. Off the top of my head, plus or minus 10% of their total DNA seems like a nice starting point for an arbitrary limit.
2. To create a rough taxonomy of sorts, we could compare their genes, and note which are roughly similar. (Which have ~90% of their commands in common, or have identical strings of commands that are long enough to be a significant sign of species similarity?)
OR
if we wanted to allow for mating between members of a species even if one is carrying a lot of junk DNA, has experienced a significant mutation, etc. we could only look for similar code surrounding certain commands, such as feeding or repro commands. That would allow for creatures that reproduce in similar ways to meet each other, while also allowing for significant differences in DNA composition elsewhere, which would be cool for allowing things like sexual differentiation, etc.
-----
Also, by writing this down, I realize, the more I think about these issues, the more questions I have. As a general design principle, to what extent do we want the features of real-life biology to be supported directly by the framework of the genes, and to what extent do we want the features of real-life biology to arise out of the genetic code?
An example (one of many) would be ... age-related growth stages. We could continue with the current, rather minimalist approach, where a creature would only ever change its behavior according the time it had been alive if it happened to have a code segment hidden behind an if age > X condition.
Or we could have one parameter of all organisms' DNA be an array of the organism's current genes, each gene paired with a variable that helps decide when they turn on. It's an artificial way of achieving age-related growth/behavior changes, but by providing a structure for such age-related behavior, you're allowing for more complex, more interesting bot behavior right off the bat.
---
Another example would be having a low food, medium food, high status variable (one that switches at various levels of bot energy -- these levels being subject to mutation) as a built-in part of every organism and it's genetic code.
The genetic code might be regulated so that each gene can have a low food, medium food, or high food tag -- or no tag at all -- at the beginning of the gene. The tag is a signal to the interpreting engine that this code should only be run when the appropriate status is in effect. And the mutation engine is smart, allowing mutations to modify these tags, remove them, or place them in the right position.
---
I know these methods (or similar ones -- these are just examples) might seem like artificial attempts to impose order on something that we think of as random and chaotic, but the facts might be different. There's a lot of evidence (from what I've read) that suggests, for example, that our genes can be turned on and off by environmental factors, by our behaviors, by our age, etc.
It would also be interesting to research whether different parts of our genetic code are subject to higher or lower rates of mutation depending on factors such as how often they are read, etc.
---
Also, here's a kid's video on youtube about biology that actually is pretty interesting. If you watch the last part about an experiment done with a fruit fly and a mouse's genetic code for producing an eye, you'll get an idea of another subject I'm curious about.
If we want to simulate an environment that supports organisms with great complexity and, well, interesting behavior, might it not be a good strategy to pre-structure the genetic code in such a way that all organisms, for example, are asked -- essentially -- "How do you make eyes?" An organism's "eye code" section could be blank, extravagant, or anything in between, but we gear the code's mutation engine so that eye-related commands appear exclusively in this section.
We could also have every organism posses a built-in section of code for building a body, and a special subset of commands that are only available in this section of code, these commands telling how to build a body. Another section of code might be all movement-related, etc.
I know this is a lot different than what DB does now, in some ways, but I'm just thinking that if we want to simulate more complex organisms, we have to provide some built-in avenues for structured behavior to arise. Anyway, please don't take my suggestions as criticisms.. I'm just curious what other people think.
That's my brain dump.