Agent-Based Modeling & Python @ PyData DC 2016

Preview:

Citation preview

Agent-Based Modeling & Python

By Jackie Kazil DC, Oct. 8, 2016

1

2

PSF

PyLadies

WDSDC

Data Community DC

PIFF

Byte Back

3

PyData 2016 DC host and sponsor

4

Class of 2019?

5

Overview1. What Agent-based modeling2. Background in Agent-based modeling tools3. Modeling in Python using Mesa4. Future of Mesa

6

7

8

AGENT-BASED MODELS!An Overview of Applications

9

AGENT-BASED MODELS!ABMsMASGame theoryCellular automataMicrosimulationIndividual-based modelsComplex Simulations

10

What is agent-based modeling?Computer simulationConsisting of agents... interacting with one another... in order to study an overall system

11

Components of a modelSpace

Agents

Time

Visualization?

Conway’s Game of Life

Source:Wikipedia user LucasVB,https://commons.wikimedia.org/wiki/File:Gospers_glider_gun.gif

12

Schelling Segregation Model

Source:Case, “Parable of the Polygons”http://ncase.me/polygons/

Source:Schelling, 1971. “Dynamic Models of Segregation.” Journal of Mathematical Sociology.

13

14

Why ABMs?Flows: evacuation, traffic, and customer flow management.

Markets: stock market, shopbots and software agents, and strategic simulation.

Organizations: operational risk and organizational design.

Diffusion: diffusion of innovation and adoption dynamics.

15

Why ABMs?ABMs capture the path as well as the solution, so one can analyze the system’s dynamic history.

Most social processes involve spatial or network attributes, which ABMs can incorporate explicitly.

When a model (A) produces a result (R), one has established a sufficiency theorem, meaning R if A.

16

Why ABMs?Individual behavior is nonlinear; characterized by thresholds, if-then rules, or nonlinear coupling

Individual behavior exhibits memory, path-dependence, or temporal correlations, including learning and adaptation

Agent interactions are heterogeneous; can generate network effects --> lead to deviations from predicted aggregate behavior

Predator-Prey Dynamics

Source:Wilensky, U. (1997). NetLogo Wolf Sheep Predation model. http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

17

Political Dynamics

Source:Cederman et al. “GeoSim Framework.” http://www.icr.ethz.ch/research/geosim

18

Migration Modeling

Source:Gulden et al. 2011, “Modeling Cities and Displacement through an Agent-Based Spatial Interaction Model,” Computational Social Science Society of America Conference

19

Epidemiological Simulation

Source:Los Alamos National Laboratory, OPPIE epidemiological model.http://www.lanl.gov/projects/mathematical-computational-epidemiology/agent-based-modeling.php

20

22

ABMs Open Source Ecosystem

MIMOSE (Micro-und Multilevel Modelling Software) [53]GAMA [28]

ABLE (Agent Building and Learning Environment) [2]Jason (Jason:Interpreter for extension of AgentSpeak) [40]MAS-SOC (Multi-Agent Simulations for the SOCial Sciences) [51]Brahms [11]ECHO [22]FLAME [25]FLAME GPU [26]Construct [13]MOOSE(Multimodeling Object-Oriented Simulation Environment) [55]Jade’s sim++SimBioSys [68]SimPack [69]DeX [20]

LSD (Laboratory for Simulation Development)[45]iGen [31]FLUXY [27]MASS (Multi-Agent Simulation Suit) [50]FramsticksSimPlusPlus [66]Descartes[19]

A3 / AAA (Agent Anytime Anywhere) [1]ADK (TryllianAgent Development Kit)[4]AOR Simulation[6]Ascape [8]BDI4Jade [9]Cougaar[15]CybelePro[17]FAMOJA(Framework for Agent-based MOdelling with JAva) [24]ICARO-T [32]JABM [34]JADEJAS-mine [38]

JASA (Java Auction Simulator API) [39]jES (Java Enterprise Simulator) [42]jEcho [43]MASON [49]Moduleco [54]

MASS (Multi-Agent Simulation Suit) [50]FramsticksSimPlusPlus [66]Descartes[19]

A3 / AAA (Agent Anytime Anywhere) [1]ADK (TryllianAgent Development Kit)[4]AOR Simulation[6]Ascape [8]BDI4Jade [9]Cougaar[15]CybelePro[17]FAMOJA(Framework for Agent-based MOdelling with JAva) [24]ICARO-T [32]JABM [34]JADEJAS-mine [38]

JASA (Java Auction Simulator API) [39]jES (Java Enterprise Simulator) [42]jEcho [43]MASON [49]Moduleco [54]netLogoJIAC [64]Sugarscape [71]VSEit [74]Xholon [75]D-OMAR(Distributed Operator Model Architecture) [21]RepastJanus [37]EVE [23]JCA-Sim [41]Boris[12]MaDKit (Multi Agent Development Kit)[46]SwarmAnyLogicJESS [44]Insight Maker [33]AgentBuilder [5]TerraME[72]MacStarLogoMAGSY [47]MAML (Multi-Agent Modeling Language) [48]AgentService [7]OBEUS (Object Based Environment for Urban Simulation) [56]OpenOME [58]Behaviour Composer (Rich Internet Application building on NetLogo) [10]NetLogoSpatial Modeling Environment(SME) [70]JAMEL (Java Agent-based MacroEconomic Laboratory) [35]PS-I (Political Science-Identity)[60]

Altreva Adaptive Modeler [3]oRIS [59]SimAgent (alsosim agent) [67]DigiHiveMesa [52]DALI[18]

Insight Maker [33]AgentBuilder [5]TerraME[72]MacStarLogoMAGSY [47]MAML (Multi-Agent Modeling Language) [48]AgentService [7]OBEUS (Object Based Environment for Urban Simulation) [56]OpenOME [58]Behaviour Composer (Rich Internet Application building on NetLogo) [10]NetLogoSpatial Modeling Environment(SME) [70]JAMEL (Java Agent-based MacroEconomic Laboratory) [35]PS-I (Political Science-Identity)[60]

Altreva Adaptive Modeler [3]oRIS [59]SimAgent (alsosim agent) [67]DigiHiveMesa [52]DALI[18]BreveSeSAm (Shell for Simulated Agent Systems) (fully integrated graphical simulation environment) [63]Cormas(Common-pool Resources and Multi-Agent Systems) [14]

SDML (Strictly Declarative Modeling Language) [61]SoarStarLogoOpenStarLogoStarLogo TNGStarLogoT

SEAS (System Effectiveness Analysis Simulation) [62]GPU Agents [29]GROWlab [30]AgentSheetsVisualBots [73]ZEUS [76]

MIMOSE (Micro-und Multilevel Modelling Software) [53]GAMA [28]

ABLE (Agent Building and Learning Environment) [2]Jason (Jason:Interpreter for extension of AgentSpeak) [40]MAS-SOC (Multi-Agent Simulations for the SOCial Sciences) [51]Brahms [11]ECHO [22]FLAME [25]FLAME GPU [26]Construct [13]MOOSE(Multimodeling Object-Oriented Simulation Environment) [55]Jade’s sim++SimBioSys [68]SimPack [69]DeX [20]

LSD (Laboratory for Simulation Development)[45]iGen [31]FLUXY [27]MASS (Multi-Agent Simulation Suit) [50]FramsticksSimPlusPlus [66]Descartes[19]

A3 / AAA (Agent Anytime Anywhere) [1]ADK (TryllianAgent Development Kit)[4]AOR Simulation[6]Ascape [8]BDI4Jade [9]Cougaar[15]CybelePro[17]FAMOJA(Framework for Agent-based MOdelling with JAva) [24]ICARO-T [32]JABM [34]JADEJAS-mine [38]

JASA (Java Auction Simulator API) [39]jES (Java Enterprise Simulator) [42]jEcho [43]MASON [49]Moduleco [54]

MASS (Multi-Agent Simulation Suit) [50]FramsticksSimPlusPlus [66]Descartes[19]

A3 / AAA (Agent Anytime Anywhere) [1]ADK (TryllianAgent Development Kit)[4]AOR Simulation[6]Ascape [8]BDI4Jade [9]Cougaar[15]CybelePro[17]FAMOJA(Framework for Agent-based MOdelling with JAva) [24]ICARO-T [32]JABM [34]JADEJAS-mine [38]

JASA (Java Auction Simulator API) [39]jES (Java Enterprise Simulator) [42]jEcho [43]MASON [49]Moduleco [54]netLogoJIAC [64]Sugarscape [71]VSEit [74]Xholon [75]D-OMAR(Distributed Operator Model Architecture) [21]RepastJanus [37]EVE [23]JCA-Sim [41]Boris[12]MaDKit (Multi Agent Development Kit)[46]SwarmAnyLogicJESS [44]Insight Maker [33]AgentBuilder [5]TerraME[72]MacStarLogoMAGSY [47]MAML (Multi-Agent Modeling Language) [48]AgentService [7]OBEUS (Object Based Environment for Urban Simulation) [56]OpenOME [58]Behaviour Composer (Rich Internet Application building on NetLogo) [10]NetLogoSpatial Modeling Environment(SME) [70]JAMEL (Java Agent-based MacroEconomic Laboratory) [35]PS-I (Political Science-Identity)[60]

Altreva Adaptive Modeler [3]oRIS [59]SimAgent (alsosim agent) [67]DigiHiveMesa [52]DALI[18]

Insight Maker [33]AgentBuilder [5]TerraME[72]MacStarLogoMAGSY [47]MAML (Multi-Agent Modeling Language) [48]AgentService [7]OBEUS (Object Based Environment for Urban Simulation) [56]OpenOME [58]Behaviour Composer (Rich Internet Application building on NetLogo) [10]NetLogoSpatial Modeling Environment(SME) [70]JAMEL (Java Agent-based MacroEconomic Laboratory) [35]PS-I (Political Science-Identity)[60]

Altreva Adaptive Modeler [3]oRIS [59]SimAgent (alsosim agent) [67]DigiHiveMesa [52]DALI[18]BreveSeSAm (Shell for Simulated Agent Systems) (fully integrated graphical simulation environment) [63]Cormas(Common-pool Resources and Multi-Agent Systems) [14]

SDML (Strictly Declarative Modeling Language) [61]SoarStarLogoOpenStarLogoStarLogo TNGStarLogoT

SEAS (System Effectiveness Analysis Simulation) [62]GPU Agents [29]GROWlab [30]AgentSheetsVisualBots [73]ZEUS [76]

http://bit.ly/wiki-abms

Free w/ strings attached 27

GPL 16

LGPL 14

Custom licenses 10

Generic ‘Open Source’ 7

Academic free license 4

Apache 2.0 4

‘Unknown’ 4

BSD 3

ABM licenses

26

Most models are from... netLogo (Logo) - bit.ly/abm-netlogo (~60%)

MASON (Java) - bit.ly/abm-mason

RePast (Java) -bit.ly/abm-repast

Mesa? (Python) -bit.ly/abm-mesa

27

Name 2.7 3+ Active Dates

PyPI Description

Simx Y N 11/12-12/14

Y Framework for discrete simulations, optimized for parallel computing; no built in visualization

PyCX Y Y 06/11-03/16

N Repository of ABM examples & GUI script for desktop visualization; Focused on ease of writing; Mostly pure python; not a framework

PyABM Y N 09/12-03/14

Y Partial ABM framework, not working

Indra N Y 12/14-Today

N ABM framework to write models similar to Netlogo; lacks documentation; visualization ability in the future?

Mesa N Y 09/14-Today

Y ABM framework to build models with repeatable components; uses browser for visualization

Modeling in browser

Parable of the Polygons (Javascript & HTML) - ncase.me/polygons

Agent Base (Javascript) - bit.ly/abm-ants

Agent Script (CoffeeScript) - agentscript.org

Mesa (Python) - bit.ly/abm-mesa

28

29

Mesa, ABMs in Python

31

Demo: Schelling in Mesabit.ly/abm-mesa

32

Mesa Growth / UsageStarted in 2014 with 2 people. Now 22!17 were from Sprints!Most were not ABM experts.Students have used it. Gov has shown interest.

ToDo list:Networks (in progress), GIS, Front-end, Increase usability

33

ConclusionABM software needs a lot of workUsers are not “forking” models ... yetNot all models are even sharedEach dominant tool has a different license

34

Things to readCioffi-Revilla, C. (2013). Introduction to computational social science.

Epstein, J. M., & Axtell, R. (1996). Growing artificial societies: social

science from the bottom up.

Gilbert, N., & Troitzsch, K. (2005). Simulation for the social scientist.

McGraw-Hill Education (UK).

Kupers, R., & Colander, D. (2014). Complexity & the Art of Public Policy.

Miller, J. H., & Page, S. E. (2009). Complex adaptive systems.

Simon, H. A. (1996). The sciences of the artificial.

35

The End.Questions?

@jackiekazilgithub.com/projectmesa/mesa

Recommended