Skip to content
Paolo "Nusco" Perrotta edited this page Jul 23, 2015 · 25 revisions

The Less-than-Holy Grail

Here is what I'm trying to achieve with Narjillos.

Every science has a dream. Physicists want the Grand Unified Theory; computer scientists want Artificial Intelligence; and in silico biologists want Open-Ended Evolution.

In Open-Ended Evolution, simulated creatures evolve indefinitely, becoming ever more interesting and complex–just like they do in the real world. But nature doesn't like complexity: why should a creature become complex if it's living in a simple ecosystem? Simulated ecosystems are not nearly as complex as the real world, so artificial creatures get complex up to a point, and then stop evolving.

In Narjillos, I'm not even aiming for the holy grail of Open-Ended Evolution. I'll be happy if I reach a more humble goal: the creatures become complex enough that I go "wow". The current program falls short even of that relatively modest goal. It can evolve good snake-like or bipedal swimmers, but they barely ever get any more interesting than that.

To get "wow"-inducing creatures, I need to make the system ever more complex, which means more and more simulation code. Not good. The alternative, as ever, is to look at nature.

Getting to Arms Races

Creatures in nature become increasingly complex because they're living in an increasingly complex ecosystem–one made up of other creatures. This triggers something called an Evolutionary Arms Race: creatures become more complex and specialized by competing with other creatures, that are themselves becoming more complex.

There are two kinds of arms races. In a Symmetrical Arms Race, the creatures compete with other creatures of the same species, like the pines in a forest growing higher than their neighbors to catch some extra sunlight. In an Asymmetrical Arms Race, creatures compete with other creatures of different species–like cheetas and gazelles.

Narjillos already engage in symmetrical arms races. Snake-like swimmers tend to become longer and thinner to beat their peers to the food. Bipedal swimmers develop slimmer bodies and larger feet for the same reason. This fratricide arms race is the force that shapes the creatures' bodies. Triggering symmetrical arms races is easy. The hard problem is getting an Asymmetrical Arms Race, which could result in more interesting, very specialized creatures that have that "wow" effect.

To get an arms race between species, I need two things.

  1. I almost certainly need Complex Interactions between the creatures, because they can't compete asymmetrically if they don't interact. Right now, all they do is steal food from each other. That doesn't cut it–you won't make me go "wow" by getting slightly longer feet that get you to the food one fraction of a second earlier. So, Complex Interactions come early in my to-do list.
  2. Oh, and I also need to have species. Doh! As it turns out, that's its own challenge.

Getting to Speciation

"Species" are (to simplify my biology) pools of genomes where each genome is similar to others in its pool, and different from genomes in other pools. When different species evolve out of a shared ancestor, that process is called Speciation. Guess what–Speciation is one more hairy problem in Artificial Life. Most systems (including the current version of Narjillos) quickly converge on a single species. This dominating species takes over the world and drives everyone else to a quick extinction. So, how do simulations get those species to diverge?

Many simulations encourage Allopatric Speciation, that is speciation driven by geographic isolation: essentially, you build a wall in the world, and watch different species evolve on the two sides of the wall. However, you might remember that my ultimate goal is an Asymmetric Arms Race. For that to happen, I need Complex Interactions, so I probably need the separate species to come back together at some point and interact the hell out of each other. But here is a problem: in the current simulation, the newly reunited species wouldn't stay separate. Instead, one of them would take over the world–just like at the beginning of a simulation, when different randomly generated creatures quickly go extinct to make space for one dominating species. So I need something better than Allopatric Speciation–I need species to diverge and stay distinct while sharing the same geographic environment. That's called Sympatric Speciation.

Now, that's where it gets interesting. It seems that you can get long-term Sympatric Speciation in silico if you have two things:

  1. An environment that supports Ecological Niches. If there are no niches that force creatures to specialize, then there is no reason not to have a single generalist species.
  2. Once the creatures start specializing, you need some mechanism to discourage the diverging species from merging again. This is particularly critical if you have Sexual Reproduction, because sexual reproduction re-shuffles the genes and prevents them from drifting apart. A good mechanism to keep genomes separate in the presence of sexual reproduction is Assortative Mating: a creature must be more likely or willing to mate with another similar creature, rather than a different one.

Narjillos don't have Sexual Reproduction (at least not yet), so I'm hoping that I won't need a mechanism like Assortative Mating. I'm not sure yet, but for the time being, I'm trying to get speciation without all that stuff. However, there is little doubt that I need Ecological Niches. Right now, all the creatures make their living the same way, by swimming to food. If all the species compete for the same prize, then the winner takes it all. I need an ecosystem that supports different prizes for creature that choose different specializations.

I'm experiment with Ecological Niches now. I introduced a Self-Regulating Ecosystem: different creatures can consume and produce various elements in the atmosphere, so one species might benefit from the presence of another species that produces the right element. I'm having some success in getting separate species that stay distinct so far. That is my current ongoing focus.

The Grand Plan

To wrap it all up, here are the goals of Narjillos:

  1. Complex Interactions between the creatures.
  2. A Self-Regulating Ecosystem, that creates Ecological Niches.
  3. If 1 and 2 still don't trigger speciation, then I might need Sexual Reproduction, and then Assortative Mating. But it looks like I have some speciation going on already.
  4. Once I have speciation, I hope that I'll get closer to an Asymmetrical Arms Race.
  5. The Arms Race might help the system evolve a creature that makes me go "wow".

(All that being said, this is just a plan. It will keep changing as I groom, pivot, or abandon this project. The real, short-term goal of Narjillos is to have fun. In that respect, it's working great.)

Clone this wiki locally