Page 79 -
P. 79

74                                                     E. Norling et al.

            been achieved. It would be impractical to record the details of every variable for
            every run of the simulation, but presenting results in summary form alone may
            hide essential details. At the very least, it is essential to record the initial parameter
            settings (including random seeds, if random numbers are used) so that the summary
            results may be regenerated. It may also be informative to record at least a small
            number of detailed traces that are illustrative of the simulation process (once one
            has determined which parameter configurations produce “interesting” results).
              Documentation is the last stage to be mentioned here but is something that should
            be developed throughout the exploration and consolidation of a model. Firstly, as
            mentioned above, the code should be reasonably self-documenting (through sensible
            naming and clear formatting) to facilitate the modeller’s own understanding.
            Secondly, the consolidated model should be more formally documented. This should
            include any assumptions (with brief justifications), descriptions of the main data
            structures and algorithms and, if third-party algorithms or code have been used,
            a note to their source. This may seem like unnecessary effort, particularly if the
            modeller has no intention of publicly releasing the code, but if questions arise some
            months or years down the track, such documentation can be invaluable, even for
            the original author’s understanding. Chapter 15 in this volume (Grimm et al. 2017)
            looks at documentation and how one might approach this.
              Finally, the modeller must present the model and its results to a wider audience.
            This is essential to the process of producing a model, since one can only have
            some confidence that it has been implemented correctly when it has been replicated,
            examined and/or compared to other simulations by the community of modellers. The
            distribution of the model should include a description of the model with sufficient
            detail that a reader could re-implement it if desired. It should present the typical
            dynamics of the system, with example output and summaries of detailed output. The
            relevant parameters should be highlighted, contrasting those deemed essential to the
            results with those with little or no impact. The benchmark measurements should be
            summarised and presented. To maximise a simulation’s use in the community, the
            simulation should be appropriately licensed to allow others to analyse, replicate and
            experiment with it (Polhill and Edmonds 2007).



            5.7 Tools to Aid Model Development


            As indicated previously, there is now a variety of systems for aiding the development
            of complex simulations. These range from programming language-based tracing
            and debugging tools to frameworks designed explicitly for social simulation, which
            include libraries of widely used patterns. Learning to use a particular system or
            framework is a substantial investment, and because of this, most people do not
            swap from system to system readily once they have mastered one (even when an
            alternate system may provide a far more elegant solution to a problem). Ideally, a
            modeller would evaluate a range of systems when embarking on a new project and
            decide upon the most appropriate one for that project. In practice, most modellers
   74   75   76   77   78   79   80   81   82   83   84