Page 77 -
P. 77
72 E. Norling et al.
until you have experimented with it, which necessitates being able to control it to a
considerable extent. However, since modelling complex social phenomena requires
(at least usually and probably always) complex models, complete understanding
and/or control is often unrealistic. Nevertheless, understanding your model as much
as is practical is key to useful modelling. This is particularly true for exploratory
modelling because it is the feedback between trying model variations and building
an understanding of what these variations entail that makes this approach useful.
Understanding one’s model is a struggle. The temptation is to try shallow
approaches by only doing some quick graphs of a few global measures of output,
hoping that this is sufficient to give a good picture of what is happening in a complex
social simulation. Although information about the relationship of the setup of a
simulation and its global outcomes can be useful, this falls short of a full scientific
understanding, which must explain how these are connected. If you have an idea
of what the important features of your simulation model are, you might be able to
design a measure that might be suitable for illustrating the nature of the processes
in your model. However, a single number is a very thin indication of what is
happening—this is OK if you know the measure is a good reflection of what is
crucial in the simulation—but can tend to obscure the complexity if you are trying
to understand what is happening.
To gain a deeper understanding, one has to look at the details of the interactions
between the parts of the simulation as well as the broader picture. There are two
main ways of doing this: case studies using detailed traces/records and complex
visualisations.
A case study involves choosing a particular aspect of the simulation, say a
particular individual, object or interaction, and then following and understanding
it, step by step, using a detailed trace of all the relevant events. Many programming
environments provide tracing tools as an inbuilt feature, but not all social simulation
toolkits have such a feature. In this latter case, the modeller needs to embed the
tracing into the model, with statements that will log the relevant data to a file for
later analysis. This “zooming in” into the detail is often very helpful in developing a
good understanding of what is happening and is well worthwhile, even if you don’t
think you have any bugs in your code. However, in practice, many people seek to
avoid this mundane and slightly time-consuming task.
The second way to gain an understanding is to program a good dynamic
visualisation of what is happening in the model. What exactly is “good” in this
context depends heavily on the nature of the model: it should provide a meaningful
view of the key aspects of the model as the simulation progresses. Many social
simulation toolkits provide a range of visualisation tools to assist this programming,
but the key is identifying the relevant processes and choosing the appropriate
visualisation for them—a task that is not amenable to generic approaches. Thus, you
could have a 2D network display where each node is an individual, where the size,
shape, colour and direction of each node all indicate different aspects of its state,
with connections drawn between nodes to indicate interactions, and so on. A good
visualisation can take a while to design and program, but it can crucially enhance the