Market for Protection v1.0.0

## Analytical Model of the Market for Protection: Security is a pre-requisite for economic development and activity. Konrad and Skaperdas ([2010](http://link.springer.com/content/pdf/10.1007/s00199-010-0570-x.pdf)) analyze the interaction of individual agents in anarchy, without any collective organization. *Peasants* spend their effort in productive activity, and consume some of their output to sustain themselves until the next period. *Bandits* produce no output, but prey on peasants, forcing the peasants to surrender their output for the bandits’ consumption. Peasants may divide their effort between productive work, and securing their output against bandits. A *protection function* models this security effort; it converts security effort into effective protection of some proportion of a peasant’s output, leaving the remainder to be surrendered to a bandit. The model then analyses an equilibrium condition, where all actors have the same average payoff. ## Simulating the Market for Protection: We modify several of the assumptions of the analytical model. * The protection function is given the specific functional form of a contest function. * Peasants randomly choose a protection proportion. * Agents are randomly matched for interaction. * Dynamic: each agent lives one period; if its payoff is below a *survive* threshold, it dies, otherwise it has a single descendant. If its payoff is higher, above a *thrive* threshold, it has two descendants. * Peasants inherit the protection proportion of the parent. * Equilibrium: average payoffs to bandits and peasants are equal, within a tolerance. ## Implementation: The [simulation](https://github.com/sjdayday/protection-simulation.git) is written in Java, and its behavior is governed by a set of parameters. At a granular level, automated unit tests help ensure the correct behavior of individual classes and document the behavior of the simulation.
This is a companion discussion topic for the original entry at https://www.comses.net/codebases/3851/releases/1.0.0/