ideology
No preview image
Model was written in NetLogo 6.4.0
•
Viewed 47 times
•
Downloaded 1 time
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
;; Ideological dominance in organisations ;; globals globals [ turnover-count senior-left-prop ;; proportion of left ideology senior staff senior-centre-prop senior-right-prop other-left-prop other-centre-prop other-right-prop ] ;; agents turtles-own [ ideology ;; "left", "centre", or "right" influence ;; 0-10 happiness ;; 0-10 to-be-replaced? ;; boolean for marking turnover ] ;; setup procedure to setup clear-all set turnover-count 0 ask-user-for-proportions setup-turtles ;; plot setup set-current-plot "ideology distribution over time" set-plot-y-range 0 (senior-staff + other-staff) create-temporary-plot-pen "left" ;; define the pen for 'left' set-plot-pen-color red create-temporary-plot-pen "centre" ;; define the pen for 'centre' set-plot-pen-color grey create-temporary-plot-pen "right" ;; define the pen for 'right' set-plot-pen-color blue reset-ticks end to ask-user-for-proportions ;; get proportions from sliders and calculate centre proportion set senior-left-prop senior-left-ratio set senior-right-prop senior-right-ratio set senior-centre-prop 100 - senior-left-prop - senior-right-prop set other-left-prop other-left-ratio set other-right-prop other-right-ratio set other-centre-prop 100 - other-left-prop - other-right-prop ;; ensure the centre proportion is not negative if senior-centre-prop < 0 [ set senior-centre-prop 0 ] if other-centre-prop < 0 [ set other-centre-prop 0 ] show (word "senior staff proportions - left: " senior-left-prop ", centre: " senior-centre-prop ", right: " senior-right-prop) show (word "other staff proportions - left: " other-left-prop ", centre: " other-centre-prop ", right: " other-right-prop) end to setup-turtles ;; create senior staff create-turtles senior-staff [ set shape "circle" ;; set shape for senior set ideology choose-ideology senior-left-prop senior-centre-prop senior-right-prop set influence random-float 40 + 60 ;; random between 60 and 100 set happiness random 11 ;; random between 0 and 10 set to-be-replaced? false ;; initialize to false setxy random-xcor random-ycor colour-based-on-ideology ;; set colour based on ideology ] ;; create other staff create-turtles other-staff [ set shape "square" set ideology choose-ideology other-left-prop other-centre-prop other-right-prop set influence random-float 40;; random between 0 and 40 set happiness random 11 ;; random between 0 and 10 set to-be-replaced? false ;; initialize to false setxy random-xcor random-ycor colour-based-on-ideology ;; set colour based on ideology ] end to-report choose-ideology [left-prop centre-prop right-prop] let r random-float 100 if r < left-prop [ report "left" ] if r < (left-prop + centre-prop) [ report "centre" ] report "right" end to colour-based-on-ideology if ideology = "left" [ set color red ] if ideology = "centre" [ set color grey ] if ideology = "right" [ set color blue ] end ;; go procedure to go ask turtles [ move ] ask turtles [ interact ] check-turnover create-new-turtles ;; update the ideology distribution plot set-current-plot-pen "left" plot count turtles with [ideology = "left"] set-current-plot-pen "centre" plot count turtles with [ideology = "centre"] set-current-plot-pen "right" plot count turtles with [ideology = "right"] tick end ;; turtle procedures to move rt random 360 fd 1 if any? other turtles-here [ setxy random-xcor random-ycor ;; prevent moving into the same cell ] end to interact let neighbour one-of turtles-on neighbors4 if neighbour != nobody [ if [ideology] of neighbour != ideology [ if [influence] of neighbour > influence [ ifelse shape = "circle" and [shape] of neighbour = "square" [ ;; nenior interacts with other staff with different ideology set happiness happiness - 1 ][ set happiness happiness - 1 ;; non-senior interaction - these are the same right now but could be changed ] ] ] if [ideology] of neighbour = ideology [ set happiness happiness + 1 ;; happiness increases for same ideology interaction ] ] end to check-turnover ;; mark turtles for turnover ask turtles [ if happiness < happiness-threshold [ set to-be-replaced? true ] ] ;; remove marked turtles ask turtles with [to-be-replaced?] [ set turnover-count turnover-count + 1 die ] end to create-new-turtles let num-new-turtles (senior-staff + other-staff) - count turtles create-turtles num-new-turtles [ ifelse random-float 1 < (senior-staff / (senior-staff + other-staff)) [ ;; creating senior staff set shape "circle" ;; shape for senior staff set ideology choose-ideology senior-left-prop senior-centre-prop senior-right-prop set influence random-float 40 + 60 ;; random between 60 and 100 ] [ ;; creating other staff set shape "square" ;; shape for other staff set ideology choose-ideology other-left-prop other-centre-prop other-right-prop set influence random-float 40;; random between 0 and 40 ] set happiness random 11 set to-be-replaced? false ;; reset marker to false setxy random-xcor random-ycor colour-based-on-ideology ;; set colour based on ideology ] end
There is only one version of this model, created 5 months ago by ray morrison.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.