Evolution of sustainability through monitoring and punishment GERMAN
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Modellinformationen
Alle Informationen und Zusatzmaterialien zum Modell können von diesem Google Drive Ordner heruntergeladen werden: https://drive.google.com/drive/folders/1OQ-llCmKvwZULosflYvLyvSxzj43rXlL?usp=sharing
Literaturangaben und Zitierweise
Für das Modell selbst:
- Hanisch, S. (2018). Evolution Ressourcen mit Wahrnehmung und Bestrafung. EvoLeipzig NetLogo Modelle. http://netlogo.evoleipzig.de
Für die NetLogo-Software:
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Lizenz

Dieses Werk ist unter einer Creative Commons Lizenz vom Typ Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International zugänglich. Um eine Kopie dieser Lizenz einzusehen, konsultieren Sie https://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
Comments and Questions
turtles-own [
harvestPref
harvest-amount
punisher?
aware-of-who
energy
harvest
punished?
rs
]
patches-own [ resource ]
globals [
commons
commonsResources
harvestTraits
]
to setup
clear-all
ask n-of Anzahl-Agenten patches [
sprout 1 [
set shape "circle"
set size 0.8
set punished? false
set aware-of-who []
set rs 0
ifelse random-float 100 < Prozent-Nachhaltige
[set harvestPref "low"] ;; determine the harvest preference (high or low)
[set harvestPref "high"]
ifelse random-float 100 < Prozent-Bestrafer
[set punisher? true] ;; determine the harvest preference (high or low)
[set punisher? false]
update-color ;; change the color of the agent on the basis of the strategy
set energy Lebenshaltungskosten + 1]
]
ask patches [
set resource Tragfähigkeit
set pcolor scale-color brown resource 0 (Tragfähigkeit + 30) ]
reset-ticks
end
;;;;;;; Main routine ;;;;;;
to go
if count turtles = 0 [stop]
ask turtles
[ifelse harvestPref = "low"
[set harvest-amount Erntemenge-nachhaltig]
[ set harvest-amount Erntemenge-gierig]
set aware-of-who []
harvesting
]
sense-cheaters
punish
ask turtles
[ set energy energy + harvest
expend-energy
reproduce
death]
ask patches [
regrow
recolor]
tick
end
to harvesting
ifelse Strafe = "Ernte einmal aussetzen"
[ifelse punished? = false
[harvest-commons]
[set harvest 0]
]
[harvest-commons]
set punished? false
end
to harvest-commons ;; from Waring et al., 2017
set harvest 0
; define the patches withing the local Moore neighborhood on which the current agent may harvest.
set Commons (patch-set neighbors patch-here) ;; set list of patches to harvest from to include all neighboring patches
set commonsResources sum ([resource] of Commons) ;; sums all of the resources in my commons
let commonsList sort-on [resource] Commons ;; sort the list by the amount of resource on the patch
set commonsList reverse commonsList ;; reverse the sort list so it is largest to smallest
ifelse commonsResources < harvest-amount ;; if the total commons are less than what the agent wants to harvest
[ set harvest (commonsResources); - ( count myCommons * 0.1 ))
ask Commons [ set resource 0 ]
move-away
]
[
while [harvest < harvest-amount][ ;; while you are still in need
;; harvest some resource from the neighborhood
foreach commonsList [ ?1 ->
ifelse [resource] of ?1 <= (harvest-amount - harvest)
[set harvest (harvest + [resource] of ?1 )
ask ?1 [set resource 0]
]
[ask ?1 [
set resource (resource - ([harvest-amount] of myself - [harvest] of myself))
]
set harvest harvest-amount
]
] ;; end foreach
] ;; end while
] ;; end second part of ifelse commonsResources
end
to move-away
let next-patch max-one-of (neighbors with [not any? turtles-here]) [resource]
if next-patch != nobody
[move-to next-patch
set energy energy - 1
]
end
to sense-cheaters
ask turtles with [punisher? = true]
[ set harvest harvest - Kosten-Wahrnehmung
let cheaters (turtles-on neighbors) with [harvestPref = "high"]
set aware-of-who n-of ( Erkennungsgrad / 100 * count cheaters) cheaters
]
end
to punish
ask turtles with [ harvestPref = "high" and punished? = false]
[let punishers (turtles-on neighbors) with [ member? myself [aware-of-who] of self]
if any? punishers
[ set punished? true
if Strafe = "töten"[die]
if Strafe = "Strafgebühr zahlen"
[set harvest harvest - Strafgebühr
set punished? false
ask turtles-on neighbors [set harvest harvest + (Strafgebühr / (count turtles-on neighbors) )]
]
if Strafe = "verbannen"
[move-to one-of patches with [not any? turtles-here and distance myself > 10 ]]
ask punishers [
set harvest harvest - ( Kosten-Bestrafung / count punishers)
]
]
]
end
to expend-energy
set energy energy - Lebenshaltungskosten
end
to reproduce
let birthrate 0.001 * energy
if random-float 1 < birthrate [
let destination one-of neighbors with [not any? turtles-here]
if destination != nobody [
hatch 1 [
move-to destination
set punished? false
set aware-of-who []
mutate
set energy ([energy] of myself / 2)]
]
set energy (energy / 2)
]
end
;; modify the children of agents according to the mutation rate
to mutate ;; turtle procedure
if random-float 100 < Mutationsrate
[
ifelse harvestPref = "high"
[set harvestPref "low"]
[set harvestPref "high"]
]
if random-float 100 < Mutationsrate
[ ifelse punisher? = true
[set punisher? false]
[set punisher? true ]
]
update-color
end
to update-color
ifelse harvestPref = "low"
[ ifelse punisher? = true
[set color green ]
[set color turquoise]
]
[ ifelse punisher? = true
[set color orange ]
[set color red]
]
end
to death
if energy <= 0 [ die ]
if random-float 100 < Sterberate [ die ]
end
to regrow
ifelse resource > 0
[set resource ceiling (resource + ((Wachstumsrate * resource) * (1 - (resource / Tragfähigkeit )))) ]
[set resource 0.1 ]
end
to recolor
set pcolor scale-color brown resource 0 (Tragfähigkeit + 30)
end
There is only one version of this model, created over 4 years ago by Susan Hanisch.
Attached files
| File | Type | Description | Last updated | |
|---|---|---|---|---|
| Evolution of sustainability through monitoring and punishment GERMAN.png | preview | Preview for 'Evolution of sustainability through monitoring and punishment GERMAN' | over 4 years ago, by Susan Hanisch | Download |
This model does not have any ancestors.
This model does not have any descendants.
Download this model