This is part 64 of a series of articles featuring the book Beyond Connecting the Dots, Modeling for Meaningful Results.
The modeling techniques we have taught up until this point focused on gaining insights using highly aggregated models of a system. This means that when we looked at models of population growth, we focused on understanding the population as a whole rather than exploring individual people. This high-level aggregate approach to modeling helps us cut through unnecessary details to understand the core dynamics of a system.
For certain models however, this high-level view may hamstring our ability to explore important questions. For instance, in a disease model we may care about the physical relationships among people in the model. Are they near each other? How often do they come into contact? Can we attempt to control the disease by manipulating how people move about and relate to each other? These are all questions that are very hard to answer with a standard System Dynamics model.
Heterogeneity, differences between individuals, is difficult to represent using System Dynamics models. One approach is simply to duplicate the model structure for each different class of person or entity in the model. We recall seeing one model that explored education in the United States. The modelers wanted to explore the differences between male and female students. To do so, they simply copied and pasted the entire model structure (consisting of dozens of stocks and flows) and calibrated one of these copies for male students and the other copy for female students.
Granted, this approach can be made to work, but it requires a lot of effort to set up and configure, even in the simple two-gender case. When you have more than two cases it can quickly become completely unmanageable. Furthermore, duplicating parts of your model can lead to unmaintainable models afflicted by hard to track down bugs. Why? When you later make changes to your model, you will have to ensure the changes are made correctly to each one of the model copies. Although simple in principle, in practice this is very easy to mess up and it is a direct route for bugs to be introduced into the model.
Fortunately, there is an alternative modeling paradigm to System Dynamics and it is excellent for modeling discrete individuals. It is called Agent Based Modeling and is focused on simulating individual agents and the interactions between these agents1 In this section we will introduce Agent Based Modeling and show how you can use it to explore questions that cannot be answered with pure System Dynamics.
|Discuss the challenges you might face using System Dynamics to model the adoption of a new product such as an improved mousetrap. Identify issues that could be addressed by modeling discrete consumers.|
Next edition: Modeling With Agents: The State Transition Diagram.
- System Dynamics also has another standard tool for dealing with heterogeneity. This tool is called “vectors”, “arrays”, “subscripting”, or “indexing” and allows you to transparently create multiple copies of your model during simulation to match different classes. Arrays are not as flexible as fully Agent Based Models though. Consider a continuum with fully aggregate System Dynamics models on one end and fully individualized Agent Based Models on the other. Arrays exist along this continuum. ↩