Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Zinc Avenger

Pages: [1] 2 3 4
1
Suggestions / Gene structure - cond start stop
« on: November 02, 2007, 07:02:47 AM »
 Anything that makes conditions easy to evolve is a good thing! The current system is too unwieldy.

2
Suggestions / Gene structure - cond start stop
« on: November 01, 2007, 10:57:43 PM »
I've been thinking about the structure of genes.

The cond-start-stop structure is very fragile, practically any mutation in the wrong place will break it completely. It is also prohibitively difficult to evolve naturally - what's the chance a cond instruction will appear before a condition to evaluate, then a start will appear, then an appropriate action will evolve with a stop at the end? Vanishingly small.

So why not simplify it?

Remove cond and start.

Change the way genes are handled so that only stop is used.

Make the stop command define the end of a gene. So from the start of the genome to the first stop is the first gene. From the first stop to the second stop is the second gene. From the last stop to the end of the genome is the last gene. Make no stop at all mean the entire genome is one gene.

But that would not allow us to have conditional genes. So I got to thinking - if the gene is defined by the stop command at the end, why not make the condition the last part of the gene?

The way I envision this working is like this: Fire the gene speculatively, calculating the changes to the memory locations, but don't commit them to the simulation. If the value on top of the stack when stop is reached is greater than zero, commit the results to the sim. If not, discard them.

3
Newbie / veggy help
« on: March 15, 2007, 10:28:49 AM »
Nah, make it a 3pt font and it'll fit on just fine!

4
Newbie / veggy help
« on: March 15, 2007, 08:11:51 AM »
Perhaps a better name for this feature would be something like "Autotroph reproduction disabled when population rises above:", its a very common misunderstanding.

5
Suggestions / physics
« on: March 15, 2007, 07:44:07 AM »
I am running a similar idea at the moment, I use teleporters to link together different sims with different environment settings. The real trick is to size the outbound teleporters right so the bots spend enough time in each environment but actually have a chance to migrate.

6
Suggestions / Evolving Reproduction
« on: December 09, 2006, 05:47:44 PM »
Cond-start-stop is, as far as I am aware, exclusively found in hand-coded bots. After many hundreds of millions of cycles of evolution in countless sims, I have not managed to find a single instance of this structure evolving in a workable state. I normally end up with flow control commands all over the place with no rhyme or reason.

It is not only unlikely (what's the chance of getting a cond, then the condition, then a start, then the action, then a stop from a purely evolved genome?) but it is fragile - it is far too easy for mutations to break it. Change any of those instructions or flow commands and the entire thing stops working.

I'm all for wrapping values in, say, .repro so that any positive integer is accepted with meaningful result. I agree with what you say about allowing the maximum possible interesting mutations from any given starting point. But in your example, the only way to evolve not reproducing is through the useful, powerful but fantastically unlikely cond-start-stop structure.

I also agree yes, an invalid inputs method of behaviour control is a long way away in "genetic distance" from the "ideal", but the "ideal" is further removed still from a bot without any behaviour control.

It seems very hard in the current scheme of things for a bot to evolve to do something not-constantly. So far I've only seen storing numbers in random locations until it happens to hit the right sysvar (X Y rnd store, where X is a valid input and Y > the memory location it really wants) and invalid inputs which has already been discussed.

I'd like to hear if anyone has actually seen any other form of behaviour self-control evolve.

7
Suggestions / Evolving Reproduction
« on: December 09, 2006, 02:07:43 PM »
Hang on a sec!

Evolving bots to do something conditionally (as opposed to constantly) nearly always ends up on storing invalid values into locations until they hit a valid one (as the example I gave in Mutation Sims, the evolved bot that stores *.robage - 1365 into .repro so it doesn't reproduce for the first 1365 cycles of its life). I agree 100% on the "wrapping" of positive numbers, I think the abs idea would make not constantly reproducing vastly harder.

8
Evolution and Internet Sharing Sims / Zerobot sims
« 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?

9
Evolution and Internet Sharing Sims / Zerobot sims
« on: December 04, 2006, 10:52:07 AM »
I was thinking only competing zerobots against zerobots - I can't seriously imagine a zerobot taking on the current top of F1 (or even most novelty bots!) without about two hundred realtime years of evolution  Even as it is, I expect most zerobots to have difficulty with F1 costs, so at the initial stages of the league I expect the leading competitors to be the ones that die slightly slower from costs than their opponents

So although it would take the form of a competitive league, the overall goal would be to push the cutting edge of naturally evolved bots as far as it will stretch.

That's why I suggested the bit about letting anyone take any bot in the league and submit it on the condition that they give it a certain number of million cycles of evolution. Perhaps 10 was a bit harsh, particularly as execution times climb as the dna becomes more complex. Perhaps 2? But no upper limit of course, if you want to bake it for 100m cycles you're likely to be on to a winner! Hopefully this might mean that more successful branches of the family tree might end up with more people evolving them further.

Okay then Testlund, lets do it.

Can you give us a copy of this pure zerobot in its current state as the first contender? How many cycles has it had so far?

I also find that with my no-longer-new-and-shiny HT Pentium 4, two or even three sims can be run simultaneously without (too much) performance loss, and newer multi core processors will be able to handle it even better.

10
Suggestions / Survival of the fittest
« on: December 04, 2006, 08:49:02 AM »
Well then, what we need is a bunch of teleporter-linked sims with different environmental settings. I kept running into "error 76, path not found" after ten minutes or so with teleporters, so I'm currently trying some troubleshooting before I submit a bug report. But if teleporters work for anyone else, then perhaps that would be a good avenue to pursue.

11
Evolution and Internet Sharing Sims / Zerobot sims
« on: December 04, 2006, 08:26:06 AM »
The only reason why my "headstart" bots have 50 .repro store in there is because I don't want to wait 15m cycles for something interesting to appear. If my computer was faster, I would have no hesitation to start with a "pure" zerobot.

I've performed super-long-term "pure" zerobot sims (on machines at work I've "accidentally" left running all weekend, save on Monday and load and continue every Friday...) that have reached several tens of millions of cycles. I don't see this as more or less valid than an intensive bonsai - the costs and my whims are all part of the environment and they evolve to survive both. Its the evolution of behaviour I find interesting, rather than the starting point.

I like the idea of a zerobot league. How about two: one with vanilla zerobots with, say, 20 zeros and nothing else, and another with (50 .repro store) and 17 zeros. Competitors can tailor their evolution sims in any way they like (bonsai-style environmental pruning encouraged but hand-editing of dna strictly forbidden) but the competition only takes place in a fully-standard F1 environment, winner is the last bot standing.

Perhaps to encourage some seriously long collaboration we could also include a clause that whatever bots are submitted are fair game for anyone to take and evolve and compete with, provided they put the bot through at least, say, 10m cycles of their own before submitting.

If anyone is interested, we'd need to come up with a naming convention for the bots... Hmm... An identifier for the original bot, then a two letter code for the competitor, then the number of million cycles that competitor evolved it uniquely, adding the code and number of cycles removed from the last submission? Like I might start a bot 01ZA5.txt (Starting zerobot 01, then baked by Zinc Avenger for 5 million cycles) and Testlund might give it 10 million cycles so it would be named 01ZA5TL10.txt. That way we might be able to build up a family tree.

12
Evolution and Internet Sharing Sims / Zerobot sims
« on: December 01, 2006, 06:38:09 AM »
Okay, anyone got any ideas to come up with a sim to encourage development of some form of use for eyes?

13
Suggestions / Survival of the fittest
« on: December 01, 2006, 06:11:31 AM »
I've often tried to think of ways of artificially (or perhaps semi-arbitrarily) increasing the fitness of a population of bots without editing dna, but this catastrophe-style method seems a bit harsh. Personally, I think bots have a hard enough time surviving as it is, and superior fitness is no guarantee of survival, so adding in new ways to kill them at this stage could be counter-productive, leading to selection of the lucky rather than the best. Oh, and yes, I do know that's how it works in real life!
 
My current leading idea, which is still in the early stages of consideration, is to scale each bot's point mutation rates by its unfitness (as fitness decreases, point mutation rates increase). Bots at the low-fitness end of the population get more point mutations, which will lead the bot to either break down altogether and die, or just maybe evolve that little step necessary to bump its fitness up.

Also under this scheme, the fittest bots will not point-mutate away from their current level of fitness. However, as the population's overall fitness increases the earlier high-fitness bots would find themselves dropping down the fitness tables for the population and start to mutate.

As I said, this idea hasn't been given my usual week of casual pondering before it gets its airing so please forgive any ragged edges!

Of course, the simplest method for artificially increasing the fitness would be to duplicate the current leading bot every 1000 cycles or so, but that could lead to bots losing their .repro commands when they become fit.

14
Bugs and fixes / "Best bot" in veggie-only sims
« on: December 01, 2006, 05:52:57 AM »
 Thanks! Now that's service. Have a cookie!

15
Bugs and fixes / "Best bot" in veggie-only sims
« on: November 30, 2006, 07:47:45 AM »
But we've strayed a way from the point I originally brought up - a bug report that if you hit "best bot" in a sim with only veggies, DB crashes on me.

Pages: [1] 2 3 4