# Bing_Social Network Simulator_v2

Model was written in NetLogo 5.0.4
•
Viewed 522 times
•
Downloaded 30 times
•
Run 0 times

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 [ source belong-to ;;news belong to whome ] breed [news a-news] breed [people node] to setup clear-all create-people 1 [set color red] create-people 1 [set color red create-link-with turtle 0] while [count turtles < number-of-nodes] [ setup-initial-network find-partner ] ask one-of turtles[set color pink] setup-news ask news [put-ontop] reset-ticks end to setup-nodes set-default-shape turtles "circle" create-people number-of-nodes [ setxy (random-xcor * 0.95) (random-ycor * 0.95) set color green set size 1 ] ask one-of turtles[set color pink] ;;create-news 1 [setxy random-xcor random-ycor set color yellow set shape "square"] end to setup-network let num-links (4 * number-of-nodes) / 2 while [count links < num-links] [ ask one-of people [ let choice (min-one-of (other people with [not link-neighbor? myself]) [distance myself]) if choice != nobody [create-link-with choice] ] ] ; make the network look a little prettier repeat 15 [ layout-spring turtles links 0.3 (world-width / (sqrt number-of-nodes)) 1 ] end ;;prefential attachment to setup-initial-network [old-node] create-people 1 [ set color red if old-node != nobody [ create-link-with old-node ;; position the new node near its partner move-to old-node fd 8 ] ] end to-report find-partner let total random-float sum [count link-neighbors] of turtles let partner nobody ask turtles [ let nc count link-neighbors ;; if there's no winner yet... if partner = nobody [ ifelse nc > total [ set partner self ] [ set total total - nc ] ] ] report partner end ;;;;;;;;;;;;;;;;;;;;;;;;; to setup-news create-news 1 [ set shape "car" set color yellow set size 1.5 set source one-of turtles with [color = pink] ] let temp one-of turtles with [color = pink] ask news [move-to temp set belong-to temp] end to go ifelse ticks mod 3 = 1 and ticks > 3 [ ask news [die] ask turtles [set color red] ask one-of turtles [set color pink] setup-news ] [ ask turtles with [color = pink] [ while [count link-neighbors with [color = red] > 0] [ let spread one-of link-neighbors with [color = red] let parent one-of turtles-here with [color = yellow] if spread != nobody [ if random-float 100 < news-is-interesting [ ask spread [set color pink] ask parent[hatch 1] ask parent [move-to spread set belong-to spread] ask spread [create-link-with [source] of parent] ]] ] ] ] tick end to go_once ifelse ticks mod 3 = 1 and ticks > 3 [ ask news [die] ask turtles [set color red] ask one-of turtles [set color pink] setup-news ] [ ask turtles with [color = pink] [ while [count link-neighbors with [color = red] > 0] [ let spread one-of link-neighbors with [color = red] let parent one-of turtles-here with [color = yellow] if spread != nobody [ if random-float 100 < news-is-interesting [ ask spread [set color pink] ask parent[hatch 1] ask parent [move-to spread set belong-to spread] ask spread [create-link-with [source] of parent] ]] ] ] ] tick end to put-ontop hatch 1;;[create-links-with [links]of myself] die end 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) (7 / factor) (1 / 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) ] ask news [move-to [belong-to] of self] end to-report limit-magnitude [number limit] if number > limit [ report limit ] if number < (- limit) [ report (- limit) ] report number end 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 count link-neighbors ] ] [ ask turtles [ set size 1 ] ] end

There is only one version of this model, created over 6 years ago by Bing Zhang.

## Attached files

File | Type | Description | Last updated | |
---|---|---|---|---|

Bing_June 3.pdf | Progress Report_June 3 | over 6 years ago, by Bing Zhang | Download | |

Bing_May 13.pdf | Progress Report_May 13 | over 6 years ago, by Bing Zhang | Download | |

Bing_May 20.pdf | Progress Report_May 20 | over 6 years ago, by Bing Zhang | Download | |

Bing_May 27.pdf | Progress Report_May 27 | over 6 years ago, by Bing Zhang | Download | |

Bing_Social Network Simulator_v2.png | preview | Preview for 'Bing_Social Network Simulator_v2' | over 6 years ago, by Bing Zhang | Download |

This model does not have any ancestors.

This model does not have any descendants.