Book Objectives and Content
As our second edition comes out, there are now many books on complex systems and agent- and individual-based modeling, including our 2005 monograph Individual-based Modeling and Ecology. There are even several other textbooks and sets of instructional materials available. However, several characteristics set Agent-based and Individual-based Modeling: A Practical Introduction aside:
- It is carefully organized to lead college classes or individuals, step by step and chapter by chapter, through the basics of designing, implementing, and analyzing models.
- Its focus is on doing science. From the start, the book is about building and using models of real problems and systems, not simplistic “theoretical” models. We focus intently on scientific analysis and theory: how to solve problems with a model once it is built, and how we can develop and test theory for individual behavior that explains how systems work. And we strongly emphasize key elements of science such as standardization, reproducibility, and documentation. This focus benefits from the authors’ decades of experience building, using, and publishing scientific models.
- The second edition benefits from years of instructor experience with the first edition. While the feedback we solicited was overwhelmingly positive, it and our own experience teaching from the book allowed us to make many improvements.
We designed this book as an introductory text on agent-based modeling for scientists, for use both in university courses (graduate or upper level undergraduate) and by people teaching themselves. The book is not specific to any particular field of science; instead, we intend it to be useful in fields ranging from social and economic sciences to the natural and biological sciences–any field in which systems of unique, behaving, and interacting entities are of interest.
Our book is designed to be introductory for the instructor as well as the students: we designed it specifically for use by instructors who themselves have little experience with either agent-based modeling or programming. We realize that few professors and scientists have such experience now; one of our main goals is to overcome this barrier to the adoption of agent-based modeling as a research technique.
The book has four parts.
Part I provides an introduction to modeling and agent-based modeling, and a “crash course” in programming ABMs using NetLogo. The goal of this part is to teach students enough of the basics of modeling and programming so they can move on to the second part, which broadens and deepens knowledge of both. We also introduce a standard format—the ODD protocol—for describing (and, therefore, thinking about and designing) ABMs. ODD is used throughout the book and in hundreds of scientific publications. As soon as students learn the basics of programming in NetLogo, we also introduce methods for testing software: testing our programs is an essential scientific skill that needs to be a habit from the start.
Part II includes nine chapters that each (a) introduce a basic concept of agent-based modeling and ways that the concept is often implemented, and (b) reinforce and expand NetLogo programming skills related to the concept. For example, the chapter on Observation starts with a short discussion of why the way we observe an ABM is important and the different kinds of results we need to observe, then discusses how to use NetLogo’s extensive graphical and file output tools to make the observations we need. Part II makes extensive use of example models and exercises to develop modeling and programming skills.
Part III covers “pattern-oriented modeling”, a modeling strategy that we find especially important for agent-based modeling. Students learn to use characteristic patterns of the real systems they model to solve critical modeling problems: designing ABMs with the right level of complexity, developing theory for how the system’s dynamics emerge from agent characteristics and behaviors, and calibrating models. Pattern-oriented modeling helps us deal with some of the most difficult issues in agent-based modeling, such as knowing when a model is “as simple as possible, but no simpler”.
Part IV looks at what to do with a model after it is written and programmed: analyze it to understand the model and to solve the problem it was designed for. We introduce methods for typical kinds of analyses (sensitivity, uncertainty, and robustness) and for drawing inferences about the system we modeled. The final chapter provides recommendations for moving on from the course to one’s own model-based research, and introduces many tools for making NetLogo even more powerful and efficient as a scientific platform.