Nick's Auto-Evo Algorithm (Episode 1)

Part 6.1: Intraspecific Competition

So we just implemented interspecific competition, which is competition between species, but what about competition within a species?

image
Two Terror Birds compete for the same prey

Intraspecific competition can very well affect the survival of a species. Say a T-Rex is roaming around looking for food. It’s possible that he spots a prey about the same time that another T-Rex spots a prey. They both chase for the prey, but only one gets to it first, making the other one have to hunt again. They could have agreed to chase different prey, but most species are not cooperative or altruistic, and many don’t even have the intelligence to be able to even discuss things in any way. As a result, the intraspecific competition actually increased the average hunting time of the species, even when there was no shortage of food.

What’s interesting to note is that Intraspecific Competition only affects the increase to hunting time, but has no effect on the fraction of food caught during shortages. This is because during a shortage, if one T-Rex catches a prey in a race with another T-Rex, that other T-Rex automatically loses that prey, so the differences cancel out. However, with the example I gave above, you can see why it still affects the time spent hunting (which applies with or without a shortage).

The only problem was that actually implementing intraspecific competition mathematically has been something I was wondering about for a while now, but I finally came up with an idea.

Intraspecific Competition

We can simulate intraspecific competition using a simple proportional model. And we’ll use the strategies you know and love, Proportional Estimations and Edge Cases!

Assume a Modelus Specius population has a very very small population in a patch, basically 1. He will face a very very small rate of intraspecific competition, basically 0%. This is because it’s almost impossible for another Modelus to beat him to a prey, since they’re just not there. As a result, he suffers essentially no increases to his hunting time.

But this will never happen, the populations of species will almost always be more than this in a patch. As you increase the population of Modelus, you increase the percentage of hunts he will fail due to intraspecific competition, AKA the average time he’ll have to spend hunting. We can model this using a simple relationship:

For every +1 organism/m^3 increase in the population density of Modelus Specius, there is a +0.1% increase in intraspecific competition, meaning there is a +0.1% increase in average hunting time.

Note that we’ve now added Population Density to the algorithm. This is represented as individuals per m^2 (or per m^3 if underwater).

Clustering will increase this number. At 0% clustering, there will be no effect on intraspecific competition. However, the more clustered a species is the more they will get in each others’ way, thus it will increase intraspecific competition. This gives us:

For every 1% increase in the clustering of Modelus Specius, there is a +0.1% increase in intraspecific competition, meaning there is a +0.1% increase in average hunting time.

Hopefully this also makes the Clustering trait a little more impactful on the simulation than it’s been so far.

Mathematically this looks like:

Intraspecific Competition = Intraspecific Competition Rate * Population Density * (1 + Clustering)

Note that the Intraspecific Competition Rate describes how fast the Intraspecific Competition of the species grows as a result of increases to population density or clustering. Intraspecific Competition Rate is a trait, it’s an innate behaviour of the species. Meanwhile, Intraspecific Competition is a Performance Stat, since it fluctuates with the changing levels of population density.

To summarize: Intraspecific competition simply describes what percentage of hunts are lost due to a member of the same species beating you to the prey. It technically can never reach 100%, because some members of the species have to be the ones winning, so it caps at around 99.99%.

Altruism & Cooperation

However, some species have evolved the ability to recognize their kin and even work with them and avoid conflicts with them. We still have a while to go before we get to intelligence and sociality, but for now we’ll create the potential for this feature when it is introduced in the future.

Increasing the altruism of your species will reduce how fast intraspecific competition increases with population density and clustering. Say the standard Intraspecific Competition Rate is +1.0%, an altruistic species might evolve to lower this to 0.5% or 0.1%. This represents social species that live in large groups and who have learned to avoid competing with each other.

2-Species Demo

So what should these changes do? The introduction of intraspecific competition should actually add as an additional limiter on the size of a species in a patch, on top of food. As a species grows larger and larger, there is more and more intraspecific competition which makes their hunting less and less efficient. This should actually help mitigate the effects of the Competitive Exclusion Principle that we observed last in Part 6, since the dominant species in a competitive relationship might not be able to fully take over the patch since they’ll face too much intraspecific competition. Let’s run the numbers and see the results:

The parameters of the demo are the same as in Part 6. Remember, Propagatus Maxima is the same as Modelus Specius in every trait except that it’s mating frequency is 0.6 times per month instead of 0.5. We’ll now add the following two trait changes/additions to Propagatus:

  • Clustering increased from 0% to 50%
  • Intraspecific Competition Rate set to +0.7% per 1 individual / m^3

Meanwhile, Modelus Specius has an Intraspecific Competition Rate of 0%, meaning it faces no within-species competition. Let’s see the results!

Interesting! Remember that the last time we ran the demo Modelus Specius was on its way to extinction, ending the 2 years at around 160 members. This time around Modelus is at over 400 members by the second year, and still at above 300 by the third! Clearly the intraspecific competition of Propagatus is holding it back from dominating the environment, even though it has the reproductive advantage.

It’s also interesting to note that Clustering actually has a significant impact now. Before, Clustering barely (and I mean barely) affected the average hunt distances even at the most extreme values, but now it plays a major role in intraspecific competition. Species that are clustered together will face a lot more competition between species members, and are better off evolving to live more solitary lives (think boars) OR to evolve cooperative tendencies so they can work together (think zebras).

3-Species Demo

Alright, time to crank up the simulation by a notch. We added a 2nd species last time, so now let’s add a 3rd! This species will be the exact same as Modelus Specius, but it will have slightly stronger muscles (3.0N/m^2 instead of 2.5N/m^2). To recap, the three species look like:

Modelus Specius: The typical species.
Propagatus Maxima: Same stats as Modelus Specius but Mating Frequency is 0.6 / month instead of 0.5, Clustering is 50% instead of 0%, and Intraspecific Competition Rate is 0.7% instead of 0%.
Minimus Rex: Same stats as Modelus but Muscle Strength is 3.0 N/m^2 instead of 2.5.

Let’s see the results:

Damn, even though Modelus Specius was able to hang in against the competition last time around, the double competition of Minimus Rex and Propagatus Maxima was just too much and they went extinct. It’s also interesting to see that Minimus and Propagatus do not seem to be pushing the other into extinction. Perhaps they will survive in an equilibrium? It could be that Minimus has the competitive edge because of the speed advantage, but Propagatus is able to “eat into” those losses with his increased mating frequency that covers for his starvation deaths. Or perhaps their declines are slower and we would need to run the simulation for longer.

Regardless, amazing to see the simulation still holding together with 3 species in the mix now! It’s really starting to feel a lot more like a living ecosystem compared to the first few parts of the series. It’s also really cool to see the results and predict what causes are leading to what outcomes. These interactions will only get more deep and exciting as we go!

Q&A

Before we close, we’ll take this moment to open the series up to for a Questions and Answers period for all readers. We’ve covered a LOT of content so far, and I want to make sure none of the readers are falling behind on their understanding. If you have any questions, comments, concerns, suggestions, or what have you on the series so far, submit it on our Discord, Subreddit, Facebook, or Twitter and I’ll answer as many as I can in the next post! You can also respond to the subreddit post that I’ll be making for this part shortly, or to the Devblog that will be coming out within a few days (that will be all about this series). Hopefully this Q&A can help bring us all up to speed on the series so far and address any ongoing confusions people may have.

Anyways, thanks for reading and see you guys next time!


Summary

New Performance Stats
Intraspecific Competition

New Traits
Intraspecific Competition Rate

Topics for Discussion

  • All feedback is welcome!
2 Likes