Agent-Based and Individual-Based Modeling

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

Steven F. Railsback
Volker Grimm
Copyright Date: October 2011
Pages: 352
https://www.jstor.org/stable/j.ctt7sns7
  • Cite this Item
  • Book Info
    Agent-Based and Individual-Based Modeling
    Book Description:

    Agent-based modeling is a new technique for understanding how the dynamics of biological, social, and other complex systems arise from the characteristics and behaviors of the agents making up these systems. This innovative textbook gives students and scientists the skills to design, implement, and analyze agent-based models. It starts with the fundamentals of modeling and provides an introduction to NetLogo, an easy-to-use, free, and powerful software platform. Nine chapters then each introduce an important modeling concept and show how to implement it using NetLogo. The book goes on to present strategies for finding the right level of model complexity and developing theory for agent behavior, and for analyzing and learning from models.

    Agent-Based and Individual-Based Modeling features concise and accessible text, numerous examples, and exercises using small but scientific models. The emphasis throughout is on analysis--such as software testing, theory development, robustness analysis, and understanding full models--and on design issues like optimizing model structure and finding good parameter values.

    The first hands-on introduction to agent-based modeling, from conceptual design to computer implementation to parameterization and analysis Filled with examples and exercises, with updates and supplementary materials at http://www.railsback-grimm-abm-book.com Designed for students and researchers across the biological and social sciences Written by leading practitioners

    Leading universities that have adopted this book include:

    Amherst College Brigham Young University Carnegie Mellon University Miami University Northwestern University Old Dominion University Portland State University Rhodes College Susquehanna University University College, Dublin University of Arizona University of South Florida University of Virginia

    eISBN: 978-1-4008-4065-6
    Subjects: Biological Sciences

Table of Contents

  1. Front Matter
    (pp. i-iv)
  2. Table of Contents
    (pp. v-x)
  3. Preface
    (pp. xi-xvi)
  4. Acknowledgments
    (pp. xvii-xviii)
  5. Part I Agent-Based Modeling and NetLogo Basics
    • 1 Models, Agent-Based Models, and the Modeling Cycle
      (pp. 3-14)

      Welcome to a course in agent-based modeling (or “individual-based” modeling, as the approach is called in some fields). Why is it important to learn how to build and use agent-based models (ABMs)? Let’s look at one real model and the difference it has made.

      Rabies is a viral disease that kills great numbers of wild mammals and can spread to domestic animals and people. In Europe, rabies is transmitted mainly by red fox. When an outbreak starts in a previously rabies-free region, it spreads in “traveling waves”: alternating areas of high and low infection rates.

      Rabies can be eradicated from...

    • 2 Getting Started with NetLogo
      (pp. 15-34)

      Now it is time to start playing with and learning about NetLogo, the software package we use in this course to implement ABMs. One of the great things about NetLogo is that you can install it and start exploring its built-in models in a few minutes, and then use its tutorials to learn the basics of programming models.

      We introduce NetLogo first by explaining its most important elements and then via learning by doing: programming a very simple model that uses the most basic elements of NetLogo. We expect you to learn the basic elements of NetLogo mainly by using...

    • 3 Describing and Formulating ABMs: The ODD Protocol
      (pp. 35-46)

      Formulating an ABM means progressing from the heuristic part of modeling, in which we first think about the problem, data, ideas, and hypotheses, to the first formal and rigorous representation of the model. To formulate a model, we try to write it down in words, diagrams, equations, etc., which requires us to make a series of decisions about the model’s structure. Beginners often hesitate to write down their first model version, but it is important to realize that a model simply does not exist before it has been formulated explicitly so people can understand it. Why?

      The first purpose of...

    • 4 Implementing a First Agent-Based Model
      (pp. 47-60)

      In this chapter we continue your lessons in NetLogo, but from now on the focus will be on programming—and using—real ABMs that address real scientific questions. (The Mushroom Hunt model of chapter 2 was neither very agent-based nor scientific, in ways we discuss in this chapter.) And even though this chapter is mostly still about NetLogo programming, it starts addressing other modeling issues. It should prime you to start actually using an ABM to produce and analyze meaningful output and address scientific questions, which is what we do in chapter 5.

      Learning objectives for chapter 4 are to:...

    • 5 From Animations to Science
      (pp. 61-74)

      Beginners often believe that modeling is mainly about formulating and implementing models. This is not the case: the real work starts after a model has first been implemented. Then we use the model to find answers and solutions to the questions and problems we started our modeling project with, which almost always requires modifying the model formulation and software. This iterative process of model analysis and refinement—the modeling cycle—usually is not documented in the publications produced at the end. Instead, models are typically presented as static entities that were just produced and used. In fact, every model description...

    • 6 Testing Your Program
      (pp. 75-94)

      In this chapter we discuss why and how you should search for the mistakes in your NetLogo programs and then document that they have been found and fixed. In your programming practice so far, you have no doubt already had some experience with debugging: figuring out and fixing the cause of obvious mistakes. Many of the techniques we present in this chapter are useful for debugging, but now the focus is more on rigorous and systematic efforts, after debugging is finished, to find the hidden errors that remain.

      This practice is often called software verification: verifying that your software accurately...

  6. Part II Model Design Concepts
    • 7 Introduction to Part II
      (pp. 97-100)

      Part I of this course provided a crash course in modeling and NetLogo: we introduced many fundamental techniques very quickly, with little opportunity to practice and understand them thoroughly. Therefore, part II is designed to reinforce what you have already learned and to teach even more of NetLogo. But we also take time to explain in more detail how NetLogo is designed and why, to give you a deeper understanding of how to program in general. So if you feel a little lost and overwhelmed at this point, please be patient and persevere. Becoming proficient in NetLogo remains a major...

    • 8 Emergence
      (pp. 101-114)

      The most important and unique characteristic of ABMs is that complex, often unexpected, system dynamics emerge from how we model underlying processes. Emergence, therefore, is the most basic concept of agent-based modeling. The key question about emergence is this: what dynamics of the system and what model outcomes emerge—arise in relatively complex and unpredictable ways—from what behaviors of the agents and what characteristics of their environment? What other model dynamics and outcomes are instead imposed—forced to occur in direct and predictable ways—by the model’s assumptions?

      By “unpredictable” here we refer to outcomes that are difficult or...

    • 9 Observation
      (pp. 115-126)

      The “observation” design concept addresses the fact that ABMs (like the systems they represent) produce many kinds of dynamics, so what we learn from them depends on how we observe them. A key part of designing a model and its software is deciding what results we need to observe and how.

      We use observations for different purposes as we go through the cycle of building, testing, and using an ABM. As we build and start testing a model, we always need to see what the individuals are doing to understand the model’s behavior and find obvious mistakes. Therefore, graphical displays...

    • 10 Sensing
      (pp. 127-142)

      The sensing concept addresses the question, “What information do model agents have, and how do they obtain that information?” The ability of agents to respond and adapt to their environment and other agents depends on what information they have, so our assumptions about what agents “know” can have very strong effects. In many models, agents are simply assumed to have access to the variables of certain other agents or entities; for example, NetLogo models typically let turtles use any information held as variables of their patch. However, in some models it may be more realistic and useful to assume that...

    • 11 Adaptive Behavior and Objectives
      (pp. 143-156)

      The most important reason we use ABMs is that they allow us to explicitly consider how a system’s behavior is affected by the adaptive behavior of its individual agents—how agents make decisions and change their state in response to changes in their environment and themselves. Therefore, deciding how to model agent decisions is often the most important step in developing an ABM. In this chapter we start thinking about modeling decisions by examining two closely related design concepts: adaptation and objectives. The adaptation concept considers what behaviors agents have and, especially, what decisions they use to adapt to changing...

    • 12 Prediction
      (pp. 157-168)

      Prediction is fundamental to decision-making: when we make even the simplest decision, like whether to walk, bicycle, or drive the car to the grocery store, we automatically anticipate—predict—the consequences of each alternative. If I walk, how long will it take? If I bicycle, will I be able to carry as many groceries as I need? If I drive, will my friends see me and think I’m lazy and environmentally unconcerned? So modeling adaptive behavior often requires modeling prediction. Prediction is a particularly fascinating part of modeling behavior because a prediction is itself a model: we predict the outcomes...

    • 13 Interaction
      (pp. 169-182)

      Local interaction is one of the defining characteristics of ABMs. The term interaction refers to how agents communicate with or affect each other, such as by exchanging information, competing for resources, helping or fighting each other, or conducting business. We also use “interaction” for how agents affect, and are affected by, their environment; environmental interactions such as consuming and producing resources are very important in many ABMs.

      System-level models, in contrast to ABMs, must use the same equations and parameters to represent the effects of interaction on all members of the system. For example, competition among members of a population...

    • 14 Scheduling
      (pp. 183-194)

      As you built and used models in previous chapters, you probably found yourself thinking that the order in which model events occur could affect the results you get. The question is how to schedule the actions in our model—in what order should events be executed, and how do we make NetLogo execute them in the order we want? Scheduling is an important model design consideration; in early versions of the ODD model description protocol it was one of the design concepts that the other chapters of part II address, but now scheduling is part of the Overview element of...

    • 15 Stochasticity
      (pp. 195-208)

      In modeling, the word “stochastic” describes processes that are at least partly based on random numbers or events. Stochastic processes therefore produce different results each time a model executes because the random events or numbers are different each time. The word “deterministic” is used as the opposite of stochastic, describing processes that are modeled with no randomness so they produce exactly the same result each time they are executed. Some people assume that ABMs, and even simulation models in general, are all highly stochastic. That is often a mischaracterization: it implies that all the important dynamics in ABMs result from...

    • 16 Collectives
      (pp. 209-224)

      Agent-based models represent a system by modeling its individual agents, but surprisingly many systems include intermediate levels of organization between the agents and the system. Agents of many kinds organize themselves into what we call collectives: groups that strongly affect both the agents and the overall system. This chapter is about how to model such intermediate levels of organization.

      If we need to include collectives in a model, then how do we do it? One way is to represent collectives as a completely emergent characteristic of the agents: the agents have behaviors that allow or encourage them to organize with...

  7. Part III Pattern-Oriented Modeling
    • 17 Introduction to Part III
      (pp. 227-232)

      Now that we have introduced you to agent-based modeling, NetLogo, and important concepts for designing ABMs, part III will focus on a more strategic level. Part II was spent in the engine room of the ship RV Agent-Based Modeling learning how to set up the engine of an ABM and keep it running, via design, implementation, and testing. Now, in part III, we leave the engine room and head for the bridge to work on getting somewhere with our vessel: we want to learn about how real agent-based complex systems work.

      Remember from chapter 1 that we use models as...

    • 18 Patterns for Model Structure
      (pp. 233-242)

      The first very important decision in designing a model is selecting the set of entities and their state variables and attributes that represent the system. We could think of endless things that are in any system we want to model, and infinite variables that characterize each. But in models, we usually—wisely—include only a very few kinds of entities and only a few variables (size, location, etc.) to describe each. Once we have chosen the entities and state variables, we also know what processes need to be in the model: the processes that are important for making the state...

    • 19 Theory Development
      (pp. 243-254)

      In the previous chapter we focused on model structure. Now we will turn to processes and how to model them. As we design a model’s structure and formulate its schedule—the Overview part of the ODD protocol—we identify which processes we need without bothering yet about how they work. Then, to get the modeling cycle going, we start with a very simple, often obviously wrong, representation of the model’s processes. For example, we often just assume that agents make decisions randomly. However, after we have a first implementation of the entire model, we need to unsimplify and come up...

    • 20 Parameterization and Calibration
      (pp. 255-270)

      Parameters are the constants in the equations and algorithms we use to represent the processes in an ABM. In our first model, which described butterfly hilltopping behavior and virtual corridors, the parameter q represented the probability that a butterfly would deliberately move uphill at a given time step (section 3.4). Other early examples include blue-fertility in NetLogo’s Simple Birth Rates model (section 8.3) and the minimum and maximum values used to initialize patch profit and failure risk in the Business Investor model (section 10.4.1).

      Parameterization is the word modelers used for the step of selecting values for a model’s parameters....

  8. Part IV Model Analysis
    • 21 Introduction to Part IV
      (pp. 273-276)

      Testing and analyzing are, as you certainly have learned by now, integral parts of agent-based modeling (and of modeling in general). By testing we refer to checking whether a model, or a certain submodel, is correctly implemented and does what it is supposed to do. Throughout this book we have been testing both models and their software. For example, in chapter 6 we tested whether our NetLogo program for the hilltopping behavior of butterflies really did what we wanted it to (the answer was “no”). Analyzing models refers to something different: trying to understand what a model, or submodel, does....

    • 22 Analyzing and Understanding ABMs
      (pp. 277-290)

      Imagine that you just installed new software for manipulating digital photos. Like most of us, you probably don’t start by reading the user manual but instead by just using the program. However, the new software might use terminology and a philosophy that you are not familiar with. What would you do? You would try it out! You would try one command or tool at a time and see how your photo changes. Once you got an idea how basic tools work, you would start using them in combination. You would base your attempts on your current, preliminary understanding: “Now, to...

    • 23 Sensitivity, Uncertainty, and Robustness Analysis
      (pp. 291-308)

      If someone developed an ABM of the stock market and claimed that it explains how the market’s trends and short-term variation emerge, what questions would you ask? First, because you are now trained in design concepts and pattern-oriented modeling (POM), you would ask whether the system-level patterns of variation really emerge from the traders’ adaptive traits or whether they were imposed by model rules; second, you would ask whether the model only reproduces a single system-level pattern, or multiple patterns observed in real markets at both trader and market levels and at different time scales.

      But even if the model...

    • 24 Where to Go from Here
      (pp. 309-316)

      This book is an introduction to agent-based modeling. From it, you should have learned the basic principles of modeling in general and agent-based modeling in particular. You should also now be familiar with one specific platform for agent-based modeling, NetLogo. If you took your time, worked through the exercises, and discussed your questions with colleagues or instructors, or in a user forum, you are ready to do science using agent-based models.

      However, “introduction” means that you have been introduced but you are not yet a professional modeler. After finishing this course, you are on your own and have to decide...

  9. References
    (pp. 317-322)
  10. Index
    (pp. 323-329)