Building Your First Agent-Based Model
The design decisions that determine whether an agent-based model teaches you something or just produces motion on a screen.
Read →An agent-based model is a computational experiment: you specify how individuals behave and interact, run the system forward, and study the patterns that appear at the aggregate level without having written them into the code.
The appeal of agent-based modelling (ABM) is that it lets you state your assumptions at the level where you actually have knowledge. You may have no idea what the aggregate demand curve for a neighbourhood looks like, but you may know how households decide whether to move, whom they talk to, and what they can afford. ABM turns micro-level rules into macro-level consequences, and the gap between the two is where the interesting results live.
Schelling's segregation model remains the clearest teaching example, and it is worth stating precisely because it is so often misdescribed. Agents live on a grid. Each has a mild preference: it wants at least some fraction of its neighbours to be like itself. Nobody wants segregation. Run the model and you get segregation anyway, sharply, from preferences that would be considered tolerant by any reasonable standard. The macro pattern is not in the micro rule. That gap is the whole subject.
Prediction of specific quantities at specific dates. Any model flexible enough to represent adaptive heterogeneous agents is flexible enough to fit almost anything, which is exactly why validation and calibration is the part of the workflow that separates useful models from expensive animations. Start with how a model is actually put together, then look at the software landscape.
The design decisions that determine whether an agent-based model teaches you something or just produces motion on a screen.
Read →A model flexible enough to represent adaptive heterogeneous agents is flexible enough to fit anything. What separates a validated model from a fitted one.
Read →The frameworks people actually use, what each is good for, and when writing it yourself is the right answer.
Read →