This page was automatically generated by NetLogo 5.2.0.

The applet requires Java 5 or higher. Java must be enabled in your browser settings. Mac users must have Mac OS X 10.4 or higher. Windows and Linux users may obtain the latest Java from Oracle's Java site.


powered by NetLogo

view/download model file: RumorXafCre1.nlogo

WHAT IS IT?

Aquests programa modela la difusió d’un rumor. El rumor s’estén quan una persona que sap el rumor el comunica als seus veïns (podriem pensar en els amics de les xarxes socials).

Els veïns són definits com les quatre persones adjacents

A cada pas, tothom que sap el rumor pot comunicar-lo. Comunica el rumor amb una probabilitat igual al grau de xafarderia individual (distribució normal) resultat de la xafarderiaSocial. Si l’individu comunica el rumor, aleatòriament un dels quatre veïns resulta infectat d’acord amb una probabilitat igual a la Credulitat o taxa de contactes que produeixen infeció. El model manté le recompte de qui sap el rumor, quantes persones saben el rumor, i com d’intens és el rumor (quantes vegades un individu l’ha sentit)

HOW TO USE IT

Amb els botons lliscants corresponents, establim un grau de propensió a propagar (xafarderiaSocial) i un grau de credulitat (% contactes que produeixen infeccioó).

Com passa amb qualsevol rumor, ha de començar en algun lloc, amb un o més individus. Hi ha tres maneres per controlar l’inici del rumor:

1) Origen individual concret: Premeu el botó SETUP-ONE. El rumor comença en un sol punt en el centre del quadre.
2) Font aleatòria: Premeu el botó SETUP-RANDOM amb l’INIT-NIVELL més gran que 0. Això “sembra” el rumor a l’atzar tot escollint un percentatge de la població que sap inicialment el rumor . Aquest percentatge s’estableix utilitzant l’INIT-NIVELL.
3) Escullir la font amb ratolí: Premeu qualsevol botó, SETUP-UN o SETUP-ALEATORI, llavors prémeu ESTÉN-RUMOR-AMB-RATOLÍ. Mentre aquest botó és activat, clicant amb el botó del ratolí en un quadre de la vista, aquest quadre serà font del rumor.

Per executar el model, podeu o bé “esglaonar” a través d’anar pas a pas utilitzant el botó STEP o permetre senzillament al model funcionar contínuament utilitzant el botó GO. Per para el model toneu a prémer GO.

Hi ha tres gràfics:

% INFECTATS - dóna el percentatge de persones que saben el rumor a cada pas.
NOUS INFECTATS EN EL PAS- dóna el número de persones noves que queden infectades pel rumor a cada nou pas.
% INFECTATS SOBRE TOTAL- dóna el percentatge de persones noves que resulten infectades pel rumor a cada nou pas.

El monitor NIVELL% és el percentatge del quadres infectats pel rumor.

El tres botons a la dreta de la vista proporcionen mapes topogràfics del món basats en el color. El botó QUAN ES VA INFECTAR coloreja els quadres amb diferents intensitats de GROC segons el primer cop que la ubicació va infectar-se. El botó VEGADES AFECTAT coloreja els quadres amb diferents intensitats de VERD segons el número de vegades que la ubicació ha estat afectada.

THINGS TO NOTICE

Si la xaferdariaSocial i la credulitat són superiors a 0, el model funciona com un sistema de primer ordre de creixement en S. Ara bé, aquesta S pot tenir aspectes molt diferents segons la Credulitat i la XafarderiaSocial. Primer creix lentament, despés s’accelera i finalment es redueix la velocitat d’infecció fins afectar tota la població connectada.

La CREDULITAT afecta la velocitat de propagació del rumor en menor mesura que la XAFARDERIA-SOCIAL. Per contenir el rumor es tracta, doncs, d’alentir el procés de difusió. El factor XAFARDERIA-SOCIAL afecta la velocitat de difusió del rumor en una proporció entre 5 i 10 vegades més gran que el factor CREDULITAT.

És a dir, el model ens mostra que el factor bàsic per evitar la propagació d’un rumor és no comunicar-lo i que si ho fem, acaba infectant tota la població bastant ràpidament encara que el grau de credulitat sigui baix. Un rumor és com una infecció, s’ha d’aïllar i evitar que es propagui.

Dos exemples. He fet córrer el programa amb un grau de xafarderiaSocial del 23% i un grau de Credulitat del 8,5%, i després de 300 passos resulta afectat el 32% de la població. Però, si fem córrer el programa amb un grau de xaferdariaSocial del 8,5% i un grau de Credulitat del 23%, després de 300 passos només resulta afectat el 3,8% (si ho proveu, com que el progama incorpora l’atzar, pot donar uns resultats lleugerament diferents).

THINGS TO TRY

Podem utilitzar el botó ESTÉN-RUMOR-AMB-RATOLÍ per col·locar quatre “llavors” del rumor centrades dins cadascun dels quatre quadrants del reixat. Podem anar introduint modificacions de col·locació de les fonts. Atenció a la intensitat de la infecció segons l’ubicació d’aquests quatre (o pocs) punts originaris.

Podem explorar altres patrons de sembra del rumor i veure el seu impacte en la propagació.

CREDITS AND REFERENCES

Aquest model està basat en:

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.

LICENSE

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.

CODE

globals [
  color-mode       ;; 0 = normal, 1 = when heard, 2 = times heard
  nivell           ;; how many patches have heard the rumor
  previous-nivell  ;; value of nivell from last tick, for use in the "successive" plots
  llindar-infec    ;; probabilitat infecció d'1 entre 4 veïns
  Credulitat/100
  xafarderiaSocial/100
]

patches-own [
  times-heard    ;; tracks times the rumor has been heard
  first-heard    ;; pas en el qual se sent el rumor
  just-heard?    ;; tracks whether rumor was heard this round -- resets each round
  p_xafarderia    ;; grau de xafarderia
]

;;; setup procedures

to setup [seed-one?]
  clear-all
  set color-mode 0
  set nivell 0
  set Credulitat/100 Credulitat / 100
  set xafarderiaSocial/100 xafarderiaSocial / 100
  set llindar-infec Credulitat/100 ^ 4 ;; Contactes-Priodueixen-Infecció  1 - ((1 - Credulitat) ^ 4)
  ;; Infectar-se o no, són successos oposats, conjuntament amb p=1. La p de no infectar-se en un grup de 4
  ;; restada d'1 dóna la p d'infectarse almenys 1 en el grup
  ask patches
    [ set first-heard -1
      set times-heard 0
      set just-heard? false
      set p_xafarderia random-normal xafarderiaSocial/100 (xafarderiaSocial/100 / 2);; xafarderia particular del tros
      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 ;; sentit en el pas 0
      set p_xafarderia 1 ;;el que ho inicia ha de ser xafarder
    ]
end

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

to go
  if all? patches [times-heard > 0]
    [ stop ]
  ask patches
    [ if (times-heard > 0 and ((random-float 1) < p_xafarderia)) ;; propensió a transmetre el rumor
        [ spread-rumor ] ]
  update
  tick
end

to spread-rumor  ;; patch procedure
  let neighbor nobody ;;crea variable local neighbor
  if (random-float 1) > llindar-infec  ;;ho senten els 4, si n > p de no infectar-se algun d'ells
    [ set neighbor one-of neighbors4  ;; només un, de fet, podrien ser més. Velocitat propagació més ràpida
      ask neighbor [ set just-heard? true ];;un ho ha sentit ara,però pot no ser la primera vegada(first-heard)
    ]
end

to hear-rumor [when]  ;; sentit en el pas when. Cridat per update i dins setup
  if first-heard = -1 ;;si no ho havia sentit abans
    [ set first-heard when
      set just-heard? true ]
  set times-heard times-heard + 1;;en qualsevol cas sumem 1
  recolor
end

to update
  ask patches with [just-heard?];;afecta els passos anterior i actual
    [ set just-heard? false
      hear-rumor ticks ]
  set previous-nivell nivell;;guardem el nombre d'afectats anterior
  set nivell 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 estén-rumor-amb-ratolí
  if mouse-down?
    [ ask patch mouse-xcor mouse-ycor
        [ hear-rumor ticks ]
        display ]
end


; See Info tab for full copyright and license.