You are here

Agent-Based and Individual-Based Modeling: A Practical Introduction

Steven F. Railsback and Volker Grimm
Princeton University Press
Publication Date: 
Number of Pages: 
[Reviewed by
David S. Mazel
, on

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.



Preface xi
Acknowledgments xvii

Part I: Agent-Based Modeling and NetLogo Basics 1
Chapter 1: Models, Agent-Based Models, and the Modeling Cycle 3
1.1 Introduction, Motivation, and Objectives 3
1.2 What Is a Model? 4
1.3 The Modeling Cycle 7
1.4 What Is Agent-Based Modeling? How Is It Different? 9
1.5 Summary and Conclusions 11
1.6 Exercises 12

Chapter 2: Getting Started with NetLogo 15
2.1 Introduction and Objectives 15
2.2 A Quick Tour of NetLogo 16
2.3 A Demonstration Program: Mushroom Hunt 18
2.4 Summary and Conclusions 29
2.5 Exercises 32

Chapter 3: Describing and Formulating ABMs: The ODD Protocol 35
3.1 Introduction and Objectives 35
3.2 What Is ODD and Why Use It? 36
3.3 T he ODD Protocol 37
3.4 Our First Example: Virtual Corridors of Butterflies 42
3.5 Summary and Conclusions 44
3.6 Exercises 45

Chapter 4: Implementing a First Agent-Based Model 47
4.1 Introduction and Objectives 47
4.2 ODD and NetLogo 47
4.3 Butterfly Hilltopping: From ODD to NetLogo 48
4.4 Comments and the Full Program 55
4.5 Summary and Conclusions 58
4.6 Exercises 59

Chapter 5: From Animations to Science 61
5.1 Introduction and Objectives 61
5.2 Observation of Corridors 62
5.3 Analyzing the Model 67
5.4 Time-Series Results: Adding Plots and File Output 67
5.5 A Real Landscape 69
5.6 Summary and Conclusions 72
5.7 Exercises 72

Chapter 6: Testing Your Program 75
6.1 Introduction and Objectives 75
6.2 Common Kinds of Errors 76
6.3 Techniques for Debugging and Testing NetLogo Programs 79
6.4 Documentation of Tests 89
6.5 An Example and Exercise: The Marriage Model 90
6.6 Summary and Conclusions 92
6.7 Exercises 94

Part II: Model Design Concepts 95
Chapter 7: Introduction to Part II 97
7.1 Objectives of Part II? 97
7.2 Overview 98

Chapter 8: Emergence 101
8.1 Introduction and Objectives 101
8.2 A Model with Less-Emergent Dynamics 102
8.3 Simulation Experiments and BehaviorSpace 103
8.4 A Model with Complex Emergent Dynamics 108
8.5 Summary and Conclusions 113
8.6 Exercises 114

Chapter 9: Observation 115
9.1 Introduction and Objectives 115
9.2 Observing the Model via NetLogo's View 116
9.3 Other Interface Displays 119
9.4 File Output 120
9.5 Behavior Space as an Output Writer 123
9.6 Export Primitives and Menu Commands 124
9.7 Summary and Conclusions 124
9.8 Exercises 125

Chapter 10: Sensing 127
10.1 Introduction and Objectives 127
10.2 Who Knows What: The Scope of Variables 128
10.3 Using Variables of Other Objects 131
10.4 Putting Sensing to Work: The Business Investor Model 132
10.5 Summary and Conclusions 140
10.6 Exercises 141

Chapter 11: Adaptive Behavior and Objectives 143
11.1 Introduction and Objectives 143
11.2 Identifying and Optimizing Alternatives in NetLogo 144
11.3 Adaptive Behavior in the Business Investor Model 148
11.4 Non-optimizing Adaptive Traits: A Satisficing Example 149
11.5 The Objective Function 152
11.6 Summary and Conclusions 153
11.7 Exercises 154

Chapter 12: Prediction 157
12.1 Introduction and Objectives 157
12.2 Example Effects of Prediction: The Business Investor Model's Time Horizon 158
12.3 Implementing and Analyzing Submodels 159
12.4 Analyzing the Investor Utility Function 163
12.5 Modeling Prediction Explicitly 165
12.6 Summary and Conclusions 166
12.7 Exercises 167

Chapter 13: Interaction 169
13.1 Introduction and Objectives 169
13.2 Programming Interaction in NetLogo 170
13.3 The Telemarketer Model 171
13.4 The March of Progress: Global Interaction 175
13.5 Direct Interaction: Mergers in the Telemarketer Model 176
13.6 The Customers Fight Back: Remembering Who Called 179
13.7 Summary and Conclusions 181
13.8 Exercises 181

Chapter 14: Scheduling 183
14.1 Introduction and Objectives 183
14.2 Modeling Time in NetLogo 184
14.3 Summary and Conclusions 192
14.4 Exercises 193

Chapter 15: Stochasticity 195
15.1 Introduction and Objectives 195
15.2 Stochasticity in ABMs 196
15.3 Pseudorandom Number Generation in NetLogo 198
15.4 An Example Stochastic Process: Empirical Model of Behavior 203
15.5 Summary and Conclusions 205
15.6 Exercises 206

Chapter 16: Collectives 209
16.1 Introduction and Objectives 209
16.2 What Are Collectives? 209
16.3 Modeling Collectives in NetLogo 210
16.4 Example: A Wild Dog Model with Packs 212
16.5 Summary and Conclusions 221
16.6 Exercises 222

Part III: Pattern-Oriented Modeling 225
Chapter 17: Introduction to Part III 227
17.1 Toward Structurally Realistic Models 227
17.2 Single and Multiple, Strong and Weak Patterns 228
17.3 Overview of Part III?230

Chapter 18: Patterns for Model Structure 233
18.1 Introduction 233
18.2 Steps in POM to Design Model Structure 234
18.3 Example: Modeling European Beech Forests 235
18.4 Example: Management Accounting and Collusion 239
18.5 Summary and Conclusions 240
18.6 Exercises 241

Chapter 19: Theory Development 243
19.1 Introduction 243
19.2 Theory Development and Strong Inference in the Virtual Laboratory 244
19.3 Examples of Theory Development for ABMs 246
19.4 Exercise Example: Stay or Leave? 249
19.5 Summary and Conclusions 253
19.6 Exercises 254

Chapter 20: Parameterization and Calibration 255
20.1 Introduction and Objectives 255
20.2 Parameterization of ABMs Is Different 256
20.3 Parameterizing Submodels 257
20.4 Calibration Concepts and Strategies 258
20.5 Example: Calibration of the Woodhoopoe Model 264
20.6 Summary and Conclusions 267
20.7 Exercises 268

Part IV: Model Analysis 271
Chapter 21: Introduction to Part IV 273
21.1 Objectives of Part IV?273
21.2 Overview of Part IV?274

Chapter 22: Analyzing and Understanding ABMs 277
22.1 Introduction 277
22.2 Example Analysis: The Segregation Model 278
22.3 Additional Heuristics for Understanding ABMs 283
22.4 Statistics for Understanding 287
22.5 Summary and Conclusions 288
22.6 Exercises 288

Chapter 23: Sensitivity, Uncertainty, and Robustness Analysis 291
23.1 Introduction and Objectives 291
23.2 Sensitivity Analysis 293
23.3 Uncertainty Analysis 297
23.4 Robustness Analysis 302
23.5 Summary and Conclusions 306
23.6 Exercises 307

Chapter 24: Where to Go from Here 309
24.1 Introduction 309
24.2 Keeping Your Momentum: Reimplementation 310
24.3 Your First Model from Scratch 310
24.4 Modeling Agent Behavior 311
24.5 ABM Gadgets 312
24.6 Coping with NetLogo's Limitations 313
24.7 Beyond NetLogo 315
24.8 An Odd Farewell 316

References 317
Index 323
Index of Programming Notes 329