Code center > Suggestions
New DNA structure
shvarz:
First, not a new proposal, but rather a summary of what we talked about previously (I can't find the original topics).
1. No pre-defined order for cond, start and stop commands. I think Nums have done this already.
2. New conditions stack to allow #1 above to work. This is also done (?).
3. Allow non-coding tags. This could be used to keep the comments that are now removed when DNA is read from txt file into memory. The comments would also allow describing some sections of code as "non-mutable". May also allow program to label mutated commands.
I think almost everyone agrred that these changes above were useful.
Several big ideas that were floating around and (sort of) competing with each other:
a) Parallel flow of diploid DNA (average out conflicting commands)
B) Chromosomes (don't remember what this one was for, Nums was pushing it)
c) Non-deterministic execution of genes (picking only one/several genes to execute each cycle).
I think in the end most people agreed that some kind of non-deterministic gene execution should be implemented or allowed as an option.
Here's where my suggestion comes in. We join the three ideas above into one. We separate genes into "chromosomes" - groups of genes defined by DNA command, like chromo.
An organism can have as many chromosomes as it wishes with as many genes in each as it wishes. Chromosomes are executed non-deterministically.
If you want each gene to be executed non-deterministically, then just put one gene per chromosome.
I also have solutions on how this DNA structure would help sexual recombination to be more sensible and how recombination would work, but I'll hold of so as not to make this post too long.
Numsgil:
--- Quote ---First, not a new proposal, but rather a summary of what we talked about previously (I can't find the original topics).
1. No pre-defined order for cond, start and stop commands. I think Nums have done this already.
--- End quote ---
This is done, right. 2.4
--- Quote ---2. New conditions stack to allow #1 above to work. This is also done (?).
--- End quote ---
Yes, this too is done. I think I wrote something on the wiki to cover how it works...
--- Quote ---3. Allow non-coding tags. This could be used to keep the comments that are now removed when DNA is read from txt file into memory. The comments would also allow describing some sections of code as "non-mutable". May also allow program to label mutated commands.
--- End quote ---
Not done. Maybe later, not a huge priority at the moment. I know that's not really the main point of your post...
--- Quote ---Several big ideas that were floating around and (sort of) competing with each other:
a) Parallel flow of diploid DNA (average out conflicting commands)
B) Chromosomes (don't remember what this one was for, Nums was pushing it)
c) Non-deterministic execution of genes (picking only one/several genes to execute each cycle).
...
An organism can have as many chromosomes as it wishes with as many genes in each as it wishes. Chromosomes are executed non-deterministically.
If you want each gene to be executed non-deterministically, then just put one gene per chromosome.
--- End quote ---
I'm not sure you even need the non-deterministic chromosomes. Chromosomes are executed concurrently, so they all appear to execute simoltaneously. Adding a non-determinsitic nature to them is quite possible, but I don't see what it adds.
I may be missing the point on this one...
Basically chromosomes are logical units. Everything inside them executes linearly. All chromosomes execute at the same time, though.
Also, chromosomes are the logical units that allow for crossing-over events. That is, you don't cross over genes, you cross over segments of chromosome threads.
Chromosomes must be attached via a centromere (forget how we decided to implement this) to cross over.
shvarz:
--- Quote ---I'm not sure you even need the non-deterministic chromosomes. Chromosomes are executed concurrently, so they all appear to execute simoltaneously. Adding a non-determinsitic nature to them is quite possible, but I don't see what it adds.
I may be missing the point on this one...
--- End quote ---
I was thinking that if you execute them randomly, then there is no problem in trying to bring together conflicting commands. Like if one chromosome says go forward and another - go backward. Remember, we tried to come up with some rules on how resolve that, but no real solution came up.
Besides, this would allow both deterministic and non-deterministic scenarios to work: place all genes in a single chromosome - you got deterministic sim, place all of them in different chromosomes - completely ND. And you can have all sorts of in-between.
As for recombination, I think we decided not to use centromeres, but instead do a search for a small string of commands and switch there. Also, similar chromosomes could be identified by a string of commands at the beginning (thus the start of a chromosome would become a functional centromere). Say your chromosome starts with 5 5 5 5 5, then the more 5s you have in the beginning the less likely you are to mess up that sequence... Do you follow?
Ulciscor:
Kind of reminds me of telomeres... sort of... :ph43r:
Numsgil:
I just don't know. It seems wrong to me to have the DNA "penalized" for having more chromosomes.
Remember, theoretically a genome could develop with 1 gene in 1 chromosome, like One. That would get to execute 100% of its genome while others execute only parts.
Navigation
[0] Message Index
[#] Next page
Go to full version