ideology

No preview image

1 collaborator

Default-person ray morrison (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.4.0 • Viewed 174 times • Downloaded 6 times • Run 0 times
Download the 'ideology' modelDownload this modelEmbed this model

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


Ideological domination in organisations

WHAT IS IT?

This model simulates the impact of individual staff members' ideologies on organisational dynamics. It explores how differing ideologies among staff with varying levels of influence affect the overall distribution of ideologies. The model provides insight into how, over time, one ideology can become dominant in an organisation.

HOW IT WORKS

Agent types: - Senior staff: These agents have higher influence (randomly set between 60 and 100) - Other staff: These agents have lower influence (randomly set between 0 and 40)

Rules and behaviours: - Movement: Agents move randomly within a 2D grid to simulate office interactions. - Interaction: ---- Different ideologies: An agent’s happiness decreases by 1 when they encounter another agent with a higher influence and a different ideology. ---- Same ideology: An agent’s happiness increases by 1 when interacting with another agent sharing the same ideology. - Turnover: Agents whose happiness falls below the threshold set by the user leave the organisation and are replaced by new agents (of the same type) with randomly assigned properties.

Environment: - The model operates in a 2D grid environment representing an office space where agents can move and interact with each other.

HOW TO USE IT

Sliders: - senior-staff: Controls the number of senior staff members. - other-staff: Controls the number of other staff members. - happiness-threshold: Sets the minimum happiness level required for an agent to remain in the organisation. - senior-left-ratio: Controls ratio of left senior staff members. - senior-right-ratio: Controls ratio of right staff members. - other-left-ratio: Controls ratio of left other staff members. - other-right-ratio: Controls ratio of other staff members. - The remainder will be designated as 'centre'.

Buttons: - Setup: Initialises the model by creating the specified number of senior and other staff members, and assigns their properties. - Go: Starts or continues the simulation. If set to "Forever", the simulation runs continuously; otherwise, it advances one time step per click.

Monitors: - turnover count: Tracks the total number of staff who have left the organisation. - # total left wing: Tracks the total number of staff who have 'left' ideology. - # total right wing: Tracks the total number of staff who have 'right' ideology. - # total centre: Tracks the total number of staff who have 'centre' ideology.

THINGS TO TRY

  • Adjust the number of senior and other staff members using the sliders to examine their effects on organisational stability and employee happiness.
  • Modify the happiness threshold to observe changes in staff turnover and overall dynamics.
  • Experiment with different ideological distributions to see how various starting conditions affect the model’s outcomes.

THINGS TO NOTICE

  • Ideological shifts: Observe changes in the distribution of ideologies over time as staff interact with each other.
  • Initial ideologies: Consider how different initial distributions of ideologies impact the model’s behaviour.
  • Organisation size: Observe how the size of the organisation impacts ideological shifts.

RELATED MODELS

  • Segregation Model: Examines how agents with different preferences create patterns of segregation.

THOUGHTS AND POSSIBLE EXTENSIONS

At the minute, I think the interactions could be improved. It seems unlikely that the senior staff would be dominated by one ideology and the general staff would be dominated by other, but this is possible within this model: when there's a high proportion of other staff, the model seems to stabilise in that way. Further work is needed to address this.

As well as this / relatedly, I'd be interested in extending the model to investigate the effect of the dominant ideology on what new staff members are recruited. I imagine that, once an ideology is dominant, new staff members are more likely to have that ideology. This would therefore be interesting to explore when I extend the model.

Thank you for reading!

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 about 1 year ago by ray morrison.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.