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: mafianomics.nlogo
This model reproduces the growth dynamics of the Mafia in an initially wealthy economic system and the efforts of the law enforcement agencies to contrast the expansion of illegal businesses.
In this model, policemen and mafiosi wander randomly from a enterpise to another. During each step, every mafioso tries to bend an enterprise to his power and the enterprise loses a point of its strength in resisting corruption.
When the strength of an enterprise, whose starting value is given randomly, goes below zero, the enterprise turns into a corrupted one (its color turns black from green) and the influence of the Mafia on the patch occupied by the enterprise is increased of one point.
Meanwhile, each policeman protects legal businesses by giving a point of strength to every enteprise he goes by; when a policeman manage to free an enterprise from the power of Mafia, by making its strength become positive again, the power of the law in the area is increased of one point and the color of the patch turns green again.
When a policeman and a mafioso meet in a patch, the comparison between influence of Mafia end power of law in that area decides who of the two has to die.
There are two different processes for the recruitment of new policemen/mafiosi:
- policemen: policemen-agents can reproduce only if their number is less or equal to the number of mafiosi. When a policeman passes on a patch, the comparison between influence of Mafia and power of law determines whether the policeman splits into two policemen or not. If the difference between the two values is smaller than mafia-rooting, then the "recruitment" occurs.
- mafiosi: it is the same process used in the recruitment of policemen, the only relevant difference is that the difference between the two values has to be greater than mafia-rooting.
1. Set the slider parameters (described below), or use the default settings.
3. Press the SETUP button.
4. Press the GO button to start the simulation.
5. Look at the monitor to see the current state of the system.
6. Look at the AGENTS plot to observe the changes in the number of policemen/Mafiosi;
7. Look at the ENTERPRISE plot to monitor the fluctuations of the numbers of corrupted/healthy enterprises
Parameters:
INITIAL-NUMBER-MAFIOSI: The initialb number of Mafiosi
INITIAL-NUMBER-POLIZIOTTI: The initial number of policemen
MOBILITY: The longest movement of each policeman/Mafiosi during a step
MAFIA-ROOTING: Tendency to recruit new Mafiosi;
MOBILITY is a very influent parameter in this simulation. Using lower values the observer will notices a rought division of patches into two well defined areas, a black one and a green one, with no islands of the other colour. That is the condition of an economic system where is quite difficult moving around money and influence. Let us call it an "old-fashioned world", in which the regions strightly controlled by Mafia-like organisation can be easily identificated. On the contrary, using higher values of MOBILITY, the observer whould notice a different behavior: corrupted and healty enterprises would be well mixed, and it would be difficult to isolate a completely uncorrupted region. This condition of the system is more similar to modern world, where money and influence can reach every economic activity.
Try settings the parameters in different ways. Are there adjustments that generate economic systems including only corrupted or healthy enterprises? Which conditions produce a stable system in which legal and illegal businesses coexist?
Try changing the recruitment rules and observe the different evolutions of mafiosi/policemen population in the AGENTS plot.
There are lots of ways to modify the model and explore more complex behaviors of enterprises in their reactions to the extortion of the Mafia, such as the tendency to be influenced by the behaviors of the nearest enterprises.
It would be also interesting to code new kind of interactions between mafiosi and policemen, including, for example, the possibility of police forces to be open to bribery.
This model uses breeds to create two different kinds of "turtles": policemen and mafiosi. It also uses patches to model enterprises.
Look at Wolf Sheep Predation for another model showing interaction between different populations as well as the use of patches/turtles to model populations with different properties.
globals [azienda impresa]
breed [poliziotti poliziotto]
breed [mafiosi mafioso]
patches-own [resistenza mpotere ppotere]
to setup
clear-all
set-default-shape mafiosi "person"
set-default-shape poliziotti "person"
setup-patches
setup-turtles
end
to setup-patches
ask patches [ set pcolor 54 + random 3 ]
ask patches [
set resistenza random 5]
ask patches [
set mpotere 0]
ask patches [
set ppotere 0]
end
to setup-turtles
create-mafiosi initial-number-mafiosi
[
set color red
set size 2.0
]
create-poliziotti initial-number-policemen
[
set color cyan
set size 2.0
]
ask turtles [ setxy random-xcor random-ycor ]
end
to go
move-turtles
corrompi
difendi
confronta
reproduce-mafiosi
reproduce-poliziotti
update-plot
end
to move-turtles
ask turtles [
right random 360
forward random mobility
]
end
to corrompi
ask mafiosi [
set resistenza (resistenza - 1)
if resistenza < 0 [
set pcolor black
set mpotere (mpotere + 1)]
]
end
to difendi
ask poliziotti [
set resistenza (resistenza + 1)
if resistenza = 0 [
set pcolor 54 + random 3
set ppotere (ppotere + 1)
]
]
end
to confronta
ask poliziotti[ let prey one-of mafiosi-here
if prey != nobody
[ifelse ppotere >= mpotere
[ask mafiosi-here[die]]
[ask poliziotti-here[die]]
]
]
end
to reproduce-mafiosi
ask mafiosi [
if (2 * (initial-number-mafiosi)) > (count mafiosi) [
if (mpotere - ppotere) <= mafia-rooting[
hatch 1 [ rt random-float 360 fd 1 ]
]
]
]
end
to reproduce-poliziotti
ask poliziotti [
if (count mafiosi) > (count poliziotti) [
if (mpotere - ppotere) <= mafia-rooting [
hatch 1 [ rt random-float 360 fd 1 ]
]
]
]
end
to update-plot
set-current-plot "Agents"
set-current-plot-pen "mafiosi"
plot count mafiosi
set-current-plot-pen "poliziotti"
plot count poliziotti
set-current-plot "Enterprises"
set-current-plot-pen "corrupted enterprises"
plot count patches with [pcolor = black]
set-current-plot-pen "healthy enterprises"
plot count patches with [pcolor != black]
end