The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.
powered by NetLogo
view/download model file: rural-urban_migration.nlogo
patches-own [output inhabitants] turtles-own [n-of-neighbours turtles-on-my-patch friend income] to setup ca crt 200 ask turtles [setxy random-xcor random-ycor] ask patches [set pcolor green if pxcor < ( -2) and pycor < (-2) [set pcolor blue] if pxcor < (- 4) and pycor < (- 4) [set pcolor red]] ask turtles [ifelse normal? = true [ if pcolor = red [set income random-normal income-from-city 10] if pcolor = green [set income random-normal income-from-land 10]] [if pcolor = red [set income random income-from-city] if pcolor = green [set income random income-from-land]]] ask turtles [set friend one-of turtles in-radius 3] end to go ask turtles [set n-of-neighbours count turtles-on neighbors set turtles-on-my-patch count turtles-here] ask patches [set inhabitants count turtles-here] tick migration reallocation do-plot end to migration ask turtles [ if income-from-land > income-from-city and income-from-land > income [move-to one-of patches with [pcolor = green]] if income-from-land <= income-from-city and income-from-city > income [move-to one-of patches with [pcolor = red]] ] patches-output mimic end to patches-output ask patches [ if patches-output? = true and pcolor != red and inhabitants != 0 [ set output (( 3 * inhabitants ^ 1.2) / inhabitants) + constant ] ] end to mimic ask n-of random 200 turtles [if mimic? = true and friend != self [move-to friend]] end to reallocation ask turtles [ if pcolor = red [city-movements] if pcolor = blue [slum-movements] if pcolor = green [land-movements] ] end to city-movements if n-of-neighbours > work-place [move-to one-of patches with [pcolor = blue ]] if turtles-on-my-patch >= 2 [fd 1] if n-of-neighbours <= work-place and turtles-on-my-patch <= 1 [set income 110 move-to patch-here] end to slum-movements ifelse patches-output? = true [ set income output ] [set income (income-from-city / turtles-on-my-patch) ] if income < income-from-land [move-to one-of patches with [pcolor = green]] move-to patch-here end to land-movements ifelse patches-output? = true [ set income output ] [ ifelse normal? = true [set income random-normal income-from-land 10] [set income random income-from-land]] end to do-plot set-current-plot "movements" set-current-plot-pen "citizens" plot count turtles-on patches with [pcolor = red] set-current-plot-pen "farmers" plot count turtles-on patches with [pcolor = green] set-current-plot-pen "underemployed" plot count turtles-on patches with [pcolor = blue ] end