Game Theory in Organized Crime

Game Theory in Organized Crime preview image

1 collaborator

Default-person Benedito Neto (Author)

Tags

game theory in organized crime 

Tagged by Qian li over 4 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0.5 • Viewed 1457 times • Downloaded 54 times • Run 0 times
Download the 'Game Theory in Organized Crime' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Info tab cannot be displayed because of an encoding error

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [endowment]

breed [criminals a-criminal]
breed [governmentagents a-governmentagent]
breed [criminals2 a-criminal2]
criminals-own [money]
criminals2-own [money]
governmentagents-own [money]
patches-own [countdown]

to setup
  clear-all
  ask patches [set pcolor green]
  if endowment? [ask patches
  [ set countdown random-normal 0 1   endowment-return                  
   set pcolor one-of [green red]                                          
  ]
  ]
set-default-shape criminals "criminals"                                        
create-criminals initial-number-criminals                                      
[
  set color black
  set size 2
                                           
  setxy random-xcor random-ycor                                           
  
]


set-default-shape criminals2 "criminals2"                                        
create-criminals2 initial-number-criminals2                                      
[  set color blue
  set size 2
                                       
  setxy random-xcor random-ycor                                           
] 

set-default-shape governmentagents "governmentagents"
create-governmentagents initial-number-governmentagents
[
  set color white
  set size 2
  set money initial-state-strength
 
  setxy random-xcor random-ycor
]


set endowment count patches with [pcolor = green]                                   
reset-ticks                                                                          
end 

to go
    if not any? turtles [ stop ]                                                 
  ask criminals [
    take-money               ; Should we not make a slider to adjust this threshold? So we can show that dependent on state-strengt you can get different equilibriums?               
    move                                        ; I think, according to the paper, that that can be of great value to look at different cases
    death 
    cheat
    multiply-criminals
    fight
    lie
    ] 
  ask criminals2 [
    take-money               ; Should we not make a slider to adjust this threshold? So we can show that dependent on state-strengt you can get different equilibriums?               
    move                                        ; I think, according to the paper, that that can be of great value to look at different cases
    death
    cheat
    multiply-criminals2
    fight2 
    lie
    ]
  
 ask governmentagents [
    move 
    cooperate 
    cooperate2
    catch-criminals 
    catch-criminals2                                    
    ]

  if endowment? [ ask patches [ endowment-return ] ]
  set endowment count patches with [pcolor = green]
 
 if benefit-cooperation < 0.5 [ask criminals [lie]]
 
 if benefit-cooperation < 0.5 [ask criminals2 [lie]]
 
  tick
end 

to take-money    
  if pcolor = green [
    set pcolor red
    set money money + 1 ]
end   

to move 
  rt random 50
  lt random 50
  fd 1
end 

to death 
  if money < 0 [die]
end 



;; to catch-storeowners
;;  let mafia-power sum ([money] of mafious in-radius 20) / 100  
;;  let ProbRefuse-myself sum ([money] of cops in-radius 20) / 100                     
;;  let prey one-of storeowners-here                   
;;  if prey != nobody                                                         
;;  [ask prey [ifelse (((ProbRefuse-myself  * ((storeowners-thrust-in-govs-ability-to-fight-mafia * police-power) / 2 ))) < mafia-power )
;;     [set money money - 3 ask patches in-radius 5 [endowment-return]] [set money money - 1 ask patches in-radius 2 [stop endowment-return]]]]
;;  ifelse (((ProbRefuse-myself * ((storeowners-thrust-in-govs-ability-to-fight-mafia * police-power) / 2 ))) < mafia-power )
;;   [set money money + 3] [set money money + 0]                   
;;  end                                                             


; to catch-criminals 
;  let market-profit sum [money] of criminals
;  let government-power sum [money] of governmentagents
;  let prey one-of criminals-here
;  if prey != nobody
;    [ask prey [ifelse market-profit > government-power and random-float 100 > 90   ;; According to paper
;      [set money money - (sum [money] of criminals-here)] [set money money + 0]]]     ; If true, criminals gets reduced money, if not there no change
;    ifelse market-profit > government-power [set money money + (sum [money] of criminals)] [set money money + 0]      
;   end                    ; If true the government gets the money of the criminals, if not, nothing happens

to cooperate 
  let market-profit sum [money] of criminals
  let government-power sum [money] of governmentagents
  let prey one-of criminals-here 
  if prey != nobody
    [ask prey [ifelse market-profit > government-power * ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) and ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) != 0
      [set money money + (sum [money] of criminals-here / 1000) * (1 + benefit-cooperation) ] [set money money + (sum [money] of criminals-here) / 1000 * benefit-cooperation / 2.5 ]]]   ; Funker ikke    ; If true, criminals gets reduced money, if not there no change
    ifelse market-profit > government-power * ( statepropensitytoCONTINUEtocooperatewithcriminals / ( 10 * statepropensitytoSTARTtocooperatewithcriminals) ) and ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) != 0
    [set money money + (sum [money] of criminals-here) * (1 + benefit-cooperation) * pi] [set money money + 0]         ; Funker
end           

to cooperate2 
  let market-profit2 sum [money] of criminals2
  let government-power sum [money] of governmentagents
  let prey one-of criminals2-here 
  if prey != nobody
    [ask prey [ifelse market-profit2 > government-power * ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) and ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) != 0
      [set money money + (sum [money] of criminals2-here / 1000) * (1 + benefit-cooperation) ] [set money money + (sum [money] of criminals2-here) / 1000 * benefit-cooperation / 2.5 ]]]   ; Funker ikke    ; If true, criminals gets reduced money, if not there no change
    ifelse market-profit2 > government-power * ( statepropensitytoCONTINUEtocooperatewithcriminals / ( 10 * statepropensitytoSTARTtocooperatewithcriminals) ) and ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) != 0
    [set money money + (sum [money] of criminals2-here) * (1 + benefit-cooperation) * pi] [set money money + 0]         ; Funker
end           

to catch-criminals 
  let prey one-of criminals-here
  if prey != nobody
    [ask prey [ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) = 0 and benefit-cooperation = 0 and random-float 100 > 90   ;; According to paper
      [set money money - (1 + benefit-cooperation) * (sum [money] of criminals-here)] [set money money + 0]]]
    ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) = 0 and benefit-cooperation = 0 and random-float 100 > 90 [set money money + (sum [money] of criminals-here)] [set money money + 0]
end 

to catch-criminals2 
  let prey one-of criminals2-here
  if prey != nobody
    [ask prey [ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) = 0 and random-float 100 > 90   ;; According to paper
      [set money money - (1 + benefit-cooperation) * (sum [money] of criminals2-here)] [set money money + 0]]]
    ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) = 0 and random-float 100 > 90 [set money money + (sum [money] of criminals2-here)] [set money money + 0]
end 

to cheat
  let prey one-of governmentagents-here
  if prey != nobody
    [ask prey [ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) = 0 and random-float 100 > 90 ;
     [set money money - (sum [money] of governmentagents-here)] [set money money + 0]]]                   ;always when they start to become more powerful
    ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) = 0 
    [set money money + (sum [money] of governmentagents-here)] [set money money + 0]
end 

to endowment-return                 
  if pcolor = red [                 
    ifelse countdown <= 0                        
    [set pcolor green
      set countdown endowment-rate ]           
   [set countdown countdown - 1 ]             
  ]
end 

to multiply-criminals
    
    let my-money sum [money] of criminals-here
    let enemy-money sum [money] of criminals2
    if my-money > 100 * (enemy-money / (benefit-cooperation + 0.01))    and  ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) <= (benefit-cooperation * 10) or count criminals < count criminals2  [hatch 1 rt random-float 360 fd 1 set money money - (sum [money] of criminals-here)] 
end                               

to multiply-criminals2
    
    let my-money sum [money] of criminals2-here
    let enemy-money sum [money] of criminals
    if my-money > 100 * (enemy-money / (benefit-cooperation + 0.01))    and ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) <= (benefit-cooperation * 10)   or count criminals2 < count criminals [hatch 1 rt random-float 360 fd 1 set money money - (sum [money] of criminals2-here)] 
end                               

to fight
  let my-profit sum [money] of criminals
  let enemy-profit sum [money] of criminals2
  let prey one-of criminals2-here
  if prey != nobody
    [ask prey [ifelse my-profit < enemy-profit and random-float 100 > 90   ;; According to paper
      [set money money - (sum [money] of criminals2-here)] [set money money + 0]]]
    ifelse my-profit < enemy-profit [set money money + (sum [money] of criminals2-here) ] [set money money + 0]
end 

to fight2
  let my-profit sum [money] of criminals2
  let enemy-profit sum [money] of criminals
  let prey one-of criminals-here
  if prey != nobody
    [ask prey [ifelse my-profit < enemy-profit and random-float 100 > 90   ;; According to paper
      [set money money - (sum [money] of criminals-here)] [set money money + 0]]]
    ifelse my-profit  < enemy-profit [set money money + (sum [money] of criminals-here) ] [set money money + 0]
end 

to lie
 
  let government-power sum [money] of governmentagents
  let enemy-profit sum [money] of criminals
  let enemy2-profit sum [money] of criminals2
  let prey one-of governmentagents-here
  if prey != nobody
    [ask prey [ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) != 0 and benefit-cooperation < 0.5 and (enemy-profit + enemy2-profit) * benefit-cooperation = initial-state-strength * government-power and random-float 100 > 90 ;
     [set money money - (sum [money] of governmentagents-here)] [set money money + 0]]]                   ;always when they start to become more powerful
    ifelse ( statepropensitytoCONTINUEtocooperatewithcriminals / 10 * statepropensitytoSTARTtocooperatewithcriminals ) != 0 and (enemy-profit + enemy2-profit) * benefit-cooperation = initial-state-strength * government-power and random-float 100 > 90
    [set money money + (sum [money] of governmentagents-here)] [set money money + 0]
end 

There is only one version of this model, created almost 5 years ago by Benedito Neto.

Attached files

File Type Description Last updated
Game Theory in Organized Crime.png preview Preview for 'Game Theory in Organized Crime' almost 5 years ago, by Benedito Neto Download

This model does not have any ancestors.

This model does not have any descendants.