point. In theory the ESS is not resistant to mutants and polymorphisms will occur
(however, see Scenario 5 of Chapter 4, in which the “unstable” ESS of Scenario 3 of
this chapter is stable when parameters are inherited according to a quantitative
genetic model). The plot of elasticity versus the trait value of the resident shows
that there is convergence but the invasion exponent plotted against the trait value
of the invader shows that invasion is possible in the rightmost scenario. There are
two other possible pairwise invasibility plots, obtained if the areas defining the
positive and negative growth of the invader are reversed (Figure 3.4). In both cases
the elasticity plotted against the trait value of the resident shows that there is no
convergence and the invasion exponent versus the trait value of the invader
shows that invasion is possible in both scenarios. The scenario on the left is
termed an invasibility repellor and that on the right a Garden-of-Eden ESS.
Suppose the trait under study, say X, can reasonably range from X
min
to X
max
.To
produce a pairwise invasibility plot we proceed as follows:
Step 1: Divide X
min
to X
max
. into N
inc
increments. This set of values will be applied
to residents and invaders: for example, in R
X.Resident <- seq(from¼X.min, to¼X.max, length¼N.inc)
X.Invader <- X.residents
Step 2: Create the set of all combinations for resident and invader types. This can
be done using the R function expand.grid
Combinations <- expand.grid(X.Resident, X.Invader)
Step 3: For each combination calculate the population growth rate of the invader
entering a resident population. If this growth rate is positive then the invader trait
value has a higher fitness than the resident trait value. The calculation of the
invader growth rate will typically be estimated by calling some function, say POP.
DYNAMICS that has the following elements in sequence:
a. The call to function POP.DYNAMICS passes the parameter value, in this case
ALPHA, and the multiplier for the invader parameter value, in this case called
Coeff. These two parameters could be passed as a vector of length 2 or, as done
below, as separate elements.
POP.DYNAMICS <- function(ALPHA, Coeff)
ALPHA.resident <- ALPHA # Alpha for resident
ALPHA.invader <- ALPHA*Coeff # Alpha for invader
b. Iteration of population growth of the resident population alone until it has
passed any effects due to initial starting conditions (this does not necessarily mean
that the population will be at equilibrium as it might exhibit cyclical or chaotic
behavior or subject to environmental fluctuations). For example, suppose we run
the resident-only time trace for 50 generations and the time trace after the invader
is introduced for 300 generations. To hold the entire trace, which we might wish
to do for later plotting, we need a matrix of 350 rows.
INVASIBILITY ANALYSIS 177