Bots and Simulations > DNA - General

What does Amplification mean?

<< < (2/3) > >>

shvarz:

--- Quote ---Does it happen in nature?
--- End quote ---

Absolutely!  Ever heard the term "a family of genes"?  That's how those families are generated. Say you have a gene that performs an important function. It can't mutate and acquire new functions because its current function is so important. These kinds of mutations create duplicate copies of genes. The duplicate copy can mutate as much as it wants, because "the important function" is performed by the original gene.

One outcome of this process is gene families - closely located genes that preform similar functions. For example, genes responsible for sense of smell are all very similar to each other, but each of them is a little different, which allows it to detect a different chemical. We have hundreds of them, all generated through this process of amplification.

Of course, duplicated genes don't have to preserve their general original function - they can become anything they want. There are examples of that as well.

The_Duck:
This does sound like a really useful mutation type for evolution, if it's possible to de-bug it. I had a look at the disabled code Amplification code in 2.43 and it doesn't look too scary. I've been wanting to try some new stuff with mutations; if EricL publishes the current version of the code I'd be happy to play around with the Amplification and Translocation (the other disabled mutation: cuts out a section of DNA and reinserts it somewhere else) routines and try to get them working.

Numsgil:
Ah, translocation, that was it

As far as I know, Eric hasn't played much with those routines, except for fixing a bug in Gauss.  If you're ready to start, go ahead and work from the 2.43 source.  It should be a simple matter to integrate the two versions.

The_Duck:

--- Quote from: Numsgil ---Ah, translocation, that was it

As far as I know, Eric hasn't played much with those routines, except for fixing a bug in Gauss.  If you're ready to start, go ahead and work from the 2.43 source.  It should be a simple matter to integrate the two versions.
--- End quote ---

OK, I rewrote the Amplification function in a way that seems to work in the few minutes of testing I have done.

24 mutations of this bot:

--- Code: ---cond
*.robage 10 >
start
50 .repro store
100 .aimright store
100 .up store
-1 .shoot store
stop

--- End code ---

produced this monstrosity:

--- Code: --- cond
 >
 *.robage 10 start
 50 *.robage stop
 *.robage 10 >
 cond
 *.robage 10 cond
 50 300 7 >
 start
 50 *.robage stop
 10 .shoot store
 >
 start
 50 .repro store
 50 50 300 100 .aimright store
 100 *.robage .up store
 *.robage 10 start
 50 .repro store
 start
 50 .repro store
 start
 50 *.robage cond
 *.robage cond
 50 300 300 50 10 start
 50 300 *.robage *.robage -1 7 cond
 *.robage *.robage 10 start
 *.robage cond
 50 300 300 -1 *.robage cond
 50 300 .shoot store
 stop

--- End code ---


I'll let it run overnight on some fast-reproducing bots with a high amplification rate and see if it crashes or anything. What exactly was the problem with the previous code? When I tried to enable it crashed instantly with a subscript out of range error which I didn't track down, but perhaps I messed something up? Was it ever enabled?

Numsgil:
It was briefly enabled when I first released 2.4.  Basically it had crashing errors.  The bug list for 2.4 was rather long, so I started to just unplug features in an attempt to stabilize the program.  Let's just say it was a learning experience   If the code doesn't crash the system, and doesn't produce bogus DNA, and it handles lengths > 1, etc., then you've fixed it

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version