What is ABM?

Last updated on 16th July 2024

Introduction to Agent-Based Modelling

Agent-Based Models (ABM) have their intellectual roots in the study of complex adaptive systems and artificial life.

Complex systems are made up of interacting, autonomous components, called agents. The complexity and adaptivity of an ABM, provide the additional capability for agents to adapt at the individual or population levels.

Complex systems research sought to identify universal principles of such systems, such as the basis for self-organization, emergent phenomenon, and the origins of adaptation in nature.

ABMs began largely as the set of ideas, techniques, and tools for implementing computational models of complex adaptive systems.

A typical agent-based model has three elements:

  1. A set of agents, their attributes and behaviours.
  2. A set of agent relationships and methods of interaction: an underlying topology of connectedness defines how and with whom agents interact.
  3. The agents’ environment: agents interact with their environment in addition to other agents.

Structuring an ABM

An ABM developer must identify, model, and program the three previous elements to create an agent-based model.

The Simudyne SDK is the computational engine for simulating agent behaviours and agent interactions that is needed to make the model run.

Running an agent-based model involves agents repeatedly executing their behaviours and interactions through the process of very large-scale Monte Carlo simulation.

A key feature of ABMs is that they often, but not necessarily operate along a linear timeline, as in time-stepped, activity-based, or discrete-event simulation structures.

Autonomous Agents

The single most important defining characteristic of an agent is its ability to act autonomously, without external direction in response to situations that it encounters.

Consequently, agents are endowed with behaviours that allow them to make independent decisions and are typically active, initiating their actions to achieve their individually predefined internal goals, rather than being merely passive by only reactively responding to other agents and their environment.

Agent Interaction

A theory of agent behaviour for the situations or contexts the agent may encounter within the model is required to model agent behaviour.

One option is a normative model in which agents attempt to optimize profits, utility, etc, as a starting point for developing a simpler, more descriptive, but realistic, heuristic model of behaviour.

An alternative option is to begin with a behavioural model, if there is available behavioural theory and empirical data to support the application.

ABMs focus on agent relationships and interactions as much as they do on modelling agent behaviours.

The two primary issues of modelling agent interactions are specifying who is, or could be, connected to who, and the mechanisms of the dynamics of the interactions.

The topology of the ABM describes how agents are connected to each other — e.g. spatial grid or network of nodes and links.

An agent’s neighbourhood is a general concept which defines whatever agent spaces are to be modelled.

Agent Environment

Agents are programmed to interact with their environment and with other agents.

The environment may be simply spatial location of an agent relative to other agents, or it may provide a set of dynamically determined features such as market presence.

An agent’s state, included as a dynamic attribute, is sometimes needed to track agents as they compete with other agents in the system. For example, in a financial ABM, agents might compete for market share, acquisition of resources such as capital or liquidity, or even encounter other situations such as distance to default.

Complex environmental models such as dynamic double-sided auctions can be used to model the agents’ environment in situations such as financial exchanges.

Methods for Agent-Based Modelling

ABM systems tend to be modelled in some combination of Java and C/C++ in order to maximize performance. Building ABMs from scratch takes time. Using a readily available and optimized platform, like the Simudyne SDK massively reduces time to market.

All ABMs must be built with an IDE and need a GUI for ease of development and exposition.

R&D generally happens on a single local machine, but models are then usually scaled into the cloud, with web-based user interfaces being the most popular way to provide an attractive user experience.

Below are the general steps modellers will follow when building an Agent-Based Model:

abm modelling steps