On these pages I am investigating the evolution of interactions in the MacArthur/Levins resource competition model.
This page explains the adaptive dynamics concepts and questions I'm using, and includes Sage source code for the models.
Child pages use this theory and code to investigate specific cases of the models:
- Selection Gradients/MacLev/One Species, One Resource
- Selection Gradients/MacLev/Two Species, Two Resources
MacArthur-Levins population dynamics
We start with a population-resource model:
where is the density of population , is the abundance of resource and the parameters are , an intrinsic population growth rate, , mortality rate, , the rate at which population captures resource , , the amount a unit of resource contributes to population growth, , the resupply rate of resource , and its maximum possible abundance.
This is a fine model on its own, but I am interested in Lotka-Volterra models, which are models in which there is a simple number describing how populations and interact with each other. Using a Lotka-Volterra model will let us look at how these interaction terms change, telling us how evolution drives these populations to become more competitive, antagonistic, or mutualistic.
In the above model the populations interact indirectly by taking resources from each other, but we can make the interactions direct by making simplifying assumptions, and this is what MacArthur and Levins did.
We do this by assuming that the resources come to equilibrium very quickly compared to the populations. Under this assumptions, we can hold the population sizes fixed and solve the second equation above for when :
We can rearrange the terms of this to have the standard Lotka-Volterra form:
I'll be interested in how the interaction terms change as the populations coevolve, because this expresses whether competition becomes stronger or weaker. When two coevolving populations compete for resources, we expect them to differentiate from each other and lessen the competition, but I'd like to look at both that and other cases, and do some detailed analysis about when it lessens and when it greatens.
Adaptive dynamics in the Macarthur-Levins model
And now here's where we look at how that single population evolves in the Mac-Lev model. I won't review the details of how adaptive dynamics is done, but in summary: suppose that certain aspects of the population dynamics depend on the characteristics of the population, and those characteristics are able to mutate. Then over time, mutants will arise, and if they are better able to thrive in the environment they encounter than their forefathers, they will gradually replace them, and the characteristics of the population will slowly change.
In this model, it's , , and that have to do with the populations, so we introduce a phenotype variable representing the characteristics of the population and suppose that , and are determined by the value of . Then we can find out how changes in time in response to the conditions created by the population dynamics, and also how the other values such as , , , , change as evolves.
The change in , to make a long story short, is driven by how the population growth rate of a rare mutant varies with the mutant's phenotype . That is, there's an "invasion speed" that is closely related to the population growth rate , and the change in (that is, ) is in proportion to .
To be precise:
where is a coefficient accounting for the frequency and size of available mutations. In simple cases, it's a constant, while when available mutations are not quite so simple and uniform, it may not be (as we will see).
Adaptive geometry of ecological parameters
Now let's go deeper into what happens in that evolutionary change. We're considering several different ways to describe the evolving population, and now I want to give them clearer notation:
- , the "underlying phenotype". I'm going to be using a scalar , and in fact just one of them, so I can call it , but in general it's a vector of numbers, which is what I mean by writing it in boldface.
- , the "ecological phenotype"
- , the "interaction phenotype"
These are vectors that are functions of one another. Using a suitable vector notation in our calculus, we can write the adaptive dynamics of directly, ignoring the intermediate variables and for the moment:
The sign is for vector or matrix transposition: with the notation I'm using, is a column vector - a point in a vector space of values - and is a row vector - a thing that operates on points. Since is a column, we need to transpose the derivative of to make it match. The sign is for the partial derivative with respect to the first argument.
Here we see the usefulness of this row-and-column-vector notation, because it lets us use the chain rule in a natural way: when we write , we're multiplying a matrix by a column vector to get another column vector, in just the way we want.
I like to write for the "selection gradient" of -- the direction of increasing fitness in the space of possible values. I'm very interested in the role of this selection gradient in various spaces, as we'll see. Notice that in the derivation above I switched from to
These different selection gradients are very different objects: they're vectors expressing the direction of selection in different spaces -- here, the space of values vs. the space of values. Soon enough we'll also be looking at the selection gradient in space.
Using the above chain rule manipulations, we can write
Like or whatever other vector, would evolve in the direction of if it were to mutate in all directions equally. However, it doesn't do that: since is a function of , it only mutates in directions given by mutations in . The matrix multiplying in the dynamics of is a projection matrix, restricting the motion of to directions allowed by the mapping between and . (To be precise, is not precisely the projection of onto the subspace parametrized by unless the columns of are unit-length; otherwise there's some scaling by positive numbers involved. But it definitely transforms the vector into a direction allowed by the restriction to points parametrized by .)
The motion of is the same way, except that it is influenced by all the populations in the system, not just one, because two phenotypes are involved in each value. For that reason, the dynamics of has some extra terms...
Adaptive geometry of interaction terms
Expanding out the dynamics of the vector has more involved than doing it for the vector, because depends on all the different phenotypes , not just one we're concerned with. Also, we have to keep careful track of , because it appears in in two different ways: on the left-hand side of each term, which describes how population (the "patient") is affected by an encounter with population (the "agent"); and also on the right-hand side of the term, as the "agent" in an encounter between and . This distinction is important because every encounter has two effects, the effect on oneself and the effect on the other, and we'll see that selection treats these two effects very differently.
So to be clear, we'll work with the notation
This expression is made up of two somewhat complex terms. The first term, the term, expresses the change in the interactions experienced by population due to change in population in its patient role. I refer to this as the direct effect of selection on population . The second term, the sum of vectors, expresses the change in population 's interactions due to change in all the different agents it encounters, including population itself in its agent role. I refer to this as an indirect effect of selection on the various populations.
In the constrained case, as with , the motion due to is modified by a transformation matrix. Here, though, there's also another term dealing with the effect of changing values as the second argument to . Let's expand that out one step further:
Here I'm using colors to distinguish three different vector quantities, which I'll soon plot in the same colors:
- , the resultant change in , blue.
- , the direct effect of change in as patient, green.
- , the indirect effect of change in all agents including , purple.
Here are the Sage classes that do the work for the Mac-Lev models. above. They use generalized Sage machinery that's stored at SageDynamics.
Now here's the MacArthur-Levins resource competition model.
Loading WorkingWiki file "maclevmodels.py.step" dynamically. If it doesn't load, click to view the page statically.