NetLogo User Community Models
BRADFORD PD PUBLIC GOODS GAME FULL 1-31-14 NETLOGO
by John Hamilton Bradford (Submitted: 01/31/2014)
## WHAT IS IT?
This model is derived from and inspired by Bowles and Gintis, "A Cooperative Species: Human Reciprocity and its Evolution" (2013: 64-66).
This model contains two games: an iterated Prisoner's dilemma game, and a Public Goods game consisting of N_groups each of n_size. Generally speaking, the purpose of the model is to see under what conditions "cooperation" (or "altruism") will prevail given self-interested agents. It involves the concepts of multi-level (group) selection and inclusive fitness. Each turtle faces a choice: CONTRIBUTE or NOT-CONTRIBUTE, or alternatively, COOPERATE or NOT-COOPERATE. Initially, all turtles behave as if all turtles contributed the previous round, so all agents contribute except defectors. Then, turtles are randomly placed in different groups each of size n, and play a public goods game with other members of the group. After the first round, turtles only CONTRIBUTE if a 'sufficient' number of other turtles contributed in the previous round.
A 'sufficient number' is determined by the Agent's Threshold (the t_threshold variable), which is randomly selected between 0 and size_n (the size of the group). An agent with a threshold of 5, for example, would cooperate only if 5 other agents cooperated in its group from the previous round. This simulates the idea of conditional preferences to comply with a social norm. A percentage of initial defectors can be set. A defector has a Threshold of size_n + 1, which means it will never cooperate because doing so would require more cooeprators in the group than are total agents in the group.
In the Prisoner's Dilemma game, each agent interacts with one other agent. This other agent is either selected randomly from the population (thus making the likelihood of interacting with a cooperator proportional to the percentage of cooperators) or else it is set as fixed, using the PD_assortment chooser. If the odds are "fixed", then you must select the likelihoods that altruists/cooperators will interact with other altruists, and the likelihoods that other defectors/non-altruists will interact with cooperators.
Below are some conditions in which cooperation is expected to prevail, although they are not tested explicitly in this model:
## HOW IT WORKS
## REPLICATOR DYNAMICS AND OTHER SETTINGS
1 The "Replicator Equation" is as follows:
2 The "Relative Payoff" algorithm is derived from Bowles and Gintis. The idea is that the probability of changing to another strategy is proportional to the difference between the *mean* payoffs for each strategy (cooperate and defect). Agents will switch only if the mean payoff is larger for the other strategy. Currently, I have programmed two versions of this, but am using only the first.
(i). Qij = B($j - $i), where Qij is the probability of individual switching from i to j, and $j and $i are the payoffs for strategy j and i, respectively. In this model, each agent has probability Q of switching.
(ii). Pr(i)t+1 = Pr(i) - a * Pr(i)(1-P)B($j - $i), where a is set to unity. This is a system-level prediction or change, not acting at the level of each agent. Notice the paramters "a" and "B."
The problem with both versions is that the parameter "B" has to be set seemingly arbitrarily, and set sufficiently small so that the respective probabilities are less than 1.
3 The "Variance Ratio" algorithm states that:
4 Finally, there is the "Imitation" strategy. Currently, this is very preliminary. I adopt a simple approach, in which agents look to their 4 closest neighbors and copy the most successful strategy among them. This leads to cascades of homogeneity due to the network topology.
5 Another way you can model population changes more directly is by switching on "Starvation?" and/or "Kill_Defectors?" The idea behind each is simple: accumulated resources have to be consumed. The consumption level is set to (B/size_n) / 2. These are deducted from Earnings each round. "Starvation" lets agents die if their total earnings go below zero. "Kill_defectors" is based on the obvious recognition (usually ignored) that so-called defectors or free riders cannot survive in isolation. Nobody can survive in isolation! Therefore a society of completely non-altruistic, non-cooperative individuals is impossible (and maybe even an oxymoron). The non-cooperators are not self sufficient. Thus, this parameter says that defectors who cannot find other cooperators to interact with will die.
6 Finally, "contrite" is taken from Bowles and Gintis. It says that if an agent defects by mistake, then it will unconditionally cooperate the next two rounds.
## THINGS TO TRY
For the "Imitation" replicator dynamics Algorithm, the turtles are imitating/watching the 4 closest turtles to them, but interacting randomly with turtles across the whole social space. It may be interesting to see if the results are effected at all by the restricting context of observation to the context of action.
## CREDITS AND REFERENCES
Bowles and Gintis, "A Cooperative Species: Human Reciprocity and its Evolution" (2013: 64-66).
(back to the NetLogo User Community Models)