Darwinbots Forum

Bots and Simulations => Evolution and Internet Sharing Sims => Topic started by: JossiRossi on December 04, 2007, 01:54:41 AM

Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 04, 2007, 01:54:41 AM
I decided to start up a zerobot sim on my computer for the many hours a day I'm not using it. After a few false starts I think I have everything all set and going well.

I decided to do everything as default as I could and try to stick to what I could gather EricL had done. I created a zerobot dna file, which I think I did right, and started it up. First time I did something dumb I can;t recall now, but I restarted it. The second time I disabled eyes to speed the sim up, I then attempted to turn eyes back on and either due to me missing something, or the option not being available I was unable to and started fresh.

Other info I have is that I do hourly saves, this will hopefully not be as necessary later on, but I'm not really short on drive space so I'm keeping them. All my bots are autotrophs with all characteristics active (dna execution, reproduction, virus vulnerable ect).

After 40 hours the bots have been building up some nice mutations each one having on average 148 mutations.

So after 40 hours I have noticed a little hurdle. No big deal really but something I have to keep an eye out for. Bots are learning to shoot far before reproducing. With them being autotrophs they basically can shoot nearly unlimitedly, and as a result the second a single "spiral shooty death" bot evolves it manages to kill all the bots and then itself dies as it shoots more than it takes in as a plant.

So right now every so often I check to see if my bots have been decimated, reload my saves and then if I see the bot before it has done anything bad I save it, then kill it off and resume. Or if I find a save before the bot mutates into Spinny Death, I just let it go on from there.

One thing I could do is to make shooting prohibitively expensive but I feel I'll lose out on a lot if I do this. Any other suggestions as to how I can help keep a single bot from destroying everything, or should I just keep playing momma?
Title: 200 Hour Zerobot Sim
Post by: Testlund on December 04, 2007, 03:58:04 AM
It's always nice with more zerobot sims out there!  

If just one or few shooting bots manage to kill off all your bots I'm guessing you're running a sim that is too small. I would recommend starting with at least 500 bots (I started with 1000 bots and ran it for more than half a year) in a big field. It takes longer to run but it's rewarding if one is patient. You get more genetic material for interesting mutations to appear.

Also in the beginning it's good with morphological costs only, so to encourage reproduction first and other behavior later.

I suppose it doesn't matter much if you chose autotrophs or heterotrophs with energy shooters.
In my heterotroph sim though I found my bots have become more conservative with energy and do less. If I could just get a tie feeder or shooter.....
Also overfeeding is a little problem which can cause waste build-up and alzeimers; the bots ignore their dna instructions and do all sorts of crazy stuff.
You may want to set your waste treshold high if running such sim.
One could also make the energy shooters shoot a little less often, but I don't know how to write such bot yet. I guess using a timer or something.  
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 04, 2007, 04:58:18 AM
Quote from: Testlund
If just one or few shooting bots manage to kill off all your bots I'm guessing you're running a sim that is too small. I would recommend starting with at least 500 bots (I started with 1000 bots and ran it for more than half a year) in a big field. It takes longer to run but it's rewarding if one is patient. You get more genetic material for interesting mutations to appear.

I currently only have 250 bots going. This is partly because my computer really slows to a crawl when I get higher than that. But importantly, I'm using the largest field size available. If one of these shooter bots went on and was able to kill everything as it was, wouldn't having 250 more bots on the field just give it more to kill?

Quote
Also in the beginning it's good with morphological costs only, so to encourage reproduction first and other behavior later.

Good point. I adjusted that. I almost wonder if I should try to exact my vengeance on Rotation. A while back I did a run where I tried to remove rotating bots. I disliked that basically all bots just spun in circles and there was no real pressure to stop doing that. In essence it just gives each bot a 360 degree view and that bugs me for some unknown reason. It might just be I hate the eye indicator spinning around when you select bots =p I don't know how much I'd want to try to pressure that though even if I wanted.

Quote
I suppose it doesn't matter much if you chose autotrophs or heterotrophs with energy shooters.
In my heterotroph sim though I found my bots have become more conservative with energy and do less. If I could just get a tie feeder or shooter.....
Also overfeeding is a little problem which can cause waste build-up and alzeimers; the bots ignore their dna instructions and do all sorts of crazy stuff.
You may want to set your waste treshold high if running such sim.
One could also make the energy shooters shoot a little less often, but I don't know how to write such bot yet. I guess using a timer or something.  

Duly noted. There's still lots I don't fully understand about how the program works, so I try to avoid messing with the settings, but this is one I know I can do.
Title: 200 Hour Zerobot Sim
Post by: Numsgil on December 04, 2007, 09:22:33 AM
Spinning bots bugged me at first too, but after a while I just got used to them and now I find it weird when a bot doesn't spin.  Assuming that the bots are in vacuum-like setting, which the physics would suggest, spinning is a great way to look around without spending much energy.

Of course, now that you can change the width of eye5, you don't need to spin at all.  Just get eye5 to do a full circle.
Title: 200 Hour Zerobot Sim
Post by: EricL on December 04, 2007, 11:04:01 AM
Quote from: JossiRossi
The second time I disabled eyes to speed the sim up, I then attempted to turn eyes back on and either due to me missing something, or the option not being available I was unable to and started fresh.
The settings on the options dialog are not retroactive to extant individuals.  They only apply to new bots created by hand or by starting a new sim from that point.  Each bot has it's own set of everything - mutations probabilities, eye enablement, etc.  Once you set it for a species and hit go, each bot is it's own species essentially.

I've been thinking about ways to retroactivly make changes to extant bots by species, but that capability does not currently exist in the program.

Quote from: JossiRossi
Other info I have is that I do hourly saves, this will hopefully not be as necessary later on, but I'm not really short on drive space so I'm keeping them.
Of course, you can only save the last 10 if you like.  This saves on space.


Quote from: JossiRossi
So after 40 hours I have noticed a little hurdle. No big deal really but something I have to keep an eye out for. Bots are learning to shoot far before reproducing. With them being autotrophs they basically can shoot nearly unlimitedly, and as a result the second a single "spiral shooty death" bot evolves it manages to kill all the bots and then itself dies as it shoots more than it takes in as a plant.
You can use shapes for isolation to prevent total wipe out by one guy like this.  Or use everlasting nrg shots and corpse mode so that most of the lost nrg is recaptured in the sim.  Or use nrg shooting shepard bots to make up what your shooter takes.  I don't breed veggies.  My zerobots are hetertrophs and I give them nrg other wasy then free mana from heaven.  Using veggy repopulation of a single shepard or two with a long cooldown period will inject a flurry of nrg shots into the sim every X hundred cycles.

Quote from: JossiRossi
So right now every so often I check to see if my bots have been decimated, reload my saves and then if I see the bot before it has done anything bad I save it, then kill it off and resume. Or if I find a save before the bot mutates into Spinny Death, I just let it go on from there.
I've never done hand weeding.  It's essentially intelligent design.  I prefer to change the environment to avoid total extinction and just let it run.  You want shooting to evolve.  It encourages replication.  All you want to do IMHO is tweak the conditions so that total extinction isn't the end result which is only a concern in our tiny sims (not nature).  Eventually the shooter will become extinct or a replicator will emerge and you'll be off and running.

Quote from: JossiRossi
One thing I could do is to make shooting prohibitively expensive but I feel I'll lose out on a lot if I do this. Any other suggestions as to how I can help keep a single bot from destroying everything, or should I just keep playing momma?
Throw a few shapes into the mix.  Not many, like 4 largish ones is all.  Use a repopulating nrg shooting shepard with no sunshine and everlastign nrg shots.  It will shoot all it's nrg, then disappear.  Good luck and welcome aboard!
Title: 200 Hour Zerobot Sim
Post by: Testlund on December 04, 2007, 03:32:35 PM
Quote from: JossiRossi
If one of these shooter bots went on and was able to kill everything as it was, wouldn't having 250 more bots on the field just give it more to kill?

Are you saying you got such a good shooter in just a 40 hours sim? It has never happend to me. So far I've only seen the occasional shooter evolve that just floots around in one spot, shooting in one direction only and hit a few bots that happens to drift by, then it dies because I have shot cost set to 1.
Title: 200 Hour Zerobot Sim
Post by: Numsgil on December 04, 2007, 03:43:32 PM
That's probably the reason.  If there are any costs at all, bots usually don't get enough benefit to make up for the cost to keep the phenotype alive.
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 05, 2007, 01:30:54 AM
Sadly I wish the bot were an awesome 40 hour hunter =p Oddly enough I managed to evolve 2 independent spinny death bots within about an hour of each other which was kinda cool. All they do though is spin in a circle and shoot constantly. They have little shot costs and are autotrophs so they pretty much live forever. But that's basically cheating.

EricL: For shepard bots or other ways to keep heterotrophs alive, what would you suggest for the beggining of a zerobot sim? Since they are essentially helpless for so incredibly long I want to make sure they have a chance to survive long enough to actually evolve.

I'll likely start of a new one as there's lots of good ideas for initial conditions that I think should be used.
Title: 200 Hour Zerobot Sim
Post by: EricL on December 05, 2007, 12:08:04 PM
Quote from: JossiRossi
Sadly I wish the bot were an awesome 40 hour hunter =p Oddly enough I managed to evolve 2 independent spinny death bots within about an hour of each other which was kinda cool. All they do though is spin in a circle and shoot constantly. They have little shot costs and are autotrophs so they pretty much live forever. But that's basically cheating.
All a bot has to evolve is a way to peridoically store a value into .aimsx or aimdx to spin and into .shoot (or .backshoot) to shoot.  That this happens before it learns reproduce is a coin toss between those memory positions and .repro.  Note that half the possibile values that can be stored into .shoot are info shots, some of which can cuase reproduction in zerobots they hit.  Often the value bwing stored into .shoot is somethign like *.robage so the value is differetn each cycle.  This is a common way to see first replicators I.e. an info shot shooter causes replication in others.  The problem is the other half, the deadly shooters.  By not breeding autotrophs, the deadly shooters die out faster than the info shooters and your population doesn't get desimated...

Quote from: JossiRossi
EricL: For shepard bots or other ways to keep heterotrophs alive, what would you suggest for the beggining of a zerobot sim? Since they are essentially helpless for so incredibly long I want to make sure they have a chance to survive long enough to actually evolve.

I'll likely start of a new one as there's lots of good ideas for initial conditions that I think should be used.
Take a look here (http://www.darwinbots.com/Forum/index.php?showtopic=2193) for info on shepard bots.  Let us know how it goes!
Title: 200 Hour Zerobot Sim
Post by: Numsgil on December 05, 2007, 12:36:57 PM
Long term evo sims are always exciting.  Some of the first zerobot sims really surprised me when primitive viruses evolved.
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 05, 2007, 02:22:37 PM
What I think I would like to do to feed my bots is what EricL suggested with having a bot spew out energy every so often. I'm definitely not bat adept right now. I copy/pasted out a shooting gene, and set it to shoot out energy to anything it hits. I didn't figure out rotation yet but I only worked on it for a little bit so I know I can figure that out but if you want to just tell me as I'm sure it's easy I won't mind.

My big issue is that the energy it spews out I think is proportional to what energy it has remaining. The closer it gets to 0 the smaller the shots are worth, and then when it finally does hit 0 energy it doesn't die. Instead it just shoots 0 energy shots. Not really sure why it does this, any ideas?
Title: 200 Hour Zerobot Sim
Post by: EricL on December 05, 2007, 02:26:52 PM
You might want to take a look at the bleednrg bot here (http://www.darwinbots.com/Forum/index.php?showtopic=1979).

You should post the bot DNA if you want help debugging it.

EDIT:  Link corrected.
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 05, 2007, 02:35:04 PM
Code: [Select]
start
-2 .shoot store
stop
end

I think I deserve "Best Bot Maker Ever Award".

Thus why it does not spin but I'll make an attempt on that tonight. As for not dying and shooting proportional (I assume) shots, that might be an environment setting I am missing, but I did make some attempts on the wiki and just looking at all the panels to find it. I set nrg shots to a 200 cost, instead of the default proportional but that didn't seem to work.

Also just checked the bleed NRG bot, it looks good. Probably about what I was on my way to making, just with less junk as I inevitably add stuff that would not be needed cause I'm messy.
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 06, 2007, 02:10:46 PM
Alright, started up my new sim. I'm using the bleednrg bot (thanks EricL) to feed my bots. Unfortunately I tried with 500 bots and it slowed to a crawl was less than 10 frames a second and I imagine that would have only gotten worse as time went on so for now I'm using 250. I know zerobot sims require patience but I'm not quite ready for near real time evolution =p

Most settings are default, I removed DNA costs though to keep that from killing my bots off. The display area is nontoroidal. Also I added 2 blacklines in a "+" shape to seperate the area into 4 sections, the cutoff is not complete so each area can still access the others and the gaps are decently large. So off it goes.
Title: 200 Hour Zerobot Sim
Post by: EricL on December 06, 2007, 02:23:37 PM
Sounds good.  Good luck!

Note you may need to tweak the environment as things go along to add or modify selective pressures.  This in my book is not intelligent design as long as that tweaking does not play favorites in HOW evolution proceeds or otherwise "artificially" selects specific bots for survival or death.  So, tweaking the frequency of when bleednrg's come into the sim, their shot nrg or frequency, their number, whether they are fixed or not, the number of shapes, changing yoru shepards to hunters, etc.  is all fine IMHO.  Shepard bots are part of the environment (be sure they can't mutate and are virus immune).  But hand weeding out of evobots that don't do what you like or don't do it how you like is not IMHO if your goal is emergent complexity as opposed to artificial selection.  Just personal opinion.  Party on!
Title: 200 Hour Zerobot Sim
Post by: MacadamiaNuts on December 06, 2007, 05:01:30 PM
Last time I checked, negative costs will feed your heterotroph exnihils until they are good enough to feed by themselves (this is usually once they can move and shoot constantly and reproduce sometimes).

You can even prize them for moving, shooting or tieing.
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 09, 2007, 02:41:57 PM
After 50 hours and 8,300,000 cycles I had my first babies. Two bouncing baby dots. Well not so much bouncing as sitting there slowly spinning.

So far I haven't gotten any spinny death bots, I believe this is more a matter of luck than anything else as no bots have killed themselves shooting off all their energy. I looked at the dna of the parent and it's children and the differences are pretty great. I'm not sure if perhaps the children were born a long time ago and just had a lot of point mutations or if it's something else going on. Also looking at the dna I can't seem to see HOW it reproduced as there's no reproduction code in them so perhaps that mutated out too.

One thing I have noticed is that I don't seem to have evolved any active movers yet, still waiting on that. Also nothing shoots even a little I don't believe. That comes to a good question though. What's the best way to figure out what your bots are doing? When you have hundreds of bots all spinning and drifting how can you tell whats brownian movement and what's active actions?
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 12, 2007, 03:43:46 AM
After 100 hours I still have not had any extinction level events. So score. Right now I've gotten the occasional reproduction event. But nothing that's been really repetitive, nothing is really bursting outward just yet. However at about 85 hours I did have a huge spike of 45 births. I have no idea what happened other than only 1 seems to have survived out of the 45 and that might be coincidental. My theory is that something reproduced and might have repeatedly split itself up until they all died but I don't know how likely that is. Regardless 45 bots were born (and I think they died off as the population level remained static almost and it wasn't that they killed an equal number of bots) and then 44 of those 45 died. So essentially all of them. After this I upped the frequency of the bleedbot being planted in a little to give newcomers better chances to get some energy and stick around, cause if they have any costs they are in a REAL hostile environment, need to baby them a little bit.
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 19, 2007, 01:40:48 AM
Stats
200 Hours
46 births (no change from around 100 hours)
211 bots (down about 5 from when the population burst killed some bots off)
30,000,000 cycles

So until this mark things had been pretty static. It didn't seem like there was much moving forward. However just as I am about to reach the 200 hour mark I check and there's been a DRASTIC EXCITING CHANGE.

Well compared to the last 100 hours it is anyway. My zerobots had at first a DNA length of 31. I meant to make the bot only have 30 but I must have added one extra 0 by mistake. Now after 200 hours the average length is 31.6. I'm now finding bots with DNA lengths twice as long as the rest, and oddly enough some with DNA lengths that have shrunk.

I believe I recall in a discussion that one factor of DNA growth is virus shots, so perhaps I got a bot somewhere doing that. But regardless hopefully this will show a steady climb in activity.

Currently I have no costs associated to the bots (save for shots so they don't MURDER everyone else) should I start those up even though NRG aquisition is random? Or should I wait until they have some kind of targetting system down? I just don't personally have experience in putting pressure onto the ecology without simply wiping everything out, especially the very bots I wish to keep going on.
Title: 200 Hour Zerobot Sim
Post by: Numsgil on December 19, 2007, 01:43:28 AM
Generally I'd advise only adding costs in response to your bots breeding too fast.  That is, only add costs if your sim is running too slow and you want to cull some bots.  I don't think you're quite that far yet
Title: 200 Hour Zerobot Sim
Post by: JossiRossi on December 19, 2007, 01:49:41 AM
Quote from: Numsgil
Generally I'd advise only adding costs in response to your bots breeding too fast.  That is, only add costs if your sim is running too slow and you want to cull some bots.  I don't think you're quite that far yet

You coddle your bots too much. Tsk, tsk. People like you are the cause of the rise in bot crime!
(And yeah I'm definitely not at that point yet. Maybe in another few hundred hours =])

Also here's a screenshot. More than anything it's for my set up which could result in some interesting things later on.

http://img.photobucket.com/albums/v202/Jos.../darwinbots.jpg (http://img.photobucket.com/albums/v202/JossiRossi/darwinbots.jpg)

As the hours go by on average 3 boxes will be well populated while the last will only have a few bots in it often only in the corners. I don't know if this is a result of the slight Brownian movement or not but it's nice to have these quasi compartments I think.
Title: 200 Hour Zerobot Sim
Post by: fulizer on December 19, 2007, 06:14:35 AM
The best time to up costs is when the bots are doing some active hunting that should prevent them from turning into "run around in circles shooting constantly" bots
Title: 200 Hour Zerobot Sim
Post by: bacillus on April 14, 2008, 01:33:27 AM
The last time I ran a 0bot simulation, I had similar problems with the reproduction thing. What I did was give the bots a ridiculously large amount of energy every cycle, so reproductive bots could evolve without immediately being blasted out of existence. This worked until bots kept evolving that pumped up their shots to a ridiculous power and undermined the whole ecosystem. I tried the feeding veggies thing, but that didn't adress the problem of no conspec being evolved. Does anyone have any other ideas?
Title: 200 Hour Zerobot Sim
Post by: EricL on April 14, 2008, 11:02:42 AM
Quote from: bacillus
Does anyone have any other ideas?
I prefer to use veggy shepard bots.  Early in a zerobot sim, they are more than benign - they are generous.  They shoot nrg shots at the evolving bots, targettig them directly.  They can scale this back over time, shoot with less precision, switch to random nrg shots, scale back the number of shots per unit time, move occasionally, etc. as the population grows or vice versa if it drops.  Over time, they can become less generous, stop shooting, etc.  At the extreme, they become preditors.

I prefer this method over simply evolving zerobots as veggies as it provides pressure to evolve.  Bots cannot adapt to free nrg from heaven.  There is nothing they can do to improve their nrg aquisition, it is outside evolution.  By using physical nrg shots from physcial bots, evolution can adapt and select for better nrg aquisition strategies.   A zerobot that simply moves continiously through a field of random nrg shooters has an advantage over those that are fixed and so on.
Title: 200 Hour Zerobot Sim
Post by: Testlund on April 14, 2008, 12:57:12 PM
Well, I'm not so sure. You have a point that when recieving free energy the bot doesn't need to do anything, still I've seen them do lots of stuff than just sitting fixed on the background. Last time I started out with veggies and then separated them into heterotrophs and autotrophs, ran them in two instances connected with teleporters. The heterotrophs I ran with energy providers to feed them. I found the heterotrophs evolved to do even less then the autotrophs, totally energy conservative. Also they became more hardy against costs, and eventually slowly started to take over the autotroph sim, just waiting for the autotrophs to die of too high costs at night.
This time around I started with both heterotrophs and autotrophs in the same sim, only giving the autotrophs 1 energy per cycles, plus the night lasts for 32000 cycles. That means autotrophs can't afford to do much if they want to live, or they need to evolve better feeding strategy. All it takes here is a bot that evolves tie feeding or shooting in close proximity of other bots to get that extra energy, and it should be able to survive and reproduce better.
Title: 200 Hour Zerobot Sim
Post by: EricL on April 14, 2008, 05:52:43 PM
Evolution requires differential survival tied to genetics.  That is, there must be some implicit or explicit competition between individuals and genotypes which relates to reproductive fitness.

I suggest one such battle front - that of aquiring nrg.  Bots that are better at aquiring nrg then others are fitter, which should lead to higher reproductive fitness.   There are other battle fronts.  I'm not saying that bots given free nrg will do nothing or fail to evolve.  One can imagine them competing in other ways, say through metabolic effeciency in the face of costs.  But personally, I prefer sims which select for increased complexity not increased simplicity.   This is why I prefer not to have any costs at all in my evo sims these days and use shepards/preditors instead for applying selective pressure.
Title: 200 Hour Zerobot Sim
Post by: bacillus on April 15, 2008, 12:48:39 AM
The problem lies not with food acquisition but with successful reproduction. A bot would have to evolve conspec first.
Title: 200 Hour Zerobot Sim
Post by: EricL on April 15, 2008, 01:00:53 AM
Quote from: bacillus
A bot would have to evolve conspec first.
What exactly do you mean by this?  Conspec recognition - indeed our whole concept of species - is artifical and means little in an asexually reproducing evosim population...  Replication, yes of course and that is the main battle front and main determinant of fitness in all zerobot sims I know of.  I.e. out replicating others.  Replcaition is fairly easy to evolve, it happens in most zero bot sims after a few million cycles and invaribly is ultimatly limited by the body limit which is where nrg aquisition becomes the key element of compitition.

But conspec recognition?  What does that even mean in an evo sim?
Title: 200 Hour Zerobot Sim
Post by: Numsgil on April 15, 2008, 02:38:32 AM
Maybe he means not eating your own the same cycle you reproduced?
Title: 200 Hour Zerobot Sim
Post by: EricL on April 15, 2008, 09:40:23 AM
Quote from: Numsgil
Maybe he means not eating your own the same cycle you reproduced?
You just don't see prediation of any form in zerobot sims.   Eating another bot, be it your offspring or any other is a sophisticated act, one that requires conditional logic or at least a combination of mutliple coordinated actions.  We havn't seen it evolve yet.   It's just too sophisticated.  Hopefully some day.
Title: 200 Hour Zerobot Sim
Post by: Blacksmith on May 02, 2008, 02:25:40 AM
Hmm, im restarting my zerobots, basically default setting, but I set it to no visual display, which gives me speeds of up to 530 cycles a second, also I set my mutation rate to 32x.
Title: 200 Hour Zerobot Sim
Post by: Testlund on May 02, 2008, 06:25:25 AM
Haven't checked for a long time, but I doubt the default settings are any good for a zerobot sim. You could try setting only morphological costs (for simplicity only number 1 in each field) in the right side of the costs dialog. Put 0 into body and DNA upkeep and have ageing turned off. Start out with 0 in costx and set a number where you want costs to start increase and decrease, depending on the level of the population. Later when you got some good replicators you can add costs to body upkeep and ageing, something like 0.00001 for instance. Let the ageing cost increase with 0.00001 every cycle. Just an example.  

...and for the body upkeep cost to be any good you need to run with either autotrophs, or heterotrophs that can gain energy in some way.