Architects have long used computation in order to facilitate the design process, visualize ideas and manage large contents of information involved in the creative and construction industries. For planners, however, modeling is often restricted to some use of GIS (Geographic Information System) or the rare Sketchup (Google’s platform to create 3D simulations) simply for the sake of representation, not for empirical studies or observation. The modeling and computational applications to empirical research have emerged in the 90s but remain a widely unknown field by most scholars, especially in the Social Sciences, which include Urban and Regional Planning. That is puzzling since when studying the city and human behavior, empirical and observational research that has statistical value is often incredibly time consuming and costly. It is unreasonable for researchers to simply make people behave a certain way or impose land regulations to evaluate how they affect the population, for instance. The high cost of such experiments justify the use of computation to analyze existing urban patterns in order to predict growth, movement, demand for infrastructure and so on.
So far, modeling has been very popular in land use transportation models, in which researchers hope tu understand how people move through the territory according to available transportation and what developments (housing, office, commerce..) are nearby. This can also be used for policy analysis: for instance, when modifying zoning, and thus a certain rate of occupation, how does that affect the demand for infrastructure (water, trash collection, traffic) and subsequently an increase in taxes? A change in zoning is a phenomena which has a direct effect on how people occupy space – not easy to be observed. Agent Based Modeling presents an interface to read such social processes and is a very flexible way of formalizing the understanding on a subject and explore it. For researchers, the goal when using such technology is to refine the understanding of theory and think about the diverse aspects of your assumptions. If forces one to think about how all the elements of the research design fit together. It is agent oriented, and allows the programmer to give commands to “people” and test how they would behave.
Since good empirical data on social processes is rarely collected, a computational experiment allows us to (1) observe, (2) make assumptions and (3) investigate whether those assumptions really explain a certain phenomena. It is also possible to manipulate several variables, since the human cost is practically inexistent, and to have very fine grained data. However, one has the risk of dealing with unintelligible research since a large amount of variables is also tricky to navigate. As researchers it is important to recognize the limitations of simulations!
One example of modeling environment that uses agent-based programming language is NetLogo
. It is open source and easily installed in Mac and Windows with several tutorials to guide the user into using the tool (Image 1). It took me about four hours to install and complete the three first tutorials and now I already have a very thorough understanding of how it works. Therefore, it really is child’s play for anyone interesting in ABM, from the programing standpoint. The real challenge remains in setting up variables and assumptions that have scientific rigor.
Image 1: Wolf Sheep Predation Model – This popular model comes with NetLogo and shows the evolution of the interaction of sheeps and wolves in an environment and how it varies according to the availability of grass and predation rates. The chart on the left generates a graph of the populations over time. The variables (in green sliders) can be regulated as the visualization is updated on the screen.
If you are not yet attached to some other language, it is a good software to begin modeling. NetLogo is based on three basic steps:
1) Defining agents (which are called turtles ha-ha)
2) Defining procedures which tell agents what to do
3) Defining reporters which compute results from model events or states (such as the population x time graph)
Finally, I have been learning the hard way that, when making a model there are a lot of judgement calls that become difficult to deal with individually therefore collaboration is essential to avoid writer’s block. The most efficient way I have found to become familiar with research design in Agent Based Modeling is to study existing models and replicate them.