A high-performance, flexible and extensible framework to develop continuous-time agent based models. Its high performance allows it to simulate millions of agents efficiently. Agents are defined by their states (arbitrary R lists). The events are handled in chronological order. This avoids the multi-event interaction problem in a time step of discrete-time simulations, and gives precise outcomes. The states are modified by provided or user-defined events. The framework provides a flexible and customizable implementation of state transitions (either spontaneous or caused by agent interactions), making the framework suitable to apply to epidemiology and ecology, e.g., to model life history stages, competition and cooperation, and disease and information spread. The agent interactions are flexible and extensible. The framework provides random mixing and network interactions, and supports multi-level mixing patterns. It can be easily extended to other interactions such as inter- and intra-households (or workplaces and schools) by subclassing an R6 class. It can be used to study the effect of age-specific, group-specific, and contact- specific intervention strategies, and complex interactions between individual behavior and population dynamics. This modeling concept can also be used in business, economical and political models. As a generic event based framework, it can be applied to many other fields. More information about the implementation and examples can be found at < https://github.com/junlingm/ABM>.
The ABM package provides a high-performance, flexible framework for agent-based modeling. It has an easy-to-use state transition mechanism, that makes it especially suitable for modeling agent based models. For example, an SEIR model can be implemented in 18 lines.
In addition, this framework is a general event-based framework. Yet this framework allows the state of an agent to be quite general, described by a R list taking arbitrary R values. The states are modified by events, which can be easily defined. Thus, it is suitable for a wide range of applications, such as implementing the Gillespie algorithm.
This R package is included in CRAN.
install.packages("ABM")
For the latest development version, use the devtoools::install_github method:
install_github("https://github.com/junlingm/ABM.git")
See more information on the Wiki
This package is supported by a Natural Sciences and Engineering Research Council of Canada (NSERC) Discovery grant, and two NSERC Emerging Infectious Disease Modeling grants (ONMI with Dr. Huaiping Zhu as PI, and MfPH with Dr. V. Kumar Murty and Dr. Jianhong Wu as PI).