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
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