Agents are self-contained objects within a software model that are capable of autonomously interacting with the environment and with other agents. Basing a model around agents (building an agent-based model) allows the user to build complex models from the bottom up by specifying agent behaviors and the environment within which they operate. This is often a more natural perspective than the system-level perspective required of other modeling paradigms, and it allows greater flexibility to use agents in novel applications. This flexibility makes them ideal as virtual laboratories and testbeds, particularly in the social sciences where direct experimentation may be infeasible or unethical. Agent-based models have been applied successfully in a broad variety of areas, including heuristic search methods, social science models, combat modeling, and supply chains. This tutorial provides an introduction to tools and resources for prospective modelers, and illustrates agent-based model flexibility with a basic war-gaming example.
This tutorial provides background, application context and a how-to-get-started look at the simulation paradigm known as agent-based modeling (ABM). Those with familiarity of the field might note that the term agent-based modeling is not the standard term. Other labels for the paradigm we discuss include agent-based simulation, complex adaptive simulation systems, even object-oriented simulation. For this tutorial we use the agent-based modeling term throughout but discuss some of the rationale for use of the other terms.
We start the tutorial with some definitions of agent-based modeling and provide a view of the background work that has led to the current state of agent-based modeling. This background is not intended to be a definitive history of agent-based modeling, as once again such a history will have many versions based on the background and fundamental simulation beliefs of the writer of the history. Rather, we recount some of the influences we view as key to the development of the current ABM paradigm.
We then move onto recounting some of the applications of ABM. Simulation is a powerful, general purpose analytical tool, more often than not listed as one of two favored tools among analysts (statistical analysis or regression modeling being the other favored tool). The general applicability of simulation, and the performance of modern computers, means simulation can be used in not only the descriptive role for which it is generally intended, but also in a prescriptive role with the addition of simulation-based optimization modules. Again, the application review is not comprehensive but selective, intended to motivate the wide-ranging applicability of ABM.
Finally, we provide some how-to-get-started information. Creating a simulation from scratch is computationally intensive. Adding ABM capabilities add further computational infrastructure. Avoiding the need to create the home-grown computational environment means using one of the many publically available ABM infrastructures. We review some of these infrastructures and focus the getting starting portion of this tutorial on use of the NetLogo environment, one that is extremely popular and quite useful.
An early influence on ABM was non-computational; the early theories focusing on human behavior in complex societal systems. Researchers such as Adam Smith and Donald Hobbs were attempting to understand emergent behavior in systems using individual human behavior as the catalyst for the system behavior (Heath and Hill 2010). If we turn this approach around, and use the model to observe the emergent behavior instead of using the model to explain the behavior we have a key characteristic, and benefit, of ABM.
The introduction of the computer revolutionized how to conduct quantitative analysis. The computer could quickly accomplish calculations that might overwhelm the human operator, plus the computer could do them more accurately. The computer also introduced new models of thought. Von Neumann noted that computers could “break the present stalemate created by the failure of the purely analytical approach to nonlinear problems” (Von Neumann 1966) and thereby give the researchers a means to empirically develop new theories. This insight from 50 years ago captures one of the appeals of ABM; the agent-based modeling can be used as a computational search machine from which one might derive theories of behavior among system entities, theories that can then be tested and proven using conventional methods.
Arguably, cellular automata (CA) are viewed as the computational precursor to the agent-based modeling. An intent of a CA is demonstrate complex behavior and interactions among neighboring entities using simple rules of interaction isolated within each of the simple entities; complexity through simplicity. As discussed in Heath and Hill (2010), an early but very notable CA model was the Game of Life by Conway (as recounted in Langton 1989). The Game of Life is a checkerboard in which the entities (each cell) change color using one of three simple rules based on their interaction with neighboring cells. Despite the simplicity, research soon uncovered that certain starting conditions on the board led to differing patterns of behavior, none of which were programmed into the CA; emergent behavior viewed by Bonabeau (2002) as a crucial aspect of agent-based modeling. An interesting offshoot of this early CA research is research efforts to replicate natural systems based on simple rules. Examples include capturing the flocking behavior of birds, the movements of crowds of people, even the behavior of waves in a body of water.
The CA research reinforced a key concept from complexity and complex systems, sensitivity to initial conditions. Lorenz (as recounted in Gleick 1987) was the first to find the condition using his models of weather. Other complexity concepts include the use of simple rules to mimic complex behavior and the concept of a strange attractor, areas of behavior predictable over the long term despite short-term unpredictability. A limiting aspect of the CA for more general analytic use was the game-board environment of the entities. Naturally, an extension was to free the entities from the game-board and allow their movement and interactions in a wider field of play. This can be seen as the step towards the complex adaptive system (CAS) simulation (CASS).
The field of CAS draws more inspiration from the biological world (North and Macal 2007) than do precursor methods. Within the defined playing field for the simulation, entities are allowed to roam based on some purpose and interact with other entities while having some awareness of the state of the field of play. The entities within these CAS models were dubbed “autonomous agents” due to their propensity to react to the other entities and the environmental conditions without the need for some higher-level guidance within the simulation.