Years ago I encountered agent-based models in the context of warfare science. The military models of battles current at the time were based on Lanchesterian equations which, at their heart, are two coupled differential equations. This had been the state of warfare modeling for decades. The simulations one would see were graphically rich, but under the covers there lay the differential equations, nothing more. If you think about it, warfare is not fought as a differential equation but by individuals, or platoons, that move, make decisions, and engage one another.
A colleague of mine had the foresight to ask the question: Can warfare be modeled not by differential equations but by an agent-based model? It was a turning point for warfare modeling.
An agent-based model is one where each entity, say a soldier, is its own part within the computer simulation. The soldier can move along (typically) a lattice network that defines physical space, such as a mountainous region. There can be other soldiers in that same environment; some are friends with each other (say, from the same team) and others are not friends (with the other team). Each soldier can sense where his friends are, where his enemies are, and he can know what features are within his sensor range. The soldiers interact with their environment to plan their movements, say toward friends or away from enemies, or simply to stay put. The soldiers have personalities, so that some may be skittish and avoid enemies, while other soldiers may be suicidal and run to enemies no matter what. The soldiers have behavioral traits and the range of personalities is seemingly endless. These behaviors are especially interesting when we look not at a single soldier, but rather at the collection of soldiers and their interactions with other soldiers in the simulation over time.
This agent-based model of warfare was user-friendly, but it was restricted to warfare scenarios. It had to be programmed by experts and its design was limited. It was not really a place to begin the study of agent-based simulations, but it was my first introduction to them.
In Agent-Based and Individual-Based Modeling we have what is certainly one of the best introductions to agent systems that I've seen. The book is more than an introduction to agents, though it is that. Rather, it is a guide to the science of agents, computer program modeling, and, what is more, it comes with an excellent primer to the Netlogo software.
The book is meant for undergraduates or advanced high school students. It begins with an introduction to models and how scientists use models to represent behaviors of entities such as people, ants, birds, flowers, etc. The authors explain how scientists expand their understanding of these entities by programming computers to act like the physical specimens. These same entities interact with a programmed environment and with other entities in that environment. In the past, of course, every program had to be written, tested, and, run by scientists without the benefit of a publicly accessible program. But with Netlogo, students (not just scientists) can download the program and get started immediately. Students can run pre-programmed scenarios and get results (and confidence) right away. The software is readily available, extremely useful, and easy to learn.
The book describes Netlogo and guides the reader through example runs with suggested data analyses. These analyses begin with built-in examples in Netlogo, but the authors show readers how to program Netlogo to develop their own entities each with their own behavior. For example, entities can react to their landscape, say, by going uphill or moving to their friends. Entities can multiply to create more of the same, or they can perish. The Netlogo programming language reminded me of BASIC or Python and is easy to learn and use.
There are analysis tools that allow experimenters to plot data. For example, there is a simulation of butterfly migration with tools to model and analyze the movements of butterflies through a landscape. This sort of analysis is not possible with other models, but provides natural insight from agent-based models.
The book discusses the concepts of emergence, sensing, adaptive behavior, prediction, and stochasticity, to name just a few. The text goes through these concepts, it shows how each applies in an agent-based model, and it shows readers how to illustrate these ideas within Netlogo. The authors encourage readers to build their own models, experiment, and learn.
With this book, and others like it, students can now do what took professional scientists years to do not long ago. We have gone from differential equations of warfare to agent-based models programmed by scientists, and now to freely available software for budding computer experimenters. The experiments are easily programmed, will run quickly, and can be analyzed within the same package. Where past work necessarily involved higher level mathematics, these models are intuitive and easily coded. If you want to see how models are being developed today, this book will give you a thorough introduction. You can soon program your own agent-based models in no time.
David S. Mazel welcomes your feedback and can be contacted at mazeld at gmail dot com.
TABLE OF CONTENTS:
Part I: Agent-Based Modeling and NetLogo Basics 1
Chapter 2: Getting Started with NetLogo 15
Chapter 3: Describing and Formulating ABMs: The ODD Protocol 35
Chapter 4: Implementing a First Agent-Based Model 47
Chapter 5: From Animations to Science 61
Chapter 6: Testing Your Program 75
Part II: Model Design Concepts 95
Chapter 8: Emergence 101
Chapter 9: Observation 115
Chapter 10: Sensing 127
Chapter 11: Adaptive Behavior and Objectives 143
Chapter 12: Prediction 157
Chapter 13: Interaction 169
Chapter 14: Scheduling 183
Chapter 15: Stochasticity 195
Chapter 16: Collectives 209
Part III: Pattern-Oriented Modeling 225
Chapter 18: Patterns for Model Structure 233
Chapter 19: Theory Development 243
Chapter 20: Parameterization and Calibration 255
Part IV: Model Analysis 271
Chapter 22: Analyzing and Understanding ABMs 277
Chapter 23: Sensitivity, Uncertainty, and Robustness Analysis 291
Chapter 24: Where to Go from Here 309