Proceedings of the 2009 Winter Simulation Conference
M. D. Rossetti, R. R. Hill, B. Johansson, A. Dunkin and R. G. Ingalls, eds.
AGENT-BASED MODELING AND SIMULATION
Charles M. Macal
Michael J. North
Center for Complex Adaptive Systems Simulation
Decision & Information
Argonne National Laboratory
Argonne, IL 60439 USA
Center for Complex Adaptive Systems Simulation (CAS2)
Decision & Information Sciences Division
Argonne National Laboratory
Argonne, IL 60439 USA
Agent-based modeling and simulation (ABMS) is a new approach to modeling systems comprised of autonomous, interacting
agents. Computational advances have made possible a growing number of agent-based models across a variety of application
domains. Applications range from modeling agent behavior in the stock market, supply chains, and consumer markets, to
predicting the spread of epidemics, mitigating the threat of bio-warfare, and understanding the factors that may be responsible
for the fall of ancient civilizations. Such progress suggests the potential of ABMS to have far-reaching effects on the way that
businesses use computers to support decision-making and researchers use agent-based models as electronic laboratories.
Some contend that ABMS “is a third way of doing science” and could augment traditional deductive and inductive reasoning
as discovery methods. This brief tutorial introduces agent-based modeling by describing the foundations of ABMS, discussing some illustrative applications, and addressing toolkits and methods for developing agent-based models.
Agent-based modeling and simulation (ABMS) is a new modeling approach that has gained increasing attention over the past
10 years. This growth trend is evidenced by the increasing numbers of articles appearing in modeling and applications journals, the number of funded programs that call for agent-based models that incorporate elements of human and social behavior, the growing number of conferences on or that have tracks dedicated to agent-based modeling, the demand for ABMS
courses and instructional programs, and the number of presentations at conferences such as the WSC that reference agentbased modeling. Some contend that ABMS “is a third way of doing science” and could augment traditional deductive and inductive reasoning as discovery methods (Axelrod 1997). This tutorial provides a necessarily brief introduction to agent-based
modeling and simulation. The goals are to show that ABMS is:
Useful: Why ABMS is an appropriate modeling approach for a large class of problems and has advantages over
conventional modeling approaches in many cases,
Usable: How ABMS is advancing to the point of producing portable, extensible, and transferable software, with better integrated development environments and more examples of good applications, and
Used: How ABMS is being used to solve practical problems.
This tutorial is organized into two parts. The first part (Section 2-3) is a tutorial on how to think about ABMS. The background on ABMS and its motivating principles are described along with some exemplary applications. The second part (beginning with Section 4) is a tutorial on how to do ABMS. It addresses modeling approaches and toolkits for developing
978-1-4244-5771-7/09/$26.00 ©2009 IEEE
Macal and North
HOW TO THINK ABOUT ABMS
The Need for Agent Based Modeling
Why is agent-based modeling becoming widespread? The answer is because we live in an increasingly complex world. First,
the systems that we need to analyze and model are becoming more complex in terms of their interdependencies. Conventional modeling tools may not be as applicable as they once were. An example application area is the deregulation of the formerly
centralized electric power industry in which agents are suddenly free to make pricing and investment choices based on their
individual criteria. Second, some systems have always been too complex for us to adequately model. Modeling economic
markets has traditionally relied on the notions of perfect markets, homogeneous agents, and long-run equilibrium because
these assumptions made the problems analytically and computationally tractable. We are beginning to be able to relax some
of these assumptions and take a more realistic view of these economic systems through ABMS. Third, data are being collected and organized into databases at finer levels of granularity. Micro-data can now support individual-based simulations.
And fourth, but most importantly, computational power is advancing rapidly. We can now compute large-scale microsimulation models that would not have been plausible just a few years ago.
What Is an Agent
There is no universal agreement on the precise definition of the term “agent” in the context of ABMS. It is the subject of
much discussion and occasional debate. The issue is more than an academic one, as it often surfaces when one makes a claim
that their model is “agent-based” or when one is trying to discern whether such claims made by others have validity. There
are important implications of the term “agent-based” when used to describe a model in terms of the model’s capabilities or
potential capabilities that could be attained through relatively minor modification. A formal definition of “agent” is beyond
the scope of this paper; in the literature informal descriptions of “agent” tend to agree on more points than they disagree.
Unlike particle systems (idealized gas particles for example) which are the subject of the field of physical systems simulation, agents as used are are diverse, heterogeneous, and dynamic in their attributes and behavioral rules, as shown in Figure
1. Some modelers consider any type of independent component whether it be software or a model to be an agent (Bonabeau
2001). An independent component’s behavior can range from simple in nature, e.g., described by simple if-then rules, to the
complex, e.g., described by complex behavioral models from the fields of cognitive science or artificial intelligence. Some
authors insist that a component’s behavior must also be adaptive in order for it to be considered an agent. In this view, the
agent label is reserved for components that can learn from their environment and dynamically change their behaviors in response to their experiences. Casti (1997) argues that agents should contain both base-level rules for behavior as well as a
higher-level set of “rules to change the rules.” The base-level rules provide responses to the environment, while the “rules to
change the rules” provide adaptation. Jennings (2000) provides a computer science view of “agent” that emphasizes the essential characteristic of autonomous behavior. This requires agents to be active responders and planners rather than purely
For practical modeling purposes, we consider agents to have certain properties and attributes:
An agent is autonomous and self-directed. An agent can function independently in its environment and in its interactions with other agents, generally from a limited range of situations that are of interest. We refer to an agent’s behavior as the representation of a process that links the agent’s sensing of its environment to its decisions and actions.
• Agents are modular or self-contained. An agent is an identifiable, discrete individual with a set of characteristics or
attributes, behaviors, and decision-making capability. The discreteness requirement implies that an agent has a
boundary in a sense and one can easily determine whether something (that is, an element of the model’s state) is part
of an agent, is not part of an agent, or is a characteristic shared among agents.
• An agent is social, interacting with other agents. Agents have protocols or mechanisms that describe how they interact with other agents, just as an agent has behaviors. Common agent interaction protocols include contention for
space and collision avoidance; agent recognition; communication and information exchange; influence; and other
domain-or application-specific mechanisms.
Agents often have additional properties, which may or may not be considered as defining properties or necessary for agency.
An agent may live in an environment. Agents interact with their environment as well as with other agents. An agent
is situated, in the sense that its behavior is situationally dependent, which means that its behavior is based on the
current state of its interactions with other agents and with the environment.
Macal and North
An agent may have explicit goals that drive its behavior. The goals are not necessarily objectives to maximize as
much as criteria against which to assess the effectiveness of its decision and actions. This allows an agent to continuously compare the outcomes of its behaviors to its goals and gives it a benchmark for possibly modifying it behavior.
An agent may have the ability to learn and adapt its behaviors based on its experiences. Individual learning and
adaptation requires an agent to have memory, usually in the form of a dynamic agent attribute. (We contrast individual adaptation with population adaptation. In population adaptation, the proportion of individuals within the population with certain attributes that better suit them to their environment increases over time. The individuals do not
necessarily change their behavior or adapt.)
Agents often have resource attributes that indicate its current stock of one or more resources, e.g., energy, wealth,
Figure 1: A typical agent
An agent’s behavioral rules can vary in their sophistication, how much information is considered in the agent’s decision
(this is referred to as cognitive load), the agent’s internal models of the external world including the possible reactions or behaviors of other agents, and the extent of its memory of past events that an agent retains and uses in its decisions. Often, the
agents in a model will lack adaptation because it is not to achieve the model’s intended purpose. For example, in a supply
chain model it may not be necessary to model agent adaptation if the model’s purpose is to evaluate a set of specific inventory management rules.
Agent-based Modeling and Simulation
Agent-based modeling is known by many names. ABM (agent-based modeling), ABS (agent-based systems or simulation),
and IBM (individual-based modeling) are all widely-used acronyms, but “ABMS” will be used throughout this discussion.
The term “agent” has connotations in realms other than agent-based modeling as well. ABMS agents are different from the
agents typically found in mobile agent systems. “Mobile agents” are light-weight software proxies that roam over the worldwide web and perform various functions for users and to some extent can behave autonomously.
Another point of clarification concerns the term “simulation.” Agent-based simulation refers to a model in which the dynamic processes of agent interaction are simulated repeatedly over time, as in systems dynamics, time-stepped, discreteevent, and other types of simulation. An agent-based model, more generally, is a model in which agents repeatedly interact.
For example, when agents optimize their collective behavior through simple exchanges of information as is done in ant colony optimization or in particle swarm optimization, the purpose is to achieve a desired end-state, i.e., the optimized system,
rather than to simulate a dynamic process for its own sake.
Background on ABMS
ABMS has connections to many other fields including complexity science, systems science, systems dynamics, computer
science, management science, several branches of the social sciences, and conventional modeling and simulation. ABMS
Macal and North
draws on these fields for its theoretical foundations, its conceptual world view and philosophy, and for applicable modeling
techniques. ABMS is related to the fields of multi-agent systems (MAS) and robotics from the field of artificial intelligence
(AI), as well as Artificial Life (ALife). But ABMS is not only tied to understanding and designing “artificial” agents. Its most
common use is in modeling human social and organizational behavior and individual decision-making (Bonabeau 2001).
With this, comes the need to represent behaviors, social interaction, collaboration, group behavior, and its possible emergence.
ABMS has its direct historical roots in complex adaptive systems (CAS) and the underlying notion that “systems are built
from the ground-up. CAS concerns itself with the question of how complex behaviors arise in nature among myopic, autonomous agents. In addition, ABMS tends to be descriptive, with the intent of modeling the actual or plausible behavior of individuals, rather than normative such as traditional operations research (OR), which seeks to optimize and identify optimal
The field of CAS was originally motivated by investigations into adaptation and emergence of biological systems. CAS
have the ability to self-organize and dynamically reorganize their components in ways better suited to survive and excel in
their environments, and this adaptive ability occurs, remarkably, over an enormous range of scales. John Holland, a pioneer
in the field, identifies properties and mechanisms common to all CAS (Holland 1995) such as (1) Aggregation: allows groups
to form, (2) Nonlinearity: invalidates simple extrapolation, (3) Flows: allow the transfer and transformation of resources and
information, and (4) Diversity: allows agents to behave differently from one another and often leads to the system property of
robustness. CAS mechanisms are: (1) Tagging: allows agents to be named and recognized, (2) Internal models: allows agents
to reason about their worlds, and (3) Building blocks: allows components and whole systems to be composed of many levels
of simpler components. These CAS properties and mechanisms provide a useful reference for designing agent-based models.
Essentially, one models a complex adaptive system by developing an agent-based model.
Social agent-based modeling, modeling social processes starting at the individual level, has been around since at least
1970’s with Sakoda’s publication of the checkerboard model of social interaction (Sakoda 1971). This model was essentially
a cellular automata model (cellular automata are discussed in Section 4.2). More recently, Epstein and Axtell (1996) introduced the idea of artificial societies in their SugarScape model. SugarScape uses agent-based modeling to represent an entire
society “from the ground up” by modeling its individuals and their interactions. Epstein and Axtell showed how an extensive
number of social processes could be credibly modeled including life, death, disease, war, reproduction, and wealth. This seminal work and it continues to offer a blueprint for many agent-based models of social processes.
ABMS Demonstrations on Order Creation
2.5.1 Demonstration: Life
We begin with a simple “game” developed by the mathematician John Conway, called Life (Gardner 1970). Life is based on
cellular automata (CA). Perhaps the simplest way to illustrate the basic ideas of agent-based modeling and simulation is
through CA. According to Casti (1997), the original notion of CA was developed by the physicist Stanislaw Ulam in response to a question posed by the famous 20th century mathematician John von Neumann. The question was, “could a machine be programmed to make a copy of itself?” In effect, the question had to do with whether it was possible to develop a
logical structure that was complex enough to completely contain all of the instructions for replication. Von Neumann answered his own question by developing the abstract mathematical representation of a machine in the form of a cellular automata.
A typical CA is a two-dimensional grid or lattice partitioned into cells. Each cell assumes one of a finite number of states
at any point in time. A set of simple rules determines the value of each cell based on the cell’s previous state. Every cell is
updated each period according to the rules, as in a time-stepped simulation. The value of a cell in the next period depends on
the cell’s current value and the values of its immediate neighbors in the eight surrounding cells (assuming a “9-cell” Moore
neighborhood). Each cell is identical in terms of its update rules.
A CA is deterministic in that the same state for a cell and its neighbors always results in the same updated state. Life has
three rules that determine the next state (either On or Off) of each cell:
Rule 1: The cell will be On in the next generation if exactly three of its eight neighboring cells are currently On.
Rule 2: The cell will retain its current state if exactly two of its neighbors are On.
Rule 3: The cell will be Off otherwise.
Macal and North
Interpreting Life as an agent-based model, we can consider each cell to be an agent. The cell update rules represent an
agent’s “behavior.” The states of a cell (On or Off) are the possible agent states. The states of all the agents taken together at
a specific time in the simulation is the state of the model (system). The environment in Life is the grid upon which the agents
live. The function of the environment is minimal in Life. It merely serves as a reference point for determining an agent’s
neighborhood, which consists of the cells immediately adjacent to it.
Figure 2 shows snapshots from a Life simulation. Figure 2a shows an initial random distribution of On cells. The initial
random distribution of On cells is the only stochastic element of Life. After several updates of all cells in the grid in which
the update rules are applied to every cell, distinctive patterns emerge, and in some cases these patterns can sustain themselves
indefinitely throughout the simulation (Figure 2b). The nine-cell neighborhood assumption built into Life determines the
scope of agent interaction and the locally available information for each cell to update its state.
Figure 2: Life simulation: (a) initial random layout of cells in the On state, (b) after all cells updated 30 times
Several observations are important about Life: the rules are simple and the rules use only local information. By local information we mean that the state of each cell is based only on the current state of the cell and the cells touching it in its immediate neighborhood. Repeated simulations of Life also reveal that the resulting patterns are very sensitive to the initial
conditions. Each initial distribution of On cells results in an entirely different pattern of On and Off cells in the long-run.
Even changing single cells in the initial distribution of On cells results in vastly different Life outcomes.
These are interesting findings, and observing the patterns created by repeated simulations of Life reveals a world of virtually endless creations. Yet the point is that we have a simple system comprised of simple rules that begins in a random state
and that yields patterns, order or structure as the case may be. The patterns can be said to “emerge.” Another example, the
Boids Model, yields similar emergent behavior.
2.5.2 Demonstration: Boids
The Boids simulation is a good example of how interacting agents, characterized by simple behavioral rules, lead to emergent
and seemingly organized behavior (Reynolds 2006). Agent behavior is reminiscent of schooling or flocking behavior in fish
or birds. In the Boids model, each agent has three rules governing its movement:
Rule 1: Cohesion: each agent steers toward the average position of its nearby “flockmates”
Rule 2: Separation: each agent steers to avoid crowding local flockmates
Rule 3: Alignment: each agent steers towards the average heading of local flockmates
Purchase answer to see full