Evolution of resource use through behavior imitation

Evolution of resource use through behavior imitation preview image

1 collaborator

Default-person Susan Hanisch (Author)

Tags

cultural evolution  

Tagged by Susan Hanisch almost 3 years ago

evolution 

Tagged by Susan Hanisch almost 3 years ago

imitation 

Tagged by Susan Hanisch almost 3 years ago

sustainability 

Tagged by Susan Hanisch almost 3 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.2.0 • Viewed 443 times • Downloaded 27 times • Run 0 times
Download the 'Evolution of resource use through behavior imitation' modelDownload this modelEmbed this model

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?

Model processes image

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:

For the NetLogo-Software:

Licence

CC BY-NC-SA 3.0

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

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

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.