Page 81 -
P. 81
76 E. Norling et al.
Thus, it is impossible to simply dictate which system is best to use for developing
simulation models of social complexity; indeed, there is no single system that is
best under all circumstances. However, the sorts of questions one should consider
are clearer. They include:
• Clear structure: Is the way the system is structured clear and consistent? Are
there clear analogies that help “navigate” your way through various choices you
need to make? Is it clear how its structures can be combined to achieve more
complex goals?
• Documentation: Is there a good description of the system? Is there a tutorial
to lead you through learning its features? Are there good reference documents
where you can look up individual features? Are there lots of well-documented
examples you can learn from?
• Adaptability: Can the system be adapted to your needs without undue difficulty?
Is the way it is structured helpful to what you want to do? Are the structures
easily adaptable once implemented in your model? Does the system facilitate the
modularisation of your model so that you can change one aspect without having
to change it all?
• Speed: How long does it take to run a model? Speed of execution is particularly
important when a variety of scenarios or parameters need to be explored or when
several runs are necessary per parameter configuration due to random processes
in the model.
• User community: Do many people in your field use the system? Are there active
mailing lists or discussion boards where you can ask for help? If you publish a
model in that system, is it likely that it will be accessible to others?
• Debugging facilities: Does the system provide inbuilt facilities for debugging
and tracing your simulation? If not, are there perhaps generic tools that could be
used for the purpose? Or would you have to debug/trace your model by manually
inserting statements into your code?
• Visualisation facilities: Does the system provide tools and libraries to visualise
and organise your results? Are there dynamic visualisation tools (allowing one to
view the dynamics of the system as it evolves)? How quickly can you develop a
module to visualise the key outputs of a simulation?
• Batch processing facilities: Is there a means of running the model a number of
times, collecting and perhaps collating the results? Is it possible to automatically
explore a range of parameters whilst doing this?
• Data collection facilities: Are the results collected and stored systematically so
that previous runs can easily be retrieved? Is it possible to store them in formats
suitable for input into other packages (e.g. for statistical analysis or network
analysis)?
• Portability: Is the system restricted to a particular platform or does it require
special software to run? Even if all your development will be done on one
particular machine, in the interests of reusability, it is desirable to use a system
that will run on multiple platforms and that is not dependent on specialised
commercial software.