Code center > Suggestions

Simoltaneous DNA execution

(1/8) > >>

Numsgil:
A couple of ideas I've had have been short circuited because of the linear nature of DNA in DB.  Gene 1 affects the cell.  Then gene 2 affects the cell.  That's not how real DNA works.  In real DNA gene 1 and gene 2 happen at the same time.

So what if, when a gene effects the cell, it's put into a action list.  After the DNA has executed, the action list is applied to the cell.  Then each gene would seem to be executing at the same time.

If two actions contradict (-6 .shoot store and -1 .shoot store) then we can either:
1. average the values -or-
2. the more numerous command wins (2 -6's override the one -1) -or-
3. some commands take precedance over others.  (-6 takes precedence over -1.)
4. one of the actions is randomly chosen (whichever gene managed to get its signals to the appropriate mechanism first).

We could even make the action sensitive to the command.  Maybe shooting figures out the most numerous while turning averages the values.

There are some subtle implications if we do this.  Alot of things would need to be worked out.  But it would theoretically be the first step in a number of complex additons, such as diploid (or X ploid) DNA and a more complex sexual reproduction.

PurpleYouko:
I like this concept.

It is how DB was originally designed to be but it fell somewhat short of the goal.

Removal of the linearity would be a very good idea. It is going to seriously screw with most existing robots though. No more using the stack to keep values for later use in the same cycle.

Major changes.

 :unsure:  PY  :unsure:

Numsgil:
I think we'd have to include a 'run DNA linearly' button in the options menu so older bots could be run, but yeah, huge implications for alot of bots.

After that, though, things like diploid DNA and sexual reproduction come very easily.  Sexual reproduction just becomes finding a way to fuse two cells into one.

The major advantage of this is that the genes become a kind of object-oriented design, allowing genes to be written that don't know anything about other genes.

Zelos:
:evil: first numsgil, -6 is lower than -1, coz -1 is closer to 0 then -6
second, this would be very good.
third, if we use diploid dna and use the system I sugjested whit gene strenghts, we could use simulare here. decied which is gonna be active by the strenght. like:
--- Code: ---cond
start
-1 .shoot store
stop
strenght 5

cond
start
-6 .shoot store
stop
strenght 1
--- End code ---
the first gene would be activated coz it has more strenghts in its command. and when we have diploid dna we could make it like
--- Code: ---ploidstart
cond
start
-5 .shoot store
stop
strenght 1

cond
start
-2 .shoot store
stop
strenght 6
ploidend

ploidstart
cond
start
5 .shoot store
stop
strenght 4

cond
start
9 .shoot store
stop
strenght 2
ploidend
--- End code ---
here would the first ploid be the commanding 1 coz the active gene there is the most powerful 1, I think it should be like that. or it could be like 1+6=7 and 2+4=6 so the first ploid wins thx to the entire strenght is bigger, if they are equal it would be random

 :evil: zelos

Numsgil:
First off, I never said -6 was higher than -1.  I just said we could artificially give it precedence.

Second, what I'm thinking doesn't involve any kind of artificial pairing of genes, or anything along those lines.

You'd have DNA threads, each being a chromosome.  Each has a beginning and an end.  These threads then all activate simoltaneously.  If you have multiple copies of the same chromosome, then you have multiplie copies of the same chromosome.  Woop de do.

From this simple system, diploid and Xploid DNA could naturally develop.  Sexual reproduction would simply be combining the DNA of two haploid cells (which is where real sexual reproduction came from).

So, aside from non-linear DNA all we'd have to add is a way for DNA to be divided into threads, and for a way for cells to combine their DNA (maybe some kind of fusing, the opposite of reproducing).

Also, we'd have to add a time delay for DNA reproduction based on the length of the DNA.  Real organisms will reproduce through meiosis if they are stressed because it's much faster (you don't have to reproduce any chromosomes, you just split the diploid DNA and you're good to go.)

Last, we have to add a way for chromosomes to become associated with each other.  Similar to the centromeres in real chromosomes.  Real chromosomes do this with a long series of repeating patterns that somehow keep the two chromosomes together.

As I said before Zelos, genes will just learn to have the highest strength in your system.  That doesn't help us at all.

Navigation

[0] Message Index

[#] Next page

Go to full version