An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo,

MIT Press
, 2015. $65.00 paper (482 pp.). ISBN 978-0-262-73189-8 Buy at Amazon

Agent-based modeling is an approach to exploring the complex systems that arise in nature, societies, and engineering applications. In contrast to equation-based models of aggregate populations, agent-based models (ABMs) focus on the actions of heterogeneous individuals (agents), be they people, ants, countries, molecules, cancer cells, viruses, vehicles, or photons. The sometimes surprising behaviors of the populations emerge from the behaviors and interactions of the agents.

The best textbook available on this new approach is Uri Wilensky and William Rand’s An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo. Using examples from physics, biology, sociology, economics, political science, anthropology, and computer science, the book describes how to design, build, verify, validate, and analyze ABMs.

Statistician George Box’s famous quote, “All models are wrong, but some are useful,” nicely encapsulates one of the authors’ key points: Model design and analysis should be guided by the particular questions the researcher wants to answer. Another key point in the text is that often physical insight comes from focusing on the structure of processes and their interactions and not on the particulars of the phenomena under study. For example, ABMs reveal that fluid percolation and forest fires have very strong parallels. And both the spreading of rumors and the diffusion of innovation have much in common with percolation—though important differences also exist.

The book is much more than an introduction to the concepts and applications of ABMs; it also leads the reader through the process of designing, building, and analyzing such models. The authors adopt a sound strategy and recommend it to readers: Begin with very simple models and extend them step by step. Sometimes the general public, including policymakers, believe that ABMs are developed for their predictive value, but the authors correctly observe that explanation and understanding of phenomena are equally important reasons for creating ABMs. As they also point out, ABMs are widely accessible since they require only an understanding of the behavior of the individuals and not a mathematical understanding of the behavior of populations.

Despite the suggestion of the subtitle, the book is not a comprehensive guide to programming ABMs. It does, however, offer many well-reasoned and well-explained examples that should be accessible even to readers with no computer-programming background. The authors’ ABM toolkit of choice is NetLogo, which is developed by a team that Wilensky leads. The program is both easy to learn (it is used in high school classes) and powerful (many ambitious research projects rely on it).

Another key and often neglected theme is the importance of paying attention to how the model’s execution and output look. The authors present design principles, illustrated by well-thought-out examples, including how to choose effective colors, shapes, and sizes of the agents. Critically, those visualizations are dynamic and appear as two- or three-dimensional animations when executed.

All the example models covered in the book are freely available online and can be run on Windows, Macintosh, or Linux systems. Many of the example programs can also be run on the new online version of NetLogo, which is also available for free. The ability to visualize and control the execution of ABMs in any modern browser opens the door for them to be used as tools for engaging the public, educating students, and influencing policy.

The authors describe “restructuration” of knowledge as analogous to the new way of thinking about numbers that developed as people transitioned from Roman numerals to our Hindu–Arabic positional notation. Something beyond Roman numerals was needed: Consider estimating the number of days since Physics Today was established by multiplying LXVII by CCCLXV to obtain XXMMMMCDLV. A student who carefully reads An Introduction to Agent-Based Modeling and tries a few of the explorations suggested at the end of each chapter should acquire a new way of thinking about complex systems.

Ken Kahn is a senior researcher on the academic IT research support team at the University of Oxford in the UK. He is leading Oxford’s Modelling4All project to build a web-based tool for constructing, running, visualizing, analyzing, and sharing agent-based models. Kahn is also the designer and developer of ToonTalk, a programming system for children.