Classification tags: Mafia, Economics, Organized Crime, Discrete-Event Simulation
The potentially relevant object types are:
These objects coexist in one shared environment. Each object might change its own properties and influence the change in the properties of others as well. They can share the information about their properties together, also about other objects. Objects actions and communication are represented as Events.
Relevant types of events identified for the Mafia model are described in the tables below. The tables present the events between two objects or just within one object. For example, the events, in table Entrepreneur – Customers, triggered by the Entrepreneur will affect the Customer or just take some information from him. The Event name column describes the name of the event, the Event description column describes briefly the logic performed by the event, and the Trigger object column defines the object that generates the event.
Event name | Event description | Trigger Object |
products production | Production of new products. | Entrepreneur |
Event name | Event description | Trigger Object |
purchase request | The Customer takes a decision about the number of products and the Entrepreneur from whom to purchase. | Customer |
purchase acceptance | The Entrepreneur accepts or declines the purchase transaction. | Entrepreneur |
bill payment | The Customer pays the bill for the accepted purchase transaction. | Customer |
goods transfer | The Entrepreneur delivers the purchased products to the Customer. | Entrepreneur |
transaction appraise | The Customer appraises the purchase transaction as satisfactory or not. | Customer |
Event name | Event description | Trigger Object |
pizzo demand | The Mafia demands pizzo from an Entrepreneur. | Mafia |
paying pizzo consideration | The Entrepreneur decides whether to pay the pizzo demand. | Entrepreneur |
pizzo payment | The Entrepreneur pays the pizzo demand. | Entrepreneur |
payment check | The Mafia checks whether the Entrepreneur paid the pizzo demand. | Mafia |
benefit | The Mafia decides how to benefit the Entrepreneur who paid pizzo. | Mafia |
production acceleration | The Entrepreneur will increase production for a pre-defined period of time. | Mafia |
pizzo payback | The Entrepreneur receives part of the paid pizzo back. | Mafia |
punishment | The Mafia decides how to punish the Entrepreneur who did not pay pizzo. | Mafia |
production punishment | The Mafia prevents the Entrepreneur to produce products for a pre-defined period of time. | Mafia |
warehouse punishment | The Mafia destroys a part of the products in the Entrepreneur's warehouse. | Mafia |
Event name | Event description | Trigger Object |
state payment | The State increases the amount of resources in the Fondo di Solidarietà. | State |
Event name | Event description | Trigger Object |
pizzo report | The Entrepreneur reports to the State about the Mafia's pizzo demand. Entrepreneur punishment report The Entrepreneur reports to | Entrepreneur |
punishment report | The Entrepreneur reports to the State about the Mafia's punishment and the cost inflicted on the business. | Entrepreneur |
entrepreneur assistance | The State decides whether to assist the Entrepreneur for the losses inflicted by the Mafia. | State |
Event name | Event description | Trigger Object |
results of general investigation | The State regularly assigns an available Police Officer to monitor an Entrepreneur for any Mafia activity. | State |
bureaucratic activity | The Police Officer conducts several bureaucratic activities to conduct a Mafioso in custody to trial. | State |
specific investigation | The State initiate a specific investigation if it receives a report of pizzo demand from an Entrepreneur. | State |
trial | The State decides to imprison or release a Mafioso in custody. | State |
prison release | The State releases a Mafioso at the end of his prison term. | Mafia |
free time | The Police Officer is set available to initiate a new investigation. | State |
Event name | Event description | Trigger Object |
products production | If the Entrepreneur's supply chain is not blocked by Mafia and the Entrepreneur's production infrastructure is not damaged and there is enough money, the Entrepreneur can produce products, otherwise he cannot. If the Entrepreneur has paid pizzo and it has been benefited by the Mafia, the production speed increases. | Entrepreneur |
Event name | Event description | Trigger Object |
purchase request | The Customer takes a decision about the amount of products and the Entrepreneur from whom to purchase. In addition, the Customer sends a purchase request to the chosen Entrepreneur. | Customer |
purchase acceptance | The Entrepreneur, after receiving a purchase request, confirms the transaction if there is enough products in the warehouse to fulfill the Customer purchase request. If there is not enough products in the warehouse, the Entrepreneur declines the transaction. | Entrepreneur |
bill payment | The Customer pays the bill for the last transaction. The Entrepreneur's wealth increases. | Customer |
goods transfer | The Entrepreneur delivers the purchased products to the Customer. The amount of products in the Entrepreneur's warehouse is decreased. | Entrepreneur |
transaction appraise | The Customer appraises the transaction as satisfactory or not. If the Customer was satisfied with the transaction, there is a increase on the changes to choose this same Entrepreneur again, otherwise the Customer loses trust on the Entrepreneur and reduces the chances of buying from him again. | Customer |
Event name | Event description | Trigger Object |
pizzo demand | The Mafia demands pizzo from an Entrepreneur and waits for payment. The amount of pizzo is calculated based on the Entrepreneur's current wage. If the Entrepreneur is monitored by the State, there is chance that the Mafiosi is seen and captured. If captured, the Mafiosi is sent to custody and the number of available Mafiosi is decreased. | Mafia |
paying pizzo consideration | The Entrepreneur takes one of two possible decisions, the Entrepreneur pays or does not pay the pizzo. If the pizzo is not paid, the Entrepreneur takes the decision to report or not the request to the State. | Entrepreneur |
pizzo payment | The Entrepreneur pays the pizzo. | Entrepreneur |
payment check | The Mafia checks to see if the Entrepreneur paid the last pizzo request. If so, the Mafia may benefit the Entrepreneur, otherwise the Mafia may punish the Entrepreneur. | Mafia |
benefit | The Mafia decides how to benefits the Entrepreneur who paid pizzo. The Mafia benefits the Entrepreneur by increasing the production speed or returning part of the pizzo payment back. | Mafia |
punishment | The Mafia decides how to punishe the Entrepreneur who did not pay pizzo. The Mafia punishes the Entrepreneur by decreasing production speed or destroying part of the products in the warehouse. | Mafia |
Event name | Event description | Trigger Object |
state payment | The State increases the amount of resources in the Fondo di Solidarietà. | State |
Event name | Event description | Trigger Object |
pizzo report | The Entrepreneur reports the State about the Mafia's pizzo request. The State decides to monitor the Entrepreneur (i.e., begin a specific investigation) if there is any Police Officer available. If the specific investigation is initiated, the number of available Police Officer is decreased. | Entrepreneur |
punishment report | The Entrepreneur reports the State about the Mafia's punishment and cost inflicted on the business. The cost is calculated differently depending if the production speed is reduced or the products in the warehouse was destroyed. | Entrepreneur |
entrepreneur assistance | The State decides whether or not to compensate the Entrepreneur for the losses inflicted by the Mafia. The State's decision to compensate the Entrepreneur depends on the amount of resources available in the Fondo di Solidarietà. Thus, the Entrepreneur is compensated only if there is enough resources in the Fondo di Solidarietà. | State |
general investigation | The State regularly assigns an available Police Officer to monitor an Entrepreneur for any Mafia activity. | State |
Event name | Event description | Trigger Object |
investigation result | The State checks if a Mafiosi was captured by a Police Officer during a general or specific investigation. If so, the Police Officer involved in the investigation starts a bureaucratic activity. Otherwise, the Police Officer has some free time before starting another investigation. | State |
bureaucratic activity | The Police Officer conducts several bureaucratic activities that ends at the beginning of the Mafiosi trial. | State |
end of specific investigation | Specific investigation stops. If a Mafiosi was captured the number of free Mafiosi decreases and the State starts new bureaucratic activity. If nobody was captured an Officers takes free. | State |
trial | The State takes the decision to imprison or release a Mafiosi in custody. If the State decides to release, the number of available Mafiosi is increased. | State |
prison release | The State releases a Mafiosi at the end of his prison term. The number of available Mafiosi increases. | Mafia |
end of free time | The Police Officer is set available to initiate a new investigation. | State |
For all activity types the simulator computes the utilization of their resources.
ON (event type) | DO (event routine) | Trigger Object |
DemandPizzo | SET e TO entrepreneur SET m TO mafia SET s TO state IF (s.entUnderObserv.includes(e.id )&& (rand.uniform() s.seeAndCaptureProb)) THEN INCREASE m.numCaptMaf BY 1 ELSE INCREASE m.numFreeMaf BY 1 SET pizzoToPay TO parseFloat((m.pizzoPayPerc * e.wealth).toFixed(2)) IF (pizzoToPay > 1) THEN INCREMENT extortionCounter SCHEDULE EventStart (“ConsiderPayPizzo”,this.mafia, this.entrepreneur, this.state, this.pizzoToPay)@(t+timeForPayPizzoConsideration) SCHEDULE EventStart (“CheckPayment”,this.mafia, this.entrepreneur, this.state, this.pizzoToPay)@(t+timeForPayPizzoConsideration) ELSE INCREMENT lostExtortionCounter BY 1 |
Mafia |
CheckPayment | SET m to mafia SET e TO entrepreneur IF (m.extortionCheck[e.id) == true) IF ((rand.uniform() < m.benefitProb)) SCHEDULE EventStart (“Benefit”,this.mafia, this.entrepreneur, this.pizzoToPay)@(t+timeForBenPun) ELSE INCREASE e.numNoPayments BY 1 IF (rand.uniform() < m.punishProb) SCHEDULE EventStart (“Punish”,this.mafia,this.entrepreneur,this.state)@(t+timeForBenPun) |
Mafia |
Benefit | SET e TO entrepreneur SET m TO mafia SET randomBenefit TO rand.uniform() >= 0.5 IF (randomBenefit == true) SET benefitValue TO parseFloat( (m.pizzoBenPerc * pizzoToPay).toFixed( 2 ) ) this.pizzoToPay).toFixed( 2 ) ) INCREASE e.wealth BY benefitValue ELSE SET e.fasterProduction TO true |
Mafia |