Code center > Suggestions

Subfunctions

<< < (3/5) > >>

Greven:

--- Quote ---I don't understand why you want so much to have junk dna. JUnk dna is dna which is not used and has no use. Being not used, it will become a total junk and will never by usable again thanks to a mutation. So its size will always increase, never decrease, and will never be useful to evolution. So tell me why you want junk dna so much (leaving apart the fact that there's already junk dna).
--- End quote ---

I must disagree on this one! Yes junk DNA is just non-functional DNA, but can you explain how a simple single celled bacteria became a human, without taking junk DNA into account? No you can not!

DNA didnt shuffled the DNA back and forth to find a mutation that would prove a little benefical, instead entire strings of the junk DNA became functional, often this would lead to dead of the individual, but a few times this would lead to an increase in fitness for the organism.

In the history of evolution, often there were huge jumps in the species, with no direct link between the ancestor and the current specie, how would you explain that? God's work?
 
Funny enough this aspect is supported by many ALife simulations, were there are small changes of the genome over a very long time and suddenly big mutations take place over a very very short time! This must be junk DNA becoming somewhat usefull, read some of the articles of Avida and/or Tierra to get more infomation.

Greven:
Regarding my own post above!

It is not as simple as I state it, many things needs to considered, but it is one of the few things at play!

Numsgil:
I agree with all the points you listed, Carlo, but how I interpret them into modding the language is different.

An external compiler would work just fine, and indeed is an option for non-looping subroutines (just simple macros) and other things we want to add to the language.  But I hate the idea of having access to something the bots don't.

I can see this working two ways.  In the first model, DNA is deconstructed into the most basic commands (ie: cond, start, stop, end, add, sub, mult, dec, inc, store, etc.) from higher level commands.  Mutations are much more focused, by simple fact that there are fewer commands possible to mutate.

In the second model, the higher level commands are supported by the language intrinsically, and mutations are allowed to use them.  Mutations tend to be less focused since there are fewer basic commands and more specialized ones.

I would support an in-game toggle between how the program compiles the code of an imported bot and runs mutations.  Bots would run the same in either system (assuming all higher level functions are able to be constructed from lower level ones) so it would only really effect how mutations run.

When the program reads back the DNA, it needs to have something which can clearly identify what is Junk and what is actually being run.  Perhaps some color coding scheme can be implemented.

Why I want junk DNA is the simple fact that real eukaryotic organisms have it.  It may offer increases in fitness, it may not.  No one has really devised a long term experiment to find out, so no one can say one way or another.

I'm trying as hard as I can to make diploid multibots that sexually reproduce and swim around supported by the system.  I don't want to just have a toggle for eukaryote to protist.  I want each part to be independant and functional, and then have bots assemble the individual parts on their own.  That is, I want the bots to spontaneously assemble themselves into multibots and colony organisms.

The jump from eukaryote to protist was rather large and quite sudden.  There were so many changes at once that it's difficult to see what were beneficial, which were consequential, and which were just random.  So I'm just going to allow all of them to be modeled and hope for the best.

Carlo:

--- Quote ---An external compiler would work just fine, and indeed is an option for non-looping subroutines (just simple macros) and other things we want to add to the language.  But I hate the idea of having access to something the bots don't.
--- End quote ---
Well, you can always create an interface on the compiler so that the bots can swim in it and play with its commands.   :lol:
Anyway, the bots don't need to play with the compiler because there's nothing the compiler can do that they can't. The compiler is just an useful instrument for you to _see_ dnas in a more comfortable way. But evolution don't need to see anything.


--- Quote ---Why I want junk DNA is the simple fact that real eukaryotic organisms have it.  It may offer increases in fitness, it may not.  No one has really devised a long term experiment to find out, so no one can say one way or another.
--- End quote ---
These days seems more and more probable that junk dna has some important regulatory functions inside the genome. Someone has even calculated that the apparent complexity of living organisms is more related to the amount of junk dna in their dna than to the quantity of actual genes.
But this is probably because real junk dna is not so junky, and has some active role in the chemical processes that make the cells work. This means that it does something, while junk dna in DB doesn't do anything. You can add as much junk dna as you please in DB, it won't do anything because it is not even interpreted. There isn't as far as I know any hidden function inside DB that will magically use junk dna to boost evolution.


--- Quote ---I'm trying as hard as I can to make diploid multibots that sexually reproduce and swim around supported by the system.
--- End quote ---
I think that the main problem of sexual reproduction in darwinbots isn't the diploidy (yes, that's one problem, and I clarly feel that's something wrong in the actual sexrepro function; but on the other hand I'd like to know _exactly_ what's wrong with it. Remember that diploidy requires crossing over anyway, this means you have to split the two chromosomes and mix them). Anyway, the main problem of sexual reproduction in DB is the fact that sexual reproduction is a complex thing. Requires a good communication, a good synchronization, time... yes, a comfortable place... How can you find a partner, decide to mate, mate, wait for sons, in an environment in which 10 cycles are an eternity, and you can be hit by anybody and pushed far away? There's something wrong with time in DB. Physics is too fast with respect to internal dna timing.

By the way, this reminds me of the ND debate. You said you were going to add ND routines and a checkbox control to select for ND execution.Can I send you those routines to integrate in the next version?

shvarz:
I'll start a separate post on junk DNA in "Biology" section so that we can discuss it there.

For now I just want to say that there is two reasons why I want to have junk DNA in DBs (and by junk I mean DNA that is neither in cond or in executable parts of a gene).
1. As far as I can tell, no other AL sim ever tried to simulate effect of junk DNA.  It would be interesting to see the effects.  It is not going to forever increase as Carlo suggested, because deletions will control the size of it  - the more junk DNA you have the more often deletions will happen in that DNA.  So, there is going to be some steady-state level of junk DNA and it might be interesting to see what that level would be and what kind of effects on evolution it may have.
2. It allows an additional kind of mutations: those involving start, stop, cond, else.  Say you have a gene:

cond
start
1
2
3
4
5
6
7
8
stop

Right now there is no way to shorten this gene to the first four steps and still keep the last four somewhere.  With these new mutations it is possible to get mutation like this:

cond
start
1
2
3
4
stop
5
6
7
8
stop

So, the original gene is shortened but all that good code is not lost - it is still there.  It can be moved around and attached to some other gene, or it can become a completely new gene.  With current system it is impossible.


Of course, the problem is that in DBs the mutation rate is fairly high, so any non-epressed DNA will go to crap quickly.  I am aware of this and I think I have a solution, but I don't want to talk about it yet to avoid going away from the original topic.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version