…is a set of techniques or, more exactly, a particular emphasis on certain techniques, within the field of simulating stuff. An agent based simulation designed to approximate the behaviour of some real-world system will tender to eschew partial differential equations or fixed-point methods in favour of, say, breaking down a large system into the component chunks that make it up. If we were looking at a simulation of an economy, an agent-based version might start from the individual humans buys and selling within that economy. Within that simulation we might be interested in working out, say, ‘given what we know about humans and can simulate, what does that tell us about markets’? “Bottom-up” modelling would be a more suggestive name.
The legions of science are busy paving this road. Here are some flagstones.
- Roll your own using Nicky Case’s amazing Emoji protoype.
- Nobel Laureate, Thomas Schelling’s 1969 Racial segregation model based on checkers pieces
- Finite Element Models for simulating the behaviour of materials (e.g. at CSIRO or the National Crash Analysis Centre, these get called agent based models, and although accurate as far as it goes, it smells funny. That’s only one step away from calling all numerical quadrature “agent based modelling”, and then where do our funding applications go?
- As a kind of primordial ancestor, the classic Ising spin glass model
- A hypermodern example - EpiCast simulates the entire population of the USA, or at least, a lot more detail about them for disease control than I would have suspected to be reasonable.
Problems of modelling, and what agent-based ones can help with
The problem (the basic problem of science) runs something like this- our current models of system \(X\) with parameter set \(P\) is good at approximating some of the observed behaviours of reality for some range of parameters \(p \subset P\), and that range can be fairly easy to find. However, our model does not seem to be able to produce observed behaviour \(b\) for any value of parameters. Let’s remove some of the simplifying assumptions in our model of X and make it a more complex model, \(X'\) with more parameters \(P'\), and more diverse behaviours. Now it can possibly produce behaviour \(b\) for some values of of parameters \(p'\subset P'\). But we are no longer assured that we can find the set \(p'\) because of, e.g. loss of nice analytic forms for our model, or because of the curse of dimensionality, and these problems are made worse with every extension of the model.
Typically agent based models come out poorly here because they have vastly more parameters to fit and no more data points to fit them too than anyone else. In macroeconomics, for example, there are a lot more parameters to an economy full of different agents with unique behavioural heuristics and methods of production and technologies etc, than there are when you assume an equilibrium can be reached by some kind of process of aggregating demand and supply functions. Although you can add more parameters to models based on either set of techniques, or devise hybrid models.
These days we have a lot of CPU cycles and a lot of data, at least of some sorts of data, and better fitting algorithms. We can use these to, perhaps, discard some of our simplifying assumptions by producing them as an emergent property of an underlying process, so we have the luxury, perhaps, of keeping agents whose behaviour is harder to simplify, and running the model anyway.
Alternatively, even if we can’t ever hope to fit the model to real data, we can still run models that test out various possible sets of assumptions about behaviour in the hope of getting it at least qualitatively right, and congratulate ourselves that we have not only gotten insight, but preserved ourselves from the danger of mistaking our model of reality for reality itself.
Or we might like to do this because, in some sense, agent-based models are more intuitive, and less abstract, than more mathematical abstractions, and they might give more direct insight into what is happening in a particular situation by letting non-specialists involved participate more directly in devising a model of it. This last option is called companion modelling and it certainly dwells in the dangerous no-man’s-land between science, policy, and community engagement; I for one am terrified of that area. I’d much rather analyse a problem from the outside, be annoyed when no one takes my advice, and glean the same sense of righteousness, with much less time and money spent.
Things to be interested in:
- Agent based models that include realistic constraints of agent attention and search strategies.
- Economic models that include not only innovation, but plausible representations of the size of innovation search space and the costs of exploring it.