Bots and Simulations > Evolution and Internet Sharing Sims

Randombot evolution sim

(1/8) > >>

Beanspoon:
The original post from this topic was modified by a moderator (not naming any names! ;) ), and I can't be bothered to re-write the whole essay so here's the gist.

I set up an evo sim with 100 1024bit randombots (1024 random integers between 1 and 1000), set as autotroph and left to mutate the ability to reproduce.

I used random integers instead of zeros because I noticed that point mutation only mutates numbers by small amounts, meaning that 1) even if luck was on our side and the number mutated only in the right direction, it would take a long time to reach 300, and 2) behaviour evolved would most likely only use the low array areas, as it becomes exponentally less likely for the higher array areas to be reached.  Using random integers means that the chances of any array location being used are equal.

After a surprisingly short number of cycles, the command .repro inc appeared, causing a cancerous reproduction pattern.  Please see further on for the next step.

Botsareus:
Yes, please post the bot.


I am doing something similar evolving robots for F1 mode. I completely changed the mutation engine, see attachment. I don't like point mutations so I replaced them with a custom "copy error"; Although they evolve zero bots they also screw with robots that are already functional so I decided to remove them. I also attached my A1 trough A9 generations.


I would like to see your point mutation code as well, It might just convince me to change my mind.  :P
Maybe have that one activate if the robot did not reproduce ever after like 8000 cycles...

ikke:
I used a random bot for the same reason. Generate 1000 random numbers in excel and use them. Point of concern: mutation rates need to be much lower, is my experience. You need to strike a balance between the time a mutation needs to settle  (or disappear, if bad) and new mutations appearing.

Panda:

--- Quote from: ikke on March 29, 2012, 01:12:33 PM ---I used a random bot for the same reason. Generate 1000 random numbers in excel and use them. Point of concern: mutation rates need to be much lower, is my experience. You need to strike a balance between the time a mutation needs to settle  (or disappear, if bad) and new mutations appearing.

--- End quote ---
Yeah, this is right. It's usually even better to drop them after they're less than 1/32 using the bot's settings. It just gives time for bots who have good mutations to survive and bots with bad mutations to die.

However, I never really thought of using random-bots over zero-bots and it seems like such a good idea. I must try this at some point. It will probably be summer before I get around to it, though.

Botsareus:
oh, he never moded the code, it simply not a true zero bot...

I have to look into doing this kind of stuff internally...


That problem seems to come from this line:

        Do
         ' Dim a As Integer
          .DNA(t).value = Gauss(IIf(Abs(old) < 100, IIf(Sgn(old) = 0, Random(0, 1) * 2 - 1, Sgn(old)) * 10, old / 10), .DNA(t).value)
        Loop While .DNA(t).value = old

I am going to try a mod...


el fixo:


--- Code: ---If Mtype = PointUP Then
      Dim randomsysvar As Integer
        Do
                randomsysvar = Int(Rnd * 1000)
            Loop Until sysvar(randomsysvar).Name <> ""
        .DNA(t).value = sysvar(randomsysvar).value
      Else
        Do
         ' Dim a As Integer
          .DNA(t).value = Gauss(IIf(Abs(old) < 100, IIf(Sgn(old) = 0, Random(0, 1) * 2 - 1, Sgn(old)) * 10, old / 10), .DNA(t).value)
        Loop While .DNA(t).value = old
      End If

--- End code ---

I feel better about using point mutations now

Navigation

[0] Message Index

[#] Next page

Go to full version