Emperor's Dilemma

No preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.0 • Viewed 635 times • Downloaded 48 times • Run 0 times
Download the 'Emperor's Dilemma' 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?

The title of this model is inspired by the popular story by Hans Christian Anderson, in which two weavers lead an entire kingdom by to act as though their emperor is wearing beautiful clothes - although the emperor is, in fact, naked. This occurs through the self-reinforcing dynamics of social pressure, in which individuals who don't "see" the clothes act as if they do. Because these "false believers" are concerned about being exposed, they take the process one step further, and become "false encforcers" -- not only acting as if they see the clothes, but also pressuring their peers to adopt the false belief.

Taken together, this model demonstrates how an unpopular norm can spread through a population even when only a small fraction of the population genuinely supports the behavior.

HOW IT WORKS

The "true believers" and "true disbelievers" are agents whose public behavior is consistent with their prviate beliefs, while "false believers" and "false disbelievers" publicly display behavior that is not consistent with their private beliefs. Similary, "true enforcers" and "false enforcers" are agents who enforce a norm that either does (true) or does not (false) match their prviate belief.

This model is quite complex, and we encourage you to reference the publication by Centola, Willer, and Macy (2005) for more a more detailed theoretical discussion.

When the model is initialized, a population is comprised of "true believers" (yellow) and "true disbelievers" (green). Each agent can be observed to either comply (or not comply) with a norm as well as to enforce (or not enforce) that norm.

If they can observe a large number of agents who do not comply, "true believers" will become "true enforcers,"placing social pressure on others to comply with a norm. When "true disbelievers" observe enforcing agents, they may become a "false believer," so that they publicly comply with a norm, even though they don't privately support the norm - if their belief is weak enough and/or the social pressure is strong enough. With sufficient social pressure, a "false believer" will become a "false enforcer," so that they not only publicly comply but also enforce a norm that they privately don't support.

HOW TO USE IT

SETUP sets up the model.

GO runs the model for the number of ROUNDS? specified.

PERCENT-BELIEVERS is a value between 0 and 1 that determines the number of "true believers" in the population when the model is SETUP.

The CLUSTERING toggle determines whether the initial "true believers" are all clusterd together geographically (when CLUSTERING is set to TRUE) or scattered randomly (when CLUSTERING is set to FALSE).

The EMBEDDEDNESS toggle determines whether agents react only to the behavior of their imemdiate neighbors (when EMBEDDEDNESS is set to TRUE) or whether they react to the behavior of the entire population (when EMBEDDEDNESS is set to FALSE).

MAX-STRENGTH-FOR-DISBLIEVERS determines the maximum "strength of belief" for a disbeliever. The strength of a belief determines how many neighbors must enforce a norm contrary to an agent's belief before that agent will start complying with the contrary norm. An agent with a stronger belief will be more resistant to social influence, whil ean agent with a weaker belief will be less resistant to social influence.

MEAN-STRENGTH-FOR-DISBELIEVERS is a value between 0 and 1 that determines the average "strength of belief" for disbelievers. Generally, this would be equal to 1/2 the MAX-STRENGTH-FOR-DISBELIEVERS since individual belief is assumed to follow a uniform distribution.

The COST variable represents the additional cost required to enforce a norm, in contrast with compliance, which is based only on an agent's belief strength and the social pressure induced by enforcing neighbors.

THINGS TO NOTICE

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

THINGS TO TRY

(suggested things for the user to try to do (move sliders, switches, etc.) with the model)

EXTENDING THE MODEL

Try adding more complex network structure. How does behavior change as global ties are gradually added to a local interaction model?

What happens if false enforcers can eventually become true enforceres?

REFERENCES

Centola, D., Willer, R., & Macy, M. (2005). The emperor’s dilemma: A computational model of self-enforcing norms. American Journal of Sociology, 110(4), 1009-1040.

RELATED MODELS

See the "Complex Contagions" model in this package.

Comments and Questions

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

Click to Run Model

globals [
  believers
fraction
compliers
non-compliers
true-enforcers
false-enforcers
non-enforcers
x-counter
y-counter
rounds
repetition
fraction-print
]

patches-own [
  done?
  total
  belief ; variable that determines whether an agent believes (belief = 1) or not (belief = -1)
  compliance ; variable that determines whether an agent believes (1) or not (-1)
  strength ; variable that determines the strength of an agent's compliance
  conviction ;
  enforcement ; variable that determines whether an agent enforces compliance (1), deviance (-1)
  need-for-enforcement ; variable that determines the need for enforcement for every agent
  believer
  disbelievers
  false-believers
  false-disbelievers
]

to setup
  clear-all


  set believers (Percent-Believers / 100) * count patches
  ifelse clustering
    [setup-with-clustering]
    [setup-without-clustering]
  determine-starting-values
  mark-patches
  ask patches [recolor-patches-after-setup]
end 

to setup-with-clustering
  ask patches
    [set belief 0]
  if believers > 0 [
    ask one-of patches with [belief = 0]
    [set belief 1]
  ]
  if believers > 0
    [cluster]
end 

to cluster
  ask patches
    [set total (sum [belief] of neighbors)]
  ask one-of patches with [belief = 0] [
    if total > 0
      [set belief 1]
  ]
  if sum [belief] of patches < believers
    [repeat 1
      [cluster]
    ]
end 

to setup-without-clustering
  ask patches [set belief 0]
  repeat believers [
    ask one-of patches with [belief = 0] [set belief 1]
  ]
end 

to determine-starting-values
  ask patches [
    ifelse belief = 0
      [set belief -1]
      [set belief 1]
  ]
  ask patches [
    if belief = 1
      [set strength 1]
  ]
  strength-determination-for-disbelievers
end 

to strength-determination-for-disbelievers
  loop [
    ask patches with [strength != 1] [set strength random-float max-strength-for-disbelievers]
    If precision (mean [strength] of patches with [strength != 1]) 5 = mean-strength-for-disbelievers
      [stop]
  ]
end 

; end of code for setup process

to go
  if rounds = rounds?
    [stop]
  ask patches [set done? false]
  ifelse embededdness
   [go-with-embededdness]
   [go-without-embededdness]
  set rounds rounds + 1
  mark-patches
  do-plots
end 

to go-with-embededdness

    ask patches [

       ifelse ((((-1 * belief) / 8) * (sum [enforcement] of neighbors)) > strength) ; procedure to determine whether to comply or not
         [set compliance (-1 * belief)]
         [set compliance belief]

       set need-for-enforcement ((1 - ((belief / 8) * (sum [compliance] of neighbors))) / 2) ; procedure to determine need for enforcement

       set enforcement 0 ; procedure to determine enforcement
       if ((strength * need-for-enforcement) > costs) and (belief = compliance)
         [set enforcement belief]
       if ((((-1 * belief) / 8) * (sum [enforcement] of neighbors)) > (strength + costs)) and (belief != compliance)
         [set enforcement -1 * belief]

       recolor-patches

       display
     ]
end 

to go-without-embededdness

    ask patches [
      ifelse (((-1 * belief) / 999) * (sum [enforcement] of patches)) > strength
        [set compliance (-1 * belief)]
        [set compliance belief]

      set need-for-enforcement ((1 - ((belief / 999) * (sum [compliance] of patches))) / 2)

      set enforcement 0
      if ((strength * need-for-enforcement) > costs) and (belief = compliance)
        [set enforcement belief]
      if ((((-1 * belief) / 999) * (sum [enforcement] of patches)) > (strength + costs)) and (belief != compliance)
        [set enforcement (-1 * belief)]


      recolor-patches

      display

    ]
end 

to mark-patches
  ask patches [
    ifelse (belief = 1)
      [set believer 1]
      [set believer 0]
    ifelse (belief = -1)
      [set disbelievers 1]
      [set disbelievers 0]
    ifelse (belief = -1) and (enforcement = 1)
      [set false-believers 1]
      [set false-believers 0]
  ]

  set fraction (sum [false-believers] of patches)/(sum [disbelievers] of patches)
  set compliers count patches with [compliance = 1]
  set non-compliers count patches with [compliance = -1]
  set true-enforcers count patches with [enforcement = belief]
  set false-enforcers count patches with [(enforcement != belief) and (enforcement != 0)]
  set non-enforcers count patches with [enforcement = 0]
  display
end 

to recolor-patches-after-setup
  if belief = 1
   [set pcolor yellow]
  if belief = -1
   [set pcolor green]
end 

to recolor-patches  ;


  if belief = -1 and compliance = -1    ; true disbeliever
  [ set pcolor green ]

  if belief = 1 and compliance = 1      ; true believer
  [set pcolor yellow ]

  if compliance = 1 and belief = -1     ; false believer
  [set pcolor blue]

  if compliance = -1 and belief = 1     ; false disbeliever
  [set pcolor black]

  if enforcement = 1 and belief = -1    ; false enforcer
  [set pcolor red]

  if enforcement = 1 and belief = 1     ; true enforcer
  [set pcolor white]
end 

to do-plots
  set-current-plot "Fraction of Disbelievers Encforcing the Norm"
  plot fraction
end 

There are 2 versions of this model.

Uploaded by When Description Download
Network Dynamics Group almost 8 years ago Version update Download this version
Network Dynamics Group almost 8 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.