Agent-Based Modeling

What is ABM?

An Agent-Based Model (ABM) is a construction of how entities (agents) act in an imagined environment. Typically used as aides when modeling difficult or complex real-world systems, ABMs allow environments to be synthesized in digital form, with differing scenarios run within them, in order to observe how the behavior of agents changes under varying conditions, and itself can impact the broader system. This coevolution, and modeling of interdependencies, can be hard to capture via other means. ABMs are often used in support of probabilistic modeling efforts.

Agents in ABMs do not necessarily have ‘agency’ in the traditional sense of the word, but should be thought of as component parts of a wider system capable of impacting it and/or being affected by it. Varying any the the number, type, or properties/behaviors of agents can have a ripple effect on the system as a whole. Experiments within ABMs seek to tweak these variables to explore how different scenarios unfold, and what end-states are likely to result.

Agent-based modeling is an inherently “first-principles” way to explore system dynamics. ABMs require their creators to think about the constituent parts of systems, and how they interact with one another. For consumers of these models, microscopic parts of systems can be individually zoomed-in on, and their effect on the wider system as a whole (macro outcomes) observed in detail.

ABMs consequently have the potential to be highly-explainable in a way that many forms of AI or modeling are not. And whilst most ABM platforms limit you to seeing only the last-computed step, or end-state of a model, HASH saves all states of a simulation to allow for retrospective analysis and exploration. This makes witnessing emergent phenomena and understanding complex systems a breeze.

What are the core components of an ABM?

An agent-based model consists of 4 core components:

  1. Agents: entities in the model that can interact with one another as well as their informations, and pass information between each other. Agents might represent animals, individuals, households, organisations, or even entire countries.
  2. Properties: agents have properties. A property might be memory; a state, characteristic, or attribute, such as hunger, speed, or health. Properties are discrete, and can be binary (yes/no), numerical (e.g. on a 1–100 scale), or contain any other fixed value (e.g. a tag, name, or other label).
  3. Environment: the virtual world in which agents act and interact. An environment is any context in which agents are situated — it could be 2D, 3D, spatial or not — a neutral medium with no effect on agents whatsoever, or a prime determinant of their ability to act. Environments can be abstract and imagined, or digital twins and replications of real-world buildings or cities.
  4. Rules: rules are the logic that govern what happens when agents interact (or come into contact) with each other, or their environments. They may also govern how learning and adaptation occur within an environment. These rules may be pre-programmed, or automatically inferred/evolved in ABM platforms like HASH.

The complexity of a model may be constrained by either:

  • Resources: the tools, time and manpower available to build in all known rules, information, agents, and their properties; or
  • Understanding: the limits of our certainty and knowledge about the rules that govern a system, or the agents that make it up.

When would you use an agent-based model?

Agent-based models allow for heterogeneity within agents to be modeled, and individual preferences — as well as their emergent effects within larger systems — to be captured and explored. This is frequently critical in economic, biological, and behavioral models, amongst others. Without such the detail enabled by agent-based modeling, simulation results can grossly overlook long-tail edge-cases and black swans, defeating the purpose of utilizing simulation in the first place, and providing decision-makers with an unfounded degree of confidence in their decisions. This is one of the prime reasons dynamical systems, or “system dynamics” models are falling out of favor.

When shouldn’t you use an agent-based model?

With HASH, modeling systems in an agent-based fashion can be just as easy as using more traditional system dynamics or differential equation models. In the past, however, if modeling simple systems consisting of largely homogenous entities, something like an ABM may have been overkill, and imposed unnecessary computational complexity and cost.

Quick Jump
What is ABM?
What are the core components of an ABM?
When would you use an agent-based model?
When shouldn’t you use an agent-based model?