The Recursive Porous Agent Simulation Toolkit (Repast) is one of several agent modeling toolkits that are available. Repast borrows many concepts from the Swarm agent-based modeling toolkit [1]. Repast is differentiated from Swarm since Repast has multiple pure implementations in several languages and built-in adaptive features such as genetic algorithms and regression. For reviews of Swarm, Repast, and other agent-modeling toolkits, see the 2002 survey by Serenko and Detlor, the 2002 survey by Gilbert and Bankes, and the 2003 toolkit review by Tobias and Hofmann [2][3][4].
Repast seeks to support the development of extremely flexible models of living social agents, but is not limited to modeling living social entities alone. From the ROAD home page:
"Our goal with Repast is to move beyond the representation of agents as discrete, self-contained entities in favor of a view of social actors as permeable, interleaved, and mutually defining; with cascading and recombinant motives. We intend to support the modeling of belief systems, agents, organizations, and institutions as recursive social constructions."
At its heart, Repast toolkit version 3 can be thought of as a specification for agent-based modeling services or functions. There are three concrete implementations of this conceptual specification. Naturally, all of these versions have the same core services that constitute the Repast system. The implementations differ in their underlying platform and model development languages. The three implementations are Repast for Java (Repast J), Repast for the Microsoft.Net framework (Repast.Net), and Repast for Python Scripting (Repast Py). Repast J is the reference implementation that defines the core services. In general, it is recommended that basic models can be written in Python using Repast Py due to its visual interface and that advanced models be written in Java with Repast J or in C# with Repast .Net.
Repast 3 has a variety of features including the following:
- Repast includes a variety of agent templates and examples. However, the toolkit gives users complete flexibility as to how they specify the properties and behaviors of agents.
-
Repast is fully object-oriented.
-
Repast includes a fully concurrent discrete event scheduler. This scheduler supports both sequential and parallel discrete event operations.
-
Repast offers built-in simulation results logging and graphing tools.
-
Repast has automated Monte Carlo simulation framework.
-
Repast provides a range of two-dimensional agent environments and visualizations.
-
Repast allows users to dynamically access and modify agent properties, agent behavioral equations, and model properties at run time.
-
Repast includes libraries for genetic algorithms, neural networks, random number generation, and specialized mathematics.
-
Repast includes built-in systems dynamics modeling.
-
Repast has social network modeling support tools.
-
Repast has integrated geographical information systems (GIS) support.
-
Repast is fully implemented in a variety of languages including Java and C#.
-
Repast models can be developed in many languages including Java, C#, Managed C++, Visual Basic.Net, Managed Lisp, Managed Prolog, and Python scripting.
-
Repast is available on virtually all modern computing platforms including Windows, Mac OS, and Linux. The platform support includes both personal computers and large-scale scientific computing clusters.
For more information on Repast please see their
website.