Segregation

Segregation preview image

1 collaborator

Default-person Thomas Rieth (Author)

Tags

networks 

Tagged by Thomas Rieth about 11 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.4.0 • Viewed 1115 times • Downloaded 92 times • Run 0 times
Download the 'Segregation' modelDownload this modelEmbed this model

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


Stability and Segregation in Hierarchical Networks of Armed Forces

Thomas Rieth IABG mbH, Einsteinstraße 20, D-85521 Ottobrun, Germany rieth(at)iabg.de

Many countries lack a certain level of safety and security, and the fragility of the armed forces in crisis regions is of interest. Corruption and ethnic segragation are often the main drivers that reduce the stabiliy and integrity of armed forces.

WHAT IS IT?

Our model aims to investigate pattern formation in hierarchical structures built by members of different ethnic groups and military ranks. It includes the distribution of the soldiers’ pay with some commanders being corrupt and taking away their inferiors’ pay. Starting with the root soldier in the centre, the hierarchical structure is constructed, where the number of levels in the hierarchy (military ranks), the number of ethnic groups, and the number of inferiors that each higher level ranked soldier has below him are given. This can also be referred to as the multiplicity factor for the increasing number of soldiers on each level.

This order of the model does not, however, does not determine the number of the lowest level of foot soldiers. In other words, our model allows the setting of the number of the lowest-rank soldiers. With the above network, we create an artificial environment with various agents, all soldiers of different ranks and different ethnicities, reflecting a highly simplified armed forces.

HOW IT WORKS

Following the method of agent-based modeling (ABM), our agents are equipped with a certain set of rules, described in the following. The behaviour of soldiers is discriminated into preference or non-preference of one’s own ethnic origin for the distribution of pay, referred to as corrupt. Corruption, in our model, means that the corrupt soldiers takes his pay and then distributes the earnings of his subordinates among them in a manner which prefers subordinates of the same ethnicity and who are corrupt themselves. This system assumes that money "trickles" through the system starting with the highest ranks and ending with the lowest ones. In this process, money is being distributed, diverted, and redirected by corrupt superiors.

Two processes influence the stability of the hierarchical network. First, soldiers at the lowest level, the rank and file, leave the network if their pay is not sufficient, and may re-join again at a later time. We use leaving and re-joining soldiers to reflect the desertion of rank and file soldiers in the security forces, their defection to local warlords, and a low re-enlistment rate of the armed forces . This feature represents a limited pool where soldiers for the armed forces can be retrieved, and a re-joining probability is a measure for the limited disposability of soldiers. The second process influencing the network’s stability are soldiers at higher levels selecting another superior, i.e. they change their loyalty thereby reflecting the not unusual shifts of alliances within Afghan society.

In the model, we also play with the amount of income determined not only by corrupt officers, but also by the state. In other words, the norm or standard earnings for each soldier are set at the value of 1, independent of the soldiers’ ranks. However, the model allows changing the amount of provided payment (deviating from the above norm) in order to simulate the system’s behaviour in different scenarios, ranging from too little pay to very generous incomes provided by the Afghan state.

During each simulation step the acquired pay of each soldier is reduced by one which simulates that every soldier spends his money for living. Corrupt soldiers spend an additional amount in order to survive in the system; if they take money from others, they most likely also have to pay more to their superiors. If a soldier’s pay is not sufficient, i.e. the pay decreases below zero, the soldier will be dissatisfied and locally change the structure of the network either by leaving the network or selecting another superior. The number of satisfied soldiers, on the other hand, is used as a measure for the network's stability. While soldiers at the lowest level – here called leaf-soldiers – are able to leave the network if their pay is not sufficient, and join again at a later time (reintegration is determined by a given probability), soldiers at higher levels – here called officers – start selecting another superior. Officer behaviour does not apply for the root soldier in the centre, or head officers at the level just below the root level.

While non-corrupt soldiers distribute the received payment evenly and honestly among their subordinates, the corrupt soldier prefers first other corrupt subordinates of same ethnicity, secondly subordinates of the same ethnicity, and third subordinates of a different ethnic group. The first case involves the additional costs mentioned earlier paid by corrupt soldiers. In the second case, the amount of pay to the next level is increased by a multiplication factor of the corruption costs, while in the third case, the corrupt superior pays his inferior too little or nothing. During the distribution of various incomes, the receiving corrupt soldier will distribute the payment accordingly.

HOW TO USE IT

Click the setup button to set up the hierachical netwotk. Click the go button to start the simulation. Pressing the ** step** button wil simulate only a single tick.

With the button Change Corruption of Root and Change Ethnic of Root the individual properties of the root soldier can be changed. After pressing one the buttons from Change Ethnic with Mouse and Change Corruption with Mouse, and selecting a soldier using the mouse, the soldiers individual properties can be changed. Do not forget to release the button by pressing on it again, to stop using this feature.

Building the Structure

Starting from the root soldier in the centre, the hierarchical structure is constructed. The slider number-of-levels defines the depth of the hierachy, and the slider multiplicity-of-levels is the factor for the increasing number of soldiers on each level. The number-of-leaf-soldiers provides the number of soldiers on the lowest level. In doing so, we create an artificial environment with various agents, all soldiers of different ranks and different ethnicities.

Setting Individual Properties

During setup each soldier is sorted into an ethnic group, where the number of the different ethnic groups is given by the slider number-of-ethnics. Based on the slider fraction-of-corruption the corruptioness of each soldier is chosen randomly.

Mechanism of Corruption

The payment of all soldiers is distributed by use of the hierarchical network structure. A value of one for the individual pay is used as a norm or standard earnings for each soldier, independently of their level. Based on the number of soldiers in the network and their hierarchical structure the total amount of payment is calculated; this amount of required payment will vary while soldiers are joining or leaving the structure.

The slider fraction-total-pay allows changing the amount of the provided payment by a factor in order to simulate the system’s behaviour in scenarios of underpay or well-funded net-work.

While non-corrupt soldiers distribute the the received payment evenly and honestly over all subordinates, the corrupt soldier prefer

  1. ) other corrupt subordinates of same ethnicity
  2. ) over subordinates of the the same ethnicity
  3. ) over subordinates of a different ethnic group

In case (1) the amount of pay to the next level is increased by a multiplication factor of (1 + corruption-costs), while in case (3) it is reduced by a factor (1 - corruption-costs). During the distribution of pays, the receiving corrupt soldier will distribute the payment according the list described above. Whenever the amount of payment is not sufficent, the payment for the following subordnites in the list will be nothing.

During each simulation step - i.e., tick - the acquired pay of each soldier is reduced by one. Corrupt soldiers have to pay an additional amount given by corruption-costs. If a soldier’s pay is not sufficient, i.e., the pay decreases below zero, the soldier will be dissatisfied and change the structure of the network either by leaving the network or selecting another superior. The number of satisfied soldiers is used as a measure for the network's stability.

Dynamic Processes of Structural Changes

If a soldier's pay is not sufficient, i.e., the pay decreases below zero, the soldier will change the structure of the network either by leaving the network or selection of another superior. The soldier agents' variable is-happy? describes their satisfaction: whenever the available pay sinks down to zero, the variable's value is set to false, and the agent is dissatisfied. This will lead either to leaving the structure for soldiers at the lowest level, or changing its position for soldiers at higher levels.

Ethnical segregation energy visualizes the ethnic clustering of soldiers. The individual segregation energy is calculated for each soldier by comparing his ethnic with these of his direkt neighbors. A different ethnicity increases the energy by one, while the same ethnicity decreses it by one. Free moving soldiers with no neigbours will have seperation energy of zero. By adding all individual values of seperation energy the total energy of the hierachical structure can be calculated. The lower the network’s seperation energies is observed the more homogeneous the observed structure will be, i.e., a clustering of the ethnic groups occurs.

Leaving the network

Soldiers at the lowest level - so called leaf-soldiers - are able to leave the network if their pay is not sufficient, and join again at a later time. The reintegration is determined by a probabilty that is defined by the slider joining-probability

Changing the structure

Soldiers at higher levels - so called officers - start selecting another superior. This rule can not apply for the root soldier or head officers at the level just below the root level.

THINGS TO NOTICE

Depending on the setup of the network, one can observe more or less easily the formation of clusters of corruption and same ethnicity.

Networks with a high grade of corruption show the formation of ethnic clusters.

THINGS TO TRY

Try to change the number of the ethnic groups.

Find out if there is a main difference if the root soldier is corrupted or not.

Find out how much payment is required to keep the network stable.

EXTENDING THE MODEL

Calculation of a measure that describes the danger of seperation.

Sanction and other measures against corruption, leaving, or changing the structure; rules for punishment. On the other side, the spreading of corruption.

Different fraction for the ethnis.

This section could give some ideas of things to add or change in the procedures tab to make the model more complicated, detailed, accurate, etc.

NETLOGO FEATURES

Mouse features of Netlogo in change-soldier-ethnic and change-soldier-corruption to change individual properties of a soldier.

Arrangement of the hierarchical network with layout-radial of the soldiers connected by directed command links.

RELATED MODELS

This development of this model was inspired by Schelling's model of segregation. One can be found in the NetLogo Models Library. See http://ccl.northwestern.edu/netlogo/models/Segregation .

CREDITS AND REFERENCES

Schelling, T. C. (1969). Models of Segregation; The American Economic Review; Vol. 59, No. 2, Papers and Proceedings of the Eighty-first Annual Meeting of the American Economic Association (May, 1969), pp. 488-493. http://www.casos.cs.cmu.edu/education/phd/classpapers/Schelling_Segregation_1969.pdf

Clark W. A. V. (1991). Residential Preferences and Neighborhood Racial Segreagation: A Test of the Schelling Segregation Model; Demography; Volume 28, Issue 1 (Feb. 1991), pp. 1-19. http://smg.media.mit.edu/library/Clark.ResidentialSegregation.pdf

Rauch, J. (2002). Seeing Around Corners; The Atlantic Monthly; April 2002;Volume 289, No. 4; 35-48. http://www.theatlantic.com/issues/2002/04/rauch.htm

Schelling, T. (1978). Micromotives and Macrobehavior. New York: Norton.

Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [ soldiers soldier ]
directed-link-breed [ commands command ]

soldiers-own [
  level ; level = 0: leaf, level = number-of-levels : root
  ethnic
  is-corrupt?
  is-happy?
  separation-energy ; based on ethnic differences
  sum-of-subordinates ; all levels down
  pay  ; normed to full pay of one unit per tick
]

globals [
  network-leavings
  network-changes
  ethnic-segregation-energy
  provided-pay-transfer
]

to setup-globals
  ;;ask patches [ set pcolor white ]
  set network-leavings 0
  set network-changes 0
  set ethnic-segregation-energy 0
  set provided-pay-transfer 0
end 

to startup
  if number-of-levels < 6 and number-of-leaf-soldiers < 2501 [ setup ]
end 

to setup
  clear-all
  setup-globals
  setup-world
  setup-soldiers
  reset-ticks
end 

to go
  go-soldiers
  tick
  if is-ready-to-stop? [ stop ]
end 

to-report is-ready-to-stop?
  report ( not any? soldiers with [ not is-happy?] )
end 

to setup-world
  ask patches [ set pcolor white ]
end 

to setup-soldiers
  let local-level 0
  let local-number 1
  while [ local-level < number-of-levels] [
    create-soldiers local-number [
      set level number-of-levels - local-level
      if local-level > 0
      [
        create-command-to one-of soldiers with [ is-next-higher-level? ]
      ]
    ]
  set local-number multiplicity-of-levels * local-number
  set local-level local-level + 1
  ]
  create-soldiers number-of-leaf-soldiers [
    set level 0
    create-command-to one-of soldiers with [ is-next-higher-level? ]
  ]
  ask soldiers [ setup-soldier ]
  update-network
end 

to setup-soldier
  set shape "person"
  setxy random-xcor random-ycor
  set ethnic random number-of-ethnics
  set is-corrupt? random-float 1.0 < fraction-of-corruption
  set is-happy? true
  update-soldier
end 

to update-soldier
  set size 1.5 * sqrt (level + 1)
  set color ethnic * 10 + 5
  ifelse is-officer?
  [ ifelse is-corrupt? [ set label (word level "*") ] [ set label (word level) ] ]
  [ if is-corrupt? [ set label "*" ]  ]
end 

to-report is-officer?  report level > 0 end

to-report is-head-officer? report level >= (number-of-levels - 1) end

to-report is-leaf? report level = 0 end

to-report is-root? report level = number-of-levels end

to-report is-in-structure? report any? my-out-commands end

to-report is-free? report not any? my-out-commands end

to-report is-next-higher-level? report level = [level] of myself + 1 end

to-report is-different-ethnic-in-command? report [ethnic] of end1 != [ethnic] of end2 end

to-report is-boss-corrupt? report [is-corrupt?] of end2 end

to update-network
  ask soldiers [
    set sum-of-subordinates 0
  ]
  ask soldiers with [ is-root? ] [
    walk-soldier-network
  ]
  update-separation-energy
  if optimize-layout [ layout-soldiers-network ]
end 

to update-separation-energy
  ask soldiers [
    let local-energy 0
    ask my-out-commands [
      ifelse is-different-ethnic-in-command?
      [ set local-energy local-energy + 1 ]
      [ set local-energy local-energy - 1 ]
    ]
    ask my-in-commands [
      ifelse is-different-ethnic-in-command?
      [ set local-energy local-energy + 1 ]
      [ set local-energy local-energy - 1 ]
    ]
    set separation-energy local-energy
  ]
  set ethnic-segregation-energy sum [separation-energy] of soldiers
end 

to walk-soldier-network
  let local-subordinates 0
  ask my-in-commands [
    ask end1 [ walk-soldier-network ]
    set local-subordinates local-subordinates + 1 + [sum-of-subordinates] of end1
  ]
  set sum-of-subordinates local-subordinates
end 

to go-soldiers
  ask soldiers with [ is-root? ] [
    set provided-pay-transfer (sum-of-subordinates + 1) * fraction-total-pay
    transfer-pay-soldier-network provided-pay-transfer
  ]
  set network-leavings 0
  set network-changes 0
  ask soldiers [
    ifelse is-free?
    [ if not is-root? [ move-free-soldier ] ]
    [
      ifelse is-leaf? and not is-happy?
      [ leave-the-network-soldier ]
      [ if not is-head-officer? and not is-happy? [ change-in-network-soldier ] ]
    ]
  ]
  update-network
end 

to move-free-soldier
  set heading random 360
  if can-move? 1 [ forward 1 ]
  if joining-probability > random-float 1.0 [ create-command-to one-of soldiers with [ is-next-higher-level? ] ]
end 

to leave-the-network-soldier
  set network-leavings network-leavings + 1
  ask my-out-commands [ die ]
end 

to change-in-network-soldier
  set network-changes network-changes + 1
  ask my-out-commands [die ]
  let new-command-soldier one-of soldiers with [ is-next-higher-level? ]
  if is-soldier? new-command-soldier  [ create-command-to new-command-soldier ]
end 

to layout-soldiers-network
  ask soldiers with [ is-root? ] [ layout-radial soldiers commands self ]
end 

to transfer-pay-soldier-network [ pay-transfer ]
  set pay pay - 1
  if is-corrupt? [ set pay pay - corruption-costs ]
  ifelse is-leaf?
  [ set pay pay + pay-transfer ]
  [
    ifelse is-corrupt?
    [ distribute-pay-corrupted pay-transfer ]
    [ distribute-pay-honestly pay-transfer ]
  ]
  set is-happy? not (pay < 0)
  if pay < 0 [ set pay 0 ]
end 

to distribute-pay-corrupted [pay-transfer]
  set pay pay + corruption-costs
  let local-pay-sum pay-transfer - corruption-costs
  ask my-in-commands [
    if not is-different-ethnic-in-command? [
      ask end1 [
        if is-corrupt? [
          let local-pay (sum-of-subordinates + 1) * (1 + corruption-costs)
          if local-pay > local-pay-sum [ set local-pay local-pay-sum ]
          set local-pay-sum local-pay-sum - local-pay
          transfer-pay-soldier-network local-pay
        ]
      ]
    ]
  ]
  ask my-in-commands [
    if not is-different-ethnic-in-command? [
      ask end1 [
        if not is-corrupt? [
          let local-pay (sum-of-subordinates + 1)
          if local-pay > local-pay-sum [ set local-pay local-pay-sum ]
          set local-pay-sum local-pay-sum - local-pay
          transfer-pay-soldier-network local-pay
        ]
      ]
    ]
  ]
  ask my-in-commands [
    if is-different-ethnic-in-command? [
      ask end1 [
        let local-pay (sum-of-subordinates + 1) * (1 - corruption-costs)
        if local-pay > local-pay-sum [ set local-pay local-pay-sum ]
        set local-pay-sum local-pay-sum - local-pay
        transfer-pay-soldier-network local-pay
      ]
    ]
  ]
  if local-pay-sum > 0 [ set pay pay + local-pay-sum ]
end 

to distribute-pay-honestly [pay-transfer]
  set pay pay + pay-transfer
  let local-payings 0
  let local-factor (pay-transfer / (sum-of-subordinates + 1))
  ask my-in-commands [
    ask end1 [
      let local-pay precision ((sum-of-subordinates + 1) * local-factor) 8
      set local-payings local-payings + local-pay
      transfer-pay-soldier-network local-pay
    ]
  ]
  set pay pay - local-payings
end 

to-report logarithmic-pays
  let local-list map ln filter [ [?1] -> ?1 > 0 ] ([pay] of soldiers)
  if empty? local-list [ set local-list (list -1 )]
  report local-list
end 

to-report satisfaction
  report 100 * count soldiers with [is-happy?] / count soldiers
end 

;;; ============ mouse procedures ======================================

to change-soldier-ethnic
  if mouse-inside? and mouse-down? [
    ask patch mouse-xcor mouse-ycor [
      ask soldiers in-radius 2 [
        ask min-one-of soldiers [distancexy mouse-xcor mouse-ycor] [
          show ethnic
          set ethnic (ethnic + 1) mod number-of-ethnics
          update-soldier
        ]
      ]
    ]
    display
    wait 1
  ]
end 

to change-soldier-corruption
  if mouse-inside? and mouse-down? [
    ask patch mouse-xcor mouse-ycor [
      ask soldiers in-radius 2 [
        ask min-one-of soldiers [distancexy mouse-xcor mouse-ycor] [
          set is-corrupt? not is-corrupt?
          update-soldier
        ]
      ]
    ]
    display
    wait 1
  ]
end 

There are 4 versions of this model.

Uploaded by When Description Download
Thomas Rieth 11 months ago Correction on typing errors Download this version
Thomas Rieth over 1 year ago Encoding Error Download this version
Thomas Rieth over 8 years ago changed to NetLogo 6.0 Download this version
Thomas Rieth about 11 years ago Initial upload Download this version

Attached files

File Type Description Last updated
2014-04-02_Segregation_and_Stability.pdf pdf Dokumentation and Analysis 11 months ago, by Thomas Rieth Download
2014-04-02_Segregation_und_Stabilität.pdf pdf Dokumentation und Analyse (German) 11 months ago, by Thomas Rieth Download
Segregation.png preview Preview for 'Segregation' about 11 years ago, by Thomas Rieth Download

This model does not have any ancestors.

This model does not have any descendants.