Why I can say this.After a sequence of years unearthing scandalous corruption scams one after another, I wanted to know if India would ever be corruption free. Wishful thinking says it will and pessimism says it will not. Those two imposers are not what I put my faith in. I only believe what is backed by data. Since data is only available from the past I had nothing to work with.
With that being the start of this explorers trail, I began to look for methods which might help me satisfy my curiosity. Finally it hit me. I simply needed to simulate populations. With that idea and Python in hand I began to write code. This article is about the code, the results and the idea.
After running about 160 more simulations I discovered that in cases where the police have a pay at least twice as great as the bribe they receive, corruption does not spread to the entire society and is limited in all cases to less than 60%.
--End of Update--
The method of evaluationFirst we create people who will populate the society we want to study.
We give people some characteristics
- They are all born with "initial_money" number of coins.
- They all have a value "stoicity" coming from the word stoic. This is a measure of how honest they are.
- Any person may be "police".
- Any person may be "criminal".
How does this society operate? Everyone goes about saying hi to everyone else( in a round robin tournament fashion). Whenever two people meet:-
- One of them is policeman
- We ask the other person if they want to bribe the policeman?
- If he says yes we ask the policeman if he accepts?
- Both of them are policemen
- We randomly ask one of them if they want to bribe the other?
- We then proceed to ask the other if they accept the bribe?
- None of them is a policeman
- We randomly transact a random amount of coins from one of them to the other.
- This is to provide a statistically even distribution of people earning money.
With these things in mind I conducted some simulations with parameters of interest. Parameters being how much to bribe, how much is the punishment of the criminal etc.
All the source code for this was written in Python 3.4.0 and is available on my github repository.
Results of interest
All graphs are fractions of population. Hence if policemen is shown at 0.8 it means 80% of the population is policing by behaviour.
During the first simulation run I found that despite some scenarios where criminals themselves died out, corruption itself never died out. The people who were accepting and giving bribes became policemen. Overall the policemen dominated the society.
No matter how we reward policemen and how we punish crime, once more than 50% of the population is indulging in bribes, police or not, bribing quickly saturates in the population.
For those interested, here are some more graphs. (I will be posting more as soon as the simulations keep on completing.)