Terror Paranoia

Terror Paranoia preview image

1 collaborator

Default-person Kevin Jin (Author)

Tags

(This model has yet to be categorized with any tags)
Model group MAM-2015 | Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.2.0 • Viewed 599 times • Downloaded 47 times • Run 0 times
Download the 'Terror Paranoia' 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?

Wars today are no longer primarily fought between nations. The era of the war on terrorism is upon us. As we become more aware of acts of terror, we start to wonder, is terrorism actually effective? Is it spreading terror as its name suggests?

How does the severity and widespread of terrorism influence the fear and paranoia within a community? Does a terrorist event only cause terror once or does it have lasting effects on community? What can a community do to maintain calamity and reason after an act of terror?

This model serves as an aide in not only thinking about these questions but also asking new ones. It can help visualize the spread of terror as different factors are changed and think about what roles these factors may play.

HOW IT WORKS

In this model, turtles are people with different levels of fear. When they interact with others, either physically or via network, they adjust their own levels to be closer to the person they just interacted with.

Terror events occur when the mouse is clicked on an area, increasing the level of fear of all those within a certain radius of the terror event. Those who then pass by that area are reminded of the event and their level of fear increases.

After a terror event occurs, the community will intervene to help soothe and calm the people.

HOW TO USE IT

Choose the size of the initial population with the POPULATION slider. Choose whether networks will be used with the NETWORK? switch. For more on the network settings, see THINGS TO TRY.

To create the community with these properties, press SETUP.

To run the model, press GO.

To cause a terror event, press anywhere on the view with the GO button running. A terror event will occur centered where the mouse was clicked. For more on the terror event variables, see THINGS TO TRY.

For more on the community intervention variables, see THINGS TO TRY.

The AVERAGE FEAR LEVEL is shown both immediately via a monitor and over time with a plot. The histogram FEAR OF PEOPLE shows the level of fear for each individual person. The histogram FEAR DISTRIBUTION shows how many people are at each level of fear.

THINGS TO NOTICE

Explanations on what each slider and switch does and represents are below in THINGS TO TRY.

Notice how fear generally disperses throughout the population. Follow both histograms to see how the distribution seems to converge as the fear level across all people reaches equilibrium.

Make adjustments to only the actual terror event and then to the effects of those terror events. What seems to have a greater impact on the level of fear after it reaches an equilibrium point, the actual event itself, or its after effects? It may help to visualize the after effects by turning on SHOW-RESIDUAL-FEAR? and slowing down the model to see how the people are interacting with the terror event.

Also play with the community intervention variables. Is faster community intervention more important or better community intervention more important?

THINGS TO TRY

Network Variables

Choose the number of links each person will create with others with the LINKS-WITH-OTHERS slider. (Note: This does not control how many links the person will ultimately have. This slider controls how many people that say Person 1 will connect with when it's first created but other people can also connect to Person 1, so Person 1 may end up with more links than LINKS-WITH-OTHERS denotes.) Choose the number of network groups there will be with the GROUPS slider. Choose the frequency of communication across the networks with the NETWORK-COMMUNICATION-FREQUENCY slider.

Terror Variables

Choose the radius of the terror events with the TERROR-RADIUS slider. Choose the severity of the terror events with the TERROR-SEVERITY slider.

Choose the percentage of fear left by the original event that will be in the area with the RESIDUAL-FEAR slider. Choose how much the residual fear left by the original event decays per tick with the RESIDUAL-DECAY-RATE slider. Choose whether the patches should show the amount of fear left on them with the SHOW-RESIDUAL-FEAR? switch.

Community Intervention Variables

Choose the time it takes for the community to intervene after a terror event with the INTERVENTION-DELAY slider. Choose the number of people that the commmunity intervention affects with the NUMBER-OF-INTERVENTIONS slider. Choose the percentage reduction in fear level in the people who are part of the community intervention with the LEVEL-OF-INTERVENTION slider.

EXTENDING THE MODEL

  • Right now the model focuses primarily on how various variables affect the level of fear but not on how quickly the fear spreads. This model could be extended to show how long it takes for a population's fear level to reach equilibrium after terror events.
  • Having different types of people that act differently based on their state. Right now, people who have higher levels of fear tend to be more vocal about their fear and attempt to seek out others to share their ideas, while less fearful people are more ambivalent about sharing their sentiments. An extension could be built where there could be people who refuse to be influenced by others or that share their ideas with everyone or people who only communicate with those with similar attributes.
  • Create quarantines and see how fear spreads both inside and outside of confinement. The only way to communicate through the quarantine would be with pre-existing networks with others.

NETLOGO FEATURES

One of the most notable workarounds was with the mouse click for terror events. NetLogo only has the primitive of detecting whether the mouse is being pressed down or not and not whether the mouse is simply being clicked. Without the workaround, multiple terror events would be registered while the mouse was clicked, instead of just a single terror event per click. To work around this, we created a variable called mouse-was-down? that tracked the previous state of the mouse. This way, terror events were only executed when the state of the mouse was changed from down to up, or on the release of a click. Bryan Head guided me through this work around.

Another interesting feature for me personally was creating a list from an agentset and then running a procedure with each item of the list as an argument. This was used when adjusting the fear levels based on the people that the current person was linked to. The agentset of the people linked to the current person was converted to a list and then the adjust fear procedure was run within a foreach loop, where each item within the list as an argument.

RELATED MODELS

Rumor Mill Diffusion on Directed Network

CREDITS AND REFERENCES

Much of this model was based on a paper by Professor William Burns which can be found at: http://www.rit.edu/~w-cmmc/literature/Burns_2009.pdf

  • Burns, W. J., & Slovic, P. (2007). The diffusion of fear: Modeling community response to a terrorist strike. JDMS: The Journal of Defense Modeling and Simulation: Applications, Methodology, Technology, 4, 298–317

More information on this model can be found at: http://modelingcommons.org/browse/one_model/4359#model_tabs_browse_info

This model would not have been possible without the help of Dr. Uri Wilensky, Arthur Hjorth, Bryan Head, and David Weintrop

Comments and Questions

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

Click to Run Model

breed [people person]
globals [
  mouse-was-down?   ;;tracks the previous state of the mouse
  terror-event?     ;;tracks whether a terror event has occurred recently, true after a terror event until community intervention occurs
  help-timer        ;;keeps track of time until community intervention occurs
] 
turtles-own [
  fear-level           ;;level of fear of each turtle
  group                ;;which group each turtle is in
  last-patch-residual  ;;keeps track of the last patch's residual fear level so fear does not constantly increase while in area
]
patches-own [residual-fear] ;;residual fear from after terror events

;Setup Procedure
;Clears everything and then initializes the variables. Initial FEAR-LEVEL is randommly assigned and 
;the group is based on each turtle's WHO and how many groups there should be.
;The ask people call is necessary after the create-people command block because not all the 
;people have been assigned to a group yet and so there would be no links created for the first 
;few turtles. Initialize the global variables and patch variables as well.

to setup 
  clear-all
  set-default-shape people "person"
  create-people population [
    set size 1.5
    setxy random-xcor random-ycor
    set fear-level random 100 + 1
    set group who mod groups  
    update-color 
  ]
  ask people [
    if network?
    [ let network n-of links-with-others other people with [group = [group] of myself]
      create-links-with network] 
  ]
  ask patches [
    set residual-fear 0
    if show-residual-fear? = true
    [set plabel residual-fear]
  ]
  set mouse-was-down? false
  set terror-event? false
  set help-timer 0
  reset-ticks
end 

;Go Procedure
;The go procedure checks if a terror event has occurred. Then it asks the people
;to adjust their FEAR-LEVEL based on the person they physically encounter and if
;this is a network, adjust their FEAR-LEVEL based on the network.
;Then adjust the FEAR-LEVEL based on whether there is any RESIDUAL-FEAR left on the 
;patch. Update the color and the LAST-PATCH-RESIDUAL to the RESIDUAL-FEAR of the current 
;patch. Then move. Then check the patches to see if they should be showing the residual fear
;and then decay any RESIDUAL-FEAR by the RESIDUAL-DECAY-RATE. Then finally check if 
;there is a community intervention on this turn.

to go
  terror-event
  ask people [
    let other-person-here one-of other people-here
    if other-person-here != nobody
    [ adjust-fear-levels other-person-here ]
    if network? = true and ticks mod network-communication-frequency = 0 ;adjust FEAR-LEVEL based on every link neighboor
    [ foreach [self] of link-neighbors [ adjust-fear-levels ? ] ]
    residual-fear-effect
    update-color
    set last-patch-residual [residual-fear] of patch-here
    move 
  ]
  ask patches [
    ifelse show-residual-fear? = true
    [ set plabel residual-fear ]
    [ set plabel "" ]
    if residual-fear > 0
    [ set residual-fear (residual-fear - residual-decay-rate) ] 
  ]
  ifelse help-timer > 0
  [ set help-timer help-timer - 1 ]
  [ 
    if terror-event? = true
    [ 
      set terror-event? false 
      ask n-of number-of-interventions people
      [ set fear-level round ((1 - level-of-intervention) * fear-level) ] 
    ] 
  ]
  tick
end 


;terror-event procedure
;Checks to see if the mouse is currently not down and was previously down. This is done 
;so that the only a single click is registered, instead of registering the entire time that the mouse
;is down. If a click is detected, everyone within the radius is increase their FEAR-LEVEL
;by the TERROR-SEVERITY. Set the residual fear for the surrounding patches and then start HELP-TIMER
;whcih keeps track of when community intervention occurs. TERROR-EVENT? is then updated 
;as is the current status of the mouse.

to terror-event
  if mouse-was-down? and not mouse-down?
  [
    ask patch round mouse-xcor round mouse-ycor [
      ask people in-radius terror-radius [
       let boundary fear-level + terror-severity < 100
       ifelse boundary
       [ set fear-level (fear-level + terror-severity) ]
       [ set fear-level 100 ]
       set last-patch-residual fear-level
      ]
      ask patches in-radius terror-radius
      [ set residual-fear round (terror-severity * initial-residual-fear / 100) ]   
    ]
    if terror-event? = false
    [set help-timer intervention-delay]
    set terror-event? true
  ]
  set mouse-was-down? mouse-down?
end 

;adjust-fear-levels, a turtle procedure
;The FEAR-LEVELs of the people are adjusted based on what the the FEAR-LEVEL of the
;other-turtle argument. To do this, it takes 5% of the difference in FEAR-LEVELs 
;(whether positive or negative) and adds it to its own FEAR-LEVEL. 

to adjust-fear-levels [other-turtle]
  if other-turtle != nobody
  [
    let difference round ([fear-level] of other-turtle - fear-level) / 20
    let fear-change round (fear-level + difference)
    ifelse terror-event? = false
    [
      ifelse fear-change < 0 
      [ set fear-level 0 ]
      [ 
        ifelse fear-change > 100
        [ set fear-level 100 ]
        [ set fear-level fear-change ]
      ]
    ]
    [
      if difference > 0
      [
        ifelse fear-change > 100
          [ set fear-level 100 ]
          [ set fear-level fear-change ]
      ]
    ]
  ]
end 

;residual-fear-effect, a turtle procedure
;Increases the FEAR-LEVEL by the current RESIDUAL-FEAR of the patch the turtle is on

to residual-fear-effect
  if [residual-fear] of patch-here != 0 and last-patch-residual = 0
  [
    let pdifference fear-level + [residual-fear] of patch-here
    ifelse pdifference > 100
    [ set fear-level 100 ]
    [ set fear-level pdifference ]
  ]
end 

;move, a turtle procedure
;If there is a person ahead and a random number is less than the fear-level, 
;then go towards them, otherwise turn randomly and then advance forward.

to move
  let person-ahead one-of people in-cone 2 120
  ifelse person-ahead != nobody and (random 100 + 1) < fear-level
  [ face person-ahead ]
  [ rt random 121 - 60 ]
  fd 1
end 

;update-color, a turtle procedure
;updates COLOR of turtle, lower FEAR-LEVEL is more blue and higher FEAR-LEVEL
;is more red.

to update-color
  ifelse fear-level = 50
  [ set color white ]
  [
    ifelse fear-level > 50
    [ set color 18 - ((fear-level - 50) / 10) ]
    [ set color 108 - ((50 - fear-level) / 10) ]
  ]
end 

There are 4 versions of this model.

Uploaded by When Description Download
Kevin Jin over 10 years ago Final version Download this version
Kevin Jin over 10 years ago Final version Download this version
Kevin Jin over 10 years ago updated behavior of agents Download this version
Kevin Jin over 10 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Final Project Proposal.docx background Project Proposal over 10 years ago, by Kevin Jin Download
Final Report.pdf pdf Final Report over 10 years ago, by Kevin Jin Download
Final Research poster.pptx powerpoint final poster over 10 years ago, by Kevin Jin Download
KevinJin_June1.docx background Progress Report 3 over 10 years ago, by Kevin Jin Download
KevinJin_May18.docx background Progress Report 1 over 10 years ago, by Kevin Jin Download
KevinJin_May25.docx background Progress Report 2 over 10 years ago, by Kevin Jin Download
poster SLAM.pdf powerpoint PosterSLAM over 10 years ago, by Kevin Jin Download
Terror Paranoia.png preview View over 10 years ago, by Kevin Jin Download
Terror Paranoia.png preview interface preview over 10 years ago, by Kevin Jin Download

This model does not have any ancestors.

Children:

Graph of models related to 'Terror Paranoia'