Simulation of north korea migration

Jump to: navigation, search


Let's hope one day South and North Korea will be reunited. That would mean a big fluctuation of people between the two separated states and also cast a variety of problems. That is a very interesting situation we could simulate.

Problem definition

The aim of this simulation is to determine some key factors and their changes after the border between the two countries opens.

We are interested especially in:

  • the migration rate from North to South Korea,
  • North Koreans employment rates,
  • wealth ratio between the two regions
  • and suicide rates among North Koreans facing the comparison with much more developed neighbor.


As we are dealing with people moving around an area and having attributes, that means our obvious choice should be a multi-agent simulation. For this simulation, I've chosen to use NetLogo 6.0.4.



We need to have some data to start with. For the purpose of the simulation, the following data were used:

  • GDP per capita of North Korea from ($1,700)
  • GDP per capita of South Korea from ($37,600)
  • Population of North Korea from (cca. 25 000 000)
  • Population of South Korea from (cca. 51 000 000)
  • Area of North Korea from (cca. 120 000 sq. km.)
  • Area of South Korea from (cca. 100 000 sq. km.)
  • Employment rate of North Korea from (cca. 75%)
  • Suicide rates of North Korea from The Guardian (9790 suicides per population)
  • Labour share of GDP - from Economics Help we assume it's about 50%
  • Some reference migration rate to start from. As a reference, I used migration rates from Eastern to Western Germany after the fall of the Berlin wall. Based on this paper I assume it's somewhere below 0.0250.

Agents and initial states


For the purpose of the simulation, we need two types of agents - South Koreans and North Koreans.

North Koreans will migrate, work, and sometimes, sadly, kill themselves. They own the following attributes with initial values:

  • Wealth - randomly calculated from 50% (labour share) of GDP per capita.
  • Migration inclination - randomly calculated from reference migration rate.
  • Employment status - boolean randomly determined from initial employment rate.
  • Suicide inclination - randomly calculated from initial suicide rates.

South Koreans will sometimes invest in North Korea as there will be some opportunity to build capitalism when communism fell down. They own the following attributes with initial values:

  • Is investor? - Boolean randomly calculated to be around 5% of the richest South Koreans.
  • Is investing? - Boolean initially false.


The patches will be divided proportionally by area of the respective countries and will be assigned wealth based on GDP of the country (random less than countries GDP).

The patches are also assigned with rentability which is deliberately set to around 1% for North Korea and 3% for South Korea. Rentability is then used to calculate wealth movement.

Simulation Mechanism

  • On each tick the simulation modifies attributes of turtles and patches:
    • randomly based on patch wealth if the North Korean is employed
    • based on the employment status, it changes the wealth of the patch and of the North Korean
    • based on the employment status, wealth and initial suicide rates, it determines if the North Korean will commit suicide (if he does, he's reborn)
    • based on neighbouring turtles of a South Korean investor in North Korea it will increase the wealth of his patch
  • On each tick, it will also determine:
    • If the North Korean will migrate based on his migration inclination and his wealth ratio
    • If a South Korean investor decides to invest in North Korea
  • Then it will move the agents that are determined to be moved.

The respective code looks like the following:

to go
 if ticks >= 250 [stop]
to manipulate-resources 
 ;; North Koreans
 ask north-koreans [
   ;; determine employment status - the richer the patch is, the better chance to be employed
   set employed random-float 1 < patch-wealth / (sum [patch-wealth] of nk-patches / nk-patches-count)
   let suicidal false
   ifelse employed 
     let wealthIncrease random-float (patch-wealth * patch-rentability) ;; wealth increase for employed person
     set turtle-wealth turtle-wealth + wealthIncrease
     set patch-wealth patch-wealth + random (wealthIncrease / 2) ;; increase patch wealth with 50% added value
     ifelse turtle-wealth > 0 [
       set suicidal random-float 1 < random-float (suicide-inclination / nk-wealth-ratio) ;; has some wealth, let's determine if suicidal based on inclination and wealth ratio
       set suicidal random-float 1 < random-float (suicide-inclination * 1.5) ;; totally broke, very big chance of suicide (but employed so less than if unemployed)
     let wealthDrain random-float (patch-wealth * (patch-rentability / 2)) ;; wealth drain for employed person (50% of rentability)
     set turtle-wealth turtle-wealth - wealthDrain
     set patch-wealth patch-wealth - (wealthDrain / 2) ;; decrease patch wealth with half of the person drain (subsidies for the person)
     ifelse turtle-wealth > 0 [
       set suicidal random-float 1 < random-float ((suicide-inclination + suicide-inclination * 0.75) / nk-wealth-ratio) ;; suicide inclination increases by 75% if unemployed
       set suicidal random-float 1 < random-float (suicide-inclination * 2) ;; totally broke and unemployed, very big chance of suicide
   if suicidal [
     set nk-suicides nk-suicides + 1
     ;; rebith turtle (so we keep the same amount of turtles)
 ;; South Koreans (investors)
 ask south-koreans [
   if is-investor and is-investing [
     set patch-wealth patch-wealth + (random-float 1.88 * (count turtles-here + count turtles-on neighbors)) ;; up to 50% of GDP per capita of SK (assuming wage share of 50%)
to move 
 ask north-koreans
   ;; determine if prone to migration based on turtle's inclination to migrate and its wealth ratio
   if random-float 1 < turtle-migration / nk-wealth-ratio
       Move-to one-of patches with [pcolor = 109] ;; migrate to South Korea 
 ask south-koreans
   ;; determine if prone to migration based on turtle's wealth and potential to invest
   if is-investor
       set is-investing true
       Move-to one-of patches with [pcolor = 19] ;; migrate to North Korea to invest

Simulation Outputs

The simulation shows:

  • A chart of outmigration rate.
  • Unemployment rate among North Koreans.
  • Suicide rate among North Koreans.
  • Wealth ratio between North and South Korea.


  • The simulation run for 250 ticks consistently results in around 10% - 12% unemployment rate amongst North Koreans.
    • That is a value that could be realistic.
  • The outmigration rate from North Korea stabilizes itself on approx. 0.3%, rising more steeply in the beginning.
    • This value also looks realistic and means that some North Koreans will migrate to South Korea but not (almost) everyone.
  • The suicide rate amongst North Koreans sadly comes to approx. 4%.
    • This value is quite alarming and let's hope that the model is wrong in this particular part.
  • The ratio between North and South Korea wealth increases very slightly from initial 2.71% to 2.73%.
    • Also here, the result is questionable and would probably call for re-evaluation of the formulas, since the growth of wealth seems very very slow.


If we are to trust the designed model, the main concern will be a huge suicide rate amongst North Koreans and very slow growth of North Korea wealth relative to South Korea.

The migration and unemployment rates, however, seem quite moderate and realistic.

The model simplifies a very complex issue and assumes some deliberate facts and measures, therefore it might not be very accurate. Despite that, I think that it could be a good start for future work and by extending the model and making it more precise, we could, to an extent, capture a quite realistic scenario what would happen after the reunification of the two Koreas.


The NetLogo file is available here: File:Koreas.nlogo. Alternatively also externally here.