Skip to content
Paolo "Nusco" Perrotta edited this page Mar 10, 2015 · 25 revisions

The Less-than-Holy Grail

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. In nature, however, creatures only becomes as complex as they needs to be in their own ecosystem. Why evolve something complex when your ecosystem doesn't reward you for that? 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 simpler goal: the creatures become interesting enough that I go "wow". The current program falls short of my (not overly high) "wow" threshold. It can evolve good snake-like or bipedal swimmers, but they don't get any more interesting than that.

To get ever more complex 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, who are becoming more complex themselves.

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, two or more different species compete with each other–like cheetas and gazelles.

Narjillos already do symmetrical arms races: snake-like swimmers tend to become longer and thinner to beat their peers to the food. This fratricide arms race is the force that shapes the creatures' current bodies. 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 inter-species arms race, I need two things.

  1. I almost certainly need Complex Interactions between the creatures, because they can't compete in asymmetrical ways 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 to the food one 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 a 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: essentially, you build a wall in the world, and watch different species evolve on the two sides of the wall. But remember, 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 probably won't stay separate. Instead, one of them will take over the other, and soon we'll be back where we started, stuck with a single 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 Specialition in silico if you have two things:

  • 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.
  • Once the crearures start specializing, you need some mechanism to discourage the nascent species from merging back into a single species, opposing the divergent push of ecological niches. This mechanism can be Assortative Mating: a creature must be more likely or willing to mate with another similar creature, rather than a different one. Assortative Mating keeps the species separate, but to get Assortative Mating, you also need Sexual Reproduction: two creatures mix their genes to reproduce.

Currently, there are no Ecological Niches in Narjillos. All creatures make their living the same way, by swimming to food. To get niches, I need to have more complex and flexible models for the creature's bodies, and once again I need Complex Interactions–for example, creatures eating each other. I might also need a Self-Regulating Ecosystem of some kind, even if I don't know yet which shape that would take. Otherwise, one dominant species can still cover all the Ecological Niches by itself. I didn't think enough about this stuff yet.

Another challenge is that Narjillos reproduce by cloning themselves. If I want Assortative Mating, then I need Sexual Reproduction instead. So, I need to add both items to the Grand Plan.

And here it is...

The Grand Plan

Here are the goals of Narjillos:

  1. A Self-Regulating Ecosystem, and then Ecological Niches.
  2. Sexual Reproduction, and then Assortative Mating.
  3. Complex Interactions between the creatures.

1 and 2 should result in Speciation. Speciation plus 3 might get the final prize: an Asymmetric Arms Race.

(All that being said, this is just a plan. It will probably change as I groom, pivot, or abandon this project. The real, short-term goal of Narjillos is to have fun. It served me well so far.)

Clone this wiki locally