Darwinbots Forum

Bots and Simulations => Evolution and Internet Sharing Sims => Topic started by: Elite on April 08, 2006, 09:40:53 AM

Title: Simplest Evo Starter Bot
Post by: Elite on April 08, 2006, 09:40:53 AM
Challenge

What's the simplest bot you can start an evo sim with?
The bot must survive in the majority of sims that are run.

If you're willing to run long evo sims then post what your minimalbot eventually evolves into (optional)
Title: Simplest Evo Starter Bot
Post by: Griz on April 08, 2006, 09:55:15 AM
 an idea that just popped into my head:
what if we had a number of TestSims ...
various levels/gauntlets to run, so to speak?  
a variation on leagues ... but with a User Bot having to
work it's way thru various levels of pre-set sims ...
becoming ever more complicated/challenging.
if/when your bot can pass these 'tests' ...
it may be entered into the stable ....
or hall of fame, etc.
an entrance exam if you will.
Title: Simplest Evo Starter Bot
Post by: Elite on April 08, 2006, 10:06:28 AM
Hey, good idea

How about disabling reproduction (or having bots that just don't reproduce) and having 'bot teams' compete against other 'bot teams'. Kinda like a league except without reproduction (so no out-reproducing your opponents). It emphasizes individual strength (ie. Ymir) over strength in numbers.

Rules:
Standard F1 except no reproducing
Viruses, ties etc. allowed
Start with 10 bots each
Half the map given to each contender at start
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 08, 2006, 12:06:14 PM
Sounds fun.  If walls ever worked, they would seem to me to be absolutely required to make interesting enough simulations, since it changes the pattern by which bots spread.
Title: Simplest Evo Starter Bot
Post by: EricL on April 08, 2006, 01:37:02 PM
All sound like fun.

Regarding Num's original challenge, I've started an evo sim on my other machine where other than some Alga, the starting bot has no DNA.  Just:

Stop
End

I wouldn't even have that except there seems to be a bug where DB hangs if a bot doesn't have at least this.  It runs fast, already over 125k cycles, lets see if anythign evovles.

Of course, there are no costs...  
Title: Simplest Evo Starter Bot
Post by: Elite on April 08, 2006, 01:55:28 PM
My name isn't Num  

Stop
End

 

If it doesn't reproduce (or accumulate waste for reproduction via altzimers) then it can't evolve ... can't it?

Been thinking about my team bot idea:

Placement is set so that half the map is given to one bot and half to another
No vegs
No costs (the only way you die is if another bot shoots you)
4000 energy per bot
No reproduction commands in DNA allowed
Title: Simplest Evo Starter Bot
Post by: EricL on April 08, 2006, 02:10:32 PM
Quote
My name isn't Num


Ahhhh!!  Endless apologies.  My sincerest hopes that you will forgive such an unforgivable transgression...  Of course, anyone without my torbid stupidity can see in an instant that you are both better looking and more intelligent.  What on earth could I possibly have been thinking?...

Quote
If it doesn't reproduce (or accumulate waste for reproduction via altzimers) then it can't evolve ... can't it?

I think the code will actually mutate bots without reproduction - cosmic ray events and such - though I have yet to see an insertion mutation.  Yea, I'm not so sure of whether I like mutating without reproduction or not either, but it does allow in theory the evolution of something from nothing.  My average mutations has risen to 1.2 after 100k cycles.  Maybe the short DNA length is making mutations rare...
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 08, 2006, 02:29:47 PM
Bots won't mutate to gain additional BPs unless it reproduces.  The "Point Mutations", which are new in 2.4, do mutate current BPs, but only by changing them.  They can't either add or remove BPs.

I tried to model it as closely as possible to the mutations Avida uses.
Title: Simplest Evo Starter Bot
Post by: Elite on April 08, 2006, 05:00:14 PM
Quote
Ahhhh!! Endless apologies. My sincerest hopes that you will forgive such an unforgivable transgression... Of course, anyone without my torbid stupidity can see in an instant that you are both better looking and more intelligent. What on earth could I possibly have been thinking?...

Hehehe  

Quote
I think the code will actually mutate bots without reproduction - cosmic ray events and such - though I have yet to see an insertion mutation. Yea, I'm not so sure of whether I like mutating without reproduction or not either, but it does allow in theory the evolution of something from nothing. My average mutations has risen to 1.2 after 100k cycles. Maybe the short DNA length is making mutations rare...

Oooh, a new feature in 2.4

Very good
Title: Simplest Evo Starter Bot
Post by: EricL on April 09, 2006, 08:35:01 PM
Okay, since you have to mutate to evolve and you have to reproduce to mutate and you need nrg to reproduce and you have to feed to restore nrg, and a sim without costs won't select for much, the minimal functioning non autotroph I could come up with that has any chance in an environemnt with at least some costs has 1 gene and 14bp.  There may be even simpiler bots that would suffice, but I can't think of them.  Even so, the only cost I'm using is a minimal nrg/cycle cost (new in 2.42.2) and I had to create a "nursery" of stable autotroph veggies to enclose my starting organism.  I'm 100k cycles down the road, reproduction and mutations are happening and the environment seems  capable in theory at least of evolving more complex bots over time.  I'll let if run a few days and see what happens.

-E
Title: Simplest Evo Starter Bot
Post by: Griz on April 09, 2006, 10:10:39 PM
sounds good.

you never are going to get that novel written you know.
Title: Simplest Evo Starter Bot
Post by: Elite on April 10, 2006, 05:42:52 AM
Quote from: EricL
Okay, since you have to mutate to evolve and you have to reproduce to mutate and you need nrg to reproduce and you have to feed to restore nrg, and a sim without costs won't select for much, the minimal functioning non autotroph I could come up with that has any chance in an environemnt with at least some costs has 1 gene and 14bp.  There may be even simpiler bots that would suffice, but I can't think of them.  Even so, the only cost I'm using is a minimal nrg/cycle cost (new in 2.42.2) and I had to create a "nursery" of stable autotroph veggies to enclose my starting organism.  I'm 100k cycles down the road, reproduction and mutations are happening and the environment seems  capable in theory at least of evolving more complex bots over time.  I'll let if run a few days and see what happens.

-E

The 'no costs teambot sim' was something entirely different I was thinking of - kinda like an extra league
The new nrg per cycle cost might come in handy though

***

Hey, Num or EricL

I remember Num saying something about if he transfered the code to GL or something it would run 1000 times faster. How about a 'hyper evolve' mode that runs extremely fast to rapidly evolve bots?
Title: Simplest Evo Starter Bot
Post by: PurpleYouko on April 10, 2006, 08:49:09 AM
And if you ever do get the novel written, I can host it for you at The Story Sanctum (http://storysanctum.st.funpic.org/stories.htm)

I have to get back to working on that site one of these days. I'm thinking about relocating it too.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 10, 2006, 11:13:51 AM
I'm working on making the code faster, but alot of it needs to be done with pointers which is something that VB doesn't offer.  The C++ version is already quite fast, especially on smaller sims.  I've had 1000 cycles a second on small test sims.

If only all the bugs were worked out :/
Title: Simplest Evo Starter Bot
Post by: Testlund on April 10, 2006, 12:39:22 PM
Quote from: EricL
All sound like fun.

Regarding Num's original challenge, I've started an evo sim on my other machine where other than some Alga, the starting bot has no DNA.  Just:

Stop
End

I wouldn't even have that except there seems to be a bug where DB hangs if a bot doesn't have at least this.  It runs fast, already over 125k cycles, lets see if anythign evovles.

Of course, there are no costs...  

This is very cool! I like the idea to start with as simple a bot as possible and then see it evolve. I can't see how it can do anything with only those two commands though, but I don't know much about how the DNA works. I expect it will just stay frozen on screen, but maybe I'm wrong. I will try this out. I'm also wondering how I can make several species. How does the bots recognize their own species? Is it something in the DNA code?
Title: Simplest Evo Starter Bot
Post by: EricL 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.
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: PurpleYouko 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.
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: PurpleYouko on April 10, 2006, 01:33:34 PM
But fixing those things isn't going to help with long term evolution sims.
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: PurpleYouko 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.
Title: Simplest Evo Starter Bot
Post by: Testlund 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.
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 10, 2006, 02:48:13 PM
How about this then:

Cond
Start
Stop

Whould that work?
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: Testlund 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.
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: Testlund 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.
Title: Simplest Evo Starter Bot
Post by: Endy 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.
Title: Simplest Evo Starter Bot
Post by: Endy on April 11, 2006, 05:36:47 AM
Really weird I got a self replicator started without intending on it.   While working with A_Gyver I started testing a bot with just the code:

 -100 .strvenom store

and had waste build up enough that replication and mutation began. Very strange to see. Think it would work with any store value. Just had to be enough to get the oddball random effects of waste starting the process going. The abnormally high level mutations it was set for seemed to be what caused the genome to rapidly buildup, from the initial 1 to 10 genes.

I'm going to keep playing for awhile longer, see what they evolve into.

P.S.
Played a bit and found setting Bad waste level to zero seems to stop all of the random effects of waste build up.
Title: Simplest Evo Starter Bot
Post by: PurpleYouko on April 11, 2006, 08:47:33 AM
Quote
You can make a Giver Veggie that'll spin around doling out food.

I played around with a somewhat more complex version of this a looooong while back.

I had active veggies that cruised around looking for bots to feed. If the target bots had a big enough energy level the veggie "gardener" bots would even send out an info shot to make them mrepro.

It was so long ago that I wasn't very good at DNA programming so it didn't work that great. It was also in V2.11
Title: Simplest Evo Starter Bot
Post by: Testlund on April 12, 2006, 09:19:15 AM
Here's a sim I've been running now. Started with 300 veggies with these genes: cond, .nrg, start, stop, end. 300 bots with the following genes: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0. Planet eaters is set to 0,05. This caused all the veggies to start forming collonies when they grew bigger and eventually all ended up in one big colony in the middle, while the bots ended up in the corners. The one that the program considers the best bot is marked at the lower left corner. It has mutated the following genes:

 0 0 -14 0 9 0 0 <
 0 0 0 0 0 0 0

I started the sim by giving the veggies 1 energy wich quickly got raised to 32000 by the autotroph function, and 10000 for the bots. This one bot is slowly losing energy with about 1 energy every 300-400 cycles. Wish I new what the numbers in the genes mean.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 12, 2006, 11:12:53 AM
0 0 -14 0 9 0 0 <
0 0 0 0 0 0 0

still has a long way to go before it will do anything worth doing.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 12, 2006, 03:45:00 PM
I think the mutation rates works a little odd. I have set point mutation to 1000 and delta mutation to 10000, still after 345000 cycles I have a few veggies that only keep getting delta mutations. Most of them doesn't get any mutations at all. I know that the gene for the veggies is small but I still expected a little more. I expected more point mutations. One veggie has only 1 point mutation and 26 delta mutations!
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 12, 2006, 03:55:20 PM
Yeah, the mutations for 2.4 could have probably been balanced a bit more.  The problem is that point mutations work on each BP each cycle, whereas delta mutations work on each bot each cycle.  They aren't quite equivelant.
Title: Simplest Evo Starter Bot
Post by: Elite on April 13, 2006, 10:59:37 AM
I'm getting some good results using this bot:

cond
start
-1 .shoot store
stop

cond
start
10 .up store
stop

cond
*.nrg 10000 >
start
33 .repro store
stop

end

And using the settings I posted in the 'frustrations of a returner' thread in the off topic forum
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 13, 2006, 11:34:34 AM
You can shore up the DNA a bit (I'm not sure if you want to though) by rewritting it as

start
-1 .shoot store

start
10 .up store
stop

cond
*.nrg 10000 >
start
33 .repro store

If you're running in 2.4 (though your screenshot looks like you're running in 2.3X)
Title: Simplest Evo Starter Bot
Post by: Testlund on April 13, 2006, 12:16:21 PM
Aren't you cheating now? I thought this was about starting with as simple a bot as possible and let it evolve by itself?  
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 13, 2006, 12:50:13 PM
Well there are limits to what you might consider the "simplest" bot to start with.

As far as I know no one has been able to evolve a bot from absolutely nothing.  It's theoretically possible, I've just never seen it done.

Whereas evolving an already barely survivng bot is much less difficult, because natural selection begins to come in play.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 13, 2006, 01:16:02 PM
Oh, I see. Hehe. That whould make this all the more interesting. Maybe I'm trying something nearly impossible here. I wonder how many miljon cycles... Sigh.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 13, 2006, 01:27:53 PM
Keep at it!  I'd really like to see the sort of Ex nilhilo bot evolves.
Title: Simplest Evo Starter Bot
Post by: Elite on April 13, 2006, 01:55:16 PM
Yeah, definitely keep at it

If you get a surviving bot it (and you) will go down in DB history. I don't think anyone has ever tried this before
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 13, 2006, 02:17:53 PM
Here's what I'm thinking you'll eventually see:

First, one of the bots learns to feed from other bots that move past it.  This feeding also generates waste.

The waste then triggers alzheimers, and the bot eventually reproduces.  A small population like this survives for a while until one of them figures out how to reproduce without going alzheimers.

Somewhere in there, bots may or may not learn to turn or move, depending on the settings in your sim.  If bots have to move to find food, I think they're more likely to learn to move than if they're in a brownian or planet eaters sim.
Title: Simplest Evo Starter Bot
Post by: Elite on April 13, 2006, 02:23:27 PM
My bot has evolved:

10 .up store
into
9 .up store

Maybe going slower is more efficient?

and
*.nrg 10000 >
into
*.nrg 10209 >

Reproducing slightly later
Title: Simplest Evo Starter Bot
Post by: Testlund 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?
Title: Simplest Evo Starter Bot
Post by: Elite 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  
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: Elite on April 13, 2006, 06:10:26 PM
New version's come out so I'm switching to 2.4
Title: Simplest Evo Starter Bot
Post by: Endy 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.
Title: Simplest Evo Starter Bot
Post by: Testlund 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.  
Title: Simplest Evo Starter Bot
Post by: Numsgil 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?
Title: Simplest Evo Starter Bot
Post by: Testlund on April 14, 2006, 10:21:09 AM
I've seen several bots with that mutation, a period without a label.
Title: Simplest Evo Starter Bot
Post by: EricL 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...
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: Welwordion on April 15, 2006, 12:00:56 AM
The number of cylcles you named makes me curious, whats your cycles/sec number?
Title: Simplest Evo Starter Bot
Post by: EricL 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
Title: Simplest Evo Starter Bot
Post by: EricL 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.
Title: Simplest Evo Starter Bot
Post by: Testlund 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.
Title: Simplest Evo Starter Bot
Post by: Numsgil 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.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 04:02:21 AM
How weird! Well, it has only reproduced once, but I couldn't find any .repro command in the mutations either. It has had 80 mutations, two delta mutations wich changed the copy error. Point mutations are set to 100000. I'm not sure what is needed in the genes for the bots to do certain things. For instance, I have found several bots wich have vision, bot no .eye command.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 16, 2006, 04:03:40 AM
Vision is turned on if the bot ever tries to read from any of the eye1-9 I think.  So a bot might do something like *.robage inc and end up turning on vision that way.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 04:06:47 AM
Ok. This one bot appers to be buggy. While all the others are affected by brownian motion this one stays frozen on screen. I don't know what to make of this. maybe I should just delete it.
Title: Simplest Evo Starter Bot
Post by: Elite on April 16, 2006, 05:46:54 AM
Maybe it fixed itself?

Something like *.robage inc might do that
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 08:40:43 AM
I deleted it. It had built up a lot of shell, slime and venom also. Didn't see that in another bot. I think maybe the program freaked out here.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 09:47:24 AM
Here's another one that has produced 2 offspring. What do you make of it? It has also built up 4 venom and 4 shell.

Gene:

 << ++ or
 3 *.aim or
 pyth store
 13 .aimleft store
 *.up %=
 mult angle

If this one shouldn't be able to do this than there is something seriously wrong with the program.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 16, 2006, 10:32:36 AM
That one looks quite capable actually.

Here's what I think the stack looks like when it gets to the "pyth":

*.aim
3
1

the Pyth then takes the pythagorean sum.  ie: sqrt (3^2 + *.aim ^ 2)

and stores one in that location.  Since it's also constantly rotating (13 .aimleft store) its able to write information to random locations, and occassionally hit upon .repro (or maybe .mrepro).

Although that 13 .aimleft store seems remarkably succinct.  This is from a bot that had 0 0 0 0 0 0 0 0 0 0 right?

Rather remarkable really.
Title: Simplest Evo Starter Bot
Post by: Elite on April 16, 2006, 12:57:04 PM
Cool  

Looks like a true ex nihlo bot will end up looking like nothing we've ever seen before.
You can tell it definitely wasn't created.

I am very intrigued as to where this will lead
Title: Simplest Evo Starter Bot
Post by: Welwordion on April 16, 2006, 01:14:04 PM
Shit what do you people do to make that work?
My bots either die out or have to much preprogrammed genes to develop anything.
So to say I never ever run a succesful evosimever since  I know darwinbots, sometimes I even doubt their existance ^^
(well I admit that I am quite impatient and keep restarting the sims)
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 01:19:31 PM
Cool then. I was worried this sim whould be a complete failure if the bots started to do things not written in the DNA. Odd though I couldn't find the offsprings, and this one died before it produced any more, but I have saved the DNA in case I don't get another one.

Quote from: Welwordion
Shit what do you people do to make that work?
My bots either die out or have to much preprogrammed genes to develop anything.
So to say I never ever run a succesful evosimever since  I know darwinbots, sometimes I even doubt their existance ^^

Well, I have written in my blog the settings I use for this sim. The important thing is not to put too much costs for the bots commands, and set the waste to 400. For the veggies I have nrg set to 12 and per kilobody point. Some of these bots develop some commands that I have put low costs to, but they lose energy very slowly.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 16, 2006, 01:29:32 PM
Yeah, for something like this you want to start off with very low negative consequences, until some sort of population develops.  Then you can use natural selection and start jacking up costs and difficulty.
Title: Simplest Evo Starter Bot
Post by: Welwordion on April 16, 2006, 01:47:36 PM
heh what are yellow shots?
I started a simulation where all bots are veggies(5 nrg per kb) and point mutations are high and one started to shoot shoots which caused the target to shoot yellow shoots.
I use this code:

cond
start
*.in1 971 store
*.in2 972 store
*.in3 973 store
*.in4 974 store
*.in5 975 store
*971 .out1 store
*972 .out2 store
*973 .out3 store
*974 .out4 store
*975 .out5 store
stop

cond
*.robage 0 =
start
20 rnd .out1 store
20 rnd .out2 store
20 rnd .out3 store
20 rnd .out4 store
20 rnd .out5 store
stop

cond
17 69 99 rnd rnd
75 98 356 rnd rnd
start
45 56 34 rnd rnd
45 567 7 87 89 408 308 rnd rnd
11 32 576 78 101 rnd rnd
36 766 799 44 35 5 232 876  rnd rnd
446 787 909 9 33 20 45 rnd rnd
13 14 26 rnd rnd
stop

cond
345 678 98 sgn
start
475 775 334 sgn sgn
768 343 874 3 64 sgn sgn
95 334 34 232 sgn
65 243 11 113 1 11 sgn
stop

cond
17 69 99 rnd rnd
75 98 356 rnd rnd
start
45 56 34 rnd rnd
45 567 7 87 89 408 308 rnd rnd
11 32 576 78 101 rnd rnd
36 766 799 44 35 5 232 876  rnd rnd
446 787 909 9 33 20 45 rnd rnd
13 14 26 rnd rnd
stop

cond
345 678 98 sgn
start
475 775 334 sgn sgn
768 343 874 3 64 sgn sgn
95 334 34 232 sgn
65 243 11 113 1 11 sgn
stop

end
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 02:04:25 PM
I just found another one! This one has produced 3 offsprings. Unfortunately they seem to have very little energy at birth and they die soon after they are born. You can see the child on the screenshot to the left of the robot data window. The child only had 63 energy when I took the screenshot. What do you make of the DNA? Does it look like it can reproduce?

Here's the gene:

 dist dist -10 !~=
 angle !=
 *.mass xor
 sqr mult ++ ~ >
 inc
 *.up

Ok, enough postings about this. I'll wait until I have a bot that can produce a stable population.

[quote heh what are yellow shots?
[/quote]

I think yellow shots are poison. I designed one bot that was shooting poison to anyone wich was shooting at it. Those shots were yellow, Cyanobacterium Nostoc.
Title: Simplest Evo Starter Bot
Post by: Welwordion on April 16, 2006, 02:19:31 PM
^^ one of my bot seems to move trough other bots is this normal or is they collision radius different from the radius shown?
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 02:24:53 PM
I think collision is a little buggy. If I remember correctly it will be fixed in the next relsease.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 16, 2006, 02:47:45 PM
Quote from: Welwordion
heh what are yellow shots?
I started a simulation where all bots are veggies(5 nrg per kb) and point mutations are high and one started to shoot shoots which caused the target to shoot yellow shoots.

I believe yellow is poison.


Testlund, I have no idea what that new bot you posted is doing.  I'd have to sit down and really work through what the stack is doing to figure it out.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 02:55:10 PM
Ok. Let me know if you find out what it's supposed to do with those genes. The bot doesn't do anything on screen though. It only produced those 3 bots, nothing else have happend. If there might be a bug that is causing this it should be addressed I think.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 16, 2006, 03:22:43 PM
The problem is that it's using dist and angle.

dist and angle return the distance or angle to a point on the screen from where you are now.  That means the bots' DNA is going to be highly dependant on where it is in the world.

Like possibly down to 1/120th of a bot diameter.
Title: Simplest Evo Starter Bot
Post by: Elite on April 16, 2006, 03:26:27 PM
Aaaaaaaargh, evolved DNA is so incalculably complex  

Wait until you get one that replicates, then natural selection will kick in  
Title: Simplest Evo Starter Bot
Post by: Testlund on April 16, 2006, 03:43:45 PM
Quote from: Numsgil
The problem is that it's using dist and angle.

dist and angle return the distance or angle to a point on the screen from where you are now.  That means the bots' DNA is going to be highly dependant on where it is in the world.

Like possibly down to 1/120th of a bot diameter.

Are you saying that the bot reproduced because it was at a certain angle and distance from something?
Title: Simplest Evo Starter Bot
Post by: Welwordion on April 16, 2006, 03:54:05 PM
Its even more annoying when the sims larger than the values that can be stored ^^ .
Bye the way *Happy*  I got a reproducing bot from my simulation.
Unfortunately I made the mistake that I wanted to test him alone, but he performed better when the other bots were around ,so I tried to reload the old sim and it did not work correctly.
Well now Irun him with the original bot and a slightly modified bot.
We will see what will happen    
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 16, 2006, 04:10:02 PM
Quote from: Testlund
Are you saying that the bot reproduced because it was at a certain angle and distance from something?

 It's a distinct possibility.
Title: Simplest Evo Starter Bot
Post by: EricL on April 17, 2006, 01:20:26 AM
Well now, isn't that acute...  

Testlund, I can't find the bot that exhibits the period parse bug in the sim you posted.  Since there is no reproduction (yet) *every* bot is different!  Any chance you could point me to him or by chance did you save him?
Title: Simplest Evo Starter Bot
Post by: Testlund on April 17, 2006, 03:47:56 AM
Here you go, Eric. 3 bots in a bundle.
Title: Simplest Evo Starter Bot
Post by: Welwordion on April 17, 2006, 06:36:18 AM
Interesting my bots sometimes seem to  use ties to propell their children away
(or are they children just moving around? hard to say, also it seems as if the parents are sometimes fixed).
Well  and it also seems some of them increase there shooting frequency when energy shoots return(although that might be my imagination)

I introduced a foreign bot and now the same effect that propels some new bots away propels some enemies away .... a little bit later-----> however now all evolved bots are dead
Title: Simplest Evo Starter Bot
Post by: EricL on April 17, 2006, 01:39:05 PM
FYI, I have found and fixed the period parse bug.  The fix will be in 2.42.3.

The code attempts to detokinize any BP of type 'number' (type 0) preceeding a store command (type 7) into a sysvar string, either a built in sysvar or a private variable string.  If it can't, it just displays the number.  But in the case where the value of the number is 0, things go a little off track.  This DNA code will exhibit the error:

cond
start
0 store
stop
end

In such cases, the conversion to a built in sysvar string fails as expected.  The code then attempts to match the number to the values of the bot's private var strings by walking through the bots's array of private varables comparing the number to the corrosponding 'value' of each entry in the var array.  In the case where the number is 0 and the bot has no private varables, it matches ALL 50 but none have strings of course.  This leads to the output stirng containing "." but no sysvar string.  I simply added a check for the number 0 as a special case in the private varable comparison portion of SysvarDetok().

Note that the DNA detokinization routines here are horribly ineffcient, walking through all 50 private vars and all 300+ sysvars for every sysvar detokinization attempt...  This doesn't really matter much I suppose since I believe these routines only get called when the user is viewing DNA, but it's still ugly...
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 17, 2006, 02:06:56 PM
It could possibly be sped up by a binary search since both arrays are probably sorted (or can be sorted rather easily).
Title: Simplest Evo Starter Bot
Post by: EricL on April 17, 2006, 02:18:46 PM
Quote from: Numsgil
It could possibly be sped up by a binary search since both arrays are probably sorted (or can be sorted rather easily).

Yup.  If it was a core routine insde the sim execute loop, I'd be on it.  As it is, I don't think it really matters perf wise.
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 17, 2006, 02:47:05 PM
Not really, but if you're anal retentive enough feel free to whack at it
Title: Simplest Evo Starter Bot
Post by: PurpleYouko on April 18, 2006, 09:10:48 AM
Quote from: Elite
Aaaaaaaargh, evolved DNA is so incalculably complex  

Wait until you get one that replicates, then natural selection will kick in  
OK guys. This isn't really finished yet but it might help to work out th ekinks in really complex evolved DNAs.

Just save your bot's DNA from the sim then run up the updated snapshot utility, go to the "StepThru" tag and click the big button at the top left to open the control panel. From there you can import your DNA and step through it while viewing the stack visually at each stage.

There are a bunch of the newer commands missing since this only has the early (basic) stuff. The code is VBA (macro) so it should be pretty easy to modify if anyone has the time.

Ahh CRAP!!!!!

I can't attach XLS files.  

I will try zipping it.
Title: Simplest Evo Starter Bot
Post by: Endy on April 24, 2006, 05:26:21 PM
Yeah, the yellow shots are poison.

For some reason bots, even alga_minimalis, will occasionally gain poison; even though they're not coded to make it. Probably an obscure bug, doesn't seem to mess up attackers much so not too much of an issue.

Did you check the childrens' body levels? if these are too low they'll die rapidly.
Title: Simplest Evo Starter Bot
Post by: Testlund on April 27, 2006, 10:03:44 AM
I got a weird veggie here. It swims round and round sideways over the screen. I'm not sure if this could be a bug or a genetic defect.

 store
 6 start
 inc
 & and
 rnd .sx dec
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  10''''''''''''''''''''''',

 angle cond
Title: Simplest Evo Starter Bot
Post by: Numsgil on April 27, 2006, 11:37:02 AM
no, that looks capable.

It's basically doing:

.aimsx inc
.sx dec
Title: Simplest Evo Starter Bot
Post by: Elite on May 01, 2006, 02:12:38 PM
I've been doing some 'ex nihlo' sims of my own in the new 2.42.3b

I started with a long string of zeros

After a much accelerated period of point mutation, I've got one that replicates:

 add not
 -23 0 -- -21 -12 =
 *-4 dec
 dup 30 *.aim -15 47 0 -10 sub *.aimright -9 35 inc
 else
 -- -- 25 and
 ceil or
 23 47 -4 mod *-13 | or
 -16 pyth <
 <
 angle *.up -13 ^ *-6 ~=
 19 sgn -18 cond
 or
 *.shoot stop
 dec
 3 ~ or
 4 16 store
 29 & floor not
 cond
 angle 10 *-2 %=
 dec
 cond
 angle dup or
 -8 pyth start
 or
 7 -21 & 27 -22 28 !=
 -12 ~=
 %=
 10 %=
26 -10 -60 mult >> and
 store

 ~ xor
 -38 -16 pow else
 18 ~ << ^ >
 8 *25 17 -2 6 and
 ^ 9 or
 31 -7 *-2 rnd or
 pyth <
 angle *-3 *-8 not
 ~ xor
 !%=
 | !=
 else
 and
 dec
 stop

''''''''''''''''''''''''Gene  3: Last 'stop' at position  137''''''''''''''''''''''',

 27 floor ^ 4 33 else
 2 and
 -28 10 & angle !=
 7 angle inc
 36 store
 -11 30 57 start
 - -9 -10 -8 abs and
 -8 ~ mult !~=
 and
 -27 | 23 4 1 52 -42 & -14 cond
 2 >> dist 33 pyth 26 store
 -- 13 abs -39 ~ -14 10 -12 -8 *.timer stop
 else
 -22 >> or
 -- else
 - * -12 8 cond
 floor store
 ~=
 *-4 ^ xor
 *-7 -22 6 *.shoot and
 5 *-4 18 -50 *0 -13 >
 dec
 !~=
 -20 << 6 -11 pyth floor -4 *.up and
 -23 start
 or
 sqr *-4 mult *.dx -11 19 -34 abs dec
 ^ store
 mult 8 else
 and
 -43 !~=
 dec
 pow mult -50 3 4 -8 *.shootval *-12 22 else
 -2 *-18 -7 ~ pyth sqr 0 xor
 dup -24 -- else
 sqr *0 angle 4 *0 else
 ~ sgn add 14 3 ceil sgn -6 sqr store
 -9 -6 store
 26 add *-3 3 4 4 mult -10 cond
 -9 -12 sqr !~=
 -22 div *.mass -11 11 0 ^ -20 ++ -6 22 0 floor 3 !~=
 ~ -44 *.sx start
 not
 -11 32 and
 3 -37 store
 or
 33 4 cond
 floor not
 -13 sgn -37 and
 or
 23 | >
 | -6 ~ -30 2 5 -3 22 15 *26 store
 dist -1 -6 *.dn 30 *.aimleft >=
 xor
 -2 *17 store
 dec
 sqr 9 dist store
 7 dup or
 -22 -5 store
 xor
 -3 pyth -32 28 17 -43 -2 -41 -19 store
 angle !%=
 << stop
 -16 38 -- add 5 -21 ~ *-2 14 -20 11 1 ++ xor
 -11 !%=
 - add dup 13 -18 -2 7 31 3 rnd -6 *42 -25 -1 -- -23 -19 1 add 11 else
 and
 floor 23 floor 10 <
 *.setaim -36 -9 .dx dec
 inc
 div <
 15 *.aim 2 stop
 *15 sqr add >> 13 -10 7 7 3 cond
 | 6 31 4 50 -18 angle 9 %=
 2 6 -27 and
 1 -21 .mass inc
 -4 -1 -11 -37 11 else
 1 mult -12 *.mass -31 1 <=
 <=
 -3 -- 15 -13 store
 %=
 *-6 inc
 xor
 -30 not
 6 -24 *-13 8 -33 12 11 -2 -8 -3 6 start
 -9 pow *38 0 not
 inc
 store
 ~ -11 7 rnd -5 -4 0 start
 -2 *-7 -6 ceil -8 7 *.up <
 *.aimright 60 -38 angle -5 add 12 -- -3 mult !~=
 36 start
 -7 dist -2 | pow add mod else
 rnd 4 -1 not
 pow -17 6 .dn store
 store
 -7 pow inc
 angle - 5 -36 sgn add ceil 7 -5 0 and
 -5 -1 else
 -21 *-24 7 add *0 17 sqr -2 -33 -40 -15 23 *.dn 9 12 abs else
 dec
 start
 sqr add !%=
 14 ceil *14
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 01, 2006, 03:28:45 PM
Holy crap that is an intense genome

Nice work.  What sort of behavior is it exhibiting?  Controlled reproduction?  Is it a veg?
Title: Simplest Evo Starter Bot
Post by: Elite on May 01, 2006, 03:38:10 PM
Unfortunately, it's cancerous. It just reproduces like mad
I tried to evolve it but it just lost it's ability to reproduce. If anyone else want's to try an evosim with it then go ahead.

I have no idea what else it could do, or why it's reproducing in the first place  

I'm just sort of experimenting with the new release  
I'm trying another accelerated ex nihlo evosim with a shorter genome at the moment
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 01, 2006, 03:51:25 PM
I think you'll need to see several abortive replicators before a good one develops.  Realistically I think you'd need to run a sim with medium mutation rates for ~10 Million cycles to see even a very, very basic bot develop.
Title: Simplest Evo Starter Bot
Post by: Elite on May 02, 2006, 12:26:58 PM
I've been 'dissecting' the replicator that I evolved line by line

This is the self-replication code:

 start
 26 -10 -60 mult >> store

EDIT: I've highlighted the section it came from in my earlier post of the bot
Title: Simplest Evo Starter Bot
Post by: Elite on May 02, 2006, 01:41:00 PM
I'm running a full Ex Nihlo sim now in 2.42.3

It's like Testlund's sim but without planet eaters, slightly smaller, and no costs

I've got a script to pause the sim as soon as a .repro command appears but I hope that as soon as one does it will start to evolve via natural selection and feed off the vegs.

Up to 200,000cy so far ...
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 02, 2006, 01:46:04 PM
Quote from: Elite
I've been 'dissecting' the replicator that I evolved line by line

This is the self-replication code:

 start
 26 -10 -60 mult >> store

EDIT: I've highlighted the section it came from in my earlier post of the bot

 Yep that would do it:
 
 -10 * -60 = 600
 
 600 >> = 600 / 2 = 300 = .repro
Title: Simplest Evo Starter Bot
Post by: Elite on May 02, 2006, 03:21:41 PM
Wow:

Code: [Select]
-6 .shoot store
 sqr -5 13 -2 << or
 -2 <
 16 | 1 sqr 16 -12 add

The first line looks a bit coherent. If it had a 'start' it would work, but unfortunately it doesn't

Nearly 500,000cy and counting ...

Two of my bots have managed to find a way to die, despite there not being any costs  
I suspect that they may have come too close to a bot that learned how to shoot

EDIT: Woo, 500,000 cycles
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 02, 2006, 07:15:44 PM
Quote from: Elite
Two of my bots have managed to find a way to die, despite there not being any costs

 Life will find a way
 
 I would make the bots as vegs, but give them 0 energy per turn.  Just have them repopulate when they die.  You'll never have to restart the simulation, and the bots still have an infinite supply of food if they ever learn to eat anything.
Title: Simplest Evo Starter Bot
Post by: Testlund on May 02, 2006, 08:15:06 PM
The more zeros you have in the genome the greater the probability that a bot will eventually evolve to a functioning bot. I started a new evosim too with the 2.42.3a version. Been running it for 940000 cycles now. I don't use planet eaters this time because I want my veggies to be spread over the screen in case some bot develop the ability to feed. It seems that it's hardest to get a bot that can feed properly. Everyonce in awhile I get a bot that produces a little offspring, but it doesn't continue.

This time around I started with bots with only zeros like before but I gave the veggies a little more genes to work with.

My bot genes:

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

My veggie genes:

cond
.nrg
0
0
start
0
0
0
0
0
0
stop
end

 
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 02, 2006, 10:02:39 PM
In 2.5 I have it so that negative shots are modded by 10.  That is, -11 = -1.

I also modded positive info shots by 1000.

The idea being that the shot type is sort of like a rotary bit changer, and if you rotate it too much you're rotated around in a complete circle.

Might be a good idea to add that to 2.4 as well.  Would definately make it more likely that a feeder would develop.

Evolution is terrible at finding one specific value if none of the other values are meaningful.
Title: Simplest Evo Starter Bot
Post by: Elite on May 03, 2006, 02:30:57 AM
Damn, pressed the wrong button and overwrote my sim  

I think I'll run a really long one all today with the setting I saved
I'll use your suggestion to make the bots into vegs too

***

150,000cy

It's going much faster with no vegs

***

25 mins into the sim

250,000cy
Title: Simplest Evo Starter Bot
Post by: Welwordion on May 03, 2006, 06:00:16 AM
I am currently running a sim with a bot with mainly 0 and 50 as starting values where I added some store and inc/dec commands as vlaues can only take affect if stored right?
As cond start stop structures are regulary destroyed by mutation I also added, sgn mult before several store commands so it works SGfies wothout conditions.
I hope when I return from uni there will still be something alife (I set an age cost for the age 200 000 ,after I saw that there were 3 birth from somewhere around  50 000-60 000 cycle)
My settings are a 32000 24000 map a planet eater gravitation of 5 no nrg costs for storing and cond and all my bots are vegs with 6 nrg gain per cycle , I started with 250 vegs/bots and 500 is the maximum.
We will see if something comes out ot this
Title: Simplest Evo Starter Bot
Post by: Testlund on May 03, 2006, 08:21:44 AM
I only got 3 births too after 1420800 cycles. Isn't that strange? The veggies have a bigger genome to work with this time, but the result is worse. But... I haven't given up!  
Title: Simplest Evo Starter Bot
Post by: Testlund on May 03, 2006, 08:36:27 AM
Quote from: Numsgil
Evolution is terrible at finding one specific value if none of the other values are meaningful.

This reminds me of something very interesting I read on the internet. Where's that link...

Well...It's a Swedish site, but it got a lot of links about the theory of intelligent design. Some scientists mean that it is impossible for molecules put together at random to create a living organism. Even the simplest bacteria is to complex for that. There is no one today that has put forth a good theory how the first organism was created. Maybe you guys have allready looked at this stuff, but here is a link about it.

http://www.origins.org/ (http://www.origins.org/)

This is something that has been very interesting to me since autumn last year when I first heard about it. If they find an answear to this question, then life whould no longer be a mystery. Either there is a god or we can say goodbye to religion.

So... What I'm thinking about here is that IF I can evolve a good working bot out of just 500 bots with random data, within maybe a couple of weeks or months, then maybe the planet can create a living organism out of endless stuff of molecules combined together at random for billions of years. Just a thought. What do you think about that?  Maybe Nums can do a probability calculation about this. Hehe.  
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 03, 2006, 10:38:16 AM
Personally I believe in Panspermia (life on Earth was seeded from extra terrestrial sources, asteroids and stuff).

Which has the very important aspect of: how long does it take abiotic stuff to become alive?

If you believe Panspermia, it could take 3 billion billion years per cubic kilometer of ocean, once life developed somewhere it would spread through the universe.

Personally I think life is to irreducibly complex to evolve from scratch over and over again.  It can be done a small handful of times, but too much is just going on.

My own ex nihilo sim: 12 million cycles.  One of the bots has learned to move forward constantly. :/

Quote
This is something that has been very interesting to me since autumn last year when I first heard about it. If they find an answear to this question, then life whould no longer be a mystery. Either there is a god or we can say goodbye to religion.

I think you misunderstand the nature of religion.  If you ever get a chance, read "Do Androids Dream of Electric Sheep?".  In the book the androids try to prove that the dominant religion on Earth is a sham (Mercerism).  They track down the actor who played Mercer, and show him to be not only not dead, but quite poor and destitute.

One of the main characters then says something to the effect of "it won't matter".  The author might have meant it disparingly, but I don't think so.  Personally I think that sums up my own faith quite well.  If you could prove to me that there is no God and Jesus was just a man, it still wouldn't change my faith.  Lots of people feel the same way I think.
Title: Simplest Evo Starter Bot
Post by: Welwordion on May 03, 2006, 10:52:38 AM
Ah good I just returned and heureka the 19x xxx cycle they hjave reproduced and all are shooting like crazy.
I lowered the methusalem border to 10000 and reduced  they allowed number of bits to 300 to get  the sim to ru n faster and to introduce a little more evolutionary pressure.(unfortunately I have a high insertion mutation rate which will cause the Dna to get longer :/)( the nrg per bot/veggie was reduced to 3 although I do not remember doing this)(I changed the viscosity to 50 instead of 150)
Title: Simplest Evo Starter Bot
Post by: Elite on May 03, 2006, 11:10:20 AM
3.5 million cycles

28 bots have been born but nothing else interesting yet ...
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 03, 2006, 11:14:20 AM
My bot that was moving forward constantly has been stuck now.

Another bot learned to fix itself.  Then reproduce.  The baby bot then tied to the fast moving bot and back to its parent.  The fast moving bot is now stuck in place, vainly trying to pull away
Title: Simplest Evo Starter Bot
Post by: Testlund on May 03, 2006, 11:16:06 AM
Quote from: Numsgil
If you could prove to me that there is no God and Jesus was just a man, it still wouldn't change my faith.  Lots of people feel the same way I think.

I don't side with one side or the other on this one, though I don't believe in god the way it is described in todays religions. It COULD be there is some kind of creator behind it all. For me the truth is the most important of all and to keep an open mind. Personally I think religion is messing up peoples minds and it is used more for controll over people and destructive behavior. There are allways authoroties in religion societies that are abusing the religion for own benefit. Ok, umm... Maybe I'm getting too much out of topic here.  
Title: Simplest Evo Starter Bot
Post by: Sprotiel on May 03, 2006, 02:37:52 PM
Quote from: Testlund
Some scientists mean that it is impossible for molecules put together at random to create a living organism. Even the simplest bacteria is to complex for that. There is no one today that has put forth a good theory how the first organism was created. Maybe you guys have allready looked at this stuff, but here is a link about it.

http://www.origins.org/ (http://www.origins.org/)
Dembski is a creationist crackpot. This theory of Irreducible Complexity uses the fallacy of considering absence of proof as proof of absence. It's been refuted on specific examples several times, see this (http://www.pandasthumb.org/archives/2006/04/evolution_of_ic.html) for the latest example. Besides, everyone agrees that it's impossible for molecules put together at random to create even the simplest bacteria. Life probably appeared from a mixture of evolving and replicating RNA and proteins.
Title: Simplest Evo Starter Bot
Post by: Elite on May 03, 2006, 04:40:24 PM
5,000,000cy

Eight thousand bots have been born since I last checked!

One bot has learned to shoot

 start
 -1 *-10 start
 dup not
 -7 mult and
 start
 abs store
 store
 4 else
 | store
 *-2

And a strange, tied mass has formed in one corner:
Title: Simplest Evo Starter Bot
Post by: Elite on May 03, 2006, 05:16:21 PM
Aaaaaaaaargh, it won't open the file I saved. Noooooooooo, my 14 hour sim!
But it probably has something to do with the file being 13MB!

The (compressed) saved file is attached. Can anyone else run it?

I would be really grateful if I could get my sim back.
Title: Simplest Evo Starter Bot
Post by: Welwordion on May 03, 2006, 05:29:09 PM
I will try to run abot with the code:
Code: [Select]
0 0 *0 *0 sub sgn 1 sub abs sgn mult sgn store
0 0 *0 *0 sub sgn 1 add sgn mult sgn store
0 0 *0 sgn mult sgn store
0 *0 *0 sub sgn 1 sub abs sgn mult sgn inc
0 *0 *0 sub sgn 1 add sgn mult sgn inc
0 *0 sgn mult sgn inc
0 *0 *0 sub sgn 1 sub abs sgn mult sgn dec
0 *0 *0 sub sgn 1 add sgn mult sgn dec
0 *0 sgn mult sgn dec
*0 0 *0 *0 sub sgn 1 sub abs sgn mult sgn store
*0 0 *0 *0 sub sgn 1 add sgn mult sgn store
*0 0 *0 sgn mult sgn store
*0 *0 *0 sub sgn 1 sub abs sgn mult sgn inc
*0 *0 *0 sub sgn 1 add sgn mult sgn inc
*0 *0 sgn mult sgn inc
*0 *0 *0 sub sgn 1 sub abs sgn mult sgn dec
*0 *0 *0 sub sgn 1 add sgn mult sgn dec
*0 *0 sgn mult sgn dec
...(repeated several times)

@Elite:I get such errors quite often, thats why I now always save my files to multiple names.
Title: Simplest Evo Starter Bot
Post by: EricL on May 03, 2006, 11:04:51 PM
Quote from: Elite
I would be really grateful if I could get my sim back.
Attached is the sim with the mutation history strings stripped out.

Save the old one.  I may be able to fix the bug in 2.42.4 in such a way that it can be read in and the mutation history preserved.  No guarentees, but I'll try.
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 03, 2006, 11:59:30 PM
I've had a similar experience with my 30 million cycle saved sim.

Would really like to get that back
Title: Simplest Evo Starter Bot
Post by: EricL on May 04, 2006, 12:11:15 AM
Quote from: Numsgil
I've had a similar experience with my 30 million cycle saved sim.

Would really like to get that back
Try loading it with the attached version.  It's just 2.42.3b with a hack to skip to the end of the per-bot section if the LastMutDetail length is negative.  Note that any per-bot mutation settings will be lost as they will be skipped in the read.  Note also that they may be read in incorrectly as it is possible that the mutdetails length is postive but still incorrect, having wrapped positive and negative a few times.

It's a good thing the mutation details are so close to the end of the per-bot file section or this hack wouldn't work.

If it loads, save it and you will have a sim with all the mutations strings stripped out which should be good for awhile before the mutations build up again.

Anyone else hitting this bug is welcome to try this.  No guarentees.  This is just a hack.  2.42.4 will have a real fix I hope.
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 04, 2006, 12:25:43 AM
Thanks, I'll give it a peek when my internet is back up (I'm at the library).
Title: Simplest Evo Starter Bot
Post by: Welwordion on May 04, 2006, 03:35:49 PM
Is there a way to make the shift of values stronger? The usual change of 5-10 si not enought to reach avalue of 300 fast enogh fro a value of 0 or 100.
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 04, 2006, 05:13:15 PM
Not at present.  The idea is that the program has high cohesion between previous value (which is assumed to have been good, or the bot wouldn't be alive) and the mutated value.  The amount difference, however, is based on the magnitude of the number.  Larger numbers get bigger faster than smaller numbers.
Title: Simplest Evo Starter Bot
Post by: Testlund on May 06, 2006, 08:16:18 AM
I think I got something here! Check out the screenshot. The veggies have developed tons of DNA, too much to post here, but you can see some of it in the screenshot. I think this is a bit too weird. I don't know what to think. Is it the program that is freaking out or what? Anyway, it looks like I've got both veggies and bots that keep multiplying.
Title: Simplest Evo Starter Bot
Post by: Testlund on May 06, 2006, 08:57:43 AM
Here's the gene for one of my Zerobots. This one multiplies and then feed off it's offspring. I still see several bots stuck on the screen. I thought Eric had looked into that.

 angle 0 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 else
 start
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 else
 start
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 pyth rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 sqr 12 & start
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 else
 start
 else
 start
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  480''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  489''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  498''''''''''''''''''''''',

 else
 start
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  517''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  542''''''''''''''''''''''',

 start
 angle rnd and
 pyth dec
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  599''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  608''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  625''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  634''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod and
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  651''''''''''''''''''''''',

 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod else
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd and
 pyth inc
 mod stop
 else
 ~ cond
 0 0 0 0 15 0 0 0 0 0
Title: Simplest Evo Starter Bot
Post by: PurpleYouko on May 06, 2006, 11:06:50 AM
Exactly how high do you have mutations set?  
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 06, 2006, 11:44:07 AM
That definately looks like the program has gone crazy.  You seem to have huge stretches of replicated DNA.  There's nothing in the program that should do that except when bots reproduce (Amplification mutation would do that maybe, but that looks incredibly more replicated than I think Amplification could do).
Title: Simplest Evo Starter Bot
Post by: Testlund on May 06, 2006, 11:51:04 AM
Yeah, I thought something weird was going on here. The point mutations was set to 5000000 and the Zerobot above started out with only 15 zeros in the DNA, and after 2465636 cycles the DNA has developed to the values you see above. It looks like too much for this mutation rate. SHIT! I thought I had something interesting here, but if the program is breaking the rules the sim is useless!  
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 06, 2006, 12:01:40 PM
Well, until we know exactly what happened we can't really say the results are invalid.  Do you happen to have any autsoaves of the sim?  If you run it again, turn autosaves on and set them every so often.
Title: Simplest Evo Starter Bot
Post by: Sprotiel on May 06, 2006, 01:26:15 PM
As the mutation routines assumed DNA is divided into genes, while genes don't really exist anymore in 2.4, it is possible that it's working as designed. Mutation details would be very useful to understand what's going on.
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 06, 2006, 01:33:36 PM
Aye, can you post the mutation details Testlund.
Title: Simplest Evo Starter Bot
Post by: Testlund on May 06, 2006, 02:36:00 PM
Ok, here are the mutation details for a bot with similar DNA as the one above.

Point Mutation changed value of store command from store to dec at position 2 during cycle 2389089
Point Mutation changed the number: -12 to the store command: store at position 8 during cycle 1462359
Point Mutation changed the number: -16 to the logic operator: and at position 5 during cycle 1261000
Point Mutation changed number from 0 to-16 at position 5 during cycle 1258483
Point Mutation changed the number: 0 to the store command: store at position 2 during cycle 1137127
Delta mutations changed Delta Mutation from 1 in 9634 to 1 in 9391
Delta mutations changed Delta Mutation from 1 in 10000 to 1 in 9634
Point Mutation changed the number: 0 to the logic operator: and at position 13 during cycle 879597
Point Mutation changed number from 0 to-12 at position 8 during cycle 848470
Point Mutation changed the number: 0 to the logic operator: and at position 15 during cycle 804771
Delta mutations changed Copy Error from 1 in 10000 to 1 in 9207

I've also attached the save if you want to check it out.
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 06, 2006, 03:24:13 PM
It's definately not a mutation then.

Maybe it's a virus?  It seems unlikely, but I suppose it's possible.  Have you seen any viruses floating around?  They'd be cyan colored.
Title: Simplest Evo Starter Bot
Post by: EricL on May 06, 2006, 06:25:02 PM
Quote from: Testlund
Here's the gene for one of my Zerobots. This one multiplies and then feed off it's offspring. I still see several bots stuck on the screen. I thought Eric had looked into that.
I have not fixed any bugs in this area (pun intended).  There have been reports of bots becoming spontainiously fixed, but no reproduction scenerios to allow for easy investigation, so I have not looked into this.  I will, but there are other things of higher priority.
Title: Simplest Evo Starter Bot
Post by: Testlund on May 06, 2006, 07:30:46 PM
Quote from: Numsgil
It's definately not a mutation then.

Maybe it's a virus?  It seems unlikely, but I suppose it's possible.  Have you seen any viruses floating around?  They'd be cyan colored.

I don't see any viruses, I think.
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 06, 2006, 08:34:09 PM
It's probably a virus or virally related now that I look at the code for the simple reason that the repeated elements seem to form a gene.

start
angle rnd and
pyth inc
mod stop

This gene also seems to me (through the rnd operator) to randomly increment different memory locations, one of which could be the sysvars to make and fire viruses.

Note that it's the first gene at the start of the genome, so inc will manage to place it in a virus.

The more I look at it, the more I think you have something genuinely interesting going on, something unrelated to the program itself.  Although it might soon become problematic as the DNA grows larger than your available RAM

This seems to me to be a runaway virus endlessly replicating itself and also being (somewhat) benefitial to the idiot bots it's infecting.  At least benefitial enough that it doesn't kill the bot.

A true example of the "selfish gene" at work.

It is, however, alarming that the DNA deparser couldn't seem to break the code into genes properly for display ("''''''''''''''''''''''''Gene 0: Last 'stop' at position..., Gene 0?  And not all stops are given gene counts)
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 06, 2006, 08:59:42 PM
Did some tests... it's definately that gene.  It's quite capable of sending itself to other bots via viruses.  And quite quickly.  And I think with some evolution its speed is only going to get faster.

You have something both amazing and scary here.  Scary because the DNA of your bots is going to replicate faster and faster, eventually overwhelming your system.

I'm not sure what course of action to suggest.  You want to limit the DNA length before your system crashes.  Enabling a cost per bp per cycle (a very, very low one) seems the best choice.
Title: Simplest Evo Starter Bot
Post by: Elite on May 07, 2006, 04:51:51 AM
An evolved virus! Fascinating

It seems to mimic accelerated altzimers ... and can cause the bot to reproduce. I've also seen bots forming and deleting ties, fixing and various other behaviors. It actually seems to speed up evolution in the ex nihlo sim.

Just as Testlund said, all the offspring end up fixed

So viruses in 2.4 do work, but they're invisible  
Title: Simplest Evo Starter Bot
Post by: Testlund on May 07, 2006, 08:50:03 AM
So you're saying that it's a legitimite behavior then? In that case... I think I got a good veggie here that reproduces and forms ties to offspring, and I've also seen they share some information (the ties blink white every now and then). What do you think? Here's the DNA and a screenshot:

Oh-oh... DAMN! The save has gotten corrupted! I was going to load it to take a screenshot and save the DNA. AAAAHH!!!   It's been running for about 12 hours and all my autosaves have been corrupted too!!!

I don't suppose Eric could check it out and see if he could repair my save? Just this once. Maybe I will not be able to get a sim like this again. Please. here's the corrupted save.

I think I give up on this and wait for 2.42.4  
Title: Simplest Evo Starter Bot
Post by: Testlund on May 07, 2006, 09:07:57 AM
Oh, never mind! I managed to load the save with the hack that Eric provided (2.42.3c) Ok, here it is then. The DNA and the screenshot:

 else
 xor
 5 sgn start
 angle rnd and
 pyth inc
 mod stop
 stop

''''''''''''''''''''''''Gene  0: Last 'stop' at position  13''''''''''''''''''''''',

 angle rnd and
 pyth inc
 mod stop
 else
 xor
 8 sgn start
 else
 xor
 5 sgn start
 =
 xor
 ^ sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 abs start
 else
 xor
 5 * start
 else
 xor
 5 sgn start
 else
 xor
 5 add start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 add start
 else
 xor
 cond
 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 !~=
 start
 else
 xor
 16 sgn else
 else
 xor
 5 sgn start
 else
 xor
 5 sgn else
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 1 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 9 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn stop
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 0 sgn start
 start
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 start
 angle rnd and
 pyth inc
 mod stop
 start
 angle rnd not
 pyth store
 mod stop
 start
 angle rnd not
 pyth store
 mod stop
 start
 angle rnd not
 pyth store
 mod stop
 else
 start
 start
 angle rnd and
 pyth inc
 mod start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 start
 angle rnd or
 pyth inc
 mod stop
 else
 xor
 5 sgn start
 cond
 xor
 5 sgn start
 else
 xor
 5 sgn start
 start
 angle rnd and
 pyth inc
 mod start
 else
 xor
 5 sgn start
 else
 xor
 5 sgn start
 start
 stop

''''''''''''''''''''''''Gene  2: Last 'stop' at position  340''''''''''''''''''''''',

 add *47 26 dec
 and
 *-10 sqr mult <=
 <
 cond
Title: Simplest Evo Starter Bot
Post by: Testlund on May 07, 2006, 09:23:31 AM
Quote from: Numsgil
I'm not sure what course of action to suggest.  You want to limit the DNA length before your system crashes.  Enabling a cost per bp per cycle (a very, very low one) seems the best choice.

I guess I missed this post earlier. The prog hasn't crashed on me so far but it has gone down to 2 cycles/sec. I guess you're suggesting that I set a cost value in the DNA upkeep. I'm going to set it to 0.001 to see what happens.

I'm getting error overflow and the program crashes now instead whenever I try to load the sim. I guess the hack doesn't work after all.
Title: Simplest Evo Starter Bot
Post by: Testlund on May 07, 2006, 10:58:32 AM
I just discovered that some bots and veggies shoots virus shots. Virus shots are cyan, right? I had an earlier save that wasn't corrupted. Still... About 12 hours of sim has been lost.
Title: Simplest Evo Starter Bot
Post by: Evitan on May 07, 2006, 06:05:39 PM
Hi, I'm a new user (from Belgium)

Very interesting topic.
I'm using 2.42b

I'm am running a sim with the A_Gyver veggie
The other Robot just has 11 zero's in the textfile

16.000 cycles have passed and I have 400 births but no evolution.
Is it normal that they reproduce without genes? (This might    be a Newbie question)
I'm using the default settings. + mutation rates at 32

Great program! very addictive...
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 07, 2006, 06:31:08 PM
What do you mean reproduce without genes exactly?

It is possible.  If they accumulate waste some how they probably will eventually reproduce when the waste begins causing random effects.

Great to see a new face (metaphorically speaking of course).
Title: Simplest Evo Starter Bot
Post by: Elite on May 08, 2006, 11:02:54 AM
Doesn't the A_Gyver veg feed the bots and force bots to .repro with memory shots when they have enough energy?
Title: Simplest Evo Starter Bot
Post by: Numsgil on May 08, 2006, 11:07:45 AM
ooo, that would explain it, wouldn't it.