Generating Complex Ecologies in a Computer

topThis post is about some of Occupy Math’s current research. The picture at the left represents a 200×200 cell “ecology”. Each cell in the grid is occupied by one type of simulated critter. The critters compete with one another to take over cells (the rules for this are lower down in the post). The simulation is run for 1,000 seasons and one of the 40,000 creatures is mutated each season to create a new type of critter. We start with ten types of critters, but mutation sometimes drives the number of types of critters into the hundreds by season 1,000. The picture above is the state of the simulation, with different colors representing different critters, in the thousandth season. This project is generating a diverse collection of these small, complex artificial ecologies.

Occupy Math will begin with the motive for this project. If we are contemplating interventions in an ecological system, we could get really accurate ideas of the results by working in the real ecology, but we might also wipe out swaths of the countryside. Making copies of bits of the ecology inside sealed domes would be a nice step back from crazy, but copying an ecology takes years or even decades and a sealed dome that can support an ecology is wicked expensive. Something like this approach — streams in a lab research facility populated from natural streams, does exist, originally built by Proctor and Gamble Corporation to make sure their products were safe after they went down the drain. Streams are a special case — they are a type of ecology that transfers rapidly into the stream in the lab.

What’s the point?


With the exception of a few places like the stream lab above, the first step is to test interventions in simulated, artificial ecologies. That is what Occupy Math is trying to generate. Take a look at the second example, shown to the left, in season 1,000 of evolution. Here is the problem: ecologies are complex cross-linked systems. That means that one model ecology is completely inadequate. If we look at the behavior of thousands of ecologies, there is more hope that general patterns or “laws” of ecology might emerge. To get anything like a reasonable result, a researcher needs between dozens and thousands of examples. That is the meat of this post: a way to generate as many simulated ecologies as you need!

How do they work?

Occupy Math is drawing on the technology of fashion-based cellular automata. In the earlier post Occupy Math was using these mathematical constructs to make maps for a game. For this goal, only six types of “critter” are needed and we never introduce new ones. To make a complex ecology Occupy Math needs a large, open-ended set of critter behaviors. We get these by having the critters be strategies for playing the game called iterated prisoner’s dilemma. The critical properties of this game are (i) we have a mathematical proof that there is no “best” strategy for this game so there cannot be some super-creature that will always take over and (ii) the game is fast and easy to play. If you want to know about prisoner’s dilemma, follow the link.

Let’s connect playing a game with the fashion-based automata. A critter, sitting on a grid, plays the four critters north, south, east, and west of it and gets a total score. To update the grid of cells, each cell is taken over by the highest scoring critter — either the one in the cell now keeps the cell by scoring highest, or one of his neighbors with a higher score takes over. This is how the critters compete for territory. After the competition, the way one creature on the 200×200 grid plays is changed randomly. This is called mutation and it means new types of critters keep showing up. We start with ten types of critters and then let evolution go. The last season, after 1,000 generations of digital evolution can take on many different appearances.


Notice how, in these examples, there are often types of critters that make one-dimensional filaments or walls? These are critters that play badly against other critters of the same type, but well against other types. This means they form walls, or even perforated walls, that divide the ecosystem into regions. The top left example shows a few types taking over an ecology. The diversity of synthetic ecosystems this (simple) code can generate is endless. The snapshots of the last season also fail to capture that these systems are often dynamic.

How can you use these virtual communities?

The problem Occupy Math is studying is that of assembling communities of critters which can live together. If you have a damaged ecosystem that needs to have something introduced to stabilize it, then you need an intervention protocol. If you are studying which intervention techniques are best at staving off invasive species, then you need stable communities and examples of critters that can invade them. The artificial ecosystems are the starting point for this sort of computational brainstorming. Occupy Math is not just making pretty pictures; he is also saving the “genetics” (strategies for playing prisoner’s dilemma) that each creature uses. This means that the evolved ecologies themselves provide numerous examples of critters that can be used in the simulations.

Another example of an interesting question is that of community interfaces. What happens if we drop the left and right half of two communities into the simulator. Does one take over? Do they form a new community? If they do form a new community is it more or less diverse than each of its two progenitors? Making thousands of complex virtual ecosystems creates an computational environment that lets a researcher test thousands of instances of these questions and get some sense of which sorts of outcomes are more or less likely.

All of these applications are speculative. Actually getting information about living ecologies from game theory ecologies will require luck, or possibly many experimental cycles, before useful results emerge. There is a reason we call it RE-search. The first biological tests will be in petri-dish communities of bacteria created by one of Occupy Math’s collaborators in England. This will definitely appear as a blog post if it works, and it is the simplest biological system we have available.

Why evolve communities?


The alternative to evolving communities is to try to design them, either from theory or by trial and error. Digital evolution is much faster than either of these techniques and, a key point, it lacks human bias. Occupy Math’s evolutionary simulator is running a very general situation with more possible outcomes that there are elementary particles in the universe. It is sampling small but complex ecosystems from a titanic space of such systems. Another point worth considering is that many of the possible game-playing strategies are not that good, and only a few hundred good strategies for prisoner’s dilemma are in the scientific literature. Evolution locates thousands of strategies good enough to survive in an ecological simulation, quickly. This makes the problem of locating a set of strategies diverse enough that results based on them are meaningful far easier. There is also a degree to which the proof is in the pudding: at the end of this project Occupy Math will have a better notion if this is an effective way to generate complex artificial communities, but the pictures give him good hope.

Occupy Math will report results of this project if they turn out to be interesting. They probably will because there are thousands of games in addition to prisoner’s dilemma we can choose, and there are many different ways to encode the evolvable game-playing agents, and we can always make the artificial worlds bigger, and we can increase the rate at which mutants show up, and … well, you get the idea. Remember, if you have questions or ideas Occupy Math would love to see them in the comments.

I hope to see you here again,
Daniel Ashlock,
University of Guelph,
Department of Mathematics and Statistics

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s