This lab is designed to have you discover a population model of logistic growth from observing the output of an agent-based simulation. The resulting model, by simply rewriting the equation in Exercise 4, should be of the form \[P_{t+1} = P_{t} + F(P_{t}),\] which deterministically determines the population size in the next generation as a function of the current population size. This is known as a discrete map, which will be the focus of our future investigations.
First, start by reading the ODD description below of an agent-based model of logistic population growth. Second, play with the resulting NetLogo model LOGROWTH.nlogo and work through the exercises at the end of this lab. Turn in your work as a knitted HTML file from your R-Markdown.
To create equations in R-Markdown, place your symbols/equation between the $$ characters. For example $$P_{t+1} = P_{t} + F(P_{t})$$ creates the above equation. Note that _ denotes subscript, ^ denotes superscript, and placing {} around text makes sure that everything in between is superscripted or subscripted. Also note that $$ makes the equation show centered on its own line. If you want to have math inline (i.e. on the same line), you can use one $, such as $P_{t+1} = P_{t}$, which gives \(P_{t+1} = P_{t}\). You can go greek as well if you want (but not necessary) with, for example, $$\alpha$$, which makes \(\alpha\).
Essentially, R-Markdown is using the \(\LaTeX\) document typesetting system. It seems that culturally, biologists mainly use Microsoft Word to format documents, while mathematicians mainly use \(\LaTeX\). If you are interested in all the fun symbols that can be created, check this page out!
https://artofproblemsolving.com/wiki/index.php?title=LaTeX:Symbols
This file describes a model of logistic growth. The initial idea came from Glenn Ledder at the October 2016 NIMBioS Quantitative Biology Working Group.
The model was designed to explore questions about logistic growth - in particular, to understand the growth of individuals in an environment with limited resources and size. The purpose is mainly for classroom use as an experiential model whereby students run simluations, visualize output, and then construct the discrete logistic growth map from the results.
The model has two kinds of entities: turtles and patches of empty land. The patches make up a square grid landscape of patches in a checkerboard pattern. Turtles are characterized only by their location, described as the patch they are on. Therefore, turtle locations are in discrete units, the x- and y- coordinates of the center of their patch. Patch size and the length of one time step in the simulation are not specified because the model is generic. Simulations go until the entire board is full; the length of one time step is not specified.
There is only one process in the model: birth and spread of the turtles to neighboring patches. On each time step, each turtle spreads to neighboring patches. The order in which the turtles execute this action is unimportant.
The model does not include direct interaction among turtles. Instead, interaction is implicit in that turtles are unable to spread to occupied neighboring patches.
Stochasticity is used to represent random birth and spreading into neighboring patches.
To observe the population dynamics, two plots are updated: (1) a plot of number of turtles as a function of time (ticks), and (2) a plot of the population change as a function of current population size.
The grid-size is initialized to 8 x 8 upon startup. The prob-grow is initialized to 0.1 upon startup. The turtles are initialized by creating four of them in the center of the region.
The environment is assumed to be constant, so the model has no input data.
The birth and spreading submodel defines exactly how turtles give birth and spread to neighboring patches. “Give birth and spread” corresponds to the simple creation of a new turtle in a neighboring patch. “Neighboring patches” are the four patches surrounding the turtle’s current patch (N, S, E, and W).
On each time step, each unoccupied neighbor patch of a turtle is colonized with probability prob-grow. A random number from a uniform distribution between 0.0 and 1.0 . If this random number is less than prob-grow, that neighbor patch is colonized.
Look at the code and make sure it matches the ODD description. Is there anything that is vague or doesn’t match the description?
I think it would be nice to define input data before stating that there was none, because while I understood that the environment was not built off any existing data, I did not understand all of what input data is without looking it up. For the submodel, instead of “the four patches surrounding the turtle’s current patch”, the author should have used the wording “the four patches in the cardinal directions of the turtle’s current patch”.
As grid-size is increased, describe what you see in plot (A) and (B). Explain the patterns that you see.
In plot (A), it appears that the change in population size follows more of a logistic curve shape when the grid-size is increased, because it pulls data from a greater population size/longer run experiment. This may be because at larger grid-sizes, the time to birth more offspring increases. In plot (B), it appears that the relationship follows a more defined negative parabolic curve, with increasing grid-size. This may be because once the population begins to hit the edges of the grid, the change in population growth rate decreases (graph hits the inflection point) as there is simply no way to continue birthing in those directions.
What type of (simple) curve fits the pattern that you see in plot (B)?
The best curve fit would be a (negative) parabolic curve.
Write down a function \(F\) for the resulting curve in Exercise 3. Note that the function satisfies the following formula:
\[\Delta P = P_{t+1}-P_{t} = F(P_{t})\]
ΔP = P(t+1) − Pt = F(Pt)
ΔP = aP(t) + bP(t) + c –> aP(t) + bP(t)
0 = as^4 + bs^2
Hint: Which points does the curve have to go through? (the x-intercepts: (0,0) and (s^2, 0))
\[\Delta P = aP(t)^2 - as^2P(t)\] \[\Delta P_{t+1} = P_{t} + aP_{t}^2 - as^2P_{t}\]