Rumor Mill

Rumor Mill preview image

1 collaborator

Uri_dolphin3 Uri Wilensky (Author)

Tags

social science 

Tagged by Reuven M. Lerner about 9 years ago

Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 407 times • Downloaded 25 times • Run 0 times
Download the 'Rumor Mill' 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 program models the spread of a rumor. The rumor spreads when a person who knows the rumor tells one of their neighbors. In other words, spatial proximity is a determining factor as to how soon (and perhaps how often) a given individual will hear the rumor.

The neighbors can be defined as either the four adjacent people or the eight adjacent people. At each time step, every person who knows the rumor randomly chooses a neighbor to tell the rumor to. The simulation keeps track of who knows the rumor, how many people know the rumor, and how many "repeated tellings" of the rumor occur.

HOW TO USE IT

EIGHT-MODE? is a switch that determines whether at each time step the rumor spreads to one of four randomly chosen neighbors, or one of eight such neighbors.

As with any rumor, it has to start somewhere, with one or more individuals. There are three ways to control the start of the rumor:

1) Single source: Press the SETUP-ONE button. This starts the rumor at one point in the center of the world.
2) Random source: Press the SETUP-RANDOM button with the INIT-CLIQUE slider set greater than 0. This "seeds" the rumor randomly by choosing a percentage of the population that knows the rumor initially. This percentage is set using the INIT-CLIQUE slider.
3) Choose source with mouse: Press either SETUP-ONE or SETUP-RANDOM, then press the SPREAD-RUMOR-WITH-MOUSE button. While this button is down, clicking the mouse button on a patch in the view will tell the rumor to that patch.

To run the model, you can either "step" through each time step using the STEP button or allow the model to simply run continuously using the GO button. The model will stop when everyone in the population knows the rumor.

There are three plots:

RUMOR SPREAD - plots the percentage of people who know the rumor at each time step.
SUCCESSIVE DIFFERENCES - plots the number of new people who are hearing the rumor at each time step.
SUCCESSIVE RATIOS - plots the percentage of new people who are hearing the rumor at each time step.

The monitor CLIQUE% is the percentage of the patches that have heard the rumor.

The three coloring buttons to the right of the view give you topographic maps of the world. The COLOR: WHEN HEARD button colors the patches different shades of YELLOW according to the first time that location heard the rumor. The COLOR: TIMES HEARD button colors the patches different shades of GREEN according to the number of times that location has heard the rumor.

THINGS TO NOTICE

The most interesting models to run are those where only a small number of individuals who initially know the rumor. Use the SPREAD-RUMOR-WITH-MOUSE button to make an initial setup where only three or four patches know the rumor, and all of these patches are in the left half of the world. Run your model once with "Wrap" off and then again with "Wrap" on. notice the difference in how the rumor is spread. Which version seems more realistic to you?

Similarly, run the same model in eight-mode and then in four-mode. Before you run the model, try to decide, will this make a difference in the spread of the rumor? Why or why not?

An interesting thing to notice about the spread of the rumor is that the "speed" with which the rumor spreads slows down as more and more people know the rumor. Why is that? How is that related to the number of "repeated" or "wasted" tellings of the rumor? How do the two "differences" plot windows help you to understand the dynamics of the rumor spread?

THINGS TO TRY

Change the shape of the world (by changing the wrap settings in edit World & View) and see how the spread of the rumor changes in a box or a cylinder.

Use SPREAD-RUMOR-WITH-MOUSE to place four "seeds" for the rumor centered in each of the four quadrants of the grid. Notice the pattern of "repeated tellings." Move the four "seeds" closer into the center of the grid. How does the pattern or "repeated tellings" change? Move the "seeds" away from the center of the grid. How does the pattern of repeated tellings change? How will it change if you turn "wrap" on or off?

Explore other patterns of seeding the rumor and its impact on the pattern of repeated tellings.

EXTENDING THE MODEL

Here are some suggestions for ways to extend the model.

  • Introduce physical barriers into the simulation. These spatial barriers would be obstacles around which the rumor would have to spread. One could imagine a room where there was only a one cell entry. How long would it take to reach the entire population in this case? And how would that curve (the function of the number of people who know the rumor versus time) compare to the spread of the rumor when there was no such barrier?

  • Assign a probability with which the rumor is told. In the current model, each time a person meets his/her neighbor, s/he tells the neighbor the rumor. How would the spread of the rumor change if the telling of the rumor took place only 50% of the time? or 30% of the time?

  • Currently, person A might keep telling person B the rumor over and over again. Does the rumor spread differently if no one tells the rumor to someone they've already told or someone who told them?

  • Can you make a rumor model that does not spread the rumor through spatial proximity?

NETLOGO FEATURES

Note the use of the neighbors and neighbors4 primitives to implement 8-mode and 4-mode, respectively.

RELATED MODELS

Virus, AIDS

CREDITS AND REFERENCES

This model is itself an extension of a physical experiment where spatial proximity was not a factor in the spread of the rumor. Contact Helen M. Doerr at hmdoerr@syr.edu regarding papers in preparation. Thanks to Dr. Doerr for inspiration for this model.

HOW TO CITE

If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

  • Wilensky, U. (1997). NetLogo Rumor Mill model. http://ccl.northwestern.edu/netlogo/models/RumorMill. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
  • Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.

COPYRIGHT AND LICENSE

Copyright 1997 Uri Wilensky.

CC BY-NC-SA 3.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

This model was created as part of the project: CONNECTED MATHEMATICS: MAKING SENSE OF COMPLEX PHENOMENA THROUGH BUILDING OBJECT-BASED PARALLEL MODELS (OBPML). The project gratefully acknowledges the support of the National Science Foundation (Applications of Advanced Technologies Program) -- grant numbers RED #9552950 and REC #9632612.

This model was converted to NetLogo as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227. Converted from StarLogoT to NetLogo, 2001.

Comments and Questions

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

Click to Run Model

globals [
  color-mode       ;; 0 = normal, 1 = when heard, 2 = times heard
  clique           ;; how many patches have heard the rumor
  previous-clique  ;; value of clique from last tick, for use in the "successive" plots
]

patches-own [
  times-heard    ;; tracks times the rumor has been heard
  first-heard    ;; clock tick when first heard the rumor
  just-heard?    ;; tracks whether rumor was heard this round -- resets each round
]

;;; setup procedures

to setup [seed-one?]
  clear-all
  set color-mode 0
  set clique 0
  ask patches
    [ set first-heard -1
      set times-heard 0
      set just-heard? false
      recolor ]
  ifelse seed-one?
    [ seed-one ]
    [ seed-random ]
  reset-ticks
end 

to seed-one
  ;; tell the center patch the rumor
  ask patch 0 0
    [ hear-rumor 0 ]
end 

to seed-random
  ;; seed with random number of rumor sources governed by init-clique slider
  ask patches with [times-heard = 0]
    [ if (random-float 100.0) < init-clique
        [ hear-rumor 0 ] ]
end 

to go
  if all? patches [times-heard > 0]
    [ stop ]
  ask patches
    [ if times-heard > 0
        [ spread-rumor ] ]
  update
  tick
end 

to spread-rumor  ;; patch procedure
  let neighbor nobody
  ifelse eight-mode?
    [ set neighbor one-of neighbors ]
    [ set neighbor one-of neighbors4 ]
  ask neighbor [ set just-heard? true ]
end 

to hear-rumor [when]  ;; patch procedure
  if first-heard = -1
    [ set first-heard when
      set just-heard? true ]
  set times-heard times-heard + 1
  recolor
end 

to update
  ask patches with [just-heard?]
    [ set just-heard? false
      hear-rumor ticks ]
  set previous-clique clique
  set clique count patches with [times-heard > 0]
end 

;;; coloring procedures

to recolor  ;; patch procedure
  ifelse color-mode = 0
    [ recolor-normal ]
    [ ifelse color-mode = 1
      [ recolor-by-when-heard ]
      [ recolor-by-times-heard ] ]
end 

to recolor-normal  ;; patch procedure
  ifelse first-heard >= 0
    [ set pcolor red ]
    [ set pcolor blue ]
end 

to recolor-by-when-heard  ;; patch procedure
  ifelse first-heard = -1
    [ set pcolor black ]
    [ set pcolor scale-color yellow first-heard world-width 0 ]
end 

to recolor-by-times-heard   ;; patch procedure
  set pcolor scale-color green times-heard 0 world-width
end 

;;; mouse handling

to spread-rumor-with-mouse
  if mouse-down?
    [ ask patch mouse-xcor mouse-ycor
        [ hear-rumor ticks ]
        display ]
end 


; Copyright 1997 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky over 9 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky almost 10 years ago Updated version tag Download this version
Uri Wilensky almost 10 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 10 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Model from NetLogo distribution Download this version
Uri Wilensky over 12 years ago Rumor Mill Download this version

Attached files

File Type Description Last updated
Rumor Mill.png preview Preview for 'Rumor Mill' over 9 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.