Data-parallel structural optimisation in agent-based modelling : a thesis presented in partial fulfilment of the requirements for the degree of Doctor of Philosophy in Computer Science at Massey University, Albany, New Zealand
AGENT-BASED MODELLING (ABM) IS PARTICULARLY SUITABLE for aiding analysis and producing insight
in a range of domains where systems have constituent entities which are autonomous, interactive and
situated. Decentralised control and irregular communication patterns among these make such models
difficult to simulate and even more so to understand. However, the value in this methodology lies in its ability to
formulate systems naturally, not only generating the desired macroscopic phenomena, but doing so in an elegant
manner. With these advantages, ABM has been enjoying widespread and sustained increasing use.
It is then reasonable to seek advances in the field of ABM which would improve productivity, comparability,
and ease of implementation. Much work has been done towards these, notably in terms of design methodology,
reporting, languages and optimisation. Three issues which remain despite these efforts concern the efficient
construction, performance and calibration of agent-based models.
Constructing a model involves selecting agents, their attributes, behaviours, interaction rules, and environment,
but it also demands a certain level of programming ability. This learning curve stymies research effort from
disciplines unrelated to computer science. It is also not clear that one methodology and software package is suitable
for all circumstances. Domain-specific languages (DSLs) make development much simpler for their application
Agent-based model simulation sometimes suffer tremendously from performance issues. Models of situations
such as algal cultivation, international markets and pedestrians in dense urban areas invariably suffer from poor
scaling. This puts large system sizes and temporally distant states out of reach. The advent of scientific programming
on graphical processing units (GPUs) now provides inexpensive high performance, giving hope in this area.
It is also important to calibrate such models. More interestingly, the problem of calibrating model structure
is given particular emphasis. This ambitious task is difficult for a number of reasons, and is investigated with
considerable thought in this work.
In summary, the research shows that appropriate use of data-parallelism by multi-stage programming in a
simple domain-specific language affords high performance, extensibility and ease of use which is capable of
effective automatic model structure optimisation.