Author Topic: Zerobot sims  (Read 20537 times)

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Zerobot sims
« Reply #45 on: December 04, 2006, 01:51:54 PM »
There's no reason to wait till next year, if you are all running these sims now, even if they are bugged, it'll just help find the bugs quicker. No reason that you can't start another zerobot from scratch next year.

The (Proto) Zerobot league Rules:

1. A zerobot has originated from something with just zero's (any length).
2. Any bot in the league can be further evolved by anybody else, (means you can use bots that have already evolved .repro)(unless individual bots have amount of cycles their family evolved you can't prove that an individuals code has evolved that long, seems pointless to insist on min evo cycles before bot is valid)
3. Entries need some sort of name/description that helps describe their geneology (you lot decide what details they are going to need)
4. Hand editing of DNA strictly forbidden!
5. No genetic contamination from other bots! (other zerobot species added to sim ok?)
5. Can deliberately kill as many bots as you like and change the enviroment as much as you wish.
6. You lot decide what the settings for league should be (you'll need to save this to a settings file as can't set in same way as F1 atm)
7. Till you all decide on a better one, non mutating, traditional algae will be used for league.
8. Top bot will be most competitive or longest surviving. (If it's 50/50 for too long top bot stays top)

Will check leagues topic and post how to run leagues if not there.
Bots will be put in Mutated part of Bestiary with (ZB) added to title for ID

If I can work out how to do it I'll start a new sub forum just for this, if not then an admin will need to.

(almost a quote) Although it will take the form of a competitive league, the overall goal will be to push the cutting edge of naturally evolved bots as far as it will stretch.

EDIT

I can't add new or change old topics, (nor move posts it seems) until one of our angelic    admins sets up a zerobot topic for the leagues all info will be in the F1 leagues forum and entries should be put in the starting gate as normal. (A zerobot evolved to use .repro would be good)
How to run leagues has also been posted in the F1 forum.
« Last Edit: December 04, 2006, 03:03:48 PM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Zinc Avenger

  • Bot Builder
  • **
  • Posts: 56
    • View Profile
Zerobot sims
« Reply #46 on: December 05, 2006, 06:13:48 AM »
After some consideration I've decided that the reason why bots don't evolve to use eyes is because the data returned by eyes requires processing to be meaningful.

In order for the dna to do something with the eyes, it first has to access the eye value, which is reasonable and I'm sure happens as often as accessing any other read-only sysvar. The problem then is that the bot needs to then evolve something useful to do immediately after, and make it conditional on the value of the eye. Dna seems to have real difficulty evolving conditional structures, instead relying on invalid inputs to turn off actions (like earlier in this thread, my example which stored negative numbers into .repro until it hit a positive valid number). The problem with this seems to be that the range of returns which an eye can vary so considerably that the chances of evolving useful processing to make sense of it is slim, there's no practical way to evolve a structure that can take a positive integer from zero to the upper limit of eye returns (can't remember what it is off the top of my head... d'oh!) and massage it so it comes out as a -1 or -6 for shoot, or a value to store in .sx or whatever. It is far easier for bots to evolve a continual shooting structure or a random search pattern than it is for a bot to actually use its eyes.

I'm all for sophistication, but perhaps in this case adding an alternative eye would be useful. I have no doubt that given sufficient time and evolutionary pressure we will evolve something that uses eyes properly. I do have doubts that this will happen without billions of cycles of evolution.In what we laughingly call the real world, simpler organisms use much simpler eyes than the complex ones you're currently reading this post with. While less capable than complex eyes they are useful, particularly as they don't require the processing that complex eyes require.

So would it be a good idea to add something similar to DB? Something like four eyes (forward, back, left, right) which just return a true or false (1 or 0) if they can see something. This way simple eyes would not be able to replace standard eyes (particularly if they cover such a large angle) but they would be able to supplement them in a hand-coded bot, particularly if unlike standard eyes they're reset to 0 when there's nothing in view.  

What do you think?

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Zerobot sims
« Reply #47 on: December 05, 2006, 06:57:36 AM »
I think I agree with this, just 4 eyes in 4 directions. I imagine the eyes not as real eyes, more like sensing organs to smell or taste the environment. If the bot encounters something it should only be able to tell if it's a different species, conspecies or a shape and then decide how to act, like turn to attack it or move away from it. But if it wants to feed on something it sees it must be able to approach it so it can aim at it properly. Just 4 eyes whould need to have a large vision radius to be useful.
But I'm also a little curious how the eyes as they are now will cause the bots to evolve. I found I have bots with both the old static coneshaped vision radius and others with the new moving eyes.
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Zerobot sims
« Reply #48 on: December 05, 2006, 09:25:42 AM »
Part of the problem is that eyes don't really return a good range.  Most sysvars have a meaningful value in [-1000, 1000].  I've certainly seen rnd being used in genes, so I don't see why eyes wouldn't be used as a source of random numbers if nothing else (other than that its easier to use rnd than to read back specific memory locations).

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #49 on: January 18, 2007, 06:07:26 PM »
Yo. I was concerned too by the eyes problem as during my last zerosim I didn't see even one eye sysvar in any bot.

The problem I think is that the eyes sysvars are placed in a bad range. There aren't many consistent ways to get a 500 - 509 values to store in. If eye5 was sysvar 1 it would be as common as .up is currently in evolved bots.

I would like a second set of eye vars in as lower as possible sysvar values... maybe an eye that matches the bot colors versus the light intensity (for pond mode) and returns the visibility. 255+255+255 is the most visible in 0 light, while 0+0+0 would be the most visible in full light.

Oh, and here's one of the zerobots in my sim now. It's running as heterotroph under about 30% the F1 costs (dynamic, plus increasing age cost), with very high mutation rates, fixed shot energy and zero costs below 30. The sim is the smallest size, with 60 zero veggies. Bot population moves between 35 and 50. Dunno how much time it has been running, since I manually selected bots and restarted it several times.

Basically it moves forward eating whatever crosses its path and creates 1 average offspring per 150 cycles.

Code: [Select]
Removed: I'll post a more evolved/optimized one someday... after a few million cycles more. :P
« Last Edit: January 19, 2007, 05:08:54 PM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #50 on: January 18, 2007, 06:11:10 PM »
I like a lot the .shoot dec gene.

Don't ask me where is the reproduction code. xD
Sometimes you win, and sometimes you lose...

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Zerobot sims
« Reply #51 on: January 19, 2007, 07:08:20 AM »
When Eric gets 2.43 finalized, I'm going to take a crack at writing a stripped down DNA version for use in zero bot sims without things like bit manipulators.  I figure, evolution doesn't care wether we can read its code or not, so we should nudge it towards readibility by removing or simplifying code that's harder to decipher we'll be doing ourselves a favor.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #52 on: January 19, 2007, 11:27:36 AM »
 

That would be awesome. Some commands aren't even docummented in the wiki (like ~=). Those are too high level maths for evobots to use them as anything more than a modifier to get a different range of random values.

I find confusing too that the operations on the conditions stack and on the commands stack are mixed.
Sometimes you win, and sometimes you lose...

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Zerobot sims
« Reply #53 on: January 19, 2007, 03:56:29 PM »
I want to comment on two topics rasied earlier in this thread.

On the subject of the validty of starting an evo sim from a simple hand-coded bot with a single gene for reproduction versus a pure zerobot:  While it is true that one can easily calculate the probability of random point mutations acting upon a pure zero bot hitting upon a DNA sequence which results in a first replicator, it is incorrect to assume that starting with a bot with a hand-coded reproduction gene is equivalent to starting from the point where this first zerobot replicator emerges.  In fact, IMHO, the argument that using a hand-coded gene is simply a way to save time and bootstrap the inevitable is seriously flawed.

A hand coded gene, particularly one with conditional logic, represents significant genetic structural information above and beyond it's function.  Through sequence copy mutations, that structure can be utilized in areas other than reproduction and will influence many of the base architectural aspects of all descendents - aspects which might otherwise have evolved very differently, if at all.  By using a hand coded gene such as that listed above, one is bootstrapping not only reproduction, but effecient, conditional gene structure.

Evolving conditional genomic structure - the ability for a bot to do different things in respose to difference conditions- represents a significant milestone in zerobot sims, one that to my knowledge, has yet to be acheived.  Injecting such structure as a given into the starting organism therefor leaps over a key milestone no zerobot has yet acheived.  It is in essensce, Intelligent Design.

Regarding the lack of eye sysvars observed in evolved zero bot DNA, it should come as little surprise that eye values are of little use to evobots that have yet to evolve conditional genomic structure.  Since selection has no power to preserve sysvars in DNA sequences unless they have some influence on reproductive success, given the size of the base pair space, an absense of eye sysvars is not only understandable but to be expected.  Bots cannot make use of eye values until they have evolved some sort of conditional genomic structure.  Crawl, Walk, See.
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Zerobot sims
« Reply #54 on: January 19, 2007, 04:12:18 PM »
What about just putting

start
.repro
inc


That is the simplest possible reproduction gene that carries no conditions or genetic structure, so your argument that this gene would help evolution of other genes is not important anymore.

On the other hand, I understand that some people have seen appearance of reproducers in complete zerobot sims.  Is that right?  So let's just post that particular reproducer for everyone's benefit and satisfaction to show that it can be done.  Then anyone who has concerns like yours can always go to that particular bot an start from it. Thus all the resulting zerosims will be kosher.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Zerobot sims
« Reply #55 on: January 19, 2007, 04:33:44 PM »
That's better, it removes my main objection regarding conditonal logic, but there is still information there e.g. the fact that it uses the .repro sysvar (a very specific, targetted, effecient way to reproduce) and not .mrepro or 300 store or *.nrg inc or any other of a thousand difference (generally more bizarre, less targetted, less effecient) sequences that zero bots might and do stumble upon.  An analogy might be starting from DNA and rybosomes instead of from a self replicating RNA or some other simplier replicator.  Your giving descendents a big push down a specific evolutionary path.  Nothing wrong with that to be sure, you'll just end up with DNA based organisms instead of ones perhaps based on some other chemisty (bad analogy I know).  My point is simply that there is value in starting from a pure zerbot.

Replicators are easy to evolve from zerobots, takes about 10 million cycles.  No two are alike though.  It is truly startling how many different ways there are to replicate.  I am not exagerrating when I say there are thousands of different sequences, some of them amazingly novel and surprising with all sorts of evolutionary implications.  For example, a bot that replicates using 250 *.eye5 add inc will replicate only when close to others.  Starting from that sequence might lead down a different evolutionary path than others.
« Last Edit: January 19, 2007, 05:27:59 PM by EricL »
Many beers....

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #56 on: January 19, 2007, 05:20:39 PM »
Quote from: EricL
Replicators are easy to evolve from zerobots, takes about 10 million cycles.

No way! I start with <5 zerobots, 32x mutations and a very low value for point mutations and get a replicator in much less than a million cycles. You just need to be watching to manually pick it before it's ruined by a pile of DNA junk.

"Manual" selection works wonders when you aren't running DB on a fast machine.

I think a sysvar read/write inspector in the console, including at what bp they were called, would help to check which sysvars are used by the bot each cycle. Easier than trying to calculate what's going on in the code. Perhaps my bots are secretly using their eyes.
Sometimes you win, and sometimes you lose...

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Zerobot sims
« Reply #57 on: January 19, 2007, 05:34:32 PM »
Quote from: MacadamiaNuts
No way! I start with <5 zerobots, 32x mutations and a very low value for point mutations and get a replicator in much less than a million cycles. You just need to be watching to manually pick it before it's ruined by a pile of DNA junk.

Sorry, I was being breif.  You are right of course.  There are many factors which will infulence this.  Mutation rates are one.  So is the length of the starting zerobot 0 vector, the population of the sim, whether waste thresholds are used (altzheimers will cause reproduction) whether shooting veggies are used to provide nrg (they will mutate and shoot memory shots which will cause reproduction) and so on.  See my ealier post in this topic.

Quote from: MacadamiaNuts
I think a sysvar read/write inspector in the console, including at what bp they were called, would help to check which sysvars are used by the bot each cycle. Easier than trying to calculate what's going on in the code. Perhaps my bots are secretly using their eyes.
Have a look at the memory button on the robot properties dialog in 2.42.9u.  
Many beers....

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #58 on: January 19, 2007, 07:00:51 PM »
Woah! My zerobots evolved into tiefeeders!

I saw a yellow flash and suddenly noticed the veggies they were tied to were totally dry. They seem to be hitting the .sharenrg memory location and taking instantly all the energy from my 32k veggies!

[attachment=541:attachment]
Sometimes you win, and sometimes you lose...

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Zerobot sims
« Reply #59 on: January 20, 2007, 05:33:05 AM »
I have to say I was impressed with that first zerobot you posted Maca, I ran it under almost F1 conditions and while the speed factor almost always killed the babies every time I ran the sim a couple of bots tended to survive until the waste killed them.
Along the way I noticed that they altered their speed at a certain point and crawled around rather than speeding.
Their shooting was accurate and only used when in range of a target. ((EDIT) not true if you remove movement display vector you can see different!)
The babies didn't seem to be cyclic, more triggered by another (unknown) factor.

I noticed you had removed the code for it now, shame, but I have a copy so it's not lost.
I'll put it in the bestiary when there is a place/enough zerobots to make it worthwhile. Plus I still need to figure out how to name them so the development and origin is relatively easy to trace.  

I look forward to trying out the latest version you have posted!
« Last Edit: January 20, 2007, 09:42:49 PM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams