Author Topic: Thoughts on speciation  (Read 3558 times)

Offline The_Duck

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Thoughts on speciation
« on: April 07, 2008, 01:31:27 AM »
Disclaimer: I'm new to this, so take the below with as many grains of salt as you think prudent.

As I understand it, the steady state of pretty much all evosims, when run long enough, is one with exactly two species: one heterotroph and one autotroph. There's simply not enough diversity in the environment to support many species: two heterotroph species or two autotroph species are always competing for the same resources, and one of them will be better at getting them, and will win out. This is a bad thing if we want complex ecosystems to evolve.

We can create some diversity in the environment by running several sim instances connected by teleports. We can even create a "frontier" by making a bunch of sims in a row with gradually changing settings, ranging from easy-living to extreme unlivable conditions. Someone should try this; I think it will induce speciation as organisms emerge that can survive farther and farther into the frontier.

However, this is not enough; while a frontier like this might induce speciation, the two species won't mix; they will stick to their own habitats, to which they are best adapted, and repel intruders. We want to get two species to coexist stably in the same sim.

OK, how about looking at real life. In nature, animal species always differ in certain key areas, or they would compete too fiercely with each other and one would die out. Species distinguish themselves by things like
-what they eat
-where in the habitat they live (I.e., tree-dwellers and ground-dwellers)
-the size scale they live on (I.e., insects do not really compete with mammals, even though they may live in the same places and eat the same stuff)
-any other important stuff?

If two species do not share all of the above characteristics, they can probably coexist peacefully.None of these really work in DB, though (maybe pond-mode and/or gravity allows species to specialize in certain areas of the habitat?). The habitat is pretty homogenous, there is only one food (the veggie), and all bots are pretty much the same size. Perhaps we could create some diversity in food sources, though. Can an environment be created in which several significantly different autotroph species stably coexist? The competition between autotrophs is at least as fierce as that between heterotrophs: the species that is best at not being eaten will be the sole survivor.

Perhaps I simply don't understand how to set up a stable predator-prey environment in DB. In the sim I'm running I got frustrated trying to get a predator-prey equilibrium and took an easy way out by forcing total sim energy to remain constant, eliminating population spikes and crashes. This method, though, won't work if there are multiple autotroph species; one of them will still outcompete the other. However, if you have, say, two different veggie species and two different heterotroph species that each eat different veggies, it should be possible for each food chain to reach a predator-prey equilibrium. But I foresee problems arising when a heterotroph emerges that can eat more than one kind of veggie at least moderately well: it will hunt one veggie to extinction before its population crashes, and then you have lost the diversity in food sources and the whole sim will collapse to a two-species sim.

So why doesn't this happen in nature? Well, different plant species occupy different parts of a habitat; for example, there are different plants at different heights in a rainforest. This can't be all that keeps plant species from outcompeting each other though; how is it that many plant species coexist on the forest floor? I don't know.

So I guess what I'm thinking is that it should be possible to arbitrarily vary the sim settings at different areas in the sim, providing sub-habitats suitable for distinct species of autotrophs and heterotrophs. This is pretty much what inter-sim teleporters provide, but it is hard and ugly to set up teleporters to create many distinct subsims and gradually varying conditions.

Is it possible to modify the new bucket code to allow for different sim settings in different buckets? It would be especially neat if the settings could change over time.

Is the code at http://opensvn.csie.org/DarwinbotsVB/ current?

</rambling>

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Thoughts on speciation
« Reply #1 on: April 07, 2008, 02:03:32 AM »
No, the source is quite old.  I think Eric is planning on releasing the current source sometime soon though.

Looking at nature I think the trick is population sizes.  Right now we have populations in the hundreds, or maybe thousands.  But there are millions or even billions of life forms in most ecosystems.  The size involved helps create stability, which in turn helps encourage speciation.

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Thoughts on speciation
« Reply #2 on: April 07, 2008, 03:39:41 AM »
Yeah, I think sim size is what's especialy holding people back, but I still think it sounds like a cool idea to have more than one setting. Would also be fun to see if some species end up using maxvel or something to determine if they're entering a "bad" environment. I wouldn't be certain that the species would never mix, with sexual reproduction you never know what could happen...
I'll try to make a single plug and play gene that can be inserted at the end of a bots code to introduce sexual reproduction... not so sure it should include a conspec as originaly planned though... it could just end up inhibitting evolution... might make one with a conspec and one without and see which works. (Think conspec is only needed if you're going to use it for combat, if you insert the gene in an evo bot it shouldn't matter, the bot might die out in IM but would leave it's genes in circulation in a more potent species.)

I tryed running a larger field with pacifist in it... the whole thing froze somewhere around 9000 bots... and 9000 cells realy isn't much... I have a more exiting eco system going on in my mouth.
Just saying you can't expect the same degree of evolution to arise, and I can't think of any way you could compensate for the fact that evolution is just a lot more stable with 5 gazillion cells than it is with an average of a couple of thousinds.
If you're going to make the idea possible, also make it possible to adjust radiation level, this would also be a cool way to start off zero bots in a bucket with intense mutations and let them move on to more stable areas. Not saying that alternating between 1/16 and 16X mutations isn't very helpfull, but having areas with different mutations would allow you to have a more stable area where the successfull bots can stay as they are and get whiped out by mutated bots that come in to the area.
Also while we're on the topic, it seems like using "find best bot" will often find what I would call the worst bot. If a bot evolves to create small offspring and eat them it seems like DB thinks it's very successfull because it has plenty of resources and offspring... but in reality it doesn't have a single living offspring. Basicaly if I want to coppy a bot to run it in another environment I need to watch out for any bot that seems able to reproduce without killing it's offspring and use that... not eating your own babies is a very important part of evolution...
Just saying I've often moved sims between computers or changed the environment a lilte, and I always used "Find best bot", and the bots I picked out where often baby eaters and not very fit to survive. I know I should have saved the sim, but thought that function worked better than it did...

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Thoughts on speciation
« Reply #3 on: April 07, 2008, 03:46:31 AM »
"Best bot" is a hard heuristic to determine, because whatever rule you use there's probably a way to game the system.

Offline The_Duck

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
Thoughts on speciation
« Reply #4 on: April 07, 2008, 04:03:34 AM »
Quote
Looking at nature I think the trick is population sizes. Right now we have populations in the hundreds, or maybe thousands. But there are millions or even billions of life forms in most ecosystems. The size involved helps create stability, which in turn helps encourage speciation.

[!--quoteo(post=1375405:date=Apr 7 2008, 02:39 AM:name=)--][div class=\'quotetop\']QUOTE ( @ Apr 7 2008, 02:39 AM) [a href=\"index.php?act=findpost&pid=1375405\"][{POST_SNAPBACK}][/a][div class=\'quotemain\'][!--quotec--]I tryed running a larger field with pacifist in it... the whole thing froze somewhere around 9000 bots... and 9000 cells realy isn't much... I have a more exiting eco system going on in my mouth.
Just saying you can't expect the same degree of evolution to arise, and I can't think of any way you could compensate for the fact that evolution is just a lot more stable with 5 gazillion cells than it is with an average of a couple of thousinds.[/quote]

Yeah, I agree; our pathetic processor speeds compared to the machine that the universe runs on make it hard to hope to evolve the same complexity. But I think we can probably handle more than a 2-species ecosystem.
« Last Edit: April 07, 2008, 04:05:22 AM by The_Duck »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Thoughts on speciation
« Reply #5 on: April 07, 2008, 05:32:16 PM »
What you are proposing is essentially an "environment grid". The idea's been around for a very long time (at least 4 years), it's just that no one could implement it reasonably. If I remember correctly, Eric is planning to add some rudimentary env. grid, but I have no idea how far he got with that.

What you can do meanwhile is to use the tools that are there already. Turn off the "wrap-around - this will create "open space", "edges" and "corners" - different ecosystems can develop there. Add shapes to sub-divide your sim into smaller populations. or to create local environments (bunch of small shapes in one corner of your sim, none in the other).  There are settings that create gradients on sim environment. Turn on the gravity - you'll create the possibility of bottom-dwellers and floaters. Turn on "pond mode" that creates a gradient of light intensisty from top to bottom. Enable long-lived corpses, which will fall to the bottom and provide alternative (to veggies) source of energy.

Of course, you'll have to increase you sim size and population sizes. If you come up with a fun environment, one way to do that is to post it here and let other people to run your sim in parallel. I'd certainly be happy to do that, I'm sick of F1 mode.
"Never underestimate the power of stupid things in big numbers" - Serious Sam