In the last ten years there has been a striking increase in the use of agent-based models to study complex systems. This booming is partly due to the success of several software platforms that have reached a level of maturity supporting the development and simulation of agent-based models (Netlogo (Wilensky, 1999), Repast (North et al., 2007), etc.). However, even with these platforms, the problem of the model design is still an open issue.
Indeed, whereas some platforms such as Netlogo provide a dedicated modeling language to ease the model design, they are quite limited when dealing with rich models relying on GIS data. Other platforms, or toolboxes such as Repast, that allow to build more rich models are very complex to use and requires strong computer science skills. Consequently, field experts have to rely on computer scientists to develop models which slows the development and the use of realistic agent-based models.
The GAMA (GIS & Agent-based Modeling Architecture) modeling and simulation platform aims at addressing such shortcomings. This open source platform provides field experts, modelers, and computer scientists with a complete modeling and simulation environment for building rich spatially explicit agent-based simulations. In addition, it is shipped with ready-to-use abstractions for the most common needs (e.g. decision architectures, generic agent?s skill such as movements regardless of the representation of the environment), which are accessible through a dedicated high-level modeling language (GAML) and remains extensible by Java programmers.
The GAMA platforms propose many features:
– Modeling IDE: The GAMA modeling language (GAML) is supported by an advanced modeling IDE which eases the development of complex model (multiple environments and/or multi-level for instance). This IDE features code coloration, syntax and coherency checking.
– Graphical user interface: The simulator graphical interface allows to keep track of the simulation dynamics from multiple point of views. Environment visualizations (2d or 3d), monitors and (agent) inspectors allow to view the instantaneous state of the simulation whereas various charts keep track of the simulation dynamics.
– Multiple environments: GAMA is particularly powerful concerning the management of complex environments. It allows to define several environments that can have different topologies (grid, graph or continuous). Each GAMA agent has a shape that is a 3D simple vector geometry.
– Seamless GIS integration: A particularly interesting feature of GAMA is the possibility to create agents and to define their attributes (in particular their shape) from real data using shapefiles. In order to ease the manipulation of vector geometries, GAMA integrates many GIS operators that are directly available through the GAML language (geometry buffer, convex-hull, intersection, difference, etc.).
– Mathematical model integration: GAMA integrates a built-in numerical solver for ordinary differential equations. This allows to define agent behavior according to differential equations and study coupling (or simply compare) with agent-based models.
Advanced visualization: GAMA provides a high-level graphic library (based on OpenGL) that allows user to define their own custom multi-layer displays. Each of these displays can show different information and represent the agents in different ways.
GAMA has already been used in various large scale applications that share a strong focus on the interactions between agents and complex environments (e.g. Banos et al., 2012; Gaudou et al., 2014; Czura, 2015)
A demo video can be found at https://www.youtube.com/watch?v=6m_-UY8UBuk to illustrate both advanced features and existing applications.
The platform website (www.gama-platform.org) provides modelers with numerous tutorials and GAML language reference. It provides developers with guides on how to extend the platform with their own plugins (GAMA is under GPL) while the code is accessible on the project?s SVN. The GAMA executable for the 3 major OS can also be downloaded from this website.
The tutorial will illustrate most of the GAMA features through the construction of a simple model concerning the propagation of a disease in a small city. In particular, this tutorial shows how to define a GAMA model: the structure of a model, the definition of a species of agents and their display. In addition, this tutorial illustrates how to load GIS data, to agentify them and to use a network of polylines to constrain the movement of agents.
Banos, A., Marilleau, N. and MIRO team: Improving individual accessibility to the city: an agent-based modelling approach. Proc. of ECCS, Bruxelles. (2012)
Gaudou, B., Sibertin-Blanc, C., Therond, O., Amblard, F., Auda, Y., Arcangeli, J. P., … & Mazzega, P: The MAELIA multi-agent platform for integrated assessment of low-water management issues. In International Workshop on Multi-Agent-Based Simulation-MABS 2013 Vol. 8235, pp. pp-85. (2014)
North, M., Howe, T., Collier, N., Vos, J.: A declarative model assembly infrastructure for verification and validation. Proc. of Advancing Social Simulation: 1st World Congress. (2007)
Czura, G., Taillandier, P., Tranouez, P., Daud, ?.: MOSAIIC: City-Level Agent-Based Traffic Simulation Adapted to Emergency Situations. Proceedings of the International Conference on Social Modeling and Simulation, plus Econophysics Colloquium 2014, Springer International Publishing, 265-274. (2015)
Wilensky, U.: Netlogo. Technical report, Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL. (1999)