Skip to main content
Proceedings of the National Academy of Sciences of the United States of America logoLink to Proceedings of the National Academy of Sciences of the United States of America
. 2002 May 14;99(Suppl 3):7197–7198. doi: 10.1073/pnas.072079499

Platforms and methods for agent-based modeling

Nigel Gilbert *,, Steven Bankes ‡,§
PMCID: PMC128584  PMID: 12011398

Abstract

The range of tools designed to help build agent-based models is briefly reviewed. It is suggested that although progress has been made, there is much further design and development work to be done. Modelers have an important part to play, because the creation of tools and models using those tools proceed in a dialectical relationship.


Agent-based modeling has a symbiotic relationship with computing technology. Modeling of the kind represented in the articles in this issue of PNAS became feasible only with the advent of personal workstations. As the technology has grown in power, the scale and sophistication of the software available for modelers has increased. And as more complex algorithms, toolkits, and libraries have been developed, more sophisticated models have become feasible for scholars working on their own or in small teams.

The development of computational tools to support modeling can be seen in the papers presented at a session on “Platforms and Methodologies for Enhancing the Social Sciences through Agent-Based Simulation,” held as part of the National Academy of Sciences Sackler Colloquium in October 2001. The history follows in some ways the trajectory previously traced by statistical software. The earliest models were developed on mainframe computers or even, according to a probably apocryphal story, simulated by moving dinner plates around on a black and white tiled kitchen floor (1). From the early 1990s, most models have been developed in conventional programming languages such as C++, java, and smalltalk. There has been little consensus about the best general purpose programming language to use; a quick survey of the articles published in the Journal of Artificial Societies and Social Simulation (http://www.soc.surrey.ac.uk/JASSS/) in 1998 and 1999 showed that not one language was used by more than one of the 18 papers that described a computational model. Those that were used included turbopascal, sqpc, C++, soar, z, dynamo, and java.

The disadvantages of using a general-purpose language are easy to see: every modeler has to reimplement basic algorithms, graphics libraries are often ill suited to dynamic modeling, and the resulting code is easily accessible only to those familiar with the language and the compiler needed to run it. Exactly the same situation occurred in the development of statistical software, although to a less extreme extent, because fortran was then very widely used for writing analysis programs. Statisticians used to publish their programs verbatim in the appendixes of textbooks (compare the code in ref. 2).

The next step in the history of statistical analysis was the distribution of libraries of routines that could be included in one's own purpose-build program. In place of writing (and validating) one's own regression routine, for example, one could include a standard library procedure to do the job. A similar development is occurring in agent-based modeling, with several standardized libraries emerging. One is represented in this collection by the paper by Cederman (3), describing his work using the repast system. repast (http://repast.sourceforge.net/) is a set of java libraries that allows programmers to build simulation environments (e.g., regular lattices), create agents in social networks, collect data from simulations automatically, and build user interfaces easily. Its features and design owe a lot to swarm (http://www.swarm.org/), one of the first agent-based modeling libraries. Another similar library is ascape (http://www.brook.edu/es/dynamics/models/ascape/) (4), described in Inchiosa's paper (5). ascape is derived from the programs developed for Epstein and Axtell's Growing Artificial Societies (6), generalized to allow a wider range of models and refined to provide more powerful features.

These libraries have great advantages over “rolling your own,” but also have some limitations. They require you to have a good working knowledge of the programming language that they are aimed at: in the case of ascape and repast, that is java. Although some models are much easier to program, especially ones that are similar to those that the developers themselves build, the construction of models using other approaches can be hindered by the need to find ways of working around the built-in assumptions. For example, both ascape and repast are excellent for simulations involving agents located on a rectilinear grid. They are less useful for simulations that have no spatial aspects or for models that require a geographical information system to simulate an actual terrain.

The breakthrough in statistical computing was the development of “packages,” that is, collections of routines assembled with a common standardized user interface, of which spss and sas are the best-known early examples. There is nothing with the scale or sophistication of these statistical packages yet available for building agent-based models. What does exist are packages that will allow the building of very simple models using direct manipulation or “visual programming” meant mainly for students' and even schoolchildren's use, and some systems written in smalltalk that provide “total immersion” in an environment in which building blocks can be assembled. The best-known examples of the former are starlogo (http://www.media.mit.edu/starlogo/) and agentsheets (http://agentsheets.com/) (7, 8). However, to ensure that they are sufficiently straight-forward for the target audience, some sacrifices in functionality have had to be made. For example, it is hard in agentsheets for one agent to interact directly with another agent (agents are not individually identified). It is very difficult in either system to develop agents possessing even simple cognitive models, and it would be impossible to create models using any kind of evolutionary approach (e.g., a genetic algorithm). In Europe, several systems based on smalltalk have been developed, including sdml (http://www.cpm.mmu.ac.uk/sdml/), cormas (http://cormas.cirad.fr/indexeng.htm) and desire (http://www.cs.vu.nl/vakgroepen/ai/projects/desire/). These are much more complex and powerful than starlogo and agentsheets and take correspondingly longer to learn. Unlike the java libraries such as ascape and repast, they do not demand that users are fluent in the underlying programming language, in their case smalltalk, but they do require users to learn a complex interface that can be as difficult to master as a full programming language.

All of the existing tools are designed primarily to assist the builders of models. The facilities for other phases of a model's life cycle, model evaluation, model maintenance, and many types of model use are rather limited at this time. The primary supports for model use are visualizations of model state (especially the ubiquitous displays of two-dimensional grids of agent positions) and modest facilities for collecting statistics in a single run. Tool developers have not yet confronted issues of comparing multiple model runs, loading or calibrating models from data, automatically generating large numbers of cases from experimental designs, or collecting and statistically analyzing the results of large numbers of experiments. As the field of agent-based modeling moves from initial development and demonstration to regular use in social science, improved facilities for these other aspects of modeling will be needed (see the paper by S.B., ref. 9).

The ideal is a system that requires a minimum of learning, is completely flexible in the models that it will support, and runs efficiently on any hardware. As Axtell (10) points out in his contribution, efficiency may not at first seem to be important, given the strides made in computer hardware, but the ambitions of modelers are constantly rising, and there are problems for which the behavior of one million agents is significantly different from that of 100. The ideal is, of course, unobtainable, but more important, it is not even possible at the moment to imagine what it would look like. First, for a useful simulation platform to emerge, there needs to be some consensus about what kinds of model are best for social and economic simulation. That requires a great deal of hard work to advance the state of simulation within the modeling community itself. Designers of platforms can help sediment approaches and ideas, but the development of simulation platforms will always be too scientifically important to leave to the developers themselves.

This paper results from the Arthur M. Sackler Colloquium of the National Academy of Sciences, “Adaptive Agents, Intelligence, and Emergent Human Organization: Capturing Complexity through Agent-Based Modeling,” held October 4–6, 2001, at the Arnold and Mabel Beckman Center of the National Academies of Science and Engineering in Irvine, CA.

References


Articles from Proceedings of the National Academy of Sciences of the United States of America are provided here courtesy of National Academy of Sciences

RESOURCES