Complexity of Cooperation Web Site


Note: The source code for the program is in HTML format. To get a plain ASCII text copy of the code, you can either save the page as "text" (and strip off the extraneous text in the header and footer) or save as "source" or "HTML" and extract the text between the <pre> and </pre> tags.




Read Me (TourExec Documentation)

1. The TourExec1.1 program runs all 63 rules from the second round of Axelrod's tournament, and includes parametric amount of noise.

2. Function arguments

The arguments for the functions giving the rules are as follows (where 0 means cooperation and 1 means defection):

J the others player's choice on the previous move (0 or 1), (J=0 on the first move)

M the move number

K your score so far

L the other player's score so far

R a floating point number between 0 and 1 which will be a new number every time a new choice is called for.

3. To run

a. the -SAVEALL option must be used in the Language Systems Fortran compiler to make the local variables in the rule functions static (ie remembers from one call to the next).

4. Editing requirements for this compliler.

a. Because the Language Systems compiler does not save the value of a function as a local static variable, I had to have the value as an added parameter, e.g. JA in the example above. JA is one's own previous choice (0 initially). I also added as the first execuatable statement of each rule an assignment:


b. In the case of K39 rule a trivial change in the logic was necessary to avoid the Language Systems compiler's getting into trouble in the way it processes multiple conditions in an IF statement out of order. The change causes to difference in the algorithm.

Back to Chapter 2
Back to Complexity of Cooperation Home Page

University of Michigan Center for the Study of Complex Systems
Revised November 4, 1996.