Reviewed by
H. Van Dyke Parunak
Chief Scientist, Jacobs Technology, Ann Arbor, Michigan
This volume is a sequel to a volume written by the same two authors in 2005, Individual-Based Modeling and Ecology. That volume sought to persuade ecologists of the value of modeling by simulating the behaviors of individual entities (e.g., birds, trees, fish, mammals), rather than (for instance) by integrating differential equations of their population levels. It laid out the motivation and general methodology for this new approach to modeling, but was very specific to the study of ecology and did not provide exercises or other direct support for the classroom. The present volume complements the earlier one in these two ways. It is very much a textbook, with exercises, stimulating questions, on-line resources, and step-by-step instructions for carrying out the various phases of an agent-based modeling study. In addition, the range of examples has been broadened to include business models.
The authors organize their material around the NetLogo environment, providing executable code for many of their models and framing the explanation of modeling principles directly in terms of NetLogo constructs and resources. In addition to teaching the NetLogo language and environment, the volume lays out a complete methodology for doing science with agent-based models, ranging from the increasingly popular ODD methodology for specifying models to disciplined guidelines on theory development and model analysis.
The book's 24 chapters are grouped into four parts. Part 1 introduces the idea of modeling, agent-based modeling, the NetLogo environment, and the ODD protocol for describing an agent-based model, and leads the reader through an introductory model. Part 2, the most extensive section of the book, leads the student through a series of model design concepts, including the concept of emergence, how the user can observe the model, how elements of the model can sense one another, the notion of adaptive behavior, modeling prediction, interaction among agents, managing time and scheduling in an agent-based environment, the use of stochasticity, and working with collectives of agents. Part 3 addresses the question of how we can know that a model accurately reflects reality. It discusses the importance of aligning the model with multiple independent patterns that characterize the real-world domain, reviews theory development, and shows how to parameterize and calibrate an agent-based model. Part 4 reviews analysis of the data from a model, including an extensive discussion of sensitivity, uncertainty, and robustness.
An important aspect of modeling that the book does not cover is Axtell's notion of docking multiple models of different types, for example, an equation-based and an agent-based model. This exercise is a powerful way to clarify the biases of alternative approaches to modeling, and can help identify artifacts of a modeling tool that may not reflect reality. NetLogo has an integrated systems dynamics modeling capability that makes it particularly useful for exploring such docked models, and students should be encouraged to take advantage of this capability.
Most chapters are furnished with exercises, and the book's website includes numerous downloads to enrich the student's experience. This volume would be an excellent text for an introductory course in modeling as science, or for self-study by a mature researcher interested in learning about this important new way of doing science.