As we hinted above, there are many ways to model society. We start with the simplest approach: modelling a single system as a whole. In this case, we have one unit of analysis - the system. Our focus is on the flow of things within that system and understanding how the flow impacts stocks and how reinforcing and balancing loops take place in that system (Meadows, 2008). To help untangle these, people draw diagrams to identify how a system might evolve. It is useful not only to present the system but to simulate how different stock levels change when the system is run and what the impacts of changing the flows within the system are. This is as critical as it is to model the phenomena. To give these kinds of insights in 1949, MONIAC (or Monetary National Income Analogue Computer) used coloured water to simulate how money flows through the national economy and allowed system-level simulations of the economy. Today, these kinds of simulations are easier to use thanks to computers.
Figure 6.2 illustrates how a system simulation model can be drawn. There are two stacks, A and B. The content in stack A is controlled by the rates of adding A and removing A, indicated by two valves. For example, if one increases the rate of adding A but keeps the rate of removing A at the previous level, stack A would increase. Clouds represent the boundaries of our model. We know A cannot come from a void; it comes from something that could be drawn as a system as well. To avoid further complications, we indicate them as clouds; that is, it is outside the boundaries of our simulation. To highlight the system dynamics, we choose to model the rate of adding A depending on the amount of B in stack B. Thus, if stack B increases, it impacts the rate of adding A as well. Similarly, the rate of adding B depends on stack A. This can become a reinforcing loop: more A will lead to more B, which leads to an increased rate of A as well. The model could be adapted to various contexts, such as understanding why cats rule the internet. In this case, A is the number of images of cats in my news feed, and B is the number of cats owned by people. A depends on B as it is difficult to create content of cats if one does not have a cat. The model also suggests that seeing more cat images in news feeds might motivate people to adopt more cats (B depends on A). Clearly there are many factors missing from the model. It has been simplified a lot - like any simulation needs to be.
We have now worked on a highly abstract model. When developing it, we considered relevant stacks (the number of cat pictures and number of cats). Furthermore, we identified interconnections between the stacks and examined what factors relate to flow rates. We must transform all of these ideas into a computational model to understand the development of the stacks and the outcomes of our simulation activities. When executing the models, we need to determine initial values for the variables in the model. On each step of the model, we would recalculate all variables and stack sizes (see Code Example 6.1 for one step of the model). Based on these, we can plot how stacks evolve in the simulation based on the conditions.
System dynamics have been used in economics and strategic decision-making approaches, such as public policy (Ghaffarzadegan et al., 2010), strategic management at corporations (Cosenz and Noto, 2016) or urban development (e.g. URBAN1 Forrester, 1969). In his early hallmark study, Forrester (1969) examines urban development as a system dynamics simulation. He models three different processes within a city: development of housing, development of businesses and development of labour. Within these developments, there can be several stacks. In the case of businesses, he highlights different forms: new enterprises, mature enterprises and declining industry. Companies move between these stacks. There is a rate of new enterprise creation and development of enterprises to become mature, decline and dissolve. Different stacks are interconnected. In his model, different businesses have different kinds of labour needs. Stacks serve to accumulate these changes and provide summaries. The number of the underemployed at time is calculated through underemployed arrivals, births and departures and transfers from underemployed to labour force and from labour force to underemployed. More formally, underemployed underemployed + arrivals + deaths - departures + transfer (labour underemployed) â transfer (underemployed employed). Some of the rates, such as transfer (underemployed employed), depend on the need for employment in the industry. The book reports its findings via several plots but also through data matrixes that show how different stacks evolve over time. Based on these models, he studies different failures of urban development programmes and approaches to revive urban areas, suggesting that it is not possible to improve the holistic quality of cities for all its residents because of the interconnections between stacks. This moves to suggest various policy changes informed by the modelling activity, such as the kinds of industries a city should favour through taxation.