Code center > Suggestions

Diploid DNA

(1/3) > >>

Numsgil:
The problem with any diploid DNA system in DB is that it is very difficult to decide which is dominant and which is recessive.

In real life, dominant and recessive are decided by which gene is more active.  If both genes are pumps, the dominant gene is the one that pumps 30000 gallons a minute and the recessive one pumps 100 gallons a minute.

In DB, we have to fudge.

Imagine two synchronous DB DNA strands.  For simplicity, we say that gene 1 of strand 1 and gene 1 of strand 2 form a recessive/dominant pair.  If strand 1's gene is dominant it entirely eclipses strand 2's, and vice versa.

Pretty standard.  How do we decide which is dominant and which is recessive?  Each gene is pushed through a hash function. What is a hash function, you ask.

A hash function assigns a number to any object based on that objects properties.  The idea is that the number assigned to each object is as unique as possible.

So, each gene is now assigned a number based on their properties.  Identical genes get identical numbers.  The gene with the higher number in the gene pair gets executed, the other does not.  In the event of a tie (hopefully a rare occurance) the gene in strand 1 is executed.

Arbitrary?  Yes.  But I believe it would be worth a shot.  Obviously single strand DNA's should still be executed.

MightyPenguin:
Arbitary, complicated and less intuitive than I would like. And don't we have Dominant/Recessive functionality in that any gene nearer the end of the DNA sequence overwrites the ones before?

I remember hearing about some problems along those lines, but I haven't been too active lately, so the memory is fuzzy.

Numsgil:
Was talking to Zelos and he proposed this:


--- Code: ---ploidstart

cond
start
stop
1 strength

cond
start
stop
2 strength

ploidstop
--- End code ---

This helps keep pairs together.  The gene with the higher strength is executed the other isn't.

This also allows more than diploid.  We could have triploid or even more.

PurpleYouko:
I am not so sure that diploid DNA is really going to get us anywhere in DarwinBots. It could be useful from the point of evolution but is it really worth the effort of developing it?

There are a lot more important things to do with DB at the moment.

 :D  PY  :D

Numsgil:
This is a distant feature, for maybe DB 3.2.  Definately not something I'd work on for quite a while.

The advent of Diploid DNA in real life seems to have allowed the explosive growth of species.  Life was pretty vanilla before eukaryotes developed, then BAM! you get multicellular life in a fraction of the time the protists swam around.  Right now bots are simple bacteria in complexity.

Also, the lack of the ability for crossing over has been mentioned in reviews from outside the community.

Here's one such source.  It's a little outdated but this still applies:

--- Quote ---Limitations/Weaknesses

...

The critters can only reproduce asexually, which does not allow crossover and some other useful genetic programming devices.  Generally there is not enough user control over this aspect of the simulation.
--- End quote ---

Navigation

[0] Message Index

[#] Next page

Go to full version