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

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Simplest Evo Starter Bot
« Reply #15 on: April 10, 2006, 01:05:07 PM »
Stop
End

I was mistaken.  As nums says above, other than point mutations, you have to reproduce to mutate new BPs.

As far as new species goes, once species A, always species A as far as the engine's notion of species goes.  All bots descended from that original bot will show as one species in graphs, etc. for example.   This is different from how bots choose to recognize others of their own "species".  They generally do things like compare number of eye or shoot statements to recognize other conspecs.  

The engine's notion of species ceases to mean much once you are far enough down the road in an evo sim.  You get evolution in different sub populations in different directions and carried far enough, they can be as much or more disimilar than two bots written by two different authors.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #16 on: April 10, 2006, 01:10:24 PM »
Best bot to start with with absolutely nothing would be something like:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Leave it running with Point Mutations enabled and 0 costs.  Theoretically, eventually, a self replicator will form as two of the 0s change into .repro inc

As to how best to guide them towards some sort of evolutionary path is debatable.  You could ramp up costs slowly over time, introduce occassional random death, throw in some predators every few thousand cycles then remove them soon after.  Lots of choices.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Simplest Evo Starter Bot
« Reply #17 on: April 10, 2006, 01:19:16 PM »
I wonder if we need to include some kind of coding system into the name of evolved bots.
The program knows which genes were mutated during each new mutation event so it would be easy enough to have it automatically append the name of baby bots with a shortened code of this after it mutates.

That would mean that every mutation would be a speciation event which may not be much better than we have now.

Possibly a better system would be to include a whole new label to all the bots that keeps track of degrees of divergence from the ancestral bot. When it hits a (user definable?) threshold, it would trigger the program to append the name as described above. This way we get much fewer speciation events.

Additionally (I think this has been mentioned quite recently) I think it would be a neat idea for robots to have a *.refspecies sysvar for direct conspec recognition. It would, of course, need to be fairly easy to fool though or else it would cause havoc with combat bots. Maybe work it like in/out and give the bots the ability to temporarily overwrite their own *.specie_out value.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #18 on: April 10, 2006, 01:27:00 PM »
Here's a list of as many things as I can remember that a bot's species actually effects in the engine:

1.  Venom and Poison
2.  F1 rounds (for the winner)
3.  Veggy repopulation events
4.  Population graphs (and other graphs)

It's a fairly small list.  I think it would be more advantageous to address these few effects than rig up a better internal engine specification for species.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Simplest Evo Starter Bot
« Reply #19 on: April 10, 2006, 01:33:34 PM »
But fixing those things isn't going to help with long term evolution sims.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #20 on: April 10, 2006, 01:36:16 PM »
But those are the only things that the simulation keeps track of in terms of species.  You fix those and what the internal simulation is doing with species becomes moot.

Oh, while I'm thinking about it.  Phylogenic trees for asexual sims wouldn't be too hard to do since hte sim already keeps track of mutation events and the who, what and when.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Simplest Evo Starter Bot
« Reply #21 on: April 10, 2006, 01:38:32 PM »
presently yes, but I would like to be able to do other things with the species.

For instance, I would like to be able to keep track of the highest sub-species populations when the parent species evolves into something different. This would give a kind of family tree with successful and unsuccessful branches that could be graphed to show speciation and extinction events.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #22 on: April 10, 2006, 02:07:54 PM »
I'm doing an experiment now where I have two species, started with 100 of each. One with only Start and Stop in the gene wich I have checked autotroph for, to see if it will evolve into a simple algea, and the other with only zeros. I found though that the program has changed the start-stop two 2 zeros instead in the DNA. Why is that?

I just have to say also that there seems to be more happening in the sim than I expected. With planet eaters checked they form into collonies as usual, but then the ones in the middle get thrown out causing the bots to move around and form into new colonies. Weird.
« Last Edit: April 10, 2006, 02:47:24 PM by Numsgil »
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #23 on: April 10, 2006, 02:44:24 PM »
You can graph phylogenic trees without doing changing the internals of how the program recognizes species.  It gets harder if you were to do sexual reproduction, but let's ignore that at the moment.

All you need to do is log the parent species and the mutations details of every bot that dies.  From that it's possible to reconstruct the frequencies, parentage, lineage, etc. of every genotype in the entirity of time.

My main problem is that any distinction we make about what a species is is going to be artificial.  There really aren't strong lines between species, even in nature.  I would even argue that in nature it's possible to have different species with the same genotype.

Quote from: Testlund
I'm doing an experiment now where I have two species, started with 100 of each. One with only Start and Stop in the gene wich I have checked autotroph for, to see if it will evolve into a simple algea, and the other with only zeros. I found though that the program has changed the start-stop two 2 zeros instead in the DNA. Why is that?

 Two things:
 
 1.  You'll need a bot with at least 3 DNA slots for it to evolve from non-replicator to replicator.
 
 2.  If things get changed to 0s in the program's DNA, it means it couldn't find a matching command or word it knows about.  stroe will be read in as a 0 for instance.
« Last Edit: April 10, 2006, 02:49:12 PM by Numsgil »

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #24 on: April 10, 2006, 02:48:13 PM »
How about this then:

Cond
Start
Stop

Whould that work?
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #25 on: April 10, 2006, 02:50:57 PM »
Yes, that would work, or even just 0 0 0.  The simplest bot that can reproduce looks like:

start .repro inc

I think you'd want to have alot of room for the bot to play around with to get that first replicator, so personally I'd start with a bot with 10 to 20 0s as its genome.

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #26 on: April 10, 2006, 03:06:48 PM »
Hmm... Okey, I started a sim now with this: A veggie with cond, start, stop, end (wich gets changed to 4 zeros in the program, oddly) and a bot species with all those zeros. A large field size, 64000x48000. I started with 250 veggies and 250 bots. It will be interesting to see what will happen.
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Simplest Evo Starter Bot
« Reply #27 on: April 10, 2006, 03:12:13 PM »
Keep in mind the default values for point mutations are quite low, so you'll probably be waiting a long time.  Could be several million cycles.

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Simplest Evo Starter Bot
« Reply #28 on: April 10, 2006, 04:08:31 PM »
I have typed these values in the fields:

Point: 10000
Copy error: 5000
Reversal: 25000
Delta mutation: 10000
Insertion: 5000
Minor deletion: 5000
Major deletion: 20000

For the advanced costs settings I use the default values except for basic command wich is set to .001 and advanced command set to .002.

Maybe after 10 milj. cycles the bots will start to do something. lol. Wish I had an extra computer.
The internet is corrupt and controlled by criminally minded people.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Simplest Evo Starter Bot
« Reply #29 on: April 11, 2006, 04:41:14 AM »
You can make a Giver Veggie that'll spin around doling out food.

'A_Gyver
cond
start
-2 .shoot store
314 rnd .aimdx store
.repro inc
stop
end

This coupled with:

' Basic
cond
*.eye5 40 >
start
.repro inc
stop

cond
*.eye5 40 <
start
314 rnd .aimdx store
stop
end

works out really well.

Mainly they'll evolve to improve their own food access and restrict food access to others. Also they'll duplicate the .repro inc to reproduce at higher levels. Haven't had any learn to feed themselves though... Maybe in a longer sim they'll figure it out.
« Last Edit: April 11, 2006, 04:51:56 AM by Endy »