32
Introduction to System Dynamics: NetLogo

Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

  • Upload
    buingoc

  • View
    226

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

Introduction to System Dynamics: NetLogo

Page 2: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

1

Using NetLogo

There are multiple ways to use NetLogo, but to make a dynamic system model you need to use the System Dynamics Modeler. To get there, open Net Logo and click on the “Tools” drop down menu. Then select “System Dynamics Modeler” from the list of options. You can also use the keyboard shortcut: Ctrl + Shift + D.

There are four basic components of a NetLogo System Dynamics model. For now, just play around with placing the elements as you learn about them. After that you will learn how to build a simple model.

A Stock is a collection of the stuff being modeled; it could be anything from a population to

the amount of money in your bank account. They are added using the button. Click the button then click in the diagram area to place a stock. The tan rectangle that appears will have a red question mark in it meaning you need to give it a name and initial value. Double click the stock to input these values.

Flows add or subtract from the value of a stock. Click on the button to add a flow. Click and hold the mouse in the diagram area to place the beginning of the flow then drag the mouse to where you want the flow to end. Flows can start or end in either a stock or empty space, but at least one end must be connected to a stock. When you double click to change the name and value of a flow, you will be able to input equations as well as values to the flow.

Variables are used to modify stocks and flows. They can be equations or constants. Use the

button to place a variable. They must be named and can have a constant or an equation as their expression.

Links tell the program how to connect the stocks flows and variables. The button is used to add links. Click and hold where the link should begin and drag the mouse to the end of the link. Links must connect two elements of the diagram.

To practice using the program lets make a very simple model of a growing population with unlimited resources.

1. First you will need a stock to represent your population. Add one and give it the name of the animal you want to use, for example an octopus population. Give it an initial value of 10. Uncheck the “Allow negative values” box so that you don’t end up with negative octopuses.

2. Now we need a way to change the number of octopuses in our population. To do that we will

add a flow into Octopuses called octopus-births. Click the button and then click to the left of the Octopus stock. Drag the mouse into the Octopus stock and release the mouse.

These instructions are written for NetLogo version 5.1.0. If you are using a different version of the program some steps may be slightly different.

NetLogo Version 5.1.0

Page 3: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

2

3. Notice how the arrow on the flow comes from nothing and goes into the stock. This means flow will pull values from outside our system and add them to the stock.

4. Name the flow and set the expression to 1 for now (you will need to change it later).

5. To tell the model how quickly to add to the population we will need to add a variable. Call it

octopus-birth-rate. 6. Give the variable a value of 20. This will add 20 octopuses to the population each year. 7. Now connect the variable to the flow with a link. Make sure it points from the variable to the

flow.

8. You now have a variable that will affect the flow of octopuses into the stock, but you still need

to tell the program how that relationship works. Double click the flow and replace the 1 with octopus-birth-rate.

9. You have now created a very simple model! Make sure to save it before continuing. Then answer the questions below before learning how to run the model in the next section.

Which direction is your flow arrow pointing? Why is this important? What would happen if it were pointed the other way? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Why do you think the names for the variable and flow have dashes (-) in them? Try taking them out and see what happens. Why might they be necessary? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Note that you are able to use both numbers and letters as expressions. Computers think of them as basically the same thing!

Numbers vs. Letters

Page 4: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

3

Try changing the expression of the flow to something other than octopus-birth-rate, (maybe just birth-rate) what happens? Why does it have to be octopus-birth-rate? Keep this in mind if you have problems in the future. _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Review Since you now have a map of your fist model let’s review what we have learned. A stock is a noun and represents something that accumulates such as a population, biomass, nutrients, water, enzyme concentration, or money. They can also be completely non-physical accumulations such as knowledge or fear. Stocks can only change as a result of flows into or out of them. The flow is controlled by other variables and stocks, which are connected to the flow with links. This is all very well, you might be thinking, but how is it useful? We need to have a way of running the model to see how the population changes. The next section will explain how to run your model.

Running your model

1. Click back to the main NetLogo window. (That’s the one that you opened the System Dynamics Modeler from.)

2. Because NetLogo usually is not used for dynamic modeling, we need to set up a few parts of the code. Click the “Code” tab (located at the top of the screen next to Interface and Info) and type the following: You can also copy and paste it from this document.

to Setup

ca

system-dynamics-setup

end

to Start/Stop

system-dynamics-go

system-dynamics-do-plot

end

3. Now move back to the Interface tab to begin to build your interface.

4. Create a “Setup” button by clicking the drop-down menu on

the left: and selecting “Button.” The button next to it should now be highlighted. Click in the white diagram area to the left of the black box to create a button. Type “Setup” into the Commands box and click OK.

In some other versions of NetLogo, the code tab is called “procedures.” In both cases it is used to add coding that controls the model but it is used more extensively in non-dynamic models.

The Code Tab

Page 5: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

4

5. Next, create another button to start and stop the model. Because you already created a setup button, “Button” should still be highlighted in the drop down menu. All you need to do to add another one is click “Add” then click in the white interface area. Type “Start/Stop” into the commands box and check the “Forever” box before clicking OK.

6. Click the drop-down menu again, but this time select “Monitor” and add a monitor to your interface. It will tell you the number of Octopuses in the population. Type “Octopuses” into the reporter box and set the Decimal places to 0. You wouldn’t want .35 of an octopus would you?

7. Finally you can add the graph. Select “Plot” on the drop-down menu and

add a plot. Call it “Octopus Population” and change the pen name to “Octopus.” You should also label the axes.

Different versions of NetLogo might have slightly different looking dialog boxes. The important part of this step is to change the pen name. Make sure it is exactly the same as the name of your stock. In this case it is “Octopuses.” Variations like Octopus or Octopi will not work.

Help! My Plot box looks different!

Page 6: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

5

8. Make sure that you change the speed slider at the top of the window to “slower.” The exact placement doesn’t matter.

9. Your interface should now look something like this:

Use the space below to draw a graph of how you expect the population to change over the period of 50 years. Imagine the octopuses being introduced to a part of the ocean with no predators and unlimited food, space, and water. How would their population change? This sort of graph is called a “Behavior over Time Graph” or BOTG (pronounced botchi). It represents a baseline hypothesis of how we think the world works.

0

100

200

300

400

500

600

700

800

900

1000

0 10 20 30 40 50

Po

pu

lati

on

Years

Octopus Population

If you want to move or resize anything on the interface tab, click and hold somewhere on the white background part and drag the mouse over the object. You can then click on the object and use the black dots in the corners to change the object’s size.

Moving Objects on the Interface

Page 7: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

6

After you have drawn your BOTG, click the “Setup” button you created to setup the model then click “Start/Stop” to begin running the program. Click it again to stop the model. How did your model compare to your prediction? Record your results on the graph below. If you want to run the model again, click “Setup” to clear the previous run first.

Review Questions Did your BOTG match your results? How were they similar? How were they different?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

How do populations with unlimited resources really grow?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

How could we improve our model? What could we add to make the model match the growth what we would expect? Remember that we are dealing only with growth for the moment. _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

0

100

200

300

400

500

600

700

800

900

1000

0 5 10 15 20 25 30 35 40 45 50

Po

pu

lati

on

Years

Octopus Population

Page 8: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

7

Adding a Changing Birthrate The problem with the model was that the current population of octopuses did not affect the rate at which octopuses were being born. The more octopuses there are, the more octopus eggs will be laid! Can you fix the model to produce exponential growth? If you can’t figure it out, look at the next few steps.

1. Return to the map you made of your model in the System Dynamics Modeler window.

2. The flow rate needs to be dependent on both the octopus-birth-rate and the number of octopuses in the population. This means you will need to link each of those elements to the flow.

3. Now you need to rewrite the flow expression to use those values. Double click on the flow and change the expression to octopus-birth-rate * octopuses.

4. Change the value of octopus-birthrate from 20 to 0.2. This will tell the model to add 20% of the total octopus population to the octopus stock each year.

Run your model again and record your results below:

0

100

200

300

400

500

600

700

800

900

1000

0 5 10 15 20 25 30 35 40 45 50

Po

pu

lati

on

Years

Octopus Population

The computer only understands particular symbols in equations. Use the symbols below to make sure the computer understands.

Operation Normal Symbol

Computer Symbol

Add + +

Subtract − -

Multiply × *

Divide ÷ /

How to Write Expressions

Page 9: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

8

How does this new graph compare to your BOTG? Is it exponential growth?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

This is a big improvement on the linear line we graphed earlier, but it is still missing an essential element. We know that octopuses don’t live forever, in fact, most live less than a year. Let’s add a death rate to the model to fix the problem. Can you do that on your own? If you need help, look at the instructions below.

Adding a Death-rate

1. Adding a death rate means that we need a way for

octopuses to leave the stock. To accomplish this we can add another flow, this time out of the stock. Name it octopus-deaths and give it an initial value of 1 for now.

2. Add a variable called octopus-death-rate and give it a value of 0.1.

3. Use links to connect the Octopus population stock and the variable to your new flow.

4. Rewrite the expression for the flow to octopus-death-rate * Octopuses.

Play around with running your model! Change the value of the

death-rate. How does the octopus population change? Try setting the death-rate and birth-rate to the same value. What if the death-rate is greater than the birth-rate? Record the results of a few different combinations on the next page.

When writing expressions, make sure to put spaces between operations (such as * or /) and the values you are using. For Example: Octopus-birth-rate * Octopuses

NOT

Octopus-birth-rate*Octopuses

Spaces in Expressions

Page 10: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

9

Test 1 Birth-Rate: _______

Death-Rate: _______

Population in 50 years: ______

Observations: ___________________

_______________________________

_______________________________

_______________________________

_______________________________

_______________________________ Test 2 Birth-Rate: _______

Death-Rate: _______

Population in 50 years: ______

Observations: ___________________

_______________________________

_______________________________

_______________________________

_______________________________

_______________________________ Test 3 Birth-Rate: _______

Death-Rate: _______

Population in 50 years: ______

Observations: ___________________

_______________________________

_______________________________

_______________________________

_______________________________

0

200

400

600

800

1000

0 10 20 30 40 50

Po

pu

lati

on

Years

Test 1

0

200

400

600

800

1000

0 10 20 30 40 50

Po

pu

lati

on

Years

Test 2

0

200

400

600

800

1000

0 10 20 30 40 50

Po

pu

lati

on

Years

Test 3

Page 11: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

10

Review Questions

Which of your tests do you believe best represents the real way octopus populations vary in the wild? Why? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

How could you figure out which test was actually most representative? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

You used your model to generate a hypothesis about the birth and death rate of octopus populations in the wild. Scientists often use computer models this way as well. What are some other things that can be modeled but are much harder to study in real life? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

What might still be missing from this model?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Page 12: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

11

Carrying Capacity

Remember, we started this model by saying that the octopuses were in an ocean with no predators and unlimited food, water, and space. Of course such an ocean does not exist. The octopus population is going to run up against limits. Those limits are the carrying capacity of the ocean. When the population runs up against those limits, the death rate will increase, sometimes greatly. Let’s build a model with a carrying capacity of 1000.

1. First we need to add a variable called carrying-capacity. Set its expression to Octopuses / 1000. 2. Now we need to link the Octopuses stock to the variable and the variable to the octopus-death-

rate. 3. Adjust the expression for octopus-death-rate to carrying-capacity * 0.2. Make sure that your

octopus-birth-rate is reset to 0.2.

Look closely at your model. What will happen when the octopus population reaches 1000? Will the population decrease or increase? Before you click start, sketch a BOTG of what you think will happen to population.

0

200

400

600

800

1000

1200

0 10 20 30 40 50 60

Po

pu

lati

on

Years

Octopus Population

Page 13: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

12

Now run the model. Does your graph look something like this?

This model produced a graph that is commonly called an “S” curve or sometimes a logistics curve.

Because our model is very simple, the curve is nice and smooth. The octopuses grow at an accelerating rate for a short period of time and then the population levels off close to the environmental carrying capacity.

What factors might set the environmental carrying capacity for octopuses?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

How would this curve be different for a real world population?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Page 14: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

13

Extensions

Option 1 In the natural world, growth rate is rarely a fixed constant. Growth rate will depend on many

different factors such as weather, food, and shelter. These factors vary, giving the population varying growth rates. How can we change our model to account for this variation? One possibility is to make the growth rate random.

Change the expression for octopus-growth-rate to (random-float .2 ) + .1. This will select a random number between 0 and .2 and then add .1, giving us a range of random numbers between .1 and .3 for the growth rate. What happens when you run your program now? You will see that now the population can actually rise above the carrying capacity but it always drops back down.

Option 2 In 1845, Pierre Verhulst published an equation that produces population growth on a curve

similar to the one you created. His equation is ∆𝑁 = 𝑟(𝐾−𝑁

𝐾). 𝑁 is the population, so ∆𝑁 (delta N) is the

change in the population. 𝐾 is the carrying capacity or maximum possible population, and 𝑟 is the reproductive rate or birth rate of the population. Try to build a model from this equation, how is it different from your earlier model? Is the curve the same or are there slight differences?

Page 15: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

14

Predator-Prey Relationship We have now created a good simple model of a growing

population; however, there are very few populations that exist in isolation. One thing our environment is missing is other organisms. Let’s build a model representing two populations interacting. As we do so, it is important to remember the following points:

A. A model is a visual statement of a hypothesis. It is the statement: “This is how I think the world works”.

B. A model is never completely correct. C. Models should be as simple as possible.

What are some possible implications of point A?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Explain why point B is true.

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

How does point C contradict point B?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

What do modelers need to do to make sure all these points are accounted for when they make models?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Imagine that you are making a model airplane. You want it to be exactly correct so you make it precisely the right size, use all the same materials as an airplane and make sure it flies like an airplane. What have you built? A real airplane! Models need to be complex enough to be useful but making them too complex can also be a problem.

A Model Airplane

Page 16: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

15

For this model, we will start with a population of fish preyed upon by a second population of sharks. Open up a new NetLogo window to begin your model. Because you have had so much practice with this already, we won’t give you as much help.

1. Start out by drawing the stocks for your predator and prey with the appropriate flows and links

to produce a growth curve for each. Don’t worry yet about naming them or giving them expressions, you can do that later.

2. How should we connect the two populations together? Because we want to keep the model

relatively simple, we will assume that the fish die only when eaten by a shark, this means we can delete the fish-death-rate.

3. The number of fish that die depends on two variables: the shark population and the fish population. More predators mean that more prey will be captured and high prey populations will generally make it easier for a predator to find and capture the prey, increasing the prey deaths. Connect the fish-deaths flow to those two stocks.

4. Despite their best efforts, no predator ever succeeds 100% of the time; some prey will always escape. The ratio of attempts to successes defines the predator efficiency; the greater the efficiency, the more frequent the success. Add a variable called predator efficiency and connect it to fish-deaths.

5. The fish population death rate is now dependent on the shark population. But doesn’t the amount of prey the sharks have affect their birth-rate?

6. The fish population and the predator efficiency both affect the shark-births so you can link them as well.

Page 17: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

16

7. Can you now name each piece and add the formulas?

Fish-birth-rate: 0.01

Fish: 1000

Fish-births: Fish * fish-birth-rate

Sharks: 10

Shark-efficiency: 0.0003

Fish-deaths: Fish * Sharks * shark-efficiency

Shark-birth-rate: 0.6

Shark-births: shark-birth-rate * sharks * shark-efficiency * fish

Shark-death-rate: 0.15

Shark-deaths: Sharks * shark-death-rate Here is where each ones goes:

8. The next step is to set up your model’s interface. Remember how to do that? Add a Setup and

Start/Stop button, and a monitor and plot of the Shark and Fish populations. If you forgot how you can find it earlier in this worksheet. The only change would be to make sure you add two pens to the plot, one called Sharks and another called Fish. Remember that they have to be

spelled exactly as you have them on the stocks. Check the box to get a legend on your graph.

The numbers used in models almost always come from experiments. People do research and determine a value for say octopus birth rates. Other values come from hypothesis like the ones you made when changing the death rate of the octopuses.

How do we decide the numbers?

Page 18: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

17

Before you run the model draw a BOTG (behavior over time graph) on the chart below:

Now it is time to actually run the model! Press the Setup button then the Start/Stop button. Make sure that the speed slider at the top is set to “slower” so that you can really see what is going on.

0

200

400

600

800

1000

1200

1400

0 100 200 300 400 500 600 700 800 900 1000

Po

pu

lati

on

Months

Fish and Shark Populations

Page 19: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

18

Record your results on the graph below:

Review Questions Does your resulting graph look like the one on the right?

__________________________________________________

__________________________________________________

__________________________________________________

__________________________________________________

How do your results compare to your prediction on the BOTG above? __________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

What are some reasons for the differences? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

0

200

400

600

800

1000

1200

1400

0 100 200 300 400 500 600 700 800 900 1000

Po

pu

lati

on

Months

Fish and Shark Populations

Page 20: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

19

It is important to remember that this is a model of an unspecified shark and an unspecified fish. As such, the model does not describe the specifics of any particular interactions, say great white sharks and tuna, or basking sharks and plankton. Because the model is generalized, a great deal has been left out of it. How might you change your model if you were looking at the interaction of great white sharks and tuna? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

How about basking sharks and plankton?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

photo credits coming soon

Page 21: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

20

NetLogo: Modeling Ocean Acidification

Page 22: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

21

Ocean Acidification and its Impacts

As the issue of ocean acidification came to light, many scientists began to research what the result of more acidic oceans might be. We now know, for example, that changing pH makes it harder for shelled organisms to build shells and that some aquatic plants grow faster with more access to carbon dioxide. Overall, studies have shown that the effect of acidification is not uniform; some organisms gain and some lose. It turns out that elevated levels of CO2 also affect small reef fish. In a comprehensive article (found at http://jeb.biologists.org/content/215/22/3865.full) Munday et al. describe the “dramatic effect” of both elevated carbon dioxide concentrations and rising temperatures on “a wide range of behaviors and sensory responses” in various tropical fishes.

Let’s look more closely at one of the studies that Munday et al. use in their article. It describes how ocean acidification could affect clownfish–predator interactions. The article can be found at http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2919925/ or in PDF form at http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2919925/pdf/pnas.201004519.pdf

Do you think you could build a model of this data? It is similar to a predator prey relationship but there are slight differences that might influence how you set up your model. After you read the article, the following steps will help you create your model.

1. List the key words of the article. These are words you might use if you were trying to find the article on Google. Try to come up with at least ten! ______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

______________________________________________________________________________

2. Write down the main points of the article. These should be statements that link together the terms you came up with above

These studies provide more information about ocean acidification. Overview including many effects: http://www.annualreviews.org/doi/abs/10.1146/annurev.marine.010908.163834 Effects on coralline algae: http://reinat.com/lpmnm/benthic_reef_environment/lesson5/Kuffner_et_al2007NatureGeo.pdf

Further Reading

Page 23: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

22

3. Create a concept map that links your terms together as you specified in question #2.

Page 24: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

23

4. Talk to your classmates and add any elements or connections you might have missed. Does your map tell the same story as the article?

Building the Model

Now we know how the more acidic water will affect the clownfish, but how will the changing prey populations affect the predators? Unless we want to build some really big tanks to model the whole ecosystem, the only way to answer this question is through modeling. Let’s build a model to show us how changing CO2 concentrations effect the relationship between clownish and their predators.

Page 25: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

24

Open the predator prey model you made earlier and follow the steps below to convert it into a model for this data.

1. First, because the model is no longer generic, change the names of the model components to Predator and Clownfish.

2. Next we will need to add a line to the code of the model. From the interface window, click to the code tab and enter if ticks >= 2000

[ stop ] into the code just after to Start/Stop. This will keep the model tidy by stopping it after 2000 months. Because our model is simple and based on relatively little data, we cannot predict too far into the future. Your code should look like this when you are finished:

3. Now we need to add a variable for CO2 concentration. Set its initial value to 390, the current

value in most parts of the surface ocean. 4. To make the variable changeable, we need to add a slider to the interface. Click back to the

interface window. 5. Click on the drop down menu for adding components and click

. Now the button should be highlighted and you can click in the diagram area to add the slider. Name it user-Carbon-Dioxide-Concentration.

6. Set the minimum to 390, the maximum to 800 and the increment to 10. 7. Set the initial value to 390.

8. Go back to the model map and change the Carbon Dioxide concentration

expression to user-Carbon-Dioxide-Concentration. Now, that variable will take the value from your slider.

9. How should we connect this variable to the rest of the model? Where do you think you should draw the link? If the fish don’t hide from the predators, more fish are going to be eaten and the more food the predators will have. This makes it seem like the CO2 concentration is going to effect the efficiency, but how do we write the relationship?

Based on the article data for day 8, fill out the chart below:

CO2 Concentration (ppm) Time Fish Spent in Predator

Cue (%)

The “user” is very important. It tells the computer that this is a variable you (the user) want to be able to control. This way the computer will recognize the value in the variable as the value from the slider.

Why the “user” in the slider name?

When you start to make major changes to your model, it can be smart to save a new version using Save As so that you can always return to the first version if you have to.

Using Save As

Page 26: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

25

390

550

700

850

Now we need to figure out the relationship between the two variables. Graph that data on this chart.

You can see from your graph that the data is not linear. Because the concentration does not have an effect before 500, the graph is flat and then increases sharply. Draw a linear line onto your graph to represent the best fit line for all the data. Try to create a line that passes as close to all the points as possible. Using a graphing program like excel, or by hand on the graph above, come up with a best fit equation that relates the two variables. Record your equation here: % 𝑡𝑖𝑚𝑒 𝑠𝑝𝑒𝑛𝑡 𝑖𝑛 𝑝𝑟𝑒𝑑𝑎𝑡𝑜𝑟 𝑐𝑢𝑒 =____________________________________ What problems would we run into if we tried to use this equation in the model? What would happen to the ecosystem with a predator efficiency of 20? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

0

10

20

30

40

50

60

70

80

90

100

300 400 500 600 700 800 900

Tim

e s

pe

nt

in p

red

ato

r cu

e (

%)

CO2 Concentration (ppm)

CO2 ppm on Fish Behavior

Make an X Y (Scatter) plot with the data table you filled out before. Then click the Layout tab, select the Trendline option and click Linear Trendline. The program will create a line. To figure out the equation, right click on the trendline, select format trendline, and check the box that says display equation on chart.

Creating a best fit line in excel

Page 27: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

26

_____________________________________________________________________________________

We need to convert the percentage into a predator efficiency that we can use in the model. The percentages have two decimal places to the left of the decimal point. The efficiency we have been using in the model is 0.0003; it has four decimal places to the right. If we want to convert our percentages to efficiencies, what do we need to do? Rewrite your equation to equal efficiencies between 0.0000 and 0.001 instead of percentages from 0 to 100. Record your new equation here: 𝐸𝑓𝑓𝑖𝑐𝑒𝑛𝑐𝑦 =_____________________________________________ We still are not quite done. What problems would we run into if we tried to use this equation in the model? What would happen to the ecosystem with a predator efficiency of 0?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

We know from the previous model that the optimal efficiency is 0.0003, so why not change the value for

390 ppm from 0 to 0.0003? We can do that by adding 0.0003 to the equation.

Record your final equation here: 𝐸𝑓𝑓𝑖𝑐𝑒𝑛𝑐𝑦 =_____________________________________________

You should have arrived at an equation fairly similar to this one:

𝐸𝑓𝑓𝑖𝑐𝑒𝑛𝑐𝑦 = 0.000002 ∗ 𝐶𝑂2 𝐶𝑜𝑛𝑐𝑒𝑛𝑡𝑟𝑎𝑡𝑖𝑜𝑛 − 0.0005

This equation can be used in your model. If you got a different equation try that one too, but if your

model doesn’t work come back and use this one. Go to the model map and change the expression of

the shark-efficiency variable to your equation. Your finished model should look something like on the

next page.

Page 28: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

27

Run the model at different settings and record your data in the table below.

CO2 Concentration

(ppm)

# of population

peaks

Did the system crash?

Observations

390

450

500

550

600

650

700

750

800

Page 29: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

28

Conclusion What trends do you notice as the carbon dioxide concentrations increase?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Can you find a “tipping point” where the system collapses?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Are there any problems with your model?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Systems, and the models of systems, vary in how sensitive they are to change. Sometimes a small change generates a big change in the system, but sometimes the system can absorb huge changes while remaining relatively stable. How sensitive would you say your model is?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Page 30: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

29

How could you make your model more resistant to change?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

In your model the predators only have a single prey: clownfish. What would happen if you added another prey? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

What if the second prey you added was one that the predators didn’t like as much, so the predators only ate them when the clownfish population dropped? ________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

It has been estimated that the oceans absorb about 25% of the carbon dioxide emitted by humans. However, the ocean has been absorbing the excess CO2

from the atmosphere since the start of the industrial revolution and the rate has not always been 25%. Andrew Dickson, a marine chemist at the Scripps Institution of Oceanography UC San Diego, says that at the beginning of the industrial revolution the oceans were absorbing much more. What implications does this have on the future of carbon dioxide levels both in the ocean and in the air?

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

This article describes how the ocean absorbs carbon dioxide in more detail, including the work of Andrew Dickson: https://scripps.ucsd.edu/programs/keelingcurve/2013/07/03/how-much-co2-can-the-oceans-take-up/

An article on ocean CO2 Concentrations

Try adding a second prey species, one that the predators don’t like as much, to the model. Maybe say that the new prey will only be eaten if there are less than 500 clownfish.

Extension!

Page 31: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

30

Dickson has hypothesized that many factors affect this trend. Each ton of CO2 absorbed makes it harder to absorb the next ton. Warmer temperatures also reduce the amount of solvents water can hold so global warming will make further CO2 absorption difficult. Warmer temperatures decrease ocean mixing so the CO2 saturated water stays on the surface instead of being mixed into the unsaturated waters below. The reduced mixing prevents proper nutrient cycling, so the algae that would normally take up some of the excess cannot grow. What could eventually happen if humans do not do something to curb carbon dioxide emissions?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Luckily, public awareness of ocean acidification is growing. Reports of the impacts of acidification appear frequently in the scientific and popular press; the Seattle Times produced a really excellent, multi-part series on the impact of ocean acidification. What impact of ocean acidification do you think will have the largest ramifications? Possibilities include the threat to oceanic ecosystems, increasing problems with food security, and the inability of the ocean to continue mitigating climate change.

____________________________________________________________________

____________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

http://apps.seattletimes.com/reports/sea-change/2013/sep/11/pacific-ocean-perilous-turn-overview/

Read the Seattle Times Series at:

Page 32: Introduction to System Dynamics: NetLogo - Seattle …seattleacademy.info/wp_pdfs/academics/dnetlogo.pdf1 Using NetLogo There are multiple ways to use NetLogo, but to make a dynamic

31