Agent-Based and Individual-Based Modeling
A PRACTICAL INTRODUCTION Steven F. Railsback and Volker Grimm
PRINCETON UNIVERSITY PRESS
Princeton and Oxford
Copyright 2012 by Princeton University Press
Published by Princeton University Press, 41 William Street, Princeton, New Jersey 08540
In the United Kingdom: Princeton University Press, 6 oxford street, Woodstock, oxfordshire oX20 1TW
press.princeton.edu
Jacket Art: Orange Haiku, 2010, oil on linen, 24 24 Astrid Preston.
All Rights Reserved
Library of Congress Cataloging-in-Publication Data
Railsback, Steven F.
Agent-based and individual-based modeling : a practical introduction / Steven F. Railsback and Volker Grimm.
p. cm.
Includes bibliographical references and index.
ISBN 978-0-691-13673-8 (hardback) - ISBN 978-0-691-13674-5 (pbk.) 1. Multiagent systems-Textbooks.
2. Science-Mathematical models. I. Grimm, Volker, 1958- II. Title.
QA76.76.I58R35 2011
006.3-dc23
2011017473
British Library Cataloging-in-Publication Data is available
This book has been composed in Minion Pro, Myriad Pro, and Courier
Printed on acid-free paper.
Printed in the United States of America
10 9 8 7 6 5 4 3 2 1
Contents
Preface
In 2005, we published Individual-Based Modeling and Ecology, which laid out our ideas on why and how individual-based models (IBMs) can be used in ecology and, by analogy, in many other fields. As we wrote that book we realized that it could not serve well by itself as a text for classes on individual-or agent-based modeling: there was too much general and conceptual material to cover to allow us to also provide the detail and examples needed for a textbook. Hence, we produced this book to fill the textbook role.
Our ultimate goal in writing this book is to address a fundamental limitation to the use of agent-based and individual-based models (A/IBMs): outside of computer science and engineering, students interested in using A/IBMs have little access to training and expertise. Few professors in the biological and social sciences are trained in simulation modeling and software development. This situation stands in stark contrast to statistical modeling: almost every university department in every science has faculty skilled in statistics and expects its students to develop some facility in statistical modeling. As A/IBMs become an ever-more-important tool, we expect more and more departments will want to offer classes even though they lack experienced instructors. We designed this book to help bootstrap the adoption of this new technology by allowing instructors of all experience levels to get students started doing science with A/IBMs. We also expect this book to help students learn individual-based modeling by themselves if there is no class available.
This book was designed so it can be used by itself, but we think many of its users will benefit from reading Individual-Based Modeling and Ecology first or at the same time. Our first book focused on conceptual aspects of how to design A/IBMs and analyze them to do science, while this book focuses more on the details of implementing and analyzing models. One difference is that this book is not specific to ecology; it still reflects our own backgrounds in ecology, but we intend it to be useful for the many fields in which a textbook on A/IBMs is needed.
In disciplines other than ecology, IBMs are more often referred to as ABMs, so we use the term agent-based in this book more than individual-based. There have been historical differences between individual- and agent-based models: IBMs focused on individual variability and local interactions, whereas ABMs focused on decision-making and adaptive behavior. But these differences are fading away so that we use both terms interchangeably, as we did in our first book. Likewise, we also implicitly include and address multi-agent systems, which are just a branch of agent-based modeling that originated from computer science and research on artificial intelligence and artificial life.
Book Objectives
This book is designed to support introductory classes-or independent study-in agent-based modeling for scientists, including courses with instructors new to simulation modeling and computer programming. The course is targeted at graduate students and advanced undergraduates who are starting their research careers, but it is also appropriate for experienced scientists who want to add agent-based modeling to their toolkit. Students can expect to learn about both the conceptual and theoretical aspects of using ABMs and the details of implementing models on the computer using NetLogo software. Among the topics covered are:
When and why to use ABMs, and how they are different from other models;
How to design an ABM for a particular system and problem;
A conceptual foundation for designing and describing models;
Programming models and conducting simulation experiments in NetLogo; and
How to analyze a model to solve scientific problems, including development of theory for complex systems.
Throughout the course we emphasize several themes about doing science with ABMs:
Using models for solving research problems. The primary characteristic of scientific models is that they are designed to solve a specific problem about a system or class of systems. These problems might include predicting how the system responds to novel conditions, or just understanding the mechanisms that drive the system.
Basing models on theory, and using models to develop theory. By theory, in the context of agent-based complex systems, we mean models of the individual characteristics and behaviors from which system behaviors emerge.
Learning and following the conventions and theory of scientific modeling. Modeling is not simply an intuitive process that lacks standard procedures and theory. There is, in fact, much that modelers need to learn from our predecessors. Examples include knowing the importance of appropriate space and time scales and how to conduct standard kinds of model analysis.
Documenting models and testing software. These tasks are often treated by novices as tedious distractions but they are in fact essential-and productive, and even sometimes fun-parts of scientific modeling.
Standardization. One of the historical difficulties with ABMs is that the standard languages we have for thinking about and describing other kinds of models (e.g., differential equations; statistics) are not sufficient for formulating ABMs. A great deal of recent work has gone into developing standards for ABMs, and we emphasize their use. Throughout this book we use a standard protocol (called ODD) for describing models and a set of standard concepts for thinking about and designing ABMs; and NetLogo itself is a standard language for programming ABMs.
Why NetLogo?