Evolution of resource use through behavior imitation
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Model purpose
What is the purpose of the model?
This model simulates the evolution of a population of resource users competing for the same resource. The model includes both biological reproduction and inheritance of behavioral traits and the evolution of behaviors through imitation biases. With the help of the model, we can observe how various imitation biases can differently influence the evolution of behaviors in a population and can lead to the spread of norms and traditions of sustainable or unsustainable resource use.
Entities and variables
What kinds of entities are in the model? By what state variables, or attributes, are these entities characterized? What are the temporal and spatial resolutions and extents of the model?
General environment
Changeable variables
- Living-costs: the costs that each agent has to deduct from his energy per iteration for basic survival
- Death-rate: The probability with which agents die independent of their energy level (these variables could be considered both a factor of the environment and a variable of the agents, but we list them here since they do not vary among agents and can be considered to be imposed by the environment)
Patches
There are 50*25 patches in the world.
Constant patch variables
(these variables and behaviors are always the same for all of the patches and in each iteration)
- Carrying capacity per patch : Ressource = 100, Agents = 1
- Growth rate of the resource = 0.3
- The resources on a patch regrow by a logistic growth function up to the carrying capacity: new resource level = current resource level + (Growth-Rate * current resource level) * (1 - (current resource level / carrying capacity)
Changing variables during a simulation
(variables that change as a result of the simulation)
- actual resource level of a patch in units
Agents
Agents are shown as humans and can have one of two resource consumption traits: sustainable (green color) or “greedy” (red color).
Constant agent variables and behaviors
(these variables and behaviors are always the same for all of the agents of this type and in each iteration)
- In each iteration, each agent moves to a patch with the most resources within a radius of two patches (reduced by the probability of chance-agents-move).
- In each iteration, each agent attempts to reproduce (reduced by the probability of 0.001 * energy level).
- All agents die if they reach the age of 80.
Changeable agent variables
(variables that are changeable by the user on the interface):
- Harvest-sustainables: the amount of resource units harvested per iteration by sustainable agents
- Harvest-greedy: the actual harvesting behavior of sustainable and greedy agents
- Reproduction: ability of agents to produce offspring
- Imitation bias: the kind of rule that agents follow as they imitate other neighboring agents:
- imitate the most successful: take on the behavior of the agent with the highest energy level
- imitate the majority: take on the behavior of the majority of agents
- imitate the minority: take on the behavior of the minority of agents
- imitate most experienced: take on the behavior of the oldest agent
- imitate parent: offspring take on the behavior of their parents (through whatever mechanism - genetic inheritance or behavior imitation)
- Imitation likelihood: the likelihood that agents will imitate others
- Behavior innovation rate: The probability with which agents switch to a new harvesting behavior (this is similar to mutation rate, but agents can switch during their lifetimes)
- chance agents move: the likelihood that agents move around (up to one patch per iteration)
Changing variables during a simulation
(variables that change as a result of the simulation)
*harvest-type: agents change their harvest type based on imitation rules and behavior innovation rate *harvested amount: the amount of resource units that is harvested by an agent in the current iteration *Energy level: the energy level (in resource units) on an agent *Age: each agent has a certain age, in each iteration the agent gets older by 0.1 units
Model Setup
What is the initial state of the model world when one clicks on Setup? Is initialization always the same, or does it vary among simulations?
- A world with 50*25 patches is created.
- The parameter carrying capacity is set at 100.
- The parameter growth rate is set at 0.3
- The initial amount of resource units on a patch is distributed randomly between 75 and 100.
- A number of agents, set by the parameter Number-agents, are randomly distributed on patches (maximum of one agent per patch).
- The initial level of energy of agents is set at living costs + 1.
- The age of each agent is set randomly between 30 and 50.
- A subset of agents, set by the parameter Sustainables, is given the harvest-type “sustainable”, the others are given the harvest type “greedy”; sustainable agents are colored in green, greedy agents are colored in red.
Model Processes
What happens in each iteration? Which entities do what, and in what order? When are state variables updated?
Outputs
What kinds of model outcomes can be observed on the interface? How do they emerge from model parameters, agent behaviors, and interactions?
In the world
Resource levels on patches change as they are being harvested and as they regrow. Agents move around, reproduce, and die. Depending on imitation bias and degree of agent movement, clusters of norms or traditions can be seen to form.
Output diagrams and monitors
Populations (% of carrying capacity)
The state of the resource and of the agent population in the world as percentage of total carrying capacity; resulting from resource harvesting behavior and resource regrowth, agent reproduction and death
Agent Population
The absolute numbers of sustainable and greedy agents and the total population size, resulting from behavior innovations, reproduction, and death
Trait frequencies
The relative frequencies of sustainable and greedy agents in the population, resulting from imitation, behavioral innovation, different reproduction rates, and death
Average energy of agents
average energy levels of sustainable and greedy agents, resulting from resource harvest, minus living costs and reproduction
Concepts and Principles
Which important concepts or principles are represented in the model?
The resource is characterized by two ecologically significant parameters:
- the carrying capacity: this is the largest possible amount of resources that can be present on a patch / in a certain area. In ecology, carrying capacity is often represented by the letter k. In this model, it is represented by the maximum growth height of the trees. In the real world, carrying capacity is influenced by biotic and abiotic factors like temperature and humidity or availability of other resources.
- the resource growth rate: this is the rate at which a resource grows back from one time step to the next. It is often represented in ecology by the letter r.
The resource grows along a logistic (S-shaped, sigmoid) population growth function according to the following formula: Resource state at the next point in time = current resource state + ( r * current resource state) * (1 - current resource state / k )
Trait variation There can be two variants of harvesting behavior in the population - sustainable or greedy. New trait variants can be introduced randomly in the population through the parameter behavior innovation rate.
Reproductive fitness Agents that harvest more resources and have higher energy levels produce more offspring. They have higher fitness relative to agents with lower energy levels.
Trait inheritance and trait transmission Agents create offspring and inherit their harvesting behavior/type to their offspring. In case of other imitation biases, agents also “inherit” the behavior of other agents in their environment by imitating them.
Natural selection The frequency of traits in the agent population changes as a result of trait variation, differential reproduction (fitness), and inheritance of traits.
Cultural selection Traits are preferentially imitated based on the imitation bias, e.g. based on the success in terms of energy levels that the trait brings, or based on the frequency of the trait.
Norms and traditions The imitation bias “majority” can establish norms of behavior in the population or in sub-groups of the population. Similarly, the imitation bias “imitate most experienced” can establish norms and traditions in the population or in sub-groups of the population.
Sensing and Information Processing * Agents sense their environment in a radius of 2 patches: if a patch is occupied, and the patch with the most resources; * Agents sense all the other agents within their neighborhood of 8 patches: their harvesting behavior, their energy levels, and their age. * Agents do not store any information (i.e. have no memory).
Objectives and goal-directed behavior * Agents move to an unoccupied patch with the most resources in a radius of 2 patches (depending on chance-agents-move) * Agents harvest their predetermined harvest amount (or until there are no more resources). * Agents imitate other agents based on the rule determined by imitation-bias.
Learning and Adaptation Agents adapt their behavior over their lifetimes through the imitation bias.
Interactions * Agents interact indirectly through competition for limited resources and space, and through their changing of environmental conditions through resource extraction and placing of offspring * Agents interact directly through imitating each other.
Role of randomness
- Agents are being distributed randomly in the world at the beginning of a simulation.
- The order in which agents move and harvest within one iteration is random.
- Agents move with a probability of chance-agents-move.
- Agents move to a randomly selected patch if several patches fulfill the objectives.
- Agents imitate with a probability of imitation-likelihood.
- Agents switch to a different behavior with a probability of behavior-innovation-rate.
- The order in which agents produce offspring within one iteration is random.
- Agents produce offspring with a probability of (0.001 * Energy).
- Agents place offspring on a randomly selected unoccupied neighboring patch.
- Agents die with a probability of Death-rate.
Model Teaching Materials
Model materials folder: https://drive.google.com/drive/folders/15q1RkDiJdxV86wVoiyJcO_wewq-VCfPc?usp=sharing
References and Citation
For this model:
- Hanisch, S. (2022). Evolution of resource use through behavior imitation. Global ESD NetLogo Models. http://NetLogo.GlobalESD.org
For the NetLogo-Software:
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Licence
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. http://creativecommons.org/licenses/by-nc-sa/4.0/
Comments and Questions
turtles-own [ harvest-type harvest-amount harvest energy age ] patches-own [resource] globals [ carryingcap growthrate ] ;;;;;;;;;;;;;;;;;;;;;; ;;;Setup Procedures;;; ;;;;;;;;;;;;;;;;;;;;;; to setup clear-all set carryingcap 100 set growthrate 0.3 setup-patches setup-turtles reset-ticks end to setup-patches ask patches [ set resource ( 75 + random (carryingcap / 4)) set pcolor scale-color brown resource 0 (carryingcap + 30) ] end to setup-turtles ask n-of Initial-number-agents patches [sprout 1 [set energy Living-costs + 1 set shape "person" set size 1 set age 30 + random 20]] ask n-of Sustainables turtles [ set harvest-type "sustainable"] ask turtles [ ifelse harvest-type = "sustainable" [set color green ] [set harvest-type "greedy" set color red] ] end ;;;;;;;;;;;;;;;;;;;;;;;; ;;;Runtime Procedures;;; ;;;;;;;;;;;;;;;;;;;;;;;; to go if count turtles = 0 [stop] ask turtles [ ifelse harvest-type = "sustainable" [set harvest-amount Harvest-sustainables ] [set harvest-amount Harvest-greedy ]] move harvest-patch livingcosts if imitation-bias = "most successful" [imitate-successful] if imitation-bias = "majority" [imitate-majority] if imitation-bias = "minority" [imitate-minority] if imitation-bias = "most experienced" [imitate-elder] ask turtles [try-new] if Reproduction [reproduce] death ask patches [ regrow recolor] ask turtles [ get-older ] tick end to move ;;turtle procedure ask turtles [ if random-float 100 < chance-agents-move [let nextpatch max-one-of (patches in-radius 2 with [not any? turtles-here] ) [resource] if nextpatch != nobody [ move-to nextpatch] ] ] end to harvest-patch ask turtles [ ifelse [resource] of patch-here > harvest-amount [set harvest harvest-amount ask patch-here [ set resource resource - [harvest-amount] of myself]] [set harvest [resource] of patch-here ask patch-here [set resource 0] ] set energy energy + harvest ] end to livingcosts ask turtles [set energy energy - Living-costs] end to imitate-successful ask turtles [ let neighbor-turtles turtles-on neighbors if any? neighbor-turtles [if random-float 100 < imitation-likelihood [ set harvest-type [harvest-type] of max-one-of neighbor-turtles [energy]]] update-color] end to imitate-majority ask turtles [ let neighbor-turtles turtles-on neighbors if any? neighbor-turtles [if random-float 100 < imitation-likelihood [ ifelse count (neighbor-turtles with [harvest-type = "sustainable"]) > count (neighbor-turtles with [harvest-type = "greedy"]) [ set harvest-type "sustainable"] [ set harvest-type "greedy"]]] update-color] end to imitate-minority ask turtles [ let neighbor-turtles turtles-on neighbors if any? neighbor-turtles [if random-float 100 < imitation-likelihood [ if ((count (neighbor-turtles with [harvest-type = "greedy"]) != 0) and (count (neighbor-turtles with [harvest-type = "sustainable"]) != 0)) [ifelse count (neighbor-turtles with [harvest-type = "sustainable"]) > count (neighbor-turtles with [harvest-type = "greedy"]) [ set harvest-type "greedy"] [ set harvest-type "sustainable"]]] update-color] ] end to imitate-elder ask turtles [ let neighbor-turtles turtles-on neighbors if any? neighbor-turtles [if random-float 100 < imitation-likelihood [ set harvest-type [harvest-type] of max-one-of neighbor-turtles [age]]] update-color] end to try-new ;; turtle procedure if random-float 100 < behavior-innovation-rate [ifelse harvest-type = "sustainable" [set harvest-type "greedy"] [set harvest-type "sustainable"] ] update-color end to reproduce ask turtles [ let neighborhood (patch-set neighbors with [not any? turtles-on self ]) if (any? neighborhood) and random-float 1 < ( 0.001 * energy );;/ 100) [hatch 1 [ set energy ([energy] of myself / 2) set age 0 move-to one-of neighborhood ] set energy (energy / 2) ] ] end to update-color ifelse harvest-type = "sustainable" [ set color green ] [ set color red ] end to death ask turtles [if energy <= 0 [die] if random-float 100 < Death-rate [ die ] if age > 80 [die] ] end to regrow ;; patch ifelse resource > 0 [set resource precision (resource + ((growthrate * resource) * (1 - (resource / carryingcap )))) 3] [ set resource 0.1] end to recolor ;; patch set pcolor scale-color brown resource 0 (carryingcap + 30) end to get-older set age (age + 0.1) end ;;; turtles1 variables to-report average-energy-greedys report sum [energy] of turtles with [harvest-type = "greedy"] / count turtles with [harvest-type = "greedy"] end to-report average-energy-sustainables report sum [energy] of turtles with [harvest-type = "sustainable"] / count turtles with [harvest-type = "sustainable"] end
There is only one version of this model, created almost 3 years ago by Susan Hanisch.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Evolution of resource use through behavior imitation.png | preview | Preview for 'Evolution of resource use through behavior imitation' | almost 3 years ago, by Susan Hanisch | Download |
This model does not have any ancestors.
This model does not have any descendants.