"Railsback and Grimm have done the heavy lifting required to establish a solid IBM course by providing a carefully crafted inquiry-based curriculum. This accomplishment removes a major impediment to the proliferation of IBM courses. Although the book seems aimed at a graduate-level course, I also do not see why an ambitious teacher with motivated students could not use this textbook as the basis of an upper-level undergraduate course in individual based modeling. Agent-based and individual-based modeling has the potential to foster an appreciation of the value and place of individual-based models in our field in the next generation of emerging ecologists (who already have computational leanings)."--Christopher X. Jon Jensen, Ecology
"Knitting together ecology, economics, and social systems, this wonderful book will encourage and enlighten novices and experienced modelers alike. It highlights the importance of patterns at every level of the modeling process, the need for clear explication of assumptions, and the benefits of models composed of discrete entities (agents) which interact, evolve, and mimic reality."--Louis Gross, University of Tennessee, Knoxville
"Railsback and Grimm provide a needed book on how to develop, code, and analyze agent-based models. They so expertly explain the art and science of modeling that even the most modeling-shy beginner will master the skills. Readers will also gain a deep understanding of the increasing importance of agent-based models for interpreting the patterns of nature and human society."--Donald L. DeAngelis, U.S. Geological Survey
"Railsback and Grimm have written a superb introduction to agent-based models. They combine hands-on programming exercises, introductions to some of the core concepts in complex systems, and instruction in model design and analysis. The result is an excellent book that's ideal for both undergraduates and academics."--Scott E. Page, author of Diversity and Complexity
"This exceptional book offers a systematic introduction to the scientific use of agent-based modeling, including the implementation, testing, and validation of models. Until now there was no good textbook available to teach students the theory and practice of agent-based modeling. Railsback and Grimm provide such a text, one that will likely become a classic in the field."--Marco A. Janssen, Arizona State University
"This book is an invaluable guide to agent-based modeling. A significant contribution to the field, it will train the next generation of modelers and teach best practices to existing modelers. Railsback and Grimm have in-depth expertise and experience in developing and teaching agent-based modeling, and are well qualified to write such a book."--Richard Stillman, Bournemouth University
"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."--H. Van Dyke Parunak, JASSS
"This book represents something I have been waiting for some years now: a good and solid introduction to the field of individual- and agent-based models (hereafter IBM/ABM's). This book fulfills my needs, using a mix of theory and practical examples which seems to suit the topic well. . . . [T]he book is not only a practical guide but also serves as a good introduction to the basics of 'healthy' programming. These authors are the right ones to do this as they have a strong background in the philosophical aspects as well as the practical issues of modeling."--Basic and Applied Ecology
"Biologists . . . have been relatively slow to take advantage of enhanced computing power and unlock the potential of these techniques. This book removes any excuse. Based on a course run by the authors, who both come from an ecological background, and building on an earlier, more conceptual book, this aims to provide the necessary tools to students and researchers."--Frontiers of Biogeography 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 References 317
Acknowledgments xvii
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
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
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
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
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
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
Chapter 7: Introduction to Part II 97
7.1 Objectives of Part II? 97
7.2 Overview 98
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
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
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
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
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
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
14.1 Introduction and Objectives 183
14.2 Modeling Time in NetLogo 184
14.3 Summary and Conclusions 192
14.4 Exercises 193
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
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
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
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
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
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
Chapter 21: Introduction to Part IV 273
21.1 Objectives of Part IV?273
21.2 Overview of Part IV?274
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
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
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
Index 323
Index of Programming Notes 329