Governing the commons

No preview image

1 collaborator

Default-person Sebastian Wang (Author)

Tags

collective action 

Tagged by Sebastian Wang over 5 years ago

natural resource management 

Tagged by Sebastian Wang over 5 years ago

policy and decision tools 

Tagged by Sebastian Wang over 5 years ago

social science 

Tagged by Sebastian Wang over 5 years ago

tragedy of commons 

Tagged by Sebastian Wang over 5 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.0.4 • Viewed 465 times • Downloaded 22 times • Run 0 times
Download the 'Governing the commons' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This model is extended based on the model by Uri Wilensky- wealth distribution (social science).

HOW IT WORKS

certain grain are spread throughout the field, in which actors ( farmers ) can harvest. They gain wealth by harvesting these grains. The field posses regrow ability, providing a infinite number of grain if they amount of grain farmers harvest do not exceeds their regrow ability. Under no-controlled circumstances, the grains will run out quickly leaving the field no chance to regrow in time. For this reason, we seek to apply the Design Principles of Elinor Ostrom of "monitoring" and "graduate sanctions" to protect the natural resource system (Common Pool Resource ). Certain maximum level of wealth (grain) are set, when the amount of grain actors hold exceeds the maximum limit, they can punished. We have built an extensive monitoring mechanism, in which certain coordinates patches, checks their wealth-lvl, and actors (turtles) monitors each other, if they are in their field of vision. The principle of graduate sanction is applied by their color. For the first time of transgression, their color turns to pink, for the second time of transgression, their color turns to red leading to exclusion of the actors, when the actors is caught for the third time.

HOW TO USE IT

(how to use the model, including a description of each of the items in the Interface tab)

THINGS TO NOTICE

(suggested things for the user to notice while running the model)

THINGS TO TRY

one can reset ,the wealth-max-threshold, regrow-rate of the field (patches) and see how the amount of greedy farmers decline or rise. It is interesing to find out if the amount of punishment has a direct influence on the amount of defectors.

EXTENDING THE MODEL

this model is a very basic representation of Elinor Ostrom's application to her Design Principles. If one wants to extend the model, a certain mechanism of adpative learning of the actors is certainly interesting in which turtles (actors) have a set of strategies and memory of their last best strategy, to reach a maximum equilibrium of defecting and cooperating to achieve their maxium benefit. Furthermore, with the extension of system dynamics of the Netlogo Extension, one can also find out how the upper level has (municiplal goverment, who lays the foundation for the implementation of regulations) influence the behaviour and interaction of the turtles (actors) within the resource systen.

NETLOGO FEATURES

(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)

RELATED MODELS

(models in the NetLogo Models Library and elsewhere which are of related interest)

CREDITS AND REFERENCES

Li, J. and Wilensky, U. (2009). NetLogo Sugarscape 3 Wealth Distribution model. http://ccl.northwestern.edu/netlogo/models/Sugarscape3WealthDistribution. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Novak, M. and Wilensky, U. (2006). NetLogo Wolf Sheep Stride Inheritance model. http://ccl.northwestern.edu/netlogo/models/WolfSheepStrideInheritance. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Comments and Questions

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

Click to Run Model

globals
[
  max-grain    ; maximum amount any patch can hold
]
breed [ cooperative-farmers cooperative-farmer]
breed [greedy-farmers greedy-farmer]

patches-own
[
  grain-here      ; the current amount of grain on this patch
  max-grain-here  ; the maximum amount of grain this patch can hold
  grain-amount
  grain
]

turtles-own
[

  wealth           ; the amount of grain a turtle has
  life-expectancy  ; maximum age that a turtle can reach
  metabolism       ; how much grain a turtle eats each time
  vision           ; how many patches ahead a turtle can see
  max-wealth
  target
]

;;;
;;; SETUP AND HELPERS
;;;

to setup
  clear-all
  ;; set global variables to appropriate values
  set max-grain 50
  ;; call other procedures to set up various parts of the world
  setup-patches

 setup-turtles
  ask turtles [set color blue
  ]
  reset-ticks
end 

;; set up the initial amounts of grain each patch has

to setup-patches
  ;; give some patches the highest amount of grain possible --
  ;; these patches are the "best land"
  ask patches
    [
     set grain-amount random-float 10.0
      set pcolor scale-color green grain-amount 0 20 ]
  ask patches
    [ set max-grain-here 1
      if (random-float 100.0) <= percent-best-land
        [ set max-grain-here max-grain
         set grain-here max-grain-here  ] ]
end 

to setup-turtles
 set-default-shape turtles "person"
  create-turtles num-people [ move-to one-of patches

 set wealth random 10



  ]
end 

to go

  if not any? patches [ stop ]



  ask turtles [
    move
    harvest
    monitor-punish
    monitor-site
    secondary-monitoring-site
    exclude
    recolor-turtles
  ]

  tick
  ifelse any? turtles with [wealth >= 100]
      [ ask turtles [ stop]]
  [ ask turtles [ harvest]]

regrow-grain
end 

to move
  fd 1
  rt random 100
  lt random 100
  set wealth random 100
  set wealth wealth - movement-cost
end 

to harvest

  if (grain-amount >= wealth-gain-from-grain) [
    set wealth wealth + wealth-gain-from-grain

    set grain-amount grain-amount - wealth-gain-from-grain
    recolor-grain]

  behave-greedy
   behave-cooperative
end 

to behave-greedy
turn-towards-max-grain
end 

to turn-towards-max-grain
end 

to behave-cooperative
  if (wealth >= wealth-max-threshold)
  [ stop harvest]
end 

to monitor-punish
    ifelse (any? other turtles-here); if turtles meet check their wealth-lvl punish them if their wealth exceeds the maximum amount
    [ if wealth >= 40
      [ set color [yellow] of one-of turtles-here
      set wealth wealth - costpunish
      ]
    ]
    [set color green ]
end 

to recolor-grain
   set pcolor scale-color green grain-amount 0 20
end 

to choose
  if wealth >= max-wealth
  [ stop ]
end 

to my-update-plots

  set-current-plot-pen "resources"
  plot sum [ grain-amount ]  of patches
end 

to monitor-site
 ask turtles at-points [[2 4] [1 2] [10 15] [3 8] [4 6] [3 15] [5 4] [0 2] [ 3 4 ] ] ; to set monitoring sites within the CPR systems if turtles set foot within this
 [ if (wealth >= wealth-max-threshold)

  [  set color pink
punish



  ]]
end 

to secondary-monitoring-site
  ask turtles at-points [[4 4] [4 2] [4 15] [4 3] [3 10] [2 6] [1 15] [2 4] [1 2] [10 15]]
[if (color = pink and wealth >= wealth-max-threshold)
    [set wealth wealth - costpunished
   set color red
    ]
  ]
end 

to exclude
  ask turtles at-points [ [0 0]  [6 6] [3 6]]
  [
    if color = red - 1 and  wealth  >= 20
    [ die ] ]
end 

to do-plots
  set-current-plot-pen "sheep"
  plot count turtles


  set-current-plot-pen "grass"
  plot (count patches with [grain-amount > 0])

  set-current-plot-pen "energy"
  plot mean [wealth] of turtles / count turtles
end 

to identify-target
  if wealth >= 50
  [ set target turtles with [wealth >= 60 ]]
 face target
  move-to target
end 

to punish-target
end 

to reproduce
 if any? turtles [ die
    ask turtles
    [hatch 1]
  ]
end 

to regrow-grain
    ask patches [
    set grain-amount grain-amount + regrowth-rate
    if grain-amount > 10 [
      set grain-amount 10
    ]
    recolor-grain
  ]
end 

to monitor
  ask  turtles in-cone 3 60
  [ check
    ]
end 

to check
  if (wealth >= wealth-max-threshold)
  [ punish]
end 

to punish
  ask turtles in-cone 3 60
  [ set wealth wealth - costpunish ]
end 

to recolor-turtles
  ifelse (wealth >= wealth-max-threshold)
  [ set color red - 2  ]
  [set color  white ]
end 
;greedy farmers: always seeks out profits maximization so we set up certain points (traps to punish them ) and set the color pink
; if color pink again set constpunished graduate sacntion
;

There is only one version of this model, created over 5 years ago by Sebastian Wang.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.