Going Viral v4
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
I have used the virus model in some capacity for my setup, though the rest of my model will be vastly different. For this phase of my project, it makes sense to use a setup that works. I will be making changes as I see fit once my model has progressed to a more completed state.
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:
- Stonedahl, F. and Wilensky, U. (2008). NetLogo Virus on a Network model. http://ccl.northwestern.edu/netlogo/models/VirusonaNetwork. 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 2008 Uri Wilensky.
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.
Comments and Questions
globals [ humorcheck angercheck infocheck sadcheck roundcheck numberwatch ] turtles-own [ shared? ;; if true, the turtle has shared the content watched? ;; if true, the turtle has seen the content and has/has not shared it yet contcheck ;; number of times content has been viewed funny anger sad ;; evoking the primal emtions to what degree -- could maybe be one attribute : emotion savvy ;; How connected are you? will you "get" the content in a sense enthu ;; slightly linked to arousal but also intrinsic to the person- how enthusiastically are you going to share this video? arousal ;; a culmination of emotions, visibility and other factors --> to share or not to share ] to setup clear-all setup-nodes setup-spatially-clustered-network ask turtles [set shared? false] ask turtles [set watched? false] ask turtles [set anger random 100 / 100] ask turtles [set sad random 100 / 100] ask turtles [set funny random 100 / 100] ;; I want arousal to almost be a 6-point scale that determines sharing- one person's enthusiasm should also perhaps directly feed another's more directly? endorsement vs. just passive sharing effect ask turtles [if funny < 0.4 [ set funny funny + 0.3]]; ;; humor is a pretty universal attribute -even people who don't find most things funny respond to humor more than other emotions. ask turtles [set enthu random 100 / 100] ask turtles [set contcheck 0] if homophily [ ask turtles [ask link-neighbors [ if abs ([funny] of myself - funny) > 0.3 [set funny (funny + [funny] of myself) / 2 ] ] ] ;;Homophily - people tend to be surrounded/friends with people similar to them- minimzing variances in their personality types- homophily ask turtles [ask link-neighbors [ if abs ([anger] of myself - anger) > 0.3 [set anger (anger + [anger] of myself) / 2]]] ask turtles [ask link-neighbors [ if abs ([sad] of myself - sad) > 0.3 [set sad (sad + [sad] of myself) / 2]]] ask turtles [ask link-neighbors [ if abs ([enthu] of myself - enthu) > 0.3 [set enthu (enthu + [enthu] of myself) / 2]]]] ifelse target [ask n-of campaignlevel turtles [seecontent]][ask n-of campaignlevel turtles with [funny > 0.5 and anger > 0.5][seecontent]] ;; This is effectively releasing the content across the internet ;;ask links [ set color white ] ;; Do I care about the color of the links? Probably not, unless I'm doing re-transmission ie re-sharing..unlikely. reset-ticks end to setup-nodes ;; ALL OF THIS IS FROM VIRUSES set-default-shape turtles "circle" crt number-of-nodes ;; NEED A SCALED DOWN VERSION OF THE WORLD. I might just make it a number that scales well based on say- the population of NA since most of my literature and research is definitely limited by that in a sense. [ ; for visual reasons, we don't put any nodes *too* close to the edges setxy (random-xcor * 0.95) (random-ycor * 0.95) ] ask turtles [set color white] ;; No exposure to any content. Will be handled in "go" if supernode [ask one-of turtles [set color blue set size 2 setxy (random-xcor * 0.5) (random-ycor * 0.5)]] ;; someone at the center of the universe kind of like a celebrity - Jimmy Kimmel sent something viral all by himself - Gizmodo sends videos viral all the time - similar phenomena end to setup-spatially-clustered-network let num-links (average-node-degree * number-of-nodes) / 2 ;; I'm not completely sold on this form of creating links. Currently it looks like it could serve the purpose I need it for but might need some work. while [count links < num-links ] ;; Note: While the links are created based on proximity in the code, it is not meant to be interpreted as such. It is just meant to serve as "internet proximity" [ ;; Can't tell if that would be an issue, but I'm guessing not at this point. ask one-of turtles [ let choice (min-one-of (other turtles with [not link-neighbor? myself]) [distance myself]) if choice != nobody [ create-link-with choice ] ] ] ; make the network look a little prettier ;; I'll probably keep this since it does help with making the network look pretty. repeat 30 [ layout-spring turtles links 0.3 (world-width / (sqrt number-of-nodes)) 1 ] end to seecontent ;; turtle procedure set watched? true set contcheck contcheck + 1 set arousal ( arousal + arousal / ( contcheck + 1) ) ;; if contcheck = 1 [set color yellow] if contcheck > 1 and not shared? [set color 43] end to go while [roundcheck < rounds] [ifelse target [ask n-of campaignlevel turtles with [funny > 0.5 and anger > 0.5][seecontent set roundcheck roundcheck + 1]][ask n-of campaignlevel turtles [seecontent set roundcheck roundcheck + 1 ]]] ask turtles [if watched?[shareornot] ] ;; once turtles see content, they can decide whether or not to share the content. ifelse vanger + vfunny + vsad + vutil > 30 [tick-advance 3] [ tick-advance 5] ask turtles [if shared? [set color red] ] set numberwatch count turtles with [watched? = true] if supernode [ask turtles with [size = 2 and shared?] [share]] if randomsparks [ if random 100 < 20 [ask one-of turtles [seecontent]]] if hold [ ask turtles [set color white set arousal 0 set shared? false set watched? false set contcheck 0]] ask turtles [if hold and size = 2 [set color blue]] tick end to shareornot ;; MIGHT HAVE TO SET UP COMBOS THAT MAKE SENSE. THE AMALGAM DOESN'T MAKE ALL THAT MUCH SENSE TO ME ifelse vfunny > 5 + funny * 3 [set humorcheck (vfunny - 5) * funny][set humorcheck 0] ifelse vsad > 5 + sad * 4 [set sadcheck (vsad - 5) * sad][set sadcheck 0] ifelse vanger > 5 + anger * 3 [set angercheck (vanger - 5) * sad] [set angercheck 0] ;; Getting the agent to decide if he will share or not. How important each attribute is to the agent vs. how much that's reflected in the content if contcheck > 1 and contcheck < 4 [set arousal (arousal + (arousal / (1 + contcheck)))] ;;Are you really more likely to share once you've seen something 4 times and decided not to share? if contcheck = 1 [set arousal (0.6 * humorcheck - 0.2 * sadcheck + 0.5 * angercheck + 0.2 * vutil + 0.1 * repfreq)] ;;including how useful the content is as a parameter; also if it's second interaction with content, arousal levels add, but by smaller factors each time if arousal > 2.6 [share] ;; Max. value possible 1.4. Just set a reasonable threshold. will go from there based on results. end to share ifelse size < 2 [ask (link-neighbors) [seecontent]] [ask turtles in-radius 5 [seecontent]] set shared? true ;; set color red end
There is only one version of this model, created about 12 years ago by Yash Siddhartha.
Attached files
No files