Preferential Attachment, Homophily etc. Networks

Preferential Attachment, Homophily etc. Networks preview image

1 collaborator

Default-person Jiawei Fu (Author)



Tagged by Adriana Maldonado almost 8 years ago

Model group MAM-2015 | Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.2.0 • Viewed 543 times • Downloaded 49 times • Run 0 times
Download the 'Preferential Attachment, Homophily etc. Networks' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)

Comments and Questions

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

Click to Run Model

turtles-own [wealth my-probability-of-homophily]
globals[number-homophily number-contagion flag]

to setup
  nw:set-context turtles links
  ask patches [set pcolor white]
  create-turtles number-of-nodes [
    set wealth Random 20
    set shape "circle"
    set color scale-color green wealth -5 25
    set size 1
    setxy random-xcor random-ycor
    set my-probability-of-homophily random probability-of-homophily]

to go
  ask links [set color gray]
  ask one-of turtles [
  make-node-homophily find-partner wealth] ;
   if number-homophily >= number-of-links [ask links [set color gray] ask one-of turtles [set color red] stop]
  if layout? [layout]

to contagion
  set flag 0
  if any? turtles with [color != red and count link-neighbors > 0]
    ask turtles with [color = red]
      ask link-neighbors [if random 100 <= probability-linked-affected [set color red set flag 1]
        ask other turtles [
        if random 100 < probability-other-affected [set color red set flag 1]]
    if flag = 1 [set number-contagion number-contagion + 1] 

to make-node-homophily [node]
  if node != nobody
        create-link-with node [set color red]
        move-to node
        fd 8
        set number-homophily number-homophily + 1

to-report find-partner [W]
  ifelse random 100 < my-probability-of-homophily
 [report one-of other turtles with [wealth = W or wealth = W - 1 or wealth = W + 1]]
 [report one-of other turtles with [wealth > W]]
;;; Layout ;;;

;; resize-nodes, change back and forth from size based on degree to a size of 1

to resize-nodes
  ifelse all? turtles [size <= 1]
    ;; a node is a circle with diameter determined by
    ;; the SIZE variable; using SQRT makes the circle's
    ;; area proportional to its degree
    ask turtles [ set size sqrt sqrt count link-neighbors ]
    ask turtles [ set size 1 ]

to layout
  ;; the number 3 here is arbitrary; more repetitions slows down the
  ;; model, but too few gives poor layouts
  repeat 3 [
    ;; the more turtles we have to fit into the same amount of space,
    ;; the smaller the inputs to layout-spring we'll need to use
    let factor sqrt count turtles
    ;; numbers here are arbitrarily chosen for pleasing appearance
    layout-spring turtles links (1 / factor) (10 / factor) (10 / factor)
    display  ;; for smooth animation
  ;; don't bump the edges of the world
  let x-offset max [xcor] of turtles + min [xcor] of turtles
  let y-offset max [ycor] of turtles + min [ycor] of turtles
  ;; big jumps look funny, so only adjust a little each time
  set x-offset limit-magnitude x-offset 0.1
  set y-offset limit-magnitude y-offset 0.1
  ask turtles [ setxy (xcor - x-offset / 2) (ycor - y-offset / 2) ]

to-report limit-magnitude [number limit]
  if number > limit [ report limit ]
  if number < (- limit) [ report (- limit) ]
  report number

There is only one version of this model, created about 9 years ago by Jiawei Fu.

Attached files

File Type Description Last updated
Preferential Attachment, Homophily etc. Networks.png preview Preview for 'Preferential Attachment, Homophily etc. Networks' about 9 years ago, by Jiawei Fu Download

This model does not have any ancestors.

This model does not have any descendants.