CoopSim - A Computer Simulation of the Evolution of Cooperation. User's Manual |
Eckhart Arnold | Contents |
There are many more parameters that determine a simulation than can be edited through the simulation setup dialog. To change these parameters, thereby gaining access to a much wider range of possible simulation scenarios, it is necessary to define the simulation setup manually on the User Defined Strategies page.
All parameters that determine a simulation's behaviour are defined in an object of class Simulation.SimSetup. To define a simulation setup, it suffices to instantiate this class with the needed parameters. Here is an explanation of the parameters the constructor of the SimSetup class takes:
name = string: name of the model strategyList = list of Strategy objects: the list of the strategies population = tuple: population share for each strategy correlation = float [0.0-1.0]: correlation factor gameNoise = float [0.0-1.0]: in game noise noise = float [0.0-1.0]: evolutionary background noise iterations = int: number of iterations for one match samples = int: number of sample matches to take (only useful for randomizing strategies) payoff = tuple of floats: payoff tuple (T, R, P, S) demes = DemeDescriptor: defines the deme structure of the population or `None' if there is only one deme mutators = list of Mutator objects: description of possible mutation (or degeneration resp.) of strategies during the course of the evolutionary development. cachedPM = cached payoff matrix cachedLog = cached tournament log string
The most interesting use for programmed setups is setups with mutators. Mutators describe a genetic drift of certain strategies into another type of strategy. For example one could imagine a certain percentage of TITFORTAT players degenerating into DOVE every generation, because they weren't really able to understand the principle of TITFORTAT. The assumption of degeneration has great consequences for the topics of evolutionary stability and the like. Here is an example of a simulation setup with a non uniform population consisting of the strategies GRIM, DOVE and TESTER, where GRIM degenerates to DOVE at a rate of one percent per generation. (Try this one out and let the ecological simulation continue for at least 400 generations. What can you observe?)
custom_setup = SimSetup(name = "Grim => Dove, Tester", strategyList = [Grim(), Dove(), Tester()], population = (0.8, 0.01, 0.19), mutators = [Mutator(0,1,0.01)])