Poll

PLEASE SEE THE OVERVIEWS OF EACH OF THE IDEAS BELOW, BEFORE YOU VOTE! THANKS!

Numsgil's idea: To make codules of the form "[xmutation_rate] ...protected BPs... [/xmutation_rate]"
2 (20%)
Ericl's idea: To make a new instruction, of the form "number_of_lines_to_protect .protect store"
2 (20%)
Bacillus' original idea: To make mutation immunity have a cost based on the amount of DNA protected and time
3 (30%)
A hybrid algorithm, combining features of 1, 2, or 3 above, such as the MPPI instruction (see the DB3 topic, and please post your idea if it hasn't been mentioned before)
1 (10%)
Bacillus' updated idea: To make mutation protection be implemented as metadata, like in idea 1, and have a cost associated with it too, like idea 3.
0 (0%)
Ikke's DNA comparison idea: To have two or more copies of the DBot's genome, and if the DNA in one mutates, replace it with the DNA from one of it's copies. Check for mutations by comparing the DNA line-for-line.
0 (0%)
Ikke's hash comparison idea: To have two or more copies of the DBot's genome, and if the DNA in one mutates, replace it with the DNA from one of it's copies. Check for mutations by comparing the Hash-values of the different genomes.
0 (0%)
Something totally different (Please post your new idea)
2 (20%)

Total Members Voted: 8

Author Topic: Mutation Protection method- in voting  (Read 14188 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Mutation Protection method- in voting
« Reply #30 on: October 17, 2008, 01:12:27 PM »
It's all pretty moot if Eric never shows.  Remember he's the one that ultimately implements things, and he seems to be AWOL.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #31 on: October 17, 2008, 01:21:46 PM »
Does he usually leave for long stretches of time? If he's gone, who will update darwinbots?

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Mutation Protection method- in voting
« Reply #32 on: October 17, 2008, 02:43:05 PM »
No, not really. And if he is gone nobody is updating darwinbots. He is vital for the inprovement of darwinbots.
Oh my god, who the hell cares.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Mutation Protection method- in voting
« Reply #33 on: October 17, 2008, 04:54:03 PM »
He leaves for summer, when he spends time with his family.  I thought that was up, but maybe not.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #34 on: October 17, 2008, 04:57:31 PM »
Quote from: Numsgil
He leaves for summer, when he spends time with his family.  I thought that was up, but maybe not.

Oh, OK. Sorry eric- Didn't know that.

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Mutation Protection method- in voting
« Reply #35 on: October 17, 2008, 05:51:13 PM »
I'd change to my new idea; I'm really fond of the concept of tagging on metadata, as it can be handled seperately to regular DNA, so won't really require the stack/memory.
EDIT=>I did actually provide specifics with my idea, the difference between it being a concept and what actually happened was that no-one understood it/ignored it.
« Last Edit: October 17, 2008, 05:56:02 PM by bacillus »
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #36 on: October 17, 2008, 11:06:42 PM »
Quote from: bacillus
In reply to 3.), it simple represents an effective 'mutation-immunity' system becoming ineffective over time, and needing refreshing. The major issue (note that this is not the only suggestion that has this issue) is that it relies on the data being stored in a memory location; multiple attempts at protecting DNA will override previous attempts, therefore the way to go will eventually be in the form of metadata. Based on that, I'd change my suggestion to combine the metatag suggestion with the protective enzyme protection system, which also gives a way to control the costs of protecting DNA. (in nrg per unit produced, evenly distributed within the tags, or perhaps allocated by a variable)
EDIT=>Don't forget that most people invloved in this discussion put forward an idea themselves, so I'd be surprised if there is a clear winner

I'm sorry if I misunderstood your original suggestion- this is the most detailed overview of it I could find. As far as I can see, it mentions:

1: Mutation protection degrades over time. (In suggestion summary)
2: Relies on data being stored in memory. (I put in the suggestion summary that it's not metadata, which is the same, right?)
3: DNA is protected by most recent MPI. (I thought this was obvious- as far as I know, we want things to be affected only by the most recent MPI, because it's in it's scope. I don't see why we'd want something different.)

So, please let me know of what I missed.
« Last Edit: October 18, 2008, 03:59:09 PM by jknilinux »

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Mutation Protection method- in voting
« Reply #37 on: October 18, 2008, 07:37:27 PM »
I'll start again:
Step 1-make enzyme. This will act the same way as slime does, decaying over time, more enzyme provides more protection eg reduce chance of mutatoins
Step 2-use X .protect store; if X is negative, it will protect X bps before the command, if positive, the next X bps after the command. The bigger the size of code protected, the faster enzymes wear off.

Note that I later changed Step 2 to tagging with metadata, which allows multiple protects in one cycle (not sure about logic though), and the distribution of substances.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #38 on: October 18, 2008, 08:52:27 PM »
Quote from: bacillus
I'll start again:
Step 1-make enzyme. This will act the same way as slime does, decaying over time, more enzyme provides more protection eg reduce chance of mutatoins
Step 2-use X .protect store; if X is negative, it will protect X bps before the command, if positive, the next X bps after the command. The bigger the size of code protected, the faster enzymes wear off.

Note that I later changed Step 2 to tagging with metadata, which allows multiple protects in one cycle (not sure about logic though), and the distribution of substances.

OK, I understand now. I think you summarized it well, so I just copied/pasted. Done.

Thanks!!
« Last Edit: October 18, 2008, 08:54:03 PM by jknilinux »

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Mutation Protection method- in voting
« Reply #39 on: October 18, 2008, 09:33:56 PM »
Whee, some one understood me for once  
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #40 on: October 20, 2008, 03:16:34 PM »
Ok, Nums and Eric (and Bacillus' first idea, if you count that B changed his vote to his new idea) are tied...

If we ultimately end up with a tie/one vote difference between ideas, maybe we should combine them. Then again, people might like the hybrid less...
We could implement both, but that might take too long...

If this continues, then maybe we should count bacillus' old idea as being a variation of eric's, since it basically is just eric's idea with costs. So, eric's supporters are really the ones who voted for eric AND the ones who voted for B's old idea. In that case, we'll make B's old idea the winner, but make the costs optional.

So far, this is what it looks like:

---Settings------
  • Turn on Mutation protection?
  • Turn on Mutation protection costs?

-------------------

 
0: 10 .protect store            '(protects self)
...12345678...                    '(protects next nine BPs)
9: 100 .mkprotenzyme store     '(make the most recent .protect instruction give 100% mut protection, which costs 100/50 or 2 nrg per cycle per BP (10 nrg/cycle in this case), and whose cost increases exponentially over time OR ...and whose mutation protection decreases by 1 per cycle)

--AND--

---Settings------
  • Turn on Mutation protection?
  • [] Turn on Mutation protection costs?
    -------------------

     
    0: 10 .protect store            '(protects self)
    ...12345678...                    '(protects next nine BPs)
    9: 100 .mkprotenzyme store     '(make the most recent .protect instruction give 100% mut protection, with no costs/degradation)



    This should make a little under 2/3 of the users happy, judging by the polls. The first case is good for evosims, the second for antbot or NNbot evolution/leagues-with-NN-weight-adjustment.
« Last Edit: October 20, 2008, 10:11:36 PM by jknilinux »

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #41 on: November 13, 2008, 10:28:30 PM »
OK, apparently the vote's over- no one has voted to change anything since my last post in mid-october, so numsgil:

It says the suggestions forum is led by both you and ericl- can you implement the mutation protection  as described in my last post, since eric has disappeared?


By the way, to the new users (peterb, de-evo, etc...), feel free to vote!

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Mutation Protection method- in voting
« Reply #42 on: November 14, 2008, 10:04:25 AM »
Quote from: Numsgil
It's all pretty moot if Eric never shows.  Remember he's the one that ultimately implements things, and he seems to be AWOL.


Is only one person devolping DarwinBots ?

I have some knowledge on programming languages.
Well that is I'll easily pickup such languages often.
Dough I never went deep into them ( these days I get headaches from looking long at code)
Anyway I went from :

MSX assembler / Pascal / QuickBasic / VB6  / VB2003.net / C# (pocketpc) / C2003.net  / Perl (little) / phyton (little) / LSL / vbscrip / VB2008.net

And maybe some more lost track of it a bit.
Dough I'm not a big fan of C languages, takes lots of time to write and read while VB.net is equaly fastand better readable.
Time might be the biggest issue dough.

I hope a project like this is structured / devided ??  >> I'm not sure how it is organised but it might be an idea to put source code in a special forum folder (so people could reply with improved code.. (and discuss their distributed programing efforts).

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Mutation Protection method- in voting
« Reply #43 on: November 14, 2008, 10:57:47 AM »
Different idea.

Well different, I'm not sure I think DNA rampage by mutation often results in something supricingly
Yesterday one of my zerobot sudenly became a better hunter dough sadly also a canibal what I had tried to not to become.

Thiking about it a bot described by 1 gene, errors would happen and effect everything equaly inside that gene.

If a bot has multiple genes, like most bots; Then what genes would most likely mutate?
> maybe the smaller (so to say specialized)ones
> or making it depending on the seize of the cond fields  (to give to verry advanced super eye commands some penalties?)
> or making it depending on the start stop seize
> or depending on the general gene size lengthe
> or based on how often genes fire

On multibots perhaps something that preserves body-bot specification (based on how often genes fire ?)

On zero bots... hmmm I got no idea  ....
just a side to note that bots can change type from zerobot to 1 gene bot to multiple gene bot to multibot > all diffferent structures > different rules?



Dough on the otherhand sometimes you create a bot and wonder only what if the numbers in that Cond part would change.
It might be programmable over generations
Then perhaps just have some kind of flag commands  
like   :  

 1 .flagcommanderrors store
 1 .flagvaleuerrors store
 1 .flagallerrors store
   =========>>  or .DNAerrortype:   -1 for numbers,  0 for both,  1 for commands

 5 .flagpreserve store   (preserves the next 5 code lines for mutation)
 5 .flagmutate store      (the oposite)

   *.flagprotectedbits  (how much bits are protected)
   *.refprotectedbits   (as ref command  so you like to preserve?, then also others can identify you (or rather that is your famliy) by it
   *.refunprotectedbits (maybe thats to much).


When using flagmutate Then it would impley that the rest could mutate.
Maybe put a cost to it too per cycle; the cost would depend on the number of bits protected by it seams fair
Or we would all make zero bots; close to oneliners
Maybe have something that more advanced creatures (more genes, more connected bots) have a better effect of it.
Would be like an evolution upward step and so have less error risk? (or maybe the oposite?)

DNA lesserrorriskfactors, overal bot gene:
      *.numties *.numgenes  sum  *.shell sum  

            A shell also has UV protection from light so less errors  son only in pond mode add *.depth)
                      *.numties *.numgenes  sum  *.shell sum   sum *.depth sum
 
                            ~maybe minus the amount of poison inside as that is dangerous stuff to handle, even for the creature itself.


Wow I'm a long speaker I notice, dough I think those are nice ideas concluding it would result like:
So the bigger the more advanced the more protection dough also a higher cost. (and can be dependant of pond height).




I dont know if this command would be a problem for the stack ?
As it could stand before a gene [cond]  but also inside a gene [cond] or in the [start] part.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Mutation Protection method- in voting
« Reply #44 on: November 14, 2008, 01:44:35 PM »
10 .flagpreserve store is pretty much the exact same thing as 10 .protect store. I think you're basically saying the same thing as the Ericl and Bacillus hybrid (which became the final draft of the idea), you're saying to make an instruction to protect DNA as opposed to metadata, plus costs. If you read through the posts, you'll see this was bacillus's original idea.

However, the refprotectedbits instruction seems like it might be able to address some of the problems the metadata camp was having with eric's idea- namely, treating the protected DNA as a single object vs. a wad of instructions.

Nums- what do you think?