You are here: Home Research Transdisciplinary Concepts & Methods Research Areas Model specification and program development Understanding agent-based models of barter economies through specifications

Understanding agent-based models of barter economies through specifications

In applied mathematics, physics and engineering, computer-based models are traditionally developed and applied to solve well-defined problems.
 
These problems are often expressed through equations. The terms of the problems -- what is given and what is sought -- are usually stated explicitly or they are unambiguously implied by the context. Often, such problems have been extensively studied and theoretical results, e.g., about existence of solutions and their stability, are available. This knowledge provides quality measures for computer-based models: developers, implementors and practitioners have meaningful ways to assess the quality of implementations, compare, improve and extend models without resorting to (often unavailable or poor empirical data.
 
In contrast, agent-based models of socio-economic systems are often developed through *exploratory programming*. They are not designed to solve well-defined problems and are usually subject to weak accountability requirements (with the exception, maybe, of models for financial markets). Often, agent-based models of socio-economic systems are used a workbenches to investigate conjectures and gain insights about the behavior of ``real'' economic systems.
 

For these purposes, exploratory programming is, on the short run, fast, flexible and cheap. However, exploratory programming is error-prone and provides little support for model validation, assessment and inter-comparison. The absence of high-level problem descriptions is a major obstacle to model understanding, communication and sharing: it forces scientists to understand models through time-consuming low-level code reading or through the free interpretation of narrative model descriptions.

In this talk I present examples of agent-based model descriptions at an intermediate level. This level is more abstract than code and more precise than narrative descriptions. It is based on standard mathematical notation and on elements of the functional programming language Haskell. I argue that such a *specification* level effectively supports scientists in understanding and in communicating models. It provides useful guidelines for model implementation and validation and helps making model extension and re-factoring both faster and safer.

Slides