Page 135 -
P. 135

132                                                    J.M. Galán et al.

              We also distinguish between errors and artefacts (Galán et al. 2009). Errors
            appear when a model does not comply with the requirement specifications self-
            imposed by its own developer. In simple words, an error is a mismatch between
            what the developer thinks the model is and what it actually is. It is then clear that
            there is an error in the model if and only if the model is not correct. Thus, verification
            is the process of looking for errors. An example of an implementation error would
            be the situation where the programmer intends to loop through the whole list of
            agents in the program, but he mistakenly writes the code so it only runs through a
            subset of them. A less trivial example of an error would be the situation where it is
            believed that a program is running according to the rules of real arithmetic, while
            the program is actually using floating-point arithmetic (Izquierdo and Polhill 2006;
            Polhill and Izquierdo 2005; Polhill et al. 2005, 2006).
              In contrast to errors, artefacts relate to situations where there is no mismatch
            between what the developer thinks a model is and what it actually is. Here the
            mismatch is between the set of assumptions in the model that the developer thinks
            are producing a certain phenomenon and the assumptions that are the actual cause
            of such phenomenon. We explain this in detail. We distinguish between core and
            accessory assumptions in a model. Core assumptions are those whose presence
            is believed to be important for the purpose of the model. Ideally these would be
            the only assumptions present in the model. However, when producing a formal
            model, it is often the case that the developer is bound to include some additional
            assumptions for the only purpose of making the model complete. We call these
            accessory assumptions. Accessory assumptions are not considered a crucial part
            of the model; they are included to make the model work. We also distinguish
            between significant and non-significant assumptions. A significant assumption is
            an assumption that is the cause of some significant result obtained when running
            the model. Using this terminology, we define artefacts as significant phenomena
            caused by accessory assumptions in the model that are (mistakenly) deemed non-
            significant. In other words, an artefact appears when an accessory assumption that
            is considered non-significant by the developer is actually significant. An example
            of an artefact would be the situation where the topology of the grid in a model
            is accessory; it is believed that some significant result obtained when running the
            model is independent of the particular topology used (say, e.g. a grid of square
            cells), but it turns out that if an alternative topology is chosen (say, e.g. hexagonal
            cells), then the significant result is not observed.
              The relation between artefacts and validation is not as straightforward as that
            between errors and verification. For a start, artefacts are relevant for validation
            only to the extent that identifying and understanding causal links in the model’s
            referent is part of the purpose of the modelling exercise. We assume that this is
            the case, as indeed it usually is in the field of agent-based social simulation. A
            clear example is the Schelling-Sakoda model of segregation, which was designed
            to investigate the causal link between individual preferences and global patterns
            of segregation (Sakoda 1971; Schelling 1971, 1978). The presence of artefacts
            in a model implies that the model is not representative of its referent, since one
            can change some accessory assumption (thus creating an alternative model which
   130   131   132   133   134   135   136   137   138   139   140