Author Topic: Simplest Evo Starter Bot  (Read 44347 times)

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #45 on: April 13, 2006, 03:58:11 PM »
Can a bot develop more genes than it had from the beginning, or can it only modify the genes it has?
The internet is corrupt and controlled by criminally minded people.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Simplest Evo Starter Bot
« Reply #46 on: April 13, 2006, 04:04:42 PM »
I believe it can, by duplicating an existing gene

Maybe a mutation can be added to create a new, blank, gene?

I've been noticing some really weird stuff concerning mutations in 2.37.6 so I'll switch to 2.4 as soon as possible  

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #47 on: April 13, 2006, 05:39:13 PM »
Mutations in 2.3X were complicated, and I wouldn't begin to guess what was or was not possible.

In 2.4, genes are less structured, so new genes can be added by really any of the mutation types.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Simplest Evo Starter Bot
« Reply #48 on: April 13, 2006, 06:10:26 PM »
New version's come out so I'm switching to 2.4
« Last Edit: April 13, 2006, 06:11:20 PM by Elite »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Simplest Evo Starter Bot
« Reply #49 on: April 14, 2006, 03:50:20 AM »
It actually makes sense for the bots to duplicate important genes(yes, they do). Normally they form a Highly Mutated and Largely Unmutated combo. The largly unmutated gene will be later in the genome, while the earlier one is freer to diversify. Mainly it stems from the linear nature of dna processing, not a problem IMO as evolution works about the same.

Have some results from my oddball alzheimers/replicators. The first things they discovered were to use setaim at birth, and to randomly zero memory locations. The setaim evolution makes sense because it allows the bots to not be blocked from reproducing by their own parent once they have been born. The random zero'er managed to unfix itself, allowing it and it's decendents freedom of motion again.  Interesting to note that although alzheimers' randomizing effects created the mutations, the mutations actually minimized the effect of alzheimers.

I still haven't seen a good old .repro command pop-up. Holding out hope though.

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #50 on: April 14, 2006, 08:52:21 AM »
I think the most interesting I've seen so far, after about 600 000 cycles, is this:

 0 0 *.shoot . store
 0 -13 0 0 0 0 0 0 0 0

It still doesn't do anything.

I'm going to start a new sim with the new version 2.42.2. I'm thinking about trying the blog feature here and write about the progress in this experiment.  
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #51 on: April 14, 2006, 10:02:49 AM »
I imagine with a decent mutation rate it's going to take close to 3 or 4 million cycles to get a bot that's doing anything interesting.

Oh, and I see in your DNA something that I think might be a bug.  the period after *.shoot doesn't have a label on it.  If there's no sysvar with that location it's supposed to just use a number.

Eric, do you think you could take a look at it and see why it's doing that?

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #52 on: April 14, 2006, 10:21:09 AM »
I've seen several bots with that mutation, a period without a label.
The internet is corrupt and controlled by criminally minded people.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Simplest Evo Starter Bot
« Reply #53 on: April 14, 2006, 11:10:50 AM »
Quote
Oh, and I see in your DNA something that I think might be a bug. the period after *.shoot doesn't have a label on it. If there's no sysvar with that location it's supposed to just use a number.

Eric, do you think you could take a look at it and see why it's doing that?

Sure thing.  I'm trying to finish my taxes today, so anythng to distract me...  


BTW, I'm at 1.93M cycles on my "start from minimal" sim.   Here is the 14bp bot I started with:

cond
start
 -1 .shoot store
 *.nrg 6000 div 50 mult .repro store
stop
end

Here is it's descendent 18 mutations and 1685 generations later:

 stop
 start
 -1 .shoot store
 *.nrg 7076 not
 sub sgn 46 mult *-347 <
 .repro store
 start

I wouldn't say they do anything interesting (yet) but the average DNA length is over 18bp now and they havn't died out either after almost 2M cycles (simple organisms are probably less likely to evolve adaptations like canabalism which are short term benificial for the individual but long term detremental for the species).

I'll keep it running...
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #54 on: April 14, 2006, 12:45:31 PM »
A thought occurs that some sort of utility to go through DNA and remove 'junk' when you're analyzing a genome would be useful.

For instance, that not in the gene body doesn't do anything I think.  It's deactivated because of it being in the gene body.  Same goes for <.  I'm not sure what *-347 does to be honest.  It might either place 0 on the stack or do nothing, or maybe it wraps around to a valid memory locations.

You obviously don't want to be trimming DNA inside the simulation, but when you're just trying to figure out what evolution is doing it becomes something of a head scratcher more often than not.
« Last Edit: April 14, 2006, 12:46:49 PM by Numsgil »

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Simplest Evo Starter Bot
« Reply #55 on: April 15, 2006, 12:00:56 AM »
The number of cylcles you named makes me curious, whats your cycles/sec number?

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Simplest Evo Starter Bot
« Reply #56 on: April 15, 2006, 12:13:29 AM »
Quote from: Welwordion
The number of cylcles you named makes me curious, whats your cycles/sec number?

I'm up to 2.38M cycles now...
 
At the moment, its 12.5 cycles/sec with 308 total objects.  Version 2.42.2.   That's at the fast end of the range since the population is down (my nursury is falling apart - veggies have become unstuck and drifted away.  Usually the total objects is above 500 on this sim...).  It says 82 hours 36min running time, but I think there are bugs in the timer.

3Ghz Xeon with 1Gb RAM.

-E
« Last Edit: April 15, 2006, 12:14:57 AM by EricL »
Many beers....

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Simplest Evo Starter Bot
« Reply #57 on: April 15, 2006, 01:25:42 AM »
Quote from: Testlund
I think the most interesting I've seen so far, after about 600 000 cycles, is this:

 0 0 *.shoot . store
 0 -13 0 0 0 0 0 0 0 0

It still doesn't do anything.
Testlund, can you zip up a sim with this bot in it for me so I can debug the period parse thing?  Thanks.
Many beers....

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #58 on: April 16, 2006, 03:41:58 AM »
Got my first replicator! Here's the gene:

 dec
 *-6 <
 or
 <=
 xor
 sgn ~ %=
 start
 ~ dec
 28 *.timer cond

It has only produced 1 offspring but I don't see any repro command in the gene. Maybe it mutated again after it had reproduced and changed that command. What do you say? Does this one look like it can reproduce?

Let's see if I can upload a sim here for Eric also. I've had problem with this before.
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #59 on: April 16, 2006, 03:53:45 AM »
That bot doesn't look capable of anything, it doesn't seem to have a store command or an inc or dec in a good position to do anything.   ~ dec might do something, though.  Bitwise compliments are hard to follow in the program flow so I'm not sure.

If I had to guess I'd say the bot experienced alzheimers and got a lucky value stored in one of its memory locations.