Computational Algorithm used in "The First Property Rights Revolution" by Bowles and Choi (2002)

The simulation program was written in C++. Inquiries about the algorithm or requests for the code used should be directed to Jung-Kyoo Choi (  In the paper, we designed two simulation models; one is for generating Table 1 and Figure 6, and the other is for generating Figure 7. The first one is called ‘punishment game’ and the second one ‘the first property rights revolution’.


1. Create Groups and Agents

  • Ceate 25 groups with size 20.

  • Assigning Traits: Each agent is assigned one of three traits; Grabbing, Sharing and Punishing.

      o       (For the first property rights revolution simulation): Each agent is one of Bourgeois, Sharer, or Punisher.

  • Group size is kept constant.

  •  Groups are placed on torus and have 4 neighbors on North, South, East and West sites.

2.      The Game within Groups (Repeat 5 times)

  • Pairing: In each round, each agent is randomly paired to another agent of his/or her group, called a partner.

  • Playing Games: Agents play the punishment game with their partner and get payoffs according to the payoff structure given in the text.

    o       (For the first property rights revolution simulation): The game is played with Punisher, Sharer and Bourgeois.

  •   With 2nd-Order Punishment

After a punisher fights with a grabber, punishers also punish sharers each sharer bears the cost –0.3 and each punisher shares the cost –0.15 (i.e. each punisher gets –0.15/m, where m is the number of punishers in a group).    

3.      Group Conflict

  •  In each generation (after playing the punishment game 5 times within each group), groups are involved in a conflict with a randomly chosen neighbor.  

  • The group with the higher average payoff wins the conflict.

  • Resource Transfer from Loser to Winner: The winners of a conflict seize some of the resources of the losing group. We model this by reducing payoffs to all members of the losing group and adding the same amount of payoff to all members of the wining group. Resource Transfer is assumed to be 3.

  • Cultural Assimilation into Winning Group: The cultural models for the losing group are all drawn from the winning group. (See 4. Updating)

4.      Updating  

  •  Each member  is paired with  a cultural model among group members and learns from the model if the model’s payoff is greater than his/or hers. The probability of a sharer being chosen as a model is given by  

pa(h)=ah / (ah + bh + gh)

where h is a measure of biased cultural transmission. The probability that a Grabber or a Punisher is drawn for the cultural model pool is calculated in similar fashion.

  • Mutation: With probability e an agent’s trait is randomly determined.

5.      Migration

  •  Each member migrates to one of neighboring groups. Each agent has chance to migrate to one of neighboring groups with probability 0.2. To keep group size constant, whenever an agent in group x migrates to group y, an agent in group y is assumed to migrate to group x

6.      Go to the step 2.


 [Go Back to Artificial History Main Page

 Last Updated: 10-25-02