Meme Difusion

Meme Difusion preview image

1 collaborator

Default-person Antonio Fonseca (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0.5 • Viewed 342 times • Downloaded 25 times • Run 0 times
Download the 'Meme Difusion' 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 model is a simple cellular automaton that simulates voting distribution by having each patch take a "vote" of its eight surrounding neighbors, then perhaps change its own vote according to the outcome.

HOW TO USE IT

Click the SETUP button to create an approximately equal but random distribution of blue and green patches. Click GO to run the simulation.

When both switches are off, the central patch changes its color to match the majority vote, but if there is a 4-4 tie, then it does not change.

If the CHANGE-VOTE-IF-TIED? switch is on, then in the case of a tie, the central patch will always change its vote.

If the AWARD-CLOSE-CALLS-TO-LOSER? switch is on, then if the result is 5-3, the central patch votes with the losing side instead of the winning side.

THINGS TO NOTICE

Watch how any setup quickly settles to a static state when both switches are off.

Watch what happens when only the CHANGE-VOTE-IF-TIED? switch is on. How is the result different?

Watch what happens when only the AWARD-CLOSE-CALLS-TO-LOSER? switch is on. How is the result different?

What happens when both switches are on?

EXTENDING THE MODEL

Try other voting rules.

Start with a nonrandom green-and-blue pattern. For example, one could make half of the world blue and half green.

Can you enhance the model to incorporate multiple colors and multiple votes? One might interpret shades of color to represent the degree of a patch's opinion about an issue: strongly against, against, neutral, etc. Each patch could have more than two choices and weighted votes: blue patches' vote could count twice, etc.

RELATED MODELS

Ising (a physics model, but the rules are very similar)

CREDITS AND REFERENCES

This model is described in Rudy Rucker's "Artificial Life Lab", published in 1993 by Waite Group Press.

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:

In other publications, please use:

COPYRIGHT NOTICE

Copyright 1998 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

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

Click to Run Model

turtles-own [
  token
]

globals
[
  token_values
]

to inicia
  __clear-all-and-reset-ticks
  set token_values []
  repeat num_tokens [
    ifelse aleatorio 
    [set token_values lput random-normal fitness 0.2 token_values]
    [set token_values lput fitness token_values]
  ]
  do-plots
  crt num_agentes  
  ask turtles [
    set shape "circle"
    set token random num_tokens
    set color color_token token
    setxy random-xcor random-ycor]
end 

to reset
    ask turtles [
    set shape "circle"
    set token random num_tokens
    set color color_token token
    setxy random-xcor random-ycor] 
end 

to go
  tick
  ask turtles [
    let t [token] of one-of turtles
    ifelse random-float 1 < novidade [set token random num_tokens]
    [if random-float 1 < item t token_values [set token t]]
    set color color_token token
  ]
end 

to-report color_token [t]
  report int (token / num_tokens * 140)
end 

to-report entropia [lst]
  let symbols remove-duplicates lst
  let freq []
  let l (length lst)
  foreach symbols [
    let ctr 0
    let symb ?
    foreach lst [ if ? = symb [set ctr ctr + 1]]
    set freq lput (ctr / l) freq
  ]
  let rep 0.0
  foreach freq [set rep (rep + ? * log ? 2)]
  report (- rep)
end 

to-report log-normal [u sgm]
  let b ln ( 1 + (sgm * sgm) / (u * u))
  let s1 sqrt(b)
  let m1 (ln(u) - (b / 2))
  report exp(random-normal m1 s1)
end 

to-report tendencia [lst nivel]
  let out []
  let cnt 0
  while [length lst > 0 and cnt < nivel]
  [ foreach modes lst
    [
    set out lput ? out
    set lst remove ? lst
    set cnt (cnt + 1)
    ]]    
  report one-of out
end 

to do-plots
  set-current-plot "Fitness"
  let xx n-values num_tokens [?]
  clear-plot
  set-plot-x-range 0 num_tokens
  (foreach xx token_values [plotxy ?1 ?2]) 
end 

There is only one version of this model, created over 11 years ago by Antonio Fonseca.

Attached files

File Type Description Last updated
Meme Difusion.png preview Preview for 'Meme Difusion' over 11 years ago, by Antonio Fonseca Download

This model does not have any ancestors.

This model does not have any descendants.