TABLE OF CONTENTS:
Preface xi
Acknowledgments xvii
Part I: AgentBased Modeling and NetLogo Basics 1
Chapter 1: Models, AgentBased 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 AgentBased 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 AgentBased 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 TimeSeries 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 LessEmergent 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 Nonoptimizing 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: PatternOriented 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
