Charles M. Macal Michael J. North
Agent-based modeling and simulation (ABMS) is an approach to modeling systems comprised of individual, autonomous, interacting “agents.”
A typical agent-based model has three elements:
Agents, their attributes and behaviors. (features: Autonomy\ Modularity \ Sociality \ Conditionality )
Agent relationships and methods of interaction. An underlying topology of connectedness defines
how and with whom agents interact.
The primary issues of modeling agent interactions are specifying who is, or could be, connected to who, and the dynamics governing the mechanisms of the interactions.
Soup. A nonspatial model in which agents have no locational attribute.
Grid or lattice. Cellular automata represent agent interaction patterns and available local information by a grid or lattice; cells immediately surrounding an agent are its neighborhood
Euclidean space. Agents roam in 2D or 3D spaces.
Geographic Information System (GIS). Agents move over realistic geo-spatial landscapes
Networks. Networks may be static (links pre-specified) or dynamic (links determined endogenously).
Agents’ environment. Agents live in and interact with their environment in addition to other agents.
|Table 2: Questions to Ask Before Developing an Agent-based Model|
|Model Purpose and Value-added of Agent-based Modeling: What specific problem is the model being developed to address? What specific questions should the model answer? What kind of information should the model provide to help make or support a decision? Why might agent-based modeling be a desirable approach? What value-added does agent-based modeling bring to the problem that other modeling approaches cannot bring?|
|All About Agents: What should the agents be in the model? Who are the decision makers in the system? What are the entities that have behaviors? Where might the data come from, especially on agent behaviors, for such a model?|
|Agent Data: What data on agents is simply descriptive (static attributes)? What agent attributes are calculated endogenously by the model and updated for the agents (dynamic attrib utes)? What is the agents’ environment? How do the agents interact with the environment? Is agent mobility through space an important consideration?|
|Agent Behaviors: What agent behaviors are of interest? What decisions do the agents make and what information is required to make such decisions? What behaviors are being acted upon? What actions are being taken by the agents? How would we represent the agent behaviors? By If-Then rules? By adaptive probabilities, such as in rein forcement learning? By regression models or neural networks?|
|Agent Interactions: How do the agents interact with each other? How do the agents interact with the environment? How expansive or focused are agent interactions?|
|Agent Recap: How do we design a set of experiments to explore the importance of uncertain behaviors, data and parameters? How might we validate the model, especially the agent behaviors and the agent interaction mechanisms?|
When the problem has a natural representation as being comprised of agents
When there are decisions and behaviors that can be well-defined
When it is important that agents have behaviors that reflect how individuals actually behave (if known)
When it is important that agents adapt and change their behaviors
When it is important that agents learn and engage in dynamic strategic interactions
When it is important that agents have dynamic relationships with other agents, and agent relationships form, change, and decay
When it is important to model the processes by which agents form organizations, and adaptation and learning are important at the organization level
When it is important that agents have a spatial component to their behaviors and interactions
When the past is no predictor of the future because the processes of growth and change are dynamic
When scaling-up to arbitrary levels is important in terms of the number of agents, agent interactions and agent states
When process structural change needs to be an endogenous result of the model, rather than an input to the model