turtles-own [ ;; this is used to mark turtles we have already visited explored? turtle-sectarism node-clustering-coefficient distance-from-other-turtles ;; list of distances of this node from other turtles ] directed-link-breed [endogamics endogamic] directed-link-breed [noendogamics noendogamic] links-own [ time-link ] globals [ component-size ;; number of turtles explored so far in the current component giant-component-size ;; number of turtles in the giant component giant-start-node ;; node from where we started exploring the giant component secta nosecta sectarian endogamins endogamins-total endogamins-real endogamins-median links-total time time-check suvirval correction-variable endogamins-realmedian total-nodes real-sectarism stop-variable time-vision ] ;;;;;;;;;;;;;;;;;;;;;;;; ;;; Setup Procedures ;;; ;;;;;;;;;;;;;;;;;;;;;;;; to make-turtles __clear-all-and-reset-ticks ca ask patches [set pcolor white] crt (red-nodes) [ set shape "circle" set xcor (-1) * abs random-xcor + (1) * abs random-xcor set ycor (1) * abs random-ycor + (-1) * abs random-ycor set color 15 set turtle-sectarism sectarism - 0.03 + random-normal 0.05 random-sectarism if turtle-sectarism > 1 [set turtle-sectarism 1] ] crt (blue-nodes) [ set shape "circle" set xcor (-1) * abs random-xcor + (1) * abs random-xcor set ycor (1) * abs random-ycor + (-1) * abs random-ycor set color 105 set turtle-sectarism sectarism2 - 0.03 + random-normal 0.05 random-sectarism if turtle-sectarism > 1 [set turtle-sectarism 1] ] crt (green-nodes) [ set shape "circle" set xcor (-1) * abs random-xcor + (1) * abs random-xcor set ycor (1) * abs random-ycor + (-1) * abs random-ycor set color 195 set turtle-sectarism sectarism3 - 0.03 + random-normal 0.05 random-sectarism if turtle-sectarism > 1 [set turtle-sectarism 1] ] crt (yellow-nodes) [ set shape "circle" set xcor (-1) * abs random-xcor + (1) * abs random-xcor set ycor (1) * abs random-ycor + (-1) * abs random-ycor set color 45 set turtle-sectarism sectarism4 - 0.03 + random-normal 0.05 random-sectarism if turtle-sectarism > 1 [set turtle-sectarism 1] ] ask turtles [set size 4] set secta 0 set nosecta 1 set total-nodes (red-nodes + blue-nodes + green-nodes + yellow-nodes) set correction-variable ( (red-nodes * red-nodes) / (total-nodes * total-nodes) + (blue-nodes * blue-nodes) / (total-nodes * total-nodes) + (green-nodes * green-nodes) / (total-nodes * total-nodes) + (yellow-nodes * yellow-nodes) / (total-nodes * total-nodes) ) set endogamins-total correction-variable set real-sectarism sum [turtle-sectarism] of turtles / total-nodes observe-one-node clear-all-plots reset-ticks end to make-movie make-turtles ;; prompt user for movie location user-message "First, save your new movie file (choose a name ending with .mov)" let path user-new-file if not is-string? path [ stop ] ;; stop if user canceled ;; run the model movie-start path movie-set-frame-rate 50 repeat 1000[add-edge layout movie-grab-view] movie-grab-view ;; export the movie movie-close user-message (word "Exported movie to " path) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Network wiring procedures ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Network Exploration ;;; ;;; code by Uri Wilensky ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; to find all the connected components in the network, their sizes and starting turtles to find-all-components set giant-component-size 0 ask turtles [ set explored? false ] ;; keep exploring till all turtles get explored loop [ ;; pick a node that has not yet been explored let start one-of turtles with [ not explored? ] if start = nobody [ stop ] ;; reset the number of turtles found to 0 ;; this variable is updated each time we explore an ;; unexplored node. set component-size 0 ;; at this stage, we recolor everything to light gray ask start [ explore (gray + 2) ] ;; the explore procedure updates the component-size variable. ;; so check, have we found a new giant component? if component-size > giant-component-size [ set giant-component-size component-size set giant-start-node start ] ] end ;; Finds all turtles reachable from this node (and recolors them) to explore [new-color] ;; node procedure if explored? [ stop ] set explored? true set component-size component-size + 1 ;; color the node set color new-color ask link-neighbors [ explore new-color ] end ;; color the giant component red to color-giant-component ask turtles [ set explored? false ] ask giant-start-node [ explore red ] ; ask links [ set color [color] of end1 ] ;; recolor all edges end ;;;;;;;;;;;;;;;;;;;;;;; ;;; Edge Operations ;;; ;;;;;;;;;;;;;;;;;;;;;;; ;; pick a random missing edge and create it to go repeat 100 [add-edge layout] end to add-edge if (time-check > post-in-a-row) [set time-check 0 ask links [ if (random-float 1 > survival ) [ die ] ] ] if (time-vision > 250) [rp] if learning-net [ask links [ask one-of links [if ([color] of end1 != [color] of end2 ) [ask end1 [set turtle-sectarism turtle-sectarism - 0.01] ask end2 [set turtle-sectarism turtle-sectarism - 0.01]]]]] if learning-net [ask links [ask one-of links [if ([color] of end1 = [color] of end2 ) [ask end1 [set turtle-sectarism turtle-sectarism + 0.005 / ((count links) / (count turtles)) ] ask end2 [set turtle-sectarism turtle-sectarism + 0.005 / ((count links) / (count turtles))] ] ]]] if not any? turtles [ print "Click on SETUP first to add nodes" stop ] ask turtles [if (turtle-sectarism < 0) [set turtle-sectarism 0 ]] ask turtles [if (turtle-sectarism > 1) [set turtle-sectarism 1]] ask one-of turtles [ ifelse ( random-float 1 <= turtle-sectarism ) [ ask one-of other turtles with [color = [color] of myself] [ create-endogamic-to myself [set color [color] of end2 set thickness 0.5 ] set shape "circle" set size 4 ] ] [ ask one-of other turtles [if ( color = [color] of myself) [create-endogamic-to myself [set color [color] of end1 set thickness 0.5 ] set shape "circle" set size 4] if ( color != [color] of one-of other turtles) [ask myself [create-noendogamic-to one-of other turtles [set color [color] of end1 set thickness 0.5] ] ] ] ] ] set time-check time-check + 1 set endogamins count noendogamics set links-total count links set sectarian 1 - ((endogamins + 1) / (links-total * (1 - correction-variable) + 1)) set time time + 1 set time-vision time-vision + 1 set endogamins-total endogamins-total + (1 - (endogamins / (links-total + 1 ))) set endogamins-median endogamins-total / time set endogamins-real endogamins-real + (1 - (endogamins / (links-total * (1 - correction-variable) + 1))) set endogamins-realmedian endogamins-real / time set real-sectarism sum [turtle-sectarism] of turtles / total-nodes observe-one-node ask patch -120 140 [set plabel "Sectarism" set plabel-color red] ask patch -20 140 [set plabel real-sectarism set plabel-color red] tick end to observe-one-node if mouse-down? [ let candidate min-one-of turtles [distancexy mouse-xcor mouse-ycor] if [distancexy mouse-xcor mouse-ycor] of candidate < 3 [ ;; The WATCH primitive puts a "halo" around the watched turtle. watch candidate ;; If we don't force the view to update, the user won't ;; be able to see the turtle moving around. ;; The SUBJECT primitive reports the turtle being watched. ;; Undoes the effects of WATCH. Can be abbreviated RP. set time-vision 0 ] ] end ;;;;;;;;;;;;;; ;;; Layout ;;; ;;;;;;;;;;;;;; to layout ;; the number 10 here is arbitrary; more repetitions slows down the ;; model, but too few gives poor layouts repeat 10 [ do-layout display ;; so we get smooth animation ] end to do-layout observe-one-node layout-spring (turtles with [any? my-out-noendogamics]) links spring-constant spring-length repulsion-strength layout-spring (turtles with [any? endogamics]) links spring-constant spring-length repulsion-strength end ;;;;;;;;;;;;;;;; ;;; Plotting ;;; ;;;;;;;;;;;;;;;; to do-plotting plotxy ticks sectarian end ; Original Copyright 2005 Uri Wilensky. ; Modified by Lada Adamic with Copyright 2012 ; Modified by Jose Rodríguez, the original model not have resemblance whith this late version. Copyright 2012. ; See Info tab for full copyright and license. @#$#@#$#@ GRAPHICS-WINDOW 470 25 1082 658 150 150 2.0 1 14 1 1 1 0 0 0 1 -150 150 -150 150 0 0 1 ticks 30.0 BUTTON 210 147 312 180 redo layout do-layout T 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 292 10 464 43 red-nodes red-nodes 0 200 54 2 1 NIL HORIZONTAL BUTTON 5 105 113 138 add edges add-edge T 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 211 200 327 233 spring-constant spring-constant 0 1 0.6 0.1 1 NIL HORIZONTAL SLIDER 212 273 327 306 spring-length spring-length 0 20 20 1 1 NIL HORIZONTAL SLIDER 212 237 327 270 repulsion-strength repulsion-strength 0 100 100 0.2 1 NIL HORIZONTAL TEXTBOX 213 182 363 200 layout options 11 0.0 1 MONITOR 305 408 362 453 av. deg (count links) / (count turtles) 2 1 11 BUTTON 7 142 121 175 add one edge add-edge NIL 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 5 70 116 103 create nodes make-turtles NIL 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 10 190 182 223 sectarism sectarism 0 1 0.25 0.01 1 NIL HORIZONTAL MONITOR 13 351 170 396 Aparent level of sectarism endogamins-median 2 1 11 PLOT 15 465 440 635 Sectarism of blogosphere NIL NIL 0.0 25000.0 0.0 1.0 false true "" "" PENS "Aparent sectarism" 1.0 0 -2674135 true "" "plot (endogamins-median)" "Real sectarism" 1.0 0 -955883 true "" "plot (real-sectarism)" MONITOR 210 413 281 458 Total Links links-total 17 1 11 MONITOR 35 410 171 455 Real level of sectarism real-sectarism 3 1 11 SLIDER 199 370 379 403 survival survival 0 1 0.85 0.01 1 NIL HORIZONTAL SLIDER 277 322 458 355 post-in-a-row post-in-a-row 0 200 90 1 1 Daily links HORIZONTAL SLIDER 292 43 464 76 blue-nodes blue-nodes 0 200 52 2 1 NIL HORIZONTAL SLIDER 286 77 458 110 green-nodes green-nodes 0 100 50 2 1 NIL HORIZONTAL SLIDER 285 112 457 145 yellow-nodes yellow-nodes 0 100 50 2 1 NIL HORIZONTAL PLOT 20 639 432 819 Histogram of in-links NIL NIL 0.0 15.0 0.0 400.0 false true "" "" PENS "Endogamic in-links" 1.0 1 -2674135 true "" "histogram [count my-in-endogamics] of turtles" "No-endogamic in-links" 1.0 1 -5509967 true "" "histogram [count my-in-noendogamics] of turtles" SLIDER 10 223 182 256 sectarism2 sectarism2 0 1 0.25 0.01 1 NIL HORIZONTAL SLIDER 9 256 181 289 sectarism3 sectarism3 0 1 0.25 0.01 1 NIL HORIZONTAL SLIDER 8 289 180 322 sectarism4 sectarism4 0 1 0.25 0.01 1 NIL HORIZONTAL SLIDER 6 322 275 355 random-sectarism random-sectarism 0 0.2 0.2 0.01 1 NIL HORIZONTAL PLOT 216 646 416 796 sectarism of turtles NIL NIL 0.0 1.2 0.0 10.0 true false "" "" PENS "default" 0.05 1 -16777216 true "" "histogram [turtle-sectarism] of turtles" MONITOR 373 414 466 459 heterodoxians count turtles with [label = \"heteredoxian\"]/ total-nodes 3 1 11 SWITCH 167 90 290 123 learning-net learning-net 1 1 -1000 MONITOR 337 263 451 308 Sectarism of turtle [turtle-sectarism] of subject 2 1 11 BUTTON 136 57 268 90 observe one node watch one-of turtles set time-vision 0 NIL 1 T OBSERVER NIL NIL NIL NIL 0 MONITOR 361 220 433 265 NIL time-check 17 1 11 @#$#@#$#@ ## WHAT IS IT? This is a network model, programed for NetLogo, that can be used to make experiments that reply the behaviour of present political social networks. These networks are highly divided (Adamic et Glance, 2005, Guadian 2011), but there are several exceptions and details, the blogosphere is less sectarian and divided than social networks (twitter, Facebook) (Ugarte, 2010), and in the more complex political systems the social networks of politic activists are less divided. The model can explain these different behaviours with variables that are initially very similar. Finally, the learning option in the experiment could give us insight of why original social agents without sectarist behaviour could become sectarians. The model can explain too why there are heterodoxian nodes in the political social networks, nodes that in spite of general behaviour, have links with other party nodes and why there exists some “heterodoxian” and exceptional behaviour in the most sectarian and endogamic social networks. The model can be found in this URL: http://www.joserodriguez.info/models/sectarian-blogosphere.html or get the code ## How this model works You can create two, three or four communities of partisan nodes, which can describe the politics blogosphere of two parties (like US), or three parties, with two bigs ones, and one smaller (like UK, or nearly all european politics), or the more complicated politics of many, many parties like Italian or Catalonian ones. The use of model with NetLogo The NUM-Color gives the number of blogs of every community. The Sectarian1, et. al. can describe the tendency of every blogger of the community 1, 2, etc.. to get an ideological bias and made a link to a blogger of the same community and not to a random one. Then click on SETUP to get the desired number of nodes of every community. You can put only 2 communities, or create a more complex situation. Click on ADD-EDGES to start adding edges just between nodes. Click on LAYOUT to use a spring layout algorithm to reposition the nodes. I recommend this and to play with the slides. (Optional) I put two additional slides that could bring some dynamics and improve the visualization of sectarian relations. The survival of a link and the number of links that all the blogs made in a row before the links start to banish. This wants to modelize the vanishing memory of bloggers, and the slow out-date of links and backlinks in posts. Click on ADD-EDGES again to stop the process Following one random node with OBSERVE ONE NODE ## Rules for the nodes and links Every node has an internal variable called “sectarian behaviour” that depends on general variables that can be selected, and the ability to learn or not. Every tick a node is asked to make a link, if a random check between 0 and 1 is less than this variable the node creates a link to a node of his same color that we identify like an endogamic-link, if the check is greater than this variable the node creates a link to a random color node that we identify like a non-endogamic link. There are some outputs that can be observed, two of them of special interest: apparent sectarism (or the links that are made between nodes of the same colour, made on a random link or an endogamic link) and real sectarism that is the average sum of “sectarian behaviour” of all the nodes. ## Models that can be compared This model can be compared with small world network with or without redrawn random links, or any model of random growth network without preference attachment, or model of growth network with preferent attachment. The clear differences are that the clustering in every network that the sectarian blogosphere experiments creates is greater than in a random network, small world network or a network with a preferent attachment (it really makes sense, the sectarian blogosphere creates clear separate communities with a big number of endogamic links in most cases). You can see more nodes with a great betweenness in most of the experiments of “The sectarian blogosphere” (there are “bridges” between communities that don’t appear in the small world network). There are no nodes with bigger degree than others as happens in the preferent attachment network. ## Experiments with this model # Non-learning nodes’ experiments The nodes can change their behaviour with a learning algorithm, the less complex experiments we are going to make are those where the nodes’ behaviour doesn’t evolve (but you can see the evolution of the entire network). # Experiment 1.1 The two party sectarian blogosphere For this simple experiment you only need to create two communities (red and blue) with sectarism of the nodes of 0.85 for the two communities and dispersion of individual sectarism of 0.2. This last variable is a random factor that gives a little diversity for the endogamic behaviour of nodes, simulating that individual activists get some variation from the main behaviour of their partners. After a few ticks the system gets to an equilibrium, where you can see a high level of sectarism (near to the original of 0.85) and a few nodes that link to the other community, like we can see in, or in more recent studies of blogosphere communities . You can lower the sectarism of red and blue nodes, and find that apparent sectarism doesn’t follow. This is provoked by the high probability (50%) that a non-endogamic link ends in the same color node, making an apparent sectarism that doesn’t correspond to a endogamic behaviour. # 1.2 The multyparty medium-hight sectarian blogosphere This simple experiment is very similar to the 1.1 experiment. The variation is that you create four communites of the same dimension. The other variables stay the same: sectarism of the nodes of 0.85 fot the four communities and dispersion of individual sectarism of 0.2. You can see this behaviour: You get the equilibrium with a few ticks, and like 1.1 experiment you can do variations in the level of sectarism. This experiment shows us an apparently less sectarian network, showing a behaviour that can be compatible with empirical observation of multiparty real networks (see Annex I and the low image, take with sectarism of red, blue, green and yellow node of 0.5) The individual nodes are not more non-endogamic than in experiment 1.1 but the non-endogamic links have a great probability (75%) to land in other color node. This probability grants a less apparent sectarian network with the same real sectarian behaviour of nodes. # Experiments with learning-nodes With this model you can stablish a learning capability on the nodes. If a node has links with nodes of another color it learns to be less endogamic, and if he have links with nodes of the same color he becomes more endogamic. With these experiments we can see dynamical behaviour and find that the systems get an equilibrium. 3 Experiment 2.1: The emergence of sectarian behaviour in learning partisan networks In this experiment you start with only two communities of nodes (you can think about a system with two parties like US) without no sectarism. You can see that the learning nodes start with 0 endogamic behaviour but it increases over time to attain a high level of sectarism and two clear and separate communities. The endogamic behaviour rises from 0 to 0.85-0.90 and only a few nodes retain non-endogamic behaviour becoming little bridges between communities. You can see an animation of this experiment here: https://www.youtube.com/watch?v=Mxh4VKSUEgk&list=UUxdwLOJCwOq1ehuLcoUGneg&index=3&feature=plcp This experiment is consistent with the behaviour observed in real political blogosphere or partisan twitter communities. # Experiment 2.2: The three-communities or equilibrium blogosphere between endogamic and non-endogamic behaviour This experiment is very similar to “The emergence of sectarian behaviour” with the difference that we introduce a small third community. This can simulate the generic political communities in most of european countries with 3 parties, two of them big (center-left, center-right) and one small alternative (extreme-left in most cases, and economic liberal party in other cases). One example is Guadian 2011 analysis of spanish political twitter activists. As a result of the experiment you can see a more equilibrated network. With only a very small third community (of 20 members, when the two others are of 50 members), the collective behaviour changes. There is a great % of endogamic nodes, but the nodes that make bridges between communities grow alot, and about 40% of them get a non-endogamic behaviour. You can see a dynamic example here: https://www.youtube.com/watch?v=09GuhV3sWVg&list=UUxdwLOJCwOq1ehuLcoUGneg&index=2&feature=plcp # Experiment 2.3: The plural blogosphere or the evolution of multyparty blogosphere. This experiment creates 4 communities, two of them of big size, and two of them of medium-small size. The nodes start with 0 sectarism and learning behaviour. We can see that complex communities become a more plural and interlinked network, with low endogamy (only ¼ of the nodes). You can see a more interlinked network and not clearly separated communities. There are some surprises. For example, the diference between “the emergence of sectarism” experiment and this one, can be of only 40 nodes, in front of a total of 140, and the behaviour changes dramatically. You can see a dynamic demo here: https://www.youtube.com/watch?v=mPLuI4iWJ2o This is consistent with empirical analysis of twitter activists’ networks (see Annex I), more than 1.2 experiment. A first cursory conclusion that you can see is that learning networks do better predictions of the real political activists’ social networks than non-learning networks with fixed rules. # Experiment 2.4 The oblivious network This experiment start like 2.1, with two communities of red and blue nodes, with mid sectarian behaviour (0.70). The variable to modify in the experiment is survival ratio of links. Lowing this one the links live less time. We can see some evolution, the nodes in low links’ survival ratios become more endogamics than with high links’ survival ratios. This is consistent with qualitative works (Ugarte 2011) that established that social networks with more oblivious behaviour of the social activist are more sectarian than blogospheres where the links and backlinks have more lifespan. ##COPYRIGHT AND LICENSE This model was an adaptation of a model adapted by Lada Adamic from Uri Wilensky’s Giant Component model in NetLogo’s models library. But the original model is far, and fa away of this. Copyright 2012 Jose Rodríguez. ![CC BY-NC-SA 3.0](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png) 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. @#$#@#$#@ default true 0 Polygon -7500403 true true 150 5 40 250 150 205 260 250 airplane true 0 Polygon -7500403 true true 150 0 135 15 120 60 120 105 15 165 15 195 120 180 135 240 105 270 120 285 150 270 180 285 210 270 165 240 180 180 285 195 285 165 180 105 180 60 165 15 ant 2 true 0 Polygon -7500403 true true 150 19 120 30 120 45 130 66 144 81 127 96 129 113 144 134 136 185 121 195 114 217 120 255 135 270 165 270 180 255 188 218 181 195 165 184 157 134 170 115 173 95 156 81 171 66 181 42 180 30 Polygon -7500403 true true 150 167 159 185 190 182 225 212 255 257 240 212 200 170 154 172 Polygon -7500403 true true 161 167 201 150 237 149 281 182 245 140 202 137 158 154 Polygon -7500403 true true 155 135 185 120 230 105 275 75 233 115 201 124 155 150 Line -7500403 true 120 36 75 45 Line -7500403 true 75 45 90 15 Line -7500403 true 180 35 225 45 Line -7500403 true 225 45 210 15 Polygon -7500403 true true 145 135 115 120 70 105 25 75 67 115 99 124 145 150 Polygon -7500403 true true 139 167 99 150 63 149 19 182 55 140 98 137 142 154 Polygon -7500403 true true 150 167 141 185 110 182 75 212 45 257 60 212 100 170 146 172 arrow true 0 Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 box false 0 Polygon -7500403 true true 150 285 285 225 285 75 150 135 Polygon -7500403 true true 150 135 15 75 150 15 285 75 Polygon -7500403 true true 15 75 15 225 150 285 150 135 Line -16777216 false 150 285 150 135 Line -16777216 false 150 135 15 75 Line -16777216 false 150 135 285 75 bug true 0 Circle -7500403 true true 96 182 108 Circle -7500403 true true 110 127 80 Circle -7500403 true true 110 75 80 Line -7500403 true 150 100 80 30 Line -7500403 true 150 100 220 30 butterfly true 0 Polygon -7500403 true true 150 165 209 199 225 225 225 255 195 270 165 255 150 240 Polygon -7500403 true true 150 165 89 198 75 225 75 255 105 270 135 255 150 240 Polygon -7500403 true true 139 148 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 139 163 Polygon -7500403 true true 162 150 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 162 165 Polygon -16777216 true false 150 255 135 225 120 150 135 120 150 105 165 120 180 150 165 225 Circle -16777216 true false 135 90 30 Line -16777216 false 150 105 195 60 Line -16777216 false 150 105 105 60 car false 0 Polygon -7500403 true true 300 180 279 164 261 144 240 135 226 132 213 106 203 84 185 63 159 50 135 50 75 60 0 150 0 165 0 225 300 225 300 180 Circle -16777216 true false 180 180 90 Circle -16777216 true false 30 180 90 Polygon -16777216 true false 162 80 132 78 134 135 209 135 194 105 189 96 180 89 Circle -7500403 true true 47 195 58 Circle -7500403 true true 195 195 58 circle false 0 Circle -7500403 true true 0 0 300 circle 2 false 0 Circle -7500403 true true 0 0 300 Circle -16777216 true false 30 30 240 cow false 0 Polygon -7500403 true true 200 193 197 249 179 249 177 196 166 187 140 189 93 191 78 179 72 211 49 209 48 181 37 149 25 120 25 89 45 72 103 84 179 75 198 76 252 64 272 81 293 103 285 121 255 121 242 118 224 167 Polygon -7500403 true true 73 210 86 251 62 249 48 208 Polygon -7500403 true true 25 114 16 195 9 204 23 213 25 200 39 123 cylinder false 0 Circle -7500403 true true 0 0 300 dot false 0 Circle -7500403 true true 90 90 120 face happy false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240 face neutral false 0 Circle -7500403 true true 8 7 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Rectangle -16777216 true false 60 195 240 225 face sad false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183 fish false 0 Polygon -1 true false 44 131 21 87 15 86 0 120 15 150 0 180 13 214 20 212 45 166 Polygon -1 true false 135 195 119 235 95 218 76 210 46 204 60 165 Polygon -1 true false 75 45 83 77 71 103 86 114 166 78 135 60 Polygon -7500403 true true 30 136 151 77 226 81 280 119 292 146 292 160 287 170 270 195 195 210 151 212 30 166 Circle -16777216 true false 215 106 30 flag false 0 Rectangle -7500403 true true 60 15 75 300 Polygon -7500403 true true 90 150 270 90 90 30 Line -7500403 true 75 135 90 135 Line -7500403 true 75 45 90 45 flower false 0 Polygon -10899396 true false 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135 Circle -7500403 true true 85 132 38 Circle -7500403 true true 130 147 38 Circle -7500403 true true 192 85 38 Circle -7500403 true true 85 40 38 Circle -7500403 true true 177 40 38 Circle -7500403 true true 177 132 38 Circle -7500403 true true 70 85 38 Circle -7500403 true true 130 25 38 Circle -7500403 true true 96 51 108 Circle -16777216 true false 113 68 74 Polygon -10899396 true false 189 233 219 188 249 173 279 188 234 218 Polygon -10899396 true false 180 255 150 210 105 210 75 240 135 240 house false 0 Rectangle -7500403 true true 45 120 255 285 Rectangle -16777216 true false 120 210 180 285 Polygon -7500403 true true 15 120 150 15 285 120 Line -16777216 false 30 120 270 120 leaf false 0 Polygon -7500403 true true 150 210 135 195 120 210 60 210 30 195 60 180 60 165 15 135 30 120 15 105 40 104 45 90 60 90 90 105 105 120 120 120 105 60 120 60 135 30 150 15 165 30 180 60 195 60 180 120 195 120 210 105 240 90 255 90 263 104 285 105 270 120 285 135 240 165 240 180 270 195 240 210 180 210 165 195 Polygon -7500403 true true 135 195 135 240 120 255 105 255 105 285 135 285 165 240 165 195 line true 0 Line -7500403 true 150 0 150 300 line half true 0 Line -7500403 true 150 0 150 150 link true 0 Line -7500403 true 150 0 150 300 link direction true 0 Line -7500403 true 150 150 30 225 Line -7500403 true 150 150 270 225 monster false 0 Polygon -7500403 true true 75 150 90 195 210 195 225 150 255 120 255 45 180 0 120 0 45 45 45 120 Circle -16777216 true false 165 60 60 Circle -16777216 true false 75 60 60 Polygon -7500403 true true 225 150 285 195 285 285 255 300 255 210 180 165 Polygon -7500403 true true 75 150 15 195 15 285 45 300 45 210 120 165 Polygon -7500403 true true 210 210 225 285 195 285 165 165 Polygon -7500403 true true 90 210 75 285 105 285 135 165 Rectangle -7500403 true true 135 165 165 270 pentagon false 0 Polygon -7500403 true true 150 15 15 120 60 285 240 285 285 120 person false 0 Circle -7500403 true true 110 5 80 Polygon -7500403 true true 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Rectangle -7500403 true true 127 79 172 94 Polygon -7500403 true true 195 90 240 150 225 180 165 105 Polygon -7500403 true true 105 90 60 150 75 180 135 105 person service false 0 Polygon -7500403 true true 180 195 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 Polygon -1 true false 120 90 105 90 60 195 90 210 120 150 120 195 180 195 180 150 210 210 240 195 195 90 180 90 165 105 150 165 135 105 120 90 Polygon -1 true false 123 90 149 141 177 90 Rectangle -7500403 true true 123 76 176 92 Circle -7500403 true true 110 5 80 Line -13345367 false 121 90 194 90 Line -16777216 false 148 143 150 196 Rectangle -16777216 true false 116 186 182 198 Circle -1 true false 152 143 9 Circle -1 true false 152 166 9 Rectangle -16777216 true false 179 164 183 186 Polygon -2674135 true false 180 90 195 90 183 160 180 195 150 195 150 135 180 90 Polygon -2674135 true false 120 90 105 90 114 161 120 195 150 195 150 135 120 90 Polygon -2674135 true false 155 91 128 77 128 101 Rectangle -16777216 true false 118 129 141 140 Polygon -2674135 true false 145 91 172 77 172 101 person soldier false 0 Rectangle -7500403 true true 127 79 172 94 Polygon -10899396 true false 105 90 60 195 90 210 135 105 Polygon -10899396 true false 195 90 240 195 210 210 165 105 Circle -7500403 true true 110 5 80 Polygon -10899396 true false 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Polygon -6459832 true false 120 90 105 90 180 195 180 165 Line -6459832 false 109 105 139 105 Line -6459832 false 122 125 151 117 Line -6459832 false 137 143 159 134 Line -6459832 false 158 179 181 158 Line -6459832 false 146 160 169 146 Rectangle -6459832 true false 120 193 180 201 Polygon -6459832 true false 122 4 107 16 102 39 105 53 148 34 192 27 189 17 172 2 145 0 Polygon -16777216 true false 183 90 240 15 247 22 193 90 Rectangle -6459832 true false 114 187 128 208 Rectangle -6459832 true false 177 187 191 208 plant false 0 Rectangle -7500403 true true 135 90 165 300 Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285 Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285 Polygon -7500403 true true 135 180 90 135 45 120 75 180 135 210 Polygon -7500403 true true 165 180 165 210 225 180 255 120 210 135 Polygon -7500403 true true 135 105 90 60 45 45 75 105 135 135 Polygon -7500403 true true 165 105 165 135 225 105 255 45 210 60 Polygon -7500403 true true 135 90 120 45 150 15 180 45 165 90 square false 0 Rectangle -7500403 true true 30 30 270 270 square 2 false 0 Rectangle -7500403 true true 30 30 270 270 Rectangle -16777216 true false 60 60 240 240 star false 0 Polygon -7500403 true true 151 1 185 108 298 108 207 175 242 282 151 216 59 282 94 175 3 108 116 108 target false 0 Circle -7500403 true true 0 0 300 Circle -16777216 true false 30 30 240 Circle -7500403 true true 60 60 180 Circle -16777216 true false 90 90 120 Circle -7500403 true true 120 120 60 tree false 0 Circle -7500403 true true 118 3 94 Rectangle -6459832 true false 120 195 180 300 Circle -7500403 true true 65 21 108 Circle -7500403 true true 116 41 127 Circle -7500403 true true 45 90 120 Circle -7500403 true true 104 74 152 triangle false 0 Polygon -7500403 true true 150 30 15 255 285 255 triangle 2 false 0 Polygon -7500403 true true 150 30 15 255 285 255 Polygon -16777216 true false 151 99 225 223 75 224 truck false 0 Rectangle -7500403 true true 4 45 195 187 Polygon -7500403 true true 296 193 296 150 259 134 244 104 208 104 207 194 Rectangle -1 true false 195 60 195 105 Polygon -16777216 true false 238 112 252 141 219 141 218 112 Circle -16777216 true false 234 174 42 Rectangle -7500403 true true 181 185 214 194 Circle -16777216 true false 144 174 42 Circle -16777216 true false 24 174 42 Circle -7500403 false true 24 174 42 Circle -7500403 false true 144 174 42 Circle -7500403 false true 234 174 42 turtle true 0 Polygon -10899396 true false 215 204 240 233 246 254 228 266 215 252 193 210 Polygon -10899396 true false 195 90 225 75 245 75 260 89 269 108 261 124 240 105 225 105 210 105 Polygon -10899396 true false 105 90 75 75 55 75 40 89 31 108 39 124 60 105 75 105 90 105 Polygon -10899396 true false 132 85 134 64 107 51 108 17 150 2 192 18 192 52 169 65 172 87 Polygon -10899396 true false 85 204 60 233 54 254 72 266 85 252 107 210 Polygon -7500403 true true 119 75 179 75 209 101 224 135 220 225 175 261 128 261 81 224 74 135 88 99 wheel false 0 Circle -7500403 true true 3 3 294 Circle -16777216 true false 30 30 240 Line -7500403 true 150 285 150 15 Line -7500403 true 15 150 285 150 Circle -7500403 true true 120 120 60 Line -7500403 true 216 40 79 269 Line -7500403 true 40 84 269 221 Line -7500403 true 40 216 269 79 Line -7500403 true 84 40 221 269 x false 0 Polygon -7500403 true true 270 75 225 30 30 225 75 270 Polygon -7500403 true true 30 75 75 30 270 225 225 270 @#$#@#$#@ NetLogo 5.0.2 @#$#@#$#@ set layout? false setup repeat 175 [ go ] repeat 35 [ layout ] @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ default 0.0 -0.2 0 0.0 1.0 0.0 1 1.0 0.0 0.2 0 0.0 1.0 link direction true 0 Line -7500403 true 150 150 90 180 Line -7500403 true 150 150 210 180 @#$#@#$#@ 1 @#$#@#$#@