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)])