Rumor Mill - Juiciness
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
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 plot windows associated with this rumor model.
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?
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.
REFLECTION
Fireworks
When gravity is higher, the fireworks do not go as high and the fragments come down much quicker. Gravity is a force that accelerates objects towards the center of the earth and opposes the vertical component of an object_ motion. Therefore, the firework and its fragments will slow down faster as it reaches the peak and accelerate quicker downwards compared to when the gravity = 1 (assuming this is the status quo).
When gravity = 0, there is no longer any force that is opposing the fireworks_motion, so they will continue to progress in the x and y direction that they were launched. The fragments would then be released when the explosion is timed. they will then radiate outwards and those fragments will then proceed in that trajectory indefinitely. The color will continue until the chemical reaction that produces the color finishes. According to Newton_ 1st Law of Motion, an object that is in motion will remain in motion unless acted on by an outside force. Therefore, without the presence of gravity, the fragments will continue to move in their original trajectory until some other force opposes its motion (e.g. it runs into something).
Virus
In the initial set up of virus it is interesting to let the scenario play out for 27 years as is outlined on the _nformation_because what is seen is that about half the population builds up immunity to the infection (basically 350 to 390 of the population of 750 approximately). The chance of recovery in the initial scenario was 50% so that was the first element with which to experiment.
Only changing the chance-recovery to slightly less than 50% (to 47%) did not yield any huge impact to the overall scenario because number of immune people decreased slightly and the number of sick was also slightly less than in first scenario.
In the next variation, we looked at a lower infectious virus (about 11%) and only having a chance of recover of 17%; this scenario the virus basically died out after only 10 years. Next we increased the infectiousness to 60% and kept the chance-recovery at 17% -- this scenario offered a big difference because the size of the overall population was affected _it dropped down to as low as 225. Furthermore, in this scenario sick individuals are the largest portion of the population at 160 to 241 in years 20 through 27.
Finally, we looked at what happens with a duration of 4 weeks, infectiousness at 77% and chance-recovery at 41% -- and with these parameters the sick were the smallest segment of the population with healthy and immune and healthy people being the largest parts of the population, and overall population not being affected.
Rumor Mill
It is more realistic to have the _rapping off_ as if the visible view is the total number of people in a population, you wouldn_ actually have people _ff the screen_ In the wrapping view, it assumes that if it runs off the page, the rumor will spread to people on the opposite side of town, which is not realistic and does not fit the model, as it is based on the people who are closest to you at any particular moment.
When it is switched to _ight-mode_ the rumor spread is at much quicker rate, which makes sense as each _gent_is spreading it to twice as many people at each cycle, so the rate of exponential increase is much higher.
As the rumor matures, there are less people who do not know the rumor. Therefore, as the agents look around to the four nearest people, their efforts are futile because they have already heard the rumor, thus a wasted telling. Therefore, we would expect that there would be a higher rate of _epeated_tellings as the rumor matures and this should correlate with a slower rate of spread of the rumor.
The successive differences graph shows how many people are hearing the rumor for the first time, and we can see that there is a general increase until a certain point, and then we start to see greater diminishing returns for the tellings and fewer new people are hearing the rumor for the first time. The peaks of this graph and the previous graph correspond to each other.
The successive ratio graph uses the above data to get the percentage of the population that is hearing the rumor for the first time, and we can see that it_ at constant rate (~1% increase at every step.)
When you change the shape of the world to a cylinder versus a box, the time to spread the rumor is the same, but the rate of increase begins to decrease much earlier. The agents have more access to people because the world wraps, unlike the box, so they have greater access to people who have not heard the rumor, which explains the more rapid increase and the higher peak in the number of people who are hearing the rumor for the first time. However, it will quickly drop because they have running out of people to who to tell the rumor.
When you have the rumor start in each of four quadrants with the wrap on it spreads relatively fast in 108 clicks and has a typical distribution reaching its highest point of 261 by the 48 tick or click. When you do the same distribution but controlling for the "wrap off" you see the rumor is 100% spread by the 97th click - so it isn't making a huge difference. You see the rumor spread more quickly when the "seeds" are initally well distributed and the rumor spreads less quickly when the rumor starts in a tighter geographical area. When you move the "seeds" of the rumor away from the source then the rumor spreads more quickly. When the wrap is off, then the rumor transmission is slowed because there is a barrier to spreading the rumor.
OUR EXTENSION
We chose to extend this model by including a _uiciness_factor that would influence how readily the rumor would be spread. This depicts reality, as if the secret is juicier, a person is more likely to tell the rumor compared to when it is less interesting. Our _uiciness_scale ranged from 0-8, which correlated to the number of neighbors around the agent. We removed the _ight-mode?_slider and the associated steps in the _pread rumor_procedure and added the following command:
- _et neighbor n-of random juiciness neighbors_
To replace the steps that said whether the rumor would be spread to 4 or 8 neighbors, this step basically said that it would set the maximum number of neighbors to whom the agent would be spreading the rumor, as some individuals may choose not to spread the rumor despite its juiciness. This number is determined by _uiciness_ which was set by the slider on the interface.
Upon setup, the _uiciness_factor is set at 0. As the slider is increased, the time for 100% coverage decreases.
NETLOGO FEATURES
Note the use of the "neighbors" primitive to implement 8-mode.
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 an academic 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 University, Evanston, IL.
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
In other publications, please use:
- Copyright 1997 Uri Wilensky. All rights reserved. See http://ccl.northwestern.edu/netlogo/models/RumorMill for terms of use.
COPYRIGHT NOTICE
Copyright 1997 Uri Wilensky. All rights reserved.
Permission to use, modify or redistribute this model is hereby granted, provided that both of the following requirements are followed:
a) this copyright notice is included.
b) this model will not be redistributed for profit without permission from Uri Wilensky. Contact Uri Wilensky for appropriate licenses for redistribution for profit.
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
globals [ color-mode ;; 0 = normal, 1 = when heard, 2 = times heard clique ;; how many patches have heard the rumor ] 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?] ca set color-mode 0 set clique 0 set juiciness 4 ask patches [ set first-heard -1 set times-heard 0 set just-heard? false recolor ] ifelse seed-one? [ seed-one ] [ seed-random ] update do-plots end to seed-one ;; tell the center patch the rumor ask patch 0 0 [ hear-rumor ] 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 ] ] end to go if all? patches [times-heard > 0] [ stop ] ask patches [if times-heard > 0 [ spread-rumor ] ] update tick do-plots end to spread-rumor ;; patch procedure let neighbor nobody set neighbor n-of random juiciness neighbors;; based on the juiciness of the rumor, it will tell this ;; # of its 8 neighbors ask neighbor [ set just-heard? true ];; tells the neighbor that they have now just heard the rumor end to hear-rumor ;; patch procedure if first-heard = -1 [ set first-heard ticks 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 ] 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 ] display ] end ;;; plotting procedures to setup-plots set-current-plot "Successive Differences" set-plot-y-range 0 (count patches / 5) end to do-plots let new-clique count patches with [times-heard > 0] set-current-plot "Rumor Spread" plot (new-clique / count patches) * 100 set-current-plot "Successive Ratios" ifelse clique = 0 [ plot 1 ] [ plot new-clique / clique ] set-current-plot "Successive Differences" plot new-clique - clique set clique new-clique end ; Copyright 1997 Uri Wilensky. All rights reserved. ; The full copyright notice is in the Information tab.
There is only one version of this model, created over 14 years ago by Abe Lo.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.