Ecosystems (Rabbits & Grass) writeup

in StarLogo TNG
An ecosystem is a community of living organisms—along with their
environment—that interact to produce a stable system. In this unit, we will
explore the basic principles of ecosystems and gain an understanding of their
dynamics through the use of simple simulations.
Typically, ecosystems are characterized by the energy flows between producers
(e.g. plants which convert the energy of the sun into edible starches and sugars)
and consumers (e.g. rabbits which feed on the grass, and coyotes which eat
the rabbits). An ecosystem can also be thought of as being comprised of
multiple food chains, along with the environment on which the food chains
A food chain is essentially a series of organisms, each dependent on each other
(and ultimately, on a few primary producers) for food. For example, in an
aquatic ecosystem, algae may be the primary producer, which is eaten by
aquatic insects, which are in turn
eaten by fish. The fish may be
eaten by larger fish, which are
predated upon by birds. The
different levels of producers and
consumers are called tropic
Oftentimes, ecosystems do not exhibit a simple producer-consumer relationship.
Insects, for example, may be eaten by many different types of predator, which
in turn are predated upon by several different types of species on the next
tropic level. This relationship in an ecosystem is known as a food web.
The Base Model:
The base model for this unit is a simple ecosystem that consists of rabbits and
grass. The grass reproduces at a certain rate, and the rabbits randomly wander
around the world eating the grass. If a rabbit stumbles across a patch of grass,
they will eat it and gain energy. If a rabbit gains enough energy, they will
reproduce. Conversely, if a rabbit wanders around too long without finding any
grass to eat, they will die.
With these simple behaviors in place, we will observe the system from the global
perspective to see the relationship between the amount of grass and the rabbit
populations. We will also instrument the model to gain a quantitative
understanding of the behavior.
The most important part of the model is the grass reproduction, since the rabbits
depend on grass to reproduce. Under a procedure, we have each agent
generate a random
number between 1 and
200. If the number is a 1,
the grass hatches an
offspring. The new grass
then sets its heading
randomly in a circle and
moves forward random 7
step. This simulates grass
seed spreading within a
local area.
Next, we will create the rabbit procedures.
The most important component to the model is the rabbit energy, which
determines when rabbits will reproduce and when they will die. Put an agent
variable block in the rabbits column and name it Rabbit Energy.
Next, Make the rabbits move around the world
randomly. Use a standard wiggle procedure to
make the rabbits randomly move around (left
random 46, right random 46 forward 1). We also
make the rabbits lose a small amount of energy
every time they take a step by using an inc
Rabbit Energy block found in the My
Blocks/Rabbits bin and -.02 in order to make the
rabbits lose energy slowly.
To make the rabbits
reproduce, we give
them a procedure. In
this procedure, if a
rabbit gains 8 or more
units of energy they will
hatch an offspring.
Reproduction has a
cost, however: a rabbit
loses some of its energy.
We make the offspring
set its heading randomly
in a circle and take two
steps away from its
parent. The offspring
also gets a small
amount of randomly
determined energy.
Lastly, the rabbits are given a
procedure to tell them what
to do if they run out of energy:
if their energy drops under a
certain amount they die.
We need to instruct the rabbits on
how to eat: We use a collision
block that makes them increase
their energy by 1 if they happen
to run into the grass. The grass
Next, we create a
setup procedure
that initializes the
world and gives the
rabbits energy. The
grass is made larger
than default and
colored red to
make it stand out
from the default
We also include
reset clock and
show clock blocks
in order to reset
plots and monitors,
and keep track of
the simulation time.
For the runtime, we will use a Run block
instead of a Forever block. The populations
of rabbits and grass may fluctuate wildly,
and it is easier to see the cycles if the
programs stops occasionally. We simply
call all of the existing procedures under the
run block.
To gather quantitative data from our model, we will set up two monitors to
count rabbit and grass populations, as well as a line graph to display population
data over time. Use the monitor block and rename it “Rabbits”, and add a
count rabbits block from the My Blocks/Rabbits bin. Do the same for Grass.
Lastly, add a line graph block and rename it Populations. Add in count rabbits
and count grass blocks and rename the data to rabbits and grass, respectively.
Using the model:
1) Run the model by first clicking the setup button, then clicking the run
button. What do you observe?
2) Can you identify an emergent patterns that develop?
3) How would you use this model to test a hypothesis?
4) What is your hypothesis? (in the form of a question)
5) How would you test the hypothesis?
6) What would you change in the model?
Possible Scenarios:
1). The ecosystem remains stable for an indefinite period of time. Note
that because of the need to balance the rates of rabbit reproduction and grass
regrowth, those variables must be precise to achieve this outcome, like
balancing a pin.
2). Rabbits go extinct. The rabbits tend to experience a population boom
in one location eat all of the food, and then subsequently starve. Because the
rabbit populations fluctuate wildly, there is a good chance the rabbits won’t
find enough food to continue their population to the next generation.
3). Ecosystem collapse. Both rabbits and grass go extinct. This happens
when the rabbits eat all the grass. Without any additional food to eat, they will
Ideas for Expanding the Model:
1). The model has very simple rabbit behavior. Their only means of
encountering food is if they randomly wander into it. Are there ways to improve
how rabbits search for food?
2). Rabbits instantly eat any food they come across regardless of their
energy level. Can you find a way to make the rabbits eat only when they are
hungry? What do you think this might do to the long-term stability of the
3). The rabbits have no predators. How might the addition of a predator
change the ecosystem?
4). Grass is killed when a rabbit eats it instead of being “eaten down” and
recovering like real grass. Can you find a way to make the grass behave more
realistically when rabbits eat it? Is the solution to change how the grass grows,
how the rabbits eat it, or both?
Related documents