# Experimenting with Agent-Based Model Simulation Tools
## 2 Agent-Based Models and Simulations
### What Are the Desiderata of an ABM Tool? Although there is a lack of standardized criteria to analyze ABM tools, we can enumerate a series of desiderata deriving from existing work. In the following, we discuss the desirable requirements either explicitly mentioned in the literature by previous ABM-related articles or implicitly addressed and implemented by current ABM tools. Researchers use ABMs to investigate and analyze complex phenomena to understand how each component and the interaction with other elements affect their emerging behavior [5]. Conducting this kind of experiment often demands building elaborated models in terms of the number of agents and the parameters regulating their interactions. The need for implementing and running such models implies the first two fundamentals desiderata of an ABM tool: efficiency and ease of use [5; 17; 20; 26; 27]. These two aspects are heavily influenced by the design of the ABM platform and its programming model and are often two conflicting objectives. Some ABM tools expose their functionalities via a GUI (Graphical User Interface) to enhance user experience and grant high ease of use while limiting the achievable model complexity by preventing the user from personalizing and/or adding more complex dynamics. Conversely, frameworks and libraries based on standard programming languages give room for developing complex ABM by offering generic facilities. As a downside, these tools demand adequate technical knowledge, which may result in a higher perceived difficulty [16], usually mitigated via proper documentation, examples, and tutorials [20; 25; 28]. Developing an ABM means defining different common patterns involving agents' behavior, environment, and interactions. ABM tools should provide ready-to-use methods and interface covering those patterns, allowing the modeler to easily and quickly implement standard actions such as movement and communication, agents' lifecycle and internal state management, environments creation using grids, continuous spaces, and networks, and interaction with the environment [20,29]. Defining a realistic simulation field is a critical feature to accommodate since the simulation environment may provide a rich set of information influencing the agents' behavior. As 80% of the data have a spatial/geographical nature or a geographical component, the ability to work with Geographic Information Systems (GIS) data becomes a fundamental requirement for any ABM tool. GIS-based systems use multiple spatial data models for representing and storing information about phenomena with spatial location and extent [21,22]. In the ABM context, GIS data are particularly crucial, especially for the extensive use of simulation in transportation, urban mobility [30,31], epidemic, and pandemic models [32,33] that incorporate spatial and network topologies to model, for instance, people's realistic activity [34]. Additionally, ABM should transparently handle multiple types of agents and fields within the same simulation without the developer's involvement. Other desiderata relating to the analysis of simulations include facilities for creating a graphical model visualization, tools for statistical and non-statistical analysis, real-time monitoring, and data visualization [3,5,16,20,23,29]. Among tools for statistical analysis, random number generation assumes tremendous importance since ABMs usually include stochastic processes [3,16,35,36], i.e., processes influenced by a specific random component causing the simulation results to be volatile. Researchers need to handle this stochasticity through random number generators that enable them to reliably reproduce a model's behavior and investigate how random distributions affect it [16,20,37]. The intrinsic stochastic nature of most ABMs also affects the reproducibility of such models. In this context, the automated validation process becomes a critical step in ABM development as simulations must be run several times and their results aggregated [36,38,39].