Illuminati - Control the world
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 an attempt to understand the effect of a hidden leadership on a crowd.
Two groups of people interact:
The first, is a group of ultra liberal (non conservative) entities. They follow their peers and run after every new idea. They are illustrated by a Flocking dynamics (see Flocking Netlogo model Copyright 1998 Uri Wilensky).
The second is a group of ultra conservative - the Illuminati.
They only move in one direction with no change, OR move all together in a fully coordinated direction.
Two arrows show the mean direction of the regular people and that of the Illuminati.
The plot shows the difference between the two means.
## HOW IT WORKS
The Illuminati can either move to one singe direction or slowly change their move.
In both methods, they all move always in the same direction, and always together.
They can either be seen or hidden visually, but they are always not seen by the crowd, who observes them as a regular person.
The ultra liberal person (bird) follow three known rules: "alignment", "separation", and "cohesion". They do not know who are the Illuminati and who are the others. They just see their near neighbors as much as their vision permits.
For the regular group, simlar to the original flocking model, "Alignment" means that a each tends to turn so that it is moving in the same direction that nearby people .
"Separation" means that a person will turn to avoid another one which gets too close. "Cohesion" means that a person will move towards other nearby persons (unless another one is too close).
The "separation" rule overrides the other two, which are deactivated until the minimum separation is achieved. The three rules affect only the person's heading. Each person always moves forward at the same constant speed.
## HOW TO USE IT
Determine the population.
Determine the fractiopn of ultra-aurthodox in the population (fix-awalkers).
Determine the flocking parameters (vision, min-separation, max-turn).
## THINGS TO NOTICE
What is the role of conservatism in society? How JUST BY NOT CHANGING one`s direction, a small fraction of the population can eventually change a substancially larger fractions than its own.
How fast the herd is being controled by the Illuminatti.
What is the required fraction of Illuminati to control the entire croud.
## THINGS TO TRY
What happen when personakl similarity (minimal distance) grows or reduced to 0.
Wht initial conditions make the croud easier to control by the Illuminati?
## EXTENDING THE MODEL
## NETLOGO FEATURES
## RELATED MODELS
Flocking
## CREDITS AND REFERENCES
This model is strongly constructed upon the model of flocking (Copyright 1998 Uri Wilensky. All rights reserved.).
While the changes are minor, their interpretation is interesting enought to show it on a model of itself.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The FLOCKING model is inspired by the Boids simulation invented by Craig Reynolds. The algorithm we use here is roughly similar to the original Boids algorithm, but it is not the same. The exact details of the algorithm tend not to matter very much -- as long as you have alignment, separation, and cohesion, you will usually get flocking behavior resembling that produced by Reynolds' original model. Information on Boids is available at http://www.red3d.com/cwr/boids/.
## HOW TO CITE
## COPYRIGHT NOTICE
Flocking - 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, 2002.
Comments and Questions
breed [walkers walker] breed [arrows arrow] walkers-own [ flockmates ;; agentset of nearby walkers nearest-neighbor ;; closest one of our flockmates ] arrows-own [ flockmates ;; agentset of nearby walkers ] globals [ max-align-turn max-cohere-turn max-separate-turn differance ] to setup clear-all let a random 200 random-seed a set max-align-turn max-allowed-turn set max-cohere-turn max-allowed-turn set max-separate-turn max-allowed-turn create-walkers population ask walkers [ifelse who >= ( population * fix-walkers ) [ set color yellow ;; random shades look nice set size 0.5 ;; easier to see setxy random-xcor random-ycor ; set firstrun "true" set heading random 360 ] [set color red ;; random shades look nice set shape "arrow" set size 2 ;; easier to see setxy random-xcor random-ycor set heading 42 ] ] reset-ticks create-arrows 1 [set xcor -10 set ycor -10 set shape "thin_arrow" set color 43 set heading mean [heading] of walkers with [color = yellow] set size 10 set flockmates turtles with [color = yellow] ] create-arrows 1 [set xcor -5 set ycor -10 set shape "thin_arrow" set color 13 set heading mean [heading] of walkers with [color = red] set size 10 ] end to go set max-align-turn max-allowed-turn set max-cohere-turn max-allowed-turn set max-separate-turn max-allowed-turn ask walkers with [color = yellow][ flock ] if Illuminati-change? [ ask walkers with [color = red][ ifelse Illuminaty-Random-Move? [ ifelse (random-float 1 >= 0.5) [rt 0.05 * Illuminati-change-speed] [lt 0.05 * Illuminati-change-speed]] [rt 0.05 * Illuminati-change-speed]] ] repeat 5 [ask walkers [ fd 0.1 ]] ask arrow Population [ set heading mean [heading] of walkers with [color = yellow] set size population / standard-deviation [heading] of walkers with [color = yellow]] ask arrow (Population + 1) [ set heading mean [heading] of walkers with [color = red]] set differance abs(mean [heading] of walkers with [color = yellow] - mean [heading] of walkers with [color = red] ) ifelse (hide_Illuminati? = true) [ask walkers with [color = red][set hidden? true]] [ask walkers with [color = red][set hidden? false]] if (differance < 5) [if stop-when-aligned? [stop]] tick end to flock ;; walker procedure find-flockmates if any? flockmates [ find-nearest-neighbor ifelse distance nearest-neighbor < minimum-separation [ separate ] [ align cohere ] ] end to find-flockmates ;; walker procedure set flockmates other walkers in-radius vision end to find-nearest-neighbor ;; walker procedure set nearest-neighbor min-one-of flockmates [distance myself] end ;;; SEPARATE to separate ;; walker procedure turn-away ([heading] of nearest-neighbor) max-separate-turn end ;;; ALIGN to align ;; walker procedure turn-towards average-flockmate-heading max-align-turn end to-report average-flockmate-heading ;; walker procedure ;; We can't just average the heading variables here. ;; For example, the average of 1 and 359 should be 0, ;; not 180. So we have to use trigonometry. let x-component sum [sin heading] of flockmates let y-component sum [cos heading] of flockmates ifelse x-component = 0 and y-component = 0 [ report heading ] [ report atan x-component y-component ] end to-report degree-from-avg-herd-to-avg-enligtened ;; observer walker procedure ;; We can't just average the heading variables here. ;; For example, the average of 1 and 359 should be 0, ;; not 180. So we have to use trigonometry. let x-component sum [sin heading] of flockmates let y-component sum [cos heading] of flockmates ifelse x-component = 0 and y-component = 0 [ report heading ] [ report atan x-component y-component ] end ;;; COHERE to cohere ;; walker procedure turn-towards average-heading-towards-flockmates max-cohere-turn end to-report average-heading-towards-flockmates ;; walker procedure ;; "towards myself" gives us the heading from the other walker ;; to me, but we want the heading from me to the other walker, ;; so we add 180 let x-component mean [sin (towards myself + 180)] of flockmates let y-component mean [cos (towards myself + 180)] of flockmates ifelse x-component = 0 and y-component = 0 [ report heading ] [ report atan x-component y-component ] end ;;; HELPER PROCEDURES to turn-towards [new-heading max-turn] ;; walker procedure turn-at-most (subtract-headings new-heading heading) max-turn ; ] end to turn-away [new-heading max-turn] ;; walker procedure turn-at-most (subtract-headings heading new-heading) max-turn end ;; turn right by "turn" degrees (or left if "turn" is negative), ;; but never turn more than "max-turn" degrees to turn-at-most [turn max-turn] ;; walker procedure ifelse abs turn > max-turn [ ifelse turn > 0 [ rt max-turn ] [ lt max-turn ] ] [ rt turn ] end to-report shanon-entropy end
There is only one version of this model, created over 3 years ago by Alon Sela.
This model does not have any ancestors.
This model does not have any descendants.