Evolution of Norms
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
Model constructed based on Axelrod (1986) An Evolutionary Approach to Norms. Axelrod's proposed norms game provides a game-theoretic/evolutionary simulation of how norms might evolve in a community based on negative feedback through punishment.
HOW IT WORKS
20 agents are created with random boldness and vengefulness of 0-7. With each run, an agent has four opportunities to "defect" (ie. carry out a negative behaviour) based on their boldness and a random likeliness of being caught. a defection carries a positive score of 3 and a loss of 1 to all other agents.
If other agents observe the defection they choose to punish it with a likelihood based on their vengefulness level. Punishment is -9 to the defecting agent, with a -2 cost to the punishing agent.
In the "metanorms" condition, agents are also punished if they chose not to punish an observed defector.
After each round, the agents with the best scores reproduce the most (i.e. carry their boldness and vengefulness levels through to the next run). There is also a 1% likelihood of mutation.
HOW TO USE IT
Set up to reset the model then run 100 to run a full simulation.
THINGS TO NOTICE
According to Axelrod, the model will either converge on zero boldness and some vengefulness (due to the cost of being punished), or a full norm violation condition where all agents defect and boldness becomes maximised (and no one is being punished as they are all at it!). In my test, the latter condition only arises rarely.
In the metanorms condition, convergence on a stable state of high vengefulness is more rapid and predictable - as enacting a punishment is reinforced.
THINGS TO TRY
Try repeating the 100 runs and note how sometimes a mutation seems to lead to 100% defections by the end, though usually it converges on low boldness and mid vengefulness.
CREDITS AND REFERENCES
v1.0 Paul Matthews, 2015. University of the West of England. paul2.matthews@uwe.ac.uk
AXELROD, R., 1986. An Evolutionary Approach to Norms. The American Political Science Review, 80(4), pp. 1095-1111
Comments and Questions
globals[defections turtlecount turtleno punishcount metapunishcount sd mn difft] turtles-own[points boldness vengefullness seen? punish?] to setup clear-all set turtlecount 20 set defections 0 addturtles turtlecount 0 0 0 reset-ticks end to go100 repeat 100[ go ] end to go ask turtles[ repeat 4[ set punishcount 0 set metapunishcount 0 ;; Chance of being seen set seen? random-float 1 ;; Defect if think you can get away with it if seen? < boldness / 7 [ ;; Choose to defect set points points + 3 set defections defections + 1 ask other turtles [ ;; hurt caused by defection set points points - 1 ;; Did they see this? if random-float 1 < seen?[ ;; Yes, they saw it set punish? random-float 1 ;; Are they going to punish? ifelse vengefullness / 7 > punish? [ ;; they also chose to punish set punishcount punishcount + 1 set points points - 2 ] [ ;; They did not punish; Enforce metanorm version? if Metanorm[ ask other turtles[ ;; enforce metanorm? if random-float 1 < seen?[ set metapunishcount metapunishcount + 1 set points points - 2 ] ] set points points - (9 * metapunishcount) set metapunishcount 0 ] ] ] ] ;; Apply punishment to defector set points points - (9 * punishcount) set punishcount 0 ] ] ] ;; evolution. Turtles replicate more if successful in strategies set sd standard-deviation [points] of turtles set mn mean [points] of turtles ask turtles[ ;;show points if points >= mn + sd[ ;; Most successful individuals have 2 offspring hatch 2 [ set points 0 setxy random 30 random 30 ] ] if (points >= mn - sd) and (points < mn + sd) [ ;; Mean individuals have just one hatch 1 [ set points 0 setxy random 30 random 30 ] ] die ] ;; even up the numbers to 20 set difft turtlecount - count turtles ifelse difft < 0[ repeat difft * -1[ ask turtle max[who] of turtles [ die ] ] ][ addturtles difft 0 0 0 ] ;; mutation ask turtles[ if random-float 1 <= 0.01[ set boldness random 8 ] if random-float 1 <= 0.01[ set vengefullness random 8 ] ] ;;update-plots tick set defections 0 end to addturtles [num bold venge pts] create-turtles num[ ifelse bold = 0[ set boldness random 8 ][ set boldness bold ] ifelse venge = 0[ set vengefullness random 8 ][ set vengefullness venge ] set points pts setxy random 30 random 30 set shape "person" set size 3 set color blue ] end
There is only one version of this model, created over 9 years ago by Paul Matthews.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Evolution of Norms.png | preview | preview | over 9 years ago, by Paul Matthews | Download |
This model does not have any ancestors.
This model does not have any descendants.