The history of agent-based models started in the 1970ies with singular yet path-breaking examples such as the Segregation model by T. Schelling [Schelling, 1971]. From end of the 80ies on more and more agent-based models were developed and implemented. However, almost no simulation engineering happened. Due to the relation to social sciences, mostly sociologists and psychologists used the paradigm of simulated humans based on rather complex models of human decision making to model hypotheses and theories about societal dynamics. The resulting models were complex but abstract. The role of empirical embeddedness is still discussed in the area of social simulation. Practioneers from more engineering-oriented domains like traffic simulation or researchers from domains with long simulation background like theoretical biology or engineering found the techniques associated with agent-based simulation interesting, yet not mature enoughto actually apply them.
Agent-based simulation definitely is a highly valuable tool, especially when studying complex self-organizing systems in many domains. Thus, the question arises, what shows the maturity of a simulation paradigm and how the achievement of a high level of applicability can be brought forward? The answer is basically that engineering-like development and some form of good practice have to be established. In particular, this leads to the following issues that have to be addressed for fostering the development of agent-based models.
- Deep understanding of the “object”, that means understanding of agent-based models themselvesand what particular feature is useful in what particular context.
- Development of best practice: Establishing knowledge about how to build an agent-basedmodel efficiently and in a way that costs can be a priori estimated.
Until now, none of these items is solved in a satisfying way. However, they are necessarily achieved at least partially for improving the broad applicability of agent-based modeling and simulation. Steps leading to the general aim of this book – fostering the applicability of agent-based simulation – can be derived from these considerations.
A basic prerequisite and therefore first step is collecting specific knowledge about agent-based simulation and the context of its appropriate application. This refers to properties of simulation questions and modeling targets as well as to theoretical and empirical requirements for model design, implementation and usage.
The second step concerns the development of an agent-based simulation. Although the general process model for developing simulation models, presented in every simulation textbook, can also be applied for agent-based simulation, the problem goes deeper than just using an appropriate specification or implementation language. Agent-based simulations are generative. It is not jus tdescribing what was observed, but finding agent behavior and interactions that produce a particular phenomenon. This idea has several consequences ranging from missing micro-macro links over non-linear models and tendencies to full detail to several levels of validation. Thus, developing methods for bridging the gap between macro-level objectives and appropriate micro-level programs in a systematic and reproducible way is the challenge for agent-based simulation engineering.
A third step must consider practical application of the theoretical foundations. Basically,learning how to model for simulation possesses the same characteristics as learning how to program software. One might read about language constructs, but how its actually working is only experience-able by doing it. Therefore, a detailed presentation of simulation models and theirconstruction has to be part of a book about simulation engineering.
Thus, this book sums up experiences in methodological research and application of agent-based simulation, especially in modeling complex and self-organizing systems. This book is a further step towards systematic engineering of agent-based models involving appropriate meta-models, procedures for development, conceptual and technical design and validation of models. It bridges the gap between established techniques related to modeling and simulation and the approaches and requirements for complex agent-based simulation modeling.