Today we're going to explore the relationship of agent based modelling to other methods that you might use to explore complex systems. I'm going to start by talking about ABM versus equation-based modelling (EBM), which is a phrase that's been around for a while to describe a set of techniques such as analytical or game-theoretic modelling in which you write first principle equations and then you see where those might take you. These are often compared because agent based modelling in many ways starts a lot with some of the same first principles but then goes in a different direction, rather than looking for a closed form solution it tries to come up with computational solutions to the problem at hand. So why might you use agent based modelling instead of equation based modelling? Many equation based models make the assumption of homogeneity - in fact they have to in order to generate the closed form solutions that they're famous for. So in many cases you have a system that's dramatically affected by heterogeneity and so using something like agent based modelling when it's not possible to generate a closed form solution for a heterogeneous system, might be a good way to approach the problem. Also, a lot of equation based models are continuous and not discrete. This leads to something called the nano- wolf problem. The idea is that if you are modelling something that is essentially a discrete entity, like a wolf for instance, then if I have an equation based model that allows the wolf population to drop to one-tenth of a wolf, or one millionth of a wolf, theoretically, under a lot of equation based models, it could still rebound and come back from that low level. In reality, once the last wolf, or more importantly, the last mating pair of wolves die there's no way for the population to rebound at that point. Which means that using a discrete solution often provides you with a better answer. Now it's not the case that all equation based models are continuous but it's just one of the reasons why ABM provides you with a more natural ontology to that space. Many equation based models are written at the aggregate level rather than the individual level which requires you have knowledge of the overall patterns of behaviour of the system rather than the individual entities within the system. It's often easier to get individual level descriptions rather than aggregate descriptions and so as a result ABM often works better in those contexts. Related is the fact that the ontology of an EBM is often at that same global level whereas the ontology of an ABM is at the individual level making it easier to communicate the ABM to someone else since you're describing individual behaviours. Also, most EBMs will not provide you with detail about what a particular individual does within the model. ABMs allow you that drill-down detail, which means in many cases you can go back and figure out exactly how important an individual is to the complex system. You can relate all those notions to the fact that EBMs are kind of 'top down' - starting with these big entities and then modelling down lower and lower systems whereas ABMs start with the premise of understanding the local system and then model upwards. That being said, EBM does have several advantages over ABM. One of them is that they're usually more generalisable for the set of assumptions that are assumed about the model. On the other hand, those assumptions are usually restrictive for all the reasons we've previously mentioned and so therefore it's difficult to use them in a lot of real-world situations. In fact, we would argue that ABM should be viewed as a complement to EBM, in fact you can build ABMs that are essentially instantiations of game-theoretic models and then explore the ramifications beyond the closed-form solutions that are very often obtained using EBMs. Of course, EBM is not the only approach, you can also do statistical modelling which in many ways also uses equations but it's done in a different way. Here, the idea is that we take aggregate patterns of behaviour about the world and then infer a model relating the entities of those aggregate patterns together so you do a regression or something like that. And many times when you have a statistical model it's very hard to link it to first principles or behavioural theory that describe the way the agents take action in that system. And you need to have the right data to do statistical modelling. ABM can complement statistical modelling by building from first principles to generate statistical data which you can then compare with statistical data obtained from the real world. Another approach you might want to use is to conduct a series of lab experiments such as behavioural economics experiments. Lab experiments are often very useful because they can actually generate theory, you can set up a condition and then really see whether a particular theory seems to hold up within that space. However lab experiments are often not as powerful as they could be because they're rarely scaled up to large conditions like we see in the real world. Instead, you're looking at maybe six or seven individuals and how they interact, or how they make decisions. Agent based models can be created from lab experiments you essentially can use the rules that you've inferred from the lab experiments to construct your agent based model. As a result you can explore what would happen if everyone acted the way my lab experiment says people interact. And then you can use that to generate new hypotheses about things you might see in the world that you don't actually see in the lab, construct a new lab experiment, and see if you can uncover any evidence for those new hypotheses. You can also try to manipulate parameters of the model beyond what the lab experiments will allow. A lot of times you can't impose, say, a hundred different conditions on a lab individual, because of the fact that they won't stand for that many tasks. Agent based models don't care how many conditions you impose on them. So if you can create the behavioural pattern of a lab experiment you can then run it through as many different instantiations as you need to. Agent based modelling can compare generative principles drawn from lab experiments, so say we have two lab experiments that provide you with different evidence about the way the world works. You can generate an agent based model from each of them and see which one matches up better with the real world. Finally, there are a lot of aggregate computer modelling and simulation approaches that you might use instead of agent based modelling. For instance, system dynamics modelling is an approach which embraces a system level approach to the entire world using stocks and flows to talk about the way different parts of the world affect each other. The problem is that most of these approaches lack the individual level representation and in fact one of the best things you can possibly do would be maybe combine some of these system level approaches with the individual level approach of agent based modelling.