SOEE 5582: Tools and Techniques in Ecological Economics
Assignment 1: Agent-Based Modelling
(50% of final grade, estimated time: 47 hours)
Aims and objectives
• Critical understanding of agent-based modelling
• Ability to perform and interpret calculations using NetLogo
• Formulation of a research report
Submission deadline: Wednesday, 17th March, 2 pm
Reports should be submitted electronically through Minerva, with supporting materials (e.g. netlogo model files) submitted by email to the topic leader before the deadline. The standard university penalty of 5 marks per day (including weekends) will be applied for late submission. Any request for an extension should be made to the School of Earth and Environment Student Support Office (or Student Education Service) at see-ses@leeds.ac.uk before the submission deadline.
Report structure
The report should be structured like an academic paper. You are encouraged to follow this general structure:
1. Introduction: should include aims and objectives, project structure, choice and justification of data selection, critical understanding of the wider literature (both directly relevant and background material for context).
2. Methodology: should include a clear description of the methodology used.
3. Results: should include a description of the results obtained (as well as relevant graphs,
tables, and figures), a critical evaluation of the results obtained and an understanding of
their uncertainties and limitations.
4. Discussion and Conclusion: should include a critical interpretation of your results, both with
respect to your specific objectives and the wider existing literature, and a synthesis of the main conclusions.
Agent-Based Modelling option (topic leader: Dr Jonathan Busch)
Assignment
1. Select either the case study provided (common pool resource management, see supplied description in Appendix A) or an own individual project (discuss idea with topic leader).
2. Implement the model with the ODD protocol and the hints from the supplied description (Minerva).
3. Run simulation experiments according to research questions you have identified.
4. Analyse and interpret the data obtained from the simulation runs.
5. Write up an individual report of your findings. Be sure to connect your results to the wider
literature (ABM examples in that field), and include a critical discussion of the advantages and limitations of the methods you have used.
Assessment for ABM
In each of these categories, the presentation of the work (e.g. written style, clarity of expression, correct use of references, consistent referencing system, spelling, grammar and layout) will be assessed.
1
2
3
4
Introduction (20 %)
Distinction
Merit
Pass
Fail
Clarity of aims and objectives
Research project structure (coherence and flow)
Choice and justification of data
Critical understanding of literature and wider context
Methodology (20 %)
Distinction
Merit
Pass
Fail
Critical understanding of the ABM framework (including strengths and limitations of the methodology)
Application of ABM (assessed through the supporting material you email us, i.e. Netlogo model)
Results (30 %)
Distinction
Merit
Pass
Fail
Description and presentation of key model structure and behaviour
Critical evaluation of your results, both in themselves and in the context of the wider literature
Analysis of uncertainties and limitations
Discussion and conclusion (30 %)
Distinction
Merit
Pass
Fail
Critical interpretation of your results, both with respect to your specific objectives and the wider existing literature
Synthesis of the main conclusions
AppendixA: ABMCommonPoolResourceManagement
Project Focus
The task for this project is to develop an agent based model of a common pool resource management problem and use it to investigate the impact of a range of factors and possible interventions on the sustainability of the system. This document describes the system you will be expected to develop a model for, thereby not requiring you to spend much time on justifying the conceptual model. Instead, you should focus your efforts on implementing the model correctly and carrying out detailed analysis (including sensitivity analysis) to illustrate the conclusions that can be drawn from your simulation experiments.
In the following, the model and analysis you should carry out as the basis for your report are described in detail. On the VLE is a template for the model that has the general structure and some of the code you will need to implement the model. You will have to complete the model based on the instructions detailed below. Start by putting the information contained in this document into the ODD format, keeping it as concise as you can whilst retaining enough details to implement a model.
Problem Description
The sustainable management of forest resources is a common example in common pool resource management research. Forestry typifies extractive commons dilemmas where the resource (the forest) is a common pool resource that it is difficult to exclude extractors from, but is diminished by excessive extraction. Individual extractors decide their own level of extraction and their decision can be based on a combination of individual factors, social influences and a centralised organisational influence.
For this project, our system consists of a group of 250 households that extract firewood from a surrounding forest. Households decide at every time step whether to attempt to extract enough firewood to meet their subsistence requirements or to extract a set higher amount. Their decision is made on a combination of three factors:
1. self-interest – households benefit from higher extraction and seek to maximise this,
2. rule – depending on the state of the forest, a central organisation attempts to enforce a rule
of subsistence extraction, and
3. neighbours – each household is influenced by what extraction level its neighbours previously
followed.
Amongst the households are a number of ‘celebrities’ that will always extract at the higher rate. These celebrities are also the most socially connected households.
The forest resource has an initial value, grows at a given rate, and has a maximum capacity beyond which it will not grow. Extraction by households becomes less efficient as the forest resource declines. The extraction rule is set according to the fraction of forest remaining compared to its maximum potential capacity, and is updated at regular intervals.
The task for this project is to analyse the dynamic behaviour of the resource and extraction by households and to test the effectiveness of possible interventions. In particular, the importance of the form of the social network connecting households, and the position and number of celebrities within it should be investigated. The impact of varying the relative importance households give to their three decision factors should be tested. And policies such as capping maximum extraction levels, or varying how often the rule is updated, should be tested.
Details
Households
There are a total of 250 households including celebrities. Household extraction efficiency is determined by the amount of forest remaining,
𝜂 = 𝐹 /𝐹
! “#$
where 𝐹 is the current forest remaining and 𝐹 is the maximum capacity of the forest. The ! %&’
household subsistence extraction level should be set such that it is 0.15 tonnes per month when the forest is at maximum capacity. The high extraction level should be set at 10 times this level.
Social Networks
The model should use two possible network types to represent the social network connections between households: a small world network (https://en.wikipedia.org/wiki/Small-world_network) and a preferential attachment network (https://en.wikipedia.org/wiki/Barab%C3%A1si%E2%80%93Albert_model). The important difference between these networks is that in a small world network each household is approximately equally well connected, whereas in the preferential attachment network there are highly connected ‘hubs’ that have many more connections than other households. These highly connected hubs will be the celebrities. The Netlogo code to create these networks is already included in the template.
Households Decisions
At every time step in the model, households make a decision to either follow the subsistence extraction level or to follow high extraction. To implement this decision making, a threshold is set between 0 and 1. If a random number generated in this range is below the threshold, the household will follow the subsistence extraction level, otherwise it will go for high extraction. The threshold is calculated using:
𝑐h𝑜𝑖𝑐𝑒 𝑡h𝑟𝑒𝑠h𝑜𝑙𝑑 = (1 − 𝑠𝑒𝑙𝑓 𝑖𝑛𝑡𝑒𝑟𝑒𝑠𝑡)(𝑟𝑢𝑙𝑒 ∗ 𝑟𝑢𝑙𝑒 𝑎𝑑h𝑒𝑟𝑒𝑛𝑐𝑒 + (𝑛𝑒𝑖𝑔h𝑏𝑜𝑢𝑟 𝑐h𝑜𝑖𝑐𝑒 ∗ (1 − 𝑟𝑢𝑙𝑒 𝑎𝑑h𝑒𝑟𝑒𝑛𝑐𝑒),
where 𝑠𝑒𝑙𝑓 𝑖𝑛𝑡𝑒𝑟𝑒𝑠𝑡 is set to 0.1 by default and reflects the households innate desire for high extraction, 𝑟𝑢𝑙𝑒 represents the enforcement of subsistence extraction, 𝑟𝑢𝑙𝑒 𝑎𝑑h𝑒𝑟𝑒𝑛𝑐𝑒 determines the weighting households give to rule following compared to neighbourly influence (i.e. a number between 0 and 1), and 𝑛𝑒𝑖𝑔h𝑏𝑜𝑢𝑟 𝑐h𝑜𝑖𝑐𝑒 is the fraction of neighbours that follow the rule.
The 𝑟𝑢𝑙𝑒 is calculated according to:
𝑟𝑢𝑙𝑒 = 1 − 1 𝐹 /𝐹
where the factor of 1⁄2 ensures that the enforced extraction is low enough to allow the forest to recover somewhat. This rule should be updated at a regular schedule, for example every 24 months.
Forest Growth
The forest has a maximum capacity of 25,000 tonnes of firewood, it will not grow larger than this. Unlike the households, which are individual agents, the forest should be represented as a single entity where a variable represents the amount of forest remaining. Forest growth should follow the equation:
2! “#$
𝐹(𝑡 )=𝐹(𝑡 )+𝐺>𝐹 −𝐹(𝑡 )?𝐹(𝑡 )/𝐹
! ()* ! ( “#$ ! ( ! ( “#$
where 𝐹 (𝑡 ) is the forest remaining at the previous time step, 𝐹 (𝑡 ) is the forest remaining in ! ( ! ()*
the current time step, and 𝐺 = 0.025 is the monthly growth rate. This form of equation prevents the forest from exceeding its capacity.
Implementation Tips
Geography does not matter in this model, to get the household networks to look clear, use a world size of 25×25 with the origin in the centre and a patch size of 16. Each tick of the model should represent a month, and a suitable timescale for the dynamics is about 1000 ticks. Households should not change their behaviour every month, instead let a fraction (10%) of households change their extraction level at every time step.
Initialising Households
In your setup procedure, create 250 households at the [0,0] coordinates. Initially, half of them should be rule followers.
Your model should have a choice between initializing either a small world network or a preferential attachment network, in the template this is set using a ‘chooser’ input in the interface tab. Depending on the choice made, your setup procedure should then call either the ‘setup-small- network’ submodel or ‘setup-preferential-network’ submodel. The ‘setup-small-network’ submodel requires a global parameter ‘r’ that determines the proportion of random connections, set this to 0.05.
Following the network setup, change the breed of a given number of households to be celebrities. To select the most connected households use the following code:
ask max-n-of high-consumer-number households [count link-neighbors] […]
(look the max-n-of command up in the NetLogo dictionary to see how this works.
Household Decisions
The household decision process described above can be implemented in a number of ways, but I would recommend the following structure:
0. Each agent (household & celebrity) will need two variables; one for its extraction level, and one that indicates if it is following the rule or not.
1. calculate the rule following and rule breaking extraction levels based on the baseline values and the current extraction efficiency, e.g. let rule-extraction rule-extraction- baseline * extraction-efficiency
2. calculate the neighbour-choice as the fraction of neighbours that follow the rule.
a. Hint 1: use the link-neighbors command to create an agentset of connected
neighbours.
b. Hint 2: some agents may not have a neighbour, check for this with an if statement
and set these agents to follow the rule.
3. set the rule threshold parameter according to the equation listed above, using the
neighbour-choice variables you have just calculated.
4. generate a random number between 0 and 1 using the random-float command. If this is less than the rule threshold, set the households extraction level to the rule-extraction level, otherwise set it to the rule-breaking level.
a. Hint: don’t forget to set both the rule following indicator and the extraction level here. And you could change the agents colour here too for the interface to be more informative.
b. Hint: this method of generating a random number and comparing it against a threshold is a very commonly used pattern when you need to randomly carry out an action with a given probability.
This project is loosely based on:
Agrawal, A., D. G. Brown, G. Rao, R. Riolo, D. T. Robinson and M. Bommarito II (2013). “Interactions between organizations and networks in common-pool resource governance.” Environmental Science & Policy 25: 138-146.