Next: 8 Further Reading Up: 7 Advanced Topics Previous: 7.2.2 The Strategy class Contents

## 7.3 Defining user setups

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

Next: 8 Further Reading Up: 7 Advanced Topics Previous: 7.2.2 The Strategy class Contents