Agent-Based Modeling Chapter

In the recently published “Comprehensive Geographic Information Systems” edited by Bo Huang, Alison Heppenstall, Nick Malleson and myself have a chapter entitled “Agent-based Modelling1. Within the chapter, we provide a overview of agent-based modeling (ABM) especially for the geographical sciences. This includes a section on how ABM emerged i.e. “The Rise of the (Automated) Machines“, along with a discussion on what constitutes an agent. This is followed with steps to building an agent-based model, including: 1) the preparation and design; 2) model implementation 3) and how one goes about evaluating a model (i.e. verification, calibration and validation and how these are particularity challenging with respect to spatial agent-based models). We then discuss how we can integrate space and GIS into agent-based models and review a number of open-source ABM toolkits (e.g. GAMA, MASON, NetLogo) before concluding with challenges and opportunities that we see ahead of us, such as adding more complex behaviors to agent-based models, and how “big data” offers new avenues for multiscale calibration and validation of agent-based models.  If you are still reading this, below you can read the abstract of the paper and find the full reference to the chapter.

Abstract:

Agent-based modeling (ABM) is a technique that allows us to explore how the interactions of heterogeneous individuals impact on the wider behavior of social/spatial systems. In this article, we introduce ABM and its utility for studying geographical systems. We discuss how agent-based models have evolved over the last 20 years and situate the discipline within the broader arena of geographical modeling. The main properties of ABM are introduced and we discuss how models are capable of capturing and incorporating human behavior. We then discuss the steps taken in building an agent-based model and the issues of verification and validation of such models. As the focus of the article is on ABM of geographical systems, we then discuss the need for integrating geographical information into models and techniques and toolkits that allow for such integration. Once the core concepts and techniques of creating agent-based models have been introduced, we then discuss a wide range of applications of agent-based models for exploring various aspects of geographical systems. We conclude the article by outlining challenges and opportunities of ABM in understanding geographical systems and human behavior.

Keywords: Agent-based modeling; Calibration; Complexity; Geographical information science; Modeling and simulation; Validation; Verification.

Full Reference

Crooks, A.T., Heppenstall, A. and Malleson, N. (2018), Agent-based Modelling, in Huang, B. (ed), Comprehensive Geographic Information Systems, Elsevier, Oxford, England. Volume 1, pp. 218-243 DOI: https://doi.org/10.1016/B978-0-12-409548-9.09704-9. (pdf)

1. [Readers of this blog might of expected the chapter would be about Agent-based Modeling, but its still worth a read!]

Continue reading »

Mesa: An Agent-Based Modeling Framework in Python

Just a short post to say two of our PhD students, David Masad and Jackie Kazil have been developing an agent-based modeling framework in Python called Mesa.
To quote from David’s talk abstract:

“Agent-based modeling is currently a hole in in Python’s robust and growing scientific ecosystem. Mesa is a new open-source package meant to fill that gap. It allows users to quickly create agent-based models using built-in core components (such as agent schedulers and spatial grids) or customized implementations; visualize them using an innovative browser-based interface; and analyze their results using Python’s robust data analysis tools. Its goal is to be a Python 3-based alternative to other popular frameworks based in other languages such as NetLogo, Repast, or MASON.”

Below is short presentation outlining Mesa from SciPy 2015:

Continue reading »

Mesa: An Agent-Based Modeling Framework in Python

Just a short post to say two of our PhD students, David Masad and Jackie Kazil have been developing an agent-based modeling framework in Python called Mesa.
To quote from David’s talk abstract:

“Agent-based modeling is currently a hole in in Python’s robust and growing scientific ecosystem. Mesa is a new open-source package meant to fill that gap. It allows users to quickly create agent-based models using built-in core components (such as agent schedulers and spatial grids) or customized implementations; visualize them using an innovative browser-based interface; and analyze their results using Python’s robust data analysis tools. Its goal is to be a Python 3-based alternative to other popular frameworks based in other languages such as NetLogo, Repast, or MASON.”

Below is short presentation outlining Mesa from SciPy 2015:

Continue reading »

Distributed MASON

Last week, the Center for Social Complexity at GMU, hosted Prof. Vittorio Scarano and Carmine Spagnuolo from the ISISLab of the Università degli Studi di Salerno who have been working on a distributed version of MASON (DMason). The idea is that one can create an agent-based model in MASON and then use the framework to easily distribute it over many machines. The movie below shows an example of what can be done. More information can be found here.

However, if you don’t use MASON, you might also be interested in Repast for High Performance Computing

Continue reading »

Distributed MASON

Last week, the Center for Social Complexity at GMU, hosted Prof. Vittorio Scarano and Carmine Spagnuolo from the ISISLab of the Università degli Studi di Salerno who have been working on a distributed version of MASON (DMason). The idea is that one can create an agent-based model in MASON and then use the framework to easily distribute it over many machines. The movie below shows an example of what can be done. More information can be found here.

However, if you don’t use MASON, you might also be interested in Repast for High Performance Computing

Continue reading »