Experimenting with Agent-Based Model Simulation Tools
Abstract
:1. Introduction
- A discussion about what can be considered an ABM developing tool and which desiderata each tool should meet;
- A description of the existing open-source general-purpose ABM tools and their comparison under the perspectives of their intrinsic characteristics (e.g., programming language, simulation space), functionalities offered to the user (e.g., GUI, analysis), and scaling capabilities (e.g., parallel/distributed execution);
- A comparison of ABM tools based on their efficiency and ease of use according to their authors’ statements;
- A hands-on comparison of ABM tools by empirically evaluating their ease of installation and setup, the extensiveness of their documentation, and the effort to implement and run some example models;
- A suite of experiments to analytically evaluate each tool’s efficiency and scalability.
2. Agent-Based Models and Simulations
2.1. What Is an ABM?
2.2. What Is an ABM Tool?
2.3. What Are the Desiderata of an ABM Tool?
3. ABM Tools Overview
3.1. Methodology
3.2. ABM Tools Description
4. ABM Tools Comparison
4.1. Available Features
4.2. Declared Ease of Use vs. Efficiency
- Very low: poor modeling/execution APIs are provided by the tool, and the developer is also responsible for many execution/technology-related tasks.
- Low: good modeling, but poor execution APIs are provided by the tool.
- Medium: comprehensive modeling/execution APIs.
- High: improves the previous level by adopting a well-known programming language, such as Python or Java, which widens the number of developers ready to use the tool.
- Very high: tools that offer the previous level by using a Domain-specific Language or a Visual Programming Language specifically developed for ABM.
5. ABM Tools Evaluation
5.1. Hands-on Developer Experience
- Installation and setup. Perceived difficulty in installing and configuring the tool.
- N/A: installation guide not available.
- Easy: an installation script or installer is provided, or the tool can be used as a standard library.
- Hard: information about the installation procedure is vague or it requires technical expertise.
- Documentation and examples. Extensiveness of the documentation and presence of examples and tutorials.
- N/A: no documentation and/or tutorials are available.
- Basic: most functionalities are not documented or only essential information is provided; few or no examples are given.
- Good: all functionalities are documented; some examples are given.
- Extensive: all functionalities are extensively documented; several comprehensive examples exist.
- Effort. Effort required to implement a model, measured in hours.
- Problems. Errors and issues that prevented the tool’s installation or usage.
5.2. Performance Evaluation
- Flockers. Developed by Craig Reynolds, this is one of the most famous ABM simulating a flock’s flying behavior. In this model, the agents move within a continuous toroidal space according to a simple set of rules.
- Schelling. This is a simple segregation model based on a 2D grid in which agents decide whether to move into a new cell based on the status of their neighbors.
- Wolf, Sheep, and Grass. This multi-agent model simulates the population dynamics of predators and prey coexisting in a shared environment.
- ForestFire. This stochastic spreading model is realized as a cellular automaton to reproduce the fire diffusion in a forest.
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Donkin, E.; Dennis, P.; Ustalakov, A.; Warren, J.; Clare, A. Replicating complex agent based models, a formidable task. Environ. Model. Softw. 2017, 92, 142–151. [Google Scholar] [CrossRef] [Green Version]
- Macal, C.M. Everything you need to know about agent-based modelling and simulation. J. Simul. 2016, 10, 144–156. [Google Scholar] [CrossRef]
- Macal, C.M.; North, M.J. Tutorial on agent-based modelling and simulation. J. Simul. 2010, 4, 151–162. [Google Scholar] [CrossRef]
- Siebers, P.O.; Macal, C.M.; Garnett, J.; Buxton, D.; Pidd, M. Discrete-event simulation is dead, long live agent-based simulation! J. Simul. 2010, 4, 204–210. [Google Scholar] [CrossRef]
- Abar, S.; Theodoropoulos, G.K.; Lemarinier, P.; O’Hare, G.M. Agent Based Modelling and Simulation tools: A review of the state-of-art software. Comput. Sci. Rev. 2017, 24, 13–33. [Google Scholar] [CrossRef]
- García-Magariño, I.; Lombas, A.S.; Plaza, I.; Medrano, C. ABS-SOCI: An Agent-Based Simulator of Student Sociograms. Appl. Sci. 2017, 7, 1126. [Google Scholar] [CrossRef] [Green Version]
- Farmer, J.D.; Foley, D. The economy needs agent-based modelling. Nature 2009, 460, 685–686. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Bert, F.; North, M.; Rovere, S.; Tatara, E.; Macal, C.; Podestá, G. Simulating agricultural land rental markets by combining agent-based models with traditional economics concepts: The case of the Argentine Pampas. Environ. Model. Softw. 2015, 71, 97–110. [Google Scholar] [CrossRef] [Green Version]
- Farmer, J.D.; Hepburn, C.; Mealy, P.; Teytelboym, A. A Third Wave in the Economics of Climate Change. Environ. Resour. Econ. 2015, 62, 329–357. [Google Scholar] [CrossRef]
- Hailegiorgis, A.; Crooks, A.; Cioffi-Revilla, C. An Agent-Based Model of Rural Households’ Adaptation to Climate Change. J. Artif. Soc. Soc. Simul. 2018, 21, 4. [Google Scholar] [CrossRef]
- Waleed, M.; Um, T.W.; Kamal, T.; Khan, A.; Zahid, Z.U. SIM-D: An Agent-Based Simulator for Modeling Contagion in Population. Appl. Sci. 2020, 10, 7745. [Google Scholar] [CrossRef]
- Antelmi, A.; Cordasco, G.; Spagnuolo, C.; Scarano, V. A Design-Methodology for Epidemic Dynamics via Time-Varying Hypergraphs. In Proceedings of the 19th International Conference on Autonomous Agents and MultiAgent Systems, Auckland, New Zealand, 9–13 May 2020; International Foundation for Autonomous Agents and Multiagent Systems: Richland, SC, USA, 2020; pp. 61–69. [Google Scholar] [CrossRef]
- Kato, T.; Kamoshida, R. Multi-Agent Simulation Environment for Logistics Warehouse Design Based on Self-Contained Agents. Appl. Sci. 2020, 10, 7552. [Google Scholar] [CrossRef]
- Serrano-Hernandez, A.; Faulin, J.; Hirsch, P.; Fikar, C. Agent-based simulation for horizontal cooperation in logistics and transportation: From the individual to the grand coalition. Simul. Model. Pract. Theory 2018, 85, 47–59. [Google Scholar] [CrossRef]
- Allan, R.J. Survey of Agent Based Modelling and Simulation Tools; Science & Technology Facilities Council: New York, NY, USA, 2010. [Google Scholar]
- Railsback, S.F.; Lytinen, S.L.; Jackson, S.K. Agent-based Simulation Platforms: Review and Development Recommendations. Simulation 2006, 82, 609–623. [Google Scholar] [CrossRef]
- Kravari, K.; Bassiliades, N. A Survey of Agent Platforms. J. Artif. Soc. Soc. Simul. 2015, 18, 11. [Google Scholar] [CrossRef]
- Rousset, A.; Herrmann, B.; Lang, C.; Philippe, L. A survey on parallel and distributed multi-agent systems for high performance computing simulations. Comput. Sci. Rev. 2016, 22, 27–46. [Google Scholar] [CrossRef]
- Pal, C.; Leon, F.; Paprzycki, M.; Ganzha, M. A Review of Platforms for the Development of Agent Systems. arXiv 2020, arXiv:2007.08961. [Google Scholar]
- Castle, C.; Crooks, A. Principles and Concepts of Agent-Based Modelling for Developing Geospatial Simulations; Working Paper. CASA Working Papers (110); Centre for Advanced Spatial Analysis (UCL): London, UK, 2006; Volume 110. [Google Scholar]
- Brown, D.G.; Riolo, R.; Robinson, D.T.; North, M.; Rand, W. Spatial process and data models: Toward integration of agent-based models and GIS. J. Geogr. Syst. 2005, 7, 25–47. [Google Scholar] [CrossRef] [Green Version]
- Taillandier, P.; Gaudou, B.; Grignard, A.; Huynh, Q.N.; Marilleau, N.; Caillou, P.; Philippon, D.; Drogoul, A. Building, composing and experimenting complex spatial models with the GAMA platform. GeoInformatica 2019, 23, 299–322. [Google Scholar] [CrossRef] [Green Version]
- Gilbert, N.; Bankes, S. Platforms and methods for agent-based modeling. Proc. Natl. Acad. Sci. USA 2002, 99, 7197–7198. [Google Scholar] [CrossRef]
- Bordini, R.H.; Braubach, L.; Dastani, M.; Fallah-Seghrouchni, A.E.; Gómez-Sanz, J.J.; Leite, J.; O’Hare, G.M.P.; Pokahr, A.; Ricci, A. A Survey of Programming Languages and Platforms for Multi-Agent Systems. Informatica 2006, 30, 33–44. [Google Scholar]
- Nikolai, C.; Madey, G. Tools of the Trade: A Survey of Various Agent Based Modeling Platforms. J. Artif. Soc. Soc. Simul. 2009, 12, 1–2. [Google Scholar]
- Theodoropoulos, G.; Minson, R.; Ewald, R.; Lees, M.; Uhrmacher, A.; Weyns, D. Simulation Engines for Multi-Agent Systems. In Multi-Agent Systems: Simulation and Applications; Taylor & Francis: Abingdon, UK, 2009; Chapter 3. [Google Scholar]
- Suryanarayanan, V.; Theodoropoulos, G.; Lees, M. PDES-MAS: Distributed Simulation of Multi-agent Systems. Procedia Comput. Sci. 2013, 18, 671–681. [Google Scholar] [CrossRef] [Green Version]
- Tobias, R.; Hofmann, C. Evaluation of free Java-libraries for social-scientific agent based simulation. J. Artif. Soc. Soc. Simul. 2004, 7, 1–6. [Google Scholar]
- Gupta, R.; Kansal, G. A Survey on Comparative Study of Mobile Agent Platforms. Int. J. Eng. Sci. Technol. 2011, 3, 1943–1948. [Google Scholar]
- Bartley, B. Mobility impacts, reactions and opinions: Traffic demand management options in Europe: The MIRO Project. Traffic Eng. Control 1995, 36, 596–602. [Google Scholar]
- Zia, K.; Farrahi, K.; Riener, A.; Ferscha, A. An agent-based parallel geo-simulation of urban mobility during city-scale evacuation. Simulation 2013, 89, 1184–1214. [Google Scholar] [CrossRef]
- Carley, K.; Fridsma, D.; Casman, E.; Yahja, A.; Altman, N.; Chen, L.C.; Kaminsky, B.; Nave, D. BioWar: Scalable agent-based model of bioattacks. IEEE Trans. Syst. Man Cybern. Part Syst. Hum. 2006, 36, 252–265. [Google Scholar] [CrossRef]
- Epstein, J.M.; Goedecke, D.M.; Yu, F.; Morris, R.J.; Wagener, D.K.; Bobashev, G.V. Controlling Pandemic Flu: The Value of International Air Travel Restrictions. PLoS ONE 2007, 2, e401. [Google Scholar] [CrossRef]
- Zhuge, C.; Shao, C.; Wang, S.; Hu, Y. An agent- and GIS-based virtual city creator: A case study of Beijing, China. J. Transp. Land Use 2018, 11, 1231–1256. [Google Scholar] [CrossRef] [Green Version]
- Axelrod, R. Advancing the Art of Simulation in the Social Sciences. In Proceedings of the Simulating Social Phenomena; Conte, R., Hegselmann, R., Terna, P., Eds.; Springer: Berlin/Heidelberg, Germany, 1997; pp. 21–40. [Google Scholar]
- Axtell, R.; Axelrod, R.; Epstein, J.M.; Cohen, M.D. Aligning simulation models: A case study and results. Comput. Math. Organ. Theory 1996, 1, 123–141. [Google Scholar] [CrossRef] [Green Version]
- Heath, B.; Hill, R.; Ciarallo, F. A Survey of Agent-Based Modeling Practices (January 1998 to July 2008). J. Artif. Soc. Soc. Simul. 2009, 12, 9. [Google Scholar]
- Bankes, S.C. Agent-based modeling: A revolution? Proc. Natl. Acad. Sci. USA 2002, 99, 7199–7200. [Google Scholar] [CrossRef] [Green Version]
- Brown, D.; Page, S.; Riolo, R.; Zellner, M.; Rand, W. Path dependence and the validation of agent-based spatial models of land use. Int. J. Geogr. Inf. Sci. 2005, 19, 153–174. [Google Scholar] [CrossRef] [Green Version]
- Leon, F. ActressMAS, a .NET Multi-Agent Framework Inspired by the Actor Model. Mathematics 2022, 10, 382. [Google Scholar] [CrossRef]
- Foramitti, J. AgentPy: A package for agent-based modeling in Python. J. Open Source Softw. 2021, 6, 3065. [Google Scholar] [CrossRef]
- Datseris, G.; Vahdati, A.R.; DuBois, T.C. Agents.jl: A performant and feature-full agent-based modeling software of minimal code complexity. Simulation 2022, 003754972110688. [Google Scholar] [CrossRef]
- Borges, F.; Gutierrez-Milla, A.; Luque, E.; Suppi, R. Care HPS: A high performance simulation tool for parallel and distributed agent-based modeling. Future Gener. Comput. Syst. 2017, 68, 59–73. [Google Scholar] [CrossRef]
- Bommel, P.; Becu, N.; Le Page, C.; Bousquet, F. Cormas: An Agent-Based Simulation Platform for Coupling Human Decisions with Computerized Dynamics. In Proceedings of the Simulation and Gaming in the Network Society; Springer: Singapore, 2016; pp. 387–410. [Google Scholar] [CrossRef]
- Nourisa, J.; Zeller-Plumhoff, B.; Willumeit-Römer, R. CppyABM: An open-source agent-based modeling library to integrate C++ and Python. Softw. Pract. Exp. 2022, 52, 1337–1351. [Google Scholar] [CrossRef]
- Standish, R.K.; Leow, R. EcoLab: Agent Based Modeling for C++ programmers. arXiv 2004. [Google Scholar] [CrossRef]
- Cardinot, M.; O’Riordan, C.; Griffith, J.; Perc, M. Evoplex: A platform for agent-based modeling on networks. SoftwareX 2019, 9, 199–204. [Google Scholar] [CrossRef]
- Holcombe, M.; Coakley, S.; Smallwood, R. A general framework for agent-based modelling of complex systems. In Proceedings of the 2006 European Conference Complex Systems, Paris, France, 25–29 September 2006. [Google Scholar]
- Coakley, S.; Gheorghe, M.; Holcombe, M.; Chin, S.; Worth, D.; Greenough, C. Exploitation of High Performance Computing in the FLAME Agent-Based Simulation Framework. In Proceedings of the 2012 IEEE 14th International Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems, Liverpool, UK, 25–27 June 2012; pp. 538–545. [Google Scholar] [CrossRef]
- Hai, H.B.; Contamin, L.; Choisy, M.; Brugière, A. Gamar: An R Interface to the GAMA Platform. Available online: https://github.com/r-and-gama/gamar (accessed on 31 October 2022).
- Fortmann-Roe, S. Insight Maker: A general-purpose tool for web-based modeling & simulation. Simul. Model. Pract. Theory 2014, 47, 28–45. [Google Scholar] [CrossRef] [Green Version]
- Bellifemine, F.; Poggi, A.; Rimassa, G. Developing multi-agent systems with a FIPA-compliant agent framework. Softw. Pract. Exp. 2001, 31, 103–128. [Google Scholar] [CrossRef]
- Richiardi, M.G.; Richardson, R.E. JAS-mine: A new platform for microsimulation and agent-based modelling. Int. J. Microsimulation 2017, 10, 106–134. [Google Scholar] [CrossRef]
- Antelmi, A.; Cordasco, G.; D’Auria, M.; De Vinco, D.; Negro, A.; Spagnuolo, C. On Evaluating Rust as a Programming Language for the Future of Massive Agent-Based Simulations. In Proceedings of the Methods and Applications for Modeling and Simulation of Complex Systems; Springer: Singapore, 2019; pp. 15–28. [Google Scholar]
- Gutknecht, O.; Ferber, J. The MadKit Agent Platform Architecture. In Proceedings of the Infrastructure for Agents, Multi-Agent Systems, and Scalable Multi-Agent Systems; Wagner, T., Rana, O.F., Eds.; Springer: Berlin/Heidelberg, Germany, 2001; pp. 48–55. [Google Scholar]
- Luke, S.; Cioffi-Revilla, C.; Panait, L.; Sullivan, K.; Balan, G. MASON: A Multiagent Simulation Environment. Simulation 2005, 81, 517–527. [Google Scholar] [CrossRef] [Green Version]
- Sullivan, K.; Coletti, M.; Luke, S.; Crooks, A. GeoMason: Geospatial Support for MASON. 2010. Available online: https://cs.gmu.edu/~eclab/projects/mason/extensions/geomason/ (accessed on 31 October 2022).
- White, D.R. Software review: The ECJ toolkit. Genet. Program. Evolvable Mach. 2012, 13, 65–67. [Google Scholar] [CrossRef]
- Cordasco, G.; Scarano, V.; Spagnuolo, C. Distributed MASON: A scalable distributed multi-agent simulation environment. Simul. Model. Pract. Theory 2018, 89, 15–34. [Google Scholar] [CrossRef]
- Chuang, T.; Fukuda, M. A Parallel Multi-agent Spatial Simulation Environment for Cluster Systems. In Proceedings of the 2013 IEEE 16th International Conference on Computational Science and Engineering, Sydney, Australia, 3–5 December 2013; pp. 143–150. [Google Scholar] [CrossRef]
- Kazil, J.; Masad, D.; Crooks, A. Utilizing Python for Agent-Based Modeling: The Mesa Framework. In Proceedings of the Social, Cultural, and Behavioral Modeling; Springer International Publishing: Berlin/Heidelberg, Germany, 2020; pp. 308–317. [Google Scholar]
- Uri, W. Modeling nature’s emergent patterns with multi-agent languages. In Proceedings of the EuroLogo 2001, Linz, Austria, 21–25 August 2001. [Google Scholar]
- Jaxa-Rozen, M.; Kwakkel, J.H. PyNetLogo: Linking NetLogo with Python. J. Artif. Soc. Soc. Simul. 2018, 21, 4. [Google Scholar] [CrossRef] [Green Version]
- Abbott, R.; Lim, J. PyLogo: A Python Reimplementation of (Much of) NetLogo. In Proceedings of the 11th International Conference on Simulation and Modeling Methodologies, Technologies and Applications—SIMULTECH, INSTICC, SciTePress, Online, 7–9 July 2021; pp. 199–206. [Google Scholar] [CrossRef]
- Thiele, J.C. R Marries NetLogo: Introduction to the RNetLogo Package. J. Stat. Softw. 2014, 58, 1–41. [Google Scholar] [CrossRef] [Green Version]
- Jiang, L.; Zhao, C. The Netlogo-Based Dynamic Model for the Teaching. In Proceedings of the 2009 Ninth International Conference on Hybrid Intelligent Systems, Shenyang, China, 12–14 August 2009; Volume 2, pp. 49–53. [Google Scholar] [CrossRef]
- Railsback, S.F.; Ayllón, D.; Berger, U.; Grimm, V.; Lytinen, S.; Sheppard, C.; Thiele, J. Improving Execution Speed of Models Implemented in NetLogo. J. Artif. Soc. Soc. Simul. 2017, 20, 3. [Google Scholar] [CrossRef] [Green Version]
- Rubio-Campillo, X. Pandora: A Versatile Agent-Based Modelling Platform for Social Simulation. In Proceedings of the SIMUL 2014, The Sixth International Conference on Advances in System Simulation, Nice, France, 12–16 October 2014; pp. 29–34. [Google Scholar] [CrossRef]
- North, M.J.; Collier, N.T.; Vos, J.R. Experiences creating three implementations of the repast agent modeling toolkit. ACM Trans. Model. Comput. Simul. 2006, 16, 1–25. [Google Scholar] [CrossRef]
- North, M.J.; Collier, N.T.; Ozik, J.; Tatara, E.R.; Macal, C.M.; Bragen, M.; Sydelko, P. Complex adaptive systems modeling with Repast Simphony. Complex Adapt. Syst. Model. 2013, 1, 1–26. [Google Scholar] [CrossRef] [Green Version]
- Collier, N.T.; Ozik, J.; Tatara, E.R. Experiences in Developing a Distributed Agent-based Modeling Toolkit with Python. In Proceedings of the 2020 IEEE/ACM 9th Workshop on Python for High-Performance and Scientific Computing (PyHPC), Atlanta, GA, USA, 13 November 2020; pp. 1–12. [Google Scholar] [CrossRef]
- Collier, N.; North, M. Parallel agent-based simulation with Repast for High Performance Computing. Simulation 2013, 89, 1215–1235. [Google Scholar] [CrossRef]
- Florin, L. ActressMas. Available online: https://github.com/florinleon/ActressMas (accessed on 31 October 2022).
- Foramitti, J. AgentPy—Agent-Based Modeling in Python. Available online: https://agentpy.readthedocs.io/en/latest/ (accessed on 31 October 2022).
- Datseris, G.; Vahdati, A.R.; DuBois, T.C. Agents.jl. Available online: https://juliadynamics.github.io/Agents.jl/ (accessed on 31 October 2022).
- Bommel, P.; Becu, N.; Le Page, C.; Bousquet, F. CORMAS: COmmon-Pool Resources and Multi-Agent Simulations. Available online: http://cormas.cirad.fr/indexeng.html (accessed on 31 October 2022).
- Nourisa, J. CppyABM. Available online: https://pypi.org/project/cppyabm/ (accessed on 31 October 2022).
- Standish, R.K.; Leow, R. EcoLab. Available online: https://ecolab.sourceforge.net/ (accessed on 31 October 2022).
- Cardinot, M.; O’Riordan, C.; Griffith, J.; Perc, M. Evoplex–Agent-Based Modeling on Networks. Available online: https://evoplex.org/ (accessed on 31 October 2022).
- Laboratory, S.R.A. FLAME. Available online: http://flame.ac.uk/ (accessed on 31 October 2022).
- Richmond, P. FLAME GPU. Available online: https://flamegpu.com/ (accessed on 31 October 2022).
- Taillandier, P.; Gaudou, B.; Grignard, A.; Huynh, Q.N.; Marilleau, N.; Caillou, P.; Philippon, D.; Drogoul, A. GAMA Platform. Available online: https://gama-platform.org/ (accessed on 31 October 2022).
- Fortmann-Roe, S. Insight Maker. Available online: https://insightmaker.com/ (accessed on 31 October 2022).
- Bellifemine, F.; Caire, G.; Rimassa, G.; Poggi, A.; Bergenti, F.; Trucco, T.; Gotta, D.; Cortese, E.; Quarta, F.; Vitaglione, G. JADE Site|Java Agent Development Framework. Available online: https://jade.tilab.com/ (accessed on 31 October 2022).
- Richiardi, M.G.; Richardson, R.E. JAS-Mine. Available online: http://jas-mine.net/ (accessed on 31 October 2022).
- Spagnuolo, C.; D’Ambrosio, G.; De Vinco, D.; Postiglione, L.; Foglia, F.; Caramante, P. krABMaga. Available online: https://krabmaga.github.io/ (accessed on 31 October 2022).
- Gutknecht, O.; Ferber, J. MaDKit. Available online: https://www.madkit.net/madkit/ (accessed on 31 October 2022).
- Sean, L.; Catalin Balan, G.; Sullivan, K.; Panait, L. MASON Multiagent Simulation Toolkit. Available online: https://cs.gmu.edu/~eclab/projects/mason/ (accessed on 31 October 2022).
- Munehiro, F.; Freksa, C.; Salathe, E.; Wooyoung, K.; Yasushi, K. MASS: A Parallelizing Library for Multi-Agent Spatial Simulation. Available online: https://depts.washington.edu/dslab/MASS/ (accessed on 31 October 2022).
- Boyu, W.; Kazil, J. Mesa-Geo: GIS Extension for Mesa Agent-Based Modeling. Available online: https://github.com/projectmesa/mesa-geo (accessed on 31 October 2022).
- Mesa Community. Mesa 3D Graphics Library. Available online: https://github.com/Mesa3D/mesa (accessed on 31 October 2022).
- Kazil, J.; Masad, D.; Crooks, A. Mesa: Agent-Based Modeling in Python 3+. Available online: https://mesa.readthedocs.io/en/latest/ (accessed on 31 October 2022).
- Abbott, R.; Lim, J. PyLogo. Available online: https://pylogo.sourceforge.net/ (accessed on 31 October 2022).
- Jaxa-Rozen, M.; Kwakkel, J.H. pyNetLogo. Available online: https://pynetlogo.readthedocs.io/en/latest/ (accessed on 31 October 2022).
- Thiele, J.C. RNetLogo. Available online: http://rnetlogo.r-forge.r-project.org/ (accessed on 31 October 2022).
- Russell, E.; Hovet, J. NetLogo Gis Extension. Available online: https://ccl.northwestern.edu/netlogo/docs/gis.html (accessed on 31 October 2022).
- Brady, C.; Jeremy; Grider, R.; Brandes, A. NetLogo View2.5D Extension. Available online: https://github.com/NetLogo/View2.5D (accessed on 31 October 2022).
- Uri, W.; Hjorth, A.; Bain, C.; Payette, N.; Head, B.; Bertsche, J. NetLogo. Available online: https://ccl.northwestern.edu/netlogo (accessed on 31 October 2022).
- Rubio-Campillo, X. Pandora. Available online: http://xrubio.github.io/pandora/ (accessed on 31 October 2022).
- Collier, N.; Murphy, J.T.; Ozik, J.; Rimer, S.; Sheeler, D.; Tatara, E. Repast Suite. Available online: https://repast.github.io/ (accessed on 31 October 2022).
- Collier, N.; Murphy, J.T.; Ozik, J.; Rimer, S.; Sheeler, D.; Tatara, E. Repast HPC. Available online: https://repast.github.io/repast_hpc.html (accessed on 31 October 2022).
- Foramitti, J. AgentPy CI/CD. Available online: https://github.com/JoelForamitti/agentpy/blob/master/.github/workflows/test.yml (accessed on 9 December 2022).
- Datseris, G.; Vahdati, A.R.; DuBois, T.C. Agents.jl CI/CD. Available online: https://github.com/JuliaDynamics/Agents.jl/blob/main/.github/workflows/ci.yml (accessed on 9 December 2022).
- Datseris, G.; Vahdati, A.R.; DuBois, T.C. Distributed Computing—The Julia Language. Available online: https://docs.julialang.org/en/v1/stdlib/Distributed/ (accessed on 31 October 2022).
- Bommel, P.; Becu, N.; Le Page, C.; Bousquet, F. CORMAS CI/CD. Available online: https://github.com/cormas/cormas/blob/master/.github/workflows/test.yml (accessed on 9 December 2022).
- Standish, R.K.; Leow, R. EcoLab CI/CD. Available online: https://github.com/highperformancecoder/ecolab/blob/master/.github/workflows/main.yml (accessed on 9 December 2022).
- Cardinot, M.; O’Riordan, C.; Griffith, J.; Perc, M. Evoplex—CI/CD. Available online: https://github.com/evoplex/evoplex/blob/master/.travis.yml (accessed on 9 December 2022).
- Richmond, P. FLAME GPU CI/CD. Available online: https://github.com/FLAMEGPU/FLAMEGPU2/blob/master/.github/workflows/Draft-Release.yml (accessed on 9 December 2022).
- Bellifemine, F.; Caire, G.; Rimassa, G.; Poggi, A.; Bergenti, F.; Trucco, T.; Gotta, D.; Cortese, E.; Quarta, F.; Vitaglione, G. JADE CI/CD. Available online: https://jade-project.gitlab.io/docs/add-on/JADE_TestSuite.pdf (accessed on 9 December 2022).
- Spagnuolo, C.; D’Ambrosio, G.; De Vinco, D.; Postiglione, L.; Foglia, F.; Caramante, P. krABMaga CI/CD. Available online: https://github.com/krABMaga/krABMaga/blob/main/.github/workflows/rust-ci.yml (accessed on 9 December 2022).
- Gutknecht, O.; Ferber, J. MaDKit CI/CD. Available online: https://github.com/fmichel/MaDKit/blob/master/.travis.yml (accessed on 9 December 2022).
- George Mason University’s ECLab Evolutionary Computation Laboratory. ECJ A Java-Based Evolutionary Computation Research System. Available online: https://cs.gmu.edu/~eclab/projects/ecj/ (accessed on 31 October 2022).
- Wang, C.H.; Wei, E.; Lather, R.S.; Patel, R.; Dinh, L.; D’Auria, M.; D’Ambrosio, G.; Vinco, D.D.; Moffatt, R.; Osman, Z.; et al. Distributed MASON. Available online: https://cs.gmu.edu/~eclab/projects/mason/extensions/distributed/ (accessed on 31 October 2022).
- Munehiro, F.; Freksa, C.; Salathe, E.; Wooyoung, K.; Yasushi, K. MASS CI/CD. Available online: https://bitbucket.org/mass_library_developers/mass_java_core/src/master/bitbucket-pipelines.yml (accessed on 9 December 2022).
- Kazil, J.; Masad, D.; Crooks, A. Mesa CI/CD. Available online: https://github.com/projectmesa/mesa/blob/main/.github/workflows/build_lint.yml (accessed on 9 December 2022).
- Staelin, C. NetLogo Stats Extension. Available online: https://github.com/cstaelin/Stats-Extension (accessed on 31 October 2022).
- Tisue, S.; Wilensky, U. BehaviorSpace. Available online: https://ccl.northwestern.edu/netlogo/docs/behaviorspace.html (accessed on 31 October 2022).
- Rngs—Random Number Generator extension for NetLogo. Available online: https://github.com/AFMac/rngs (accessed on 31 October 2022).
- Uri, W.; Hjorth, A.; Bain, C.; Payette, N.; Head, B.; Bertsche, J. NetLogo CI/CD. Available online: https://github.com/NetLogo/NetLogo/blob/hexy/.github/workflows/main.yml (accessed on 9 December 2022).
- Ozik, J.; Collier, N.; Wozniak, J.; Spagnuolo, C.; An, G. EMEWS: Extreme-Scale Model Exploration with Swift. Available online: https://emews.github.io/ (accessed on 31 October 2022).
- McMahan, H.B.; Moore, E.; Ramage, D.; Hampson, S.; y Arcas, B.A. Communication-Efficient Learning of Deep Networks from Decentralized Data. In Proceedings of the International Conference on Artificial Intelligence and Statistics, Cadiz, Spain, 9–11 May 2016. [Google Scholar]
- Polato, M. Federated Variational Autoencoder for Collaborative Filtering. In Proceedings of the 2021 International Joint Conference on Neural Networks (IJCNN), Shenzhen, China, 18–22 July 2021; pp. 1–8. [Google Scholar] [CrossRef]
- Ghimire, B.; Rawat, D.B. Recent Advances on Federated Learning for Cybersecurity and Cybersecurity for Federated Learning for Internet of Things. IEEE Internet Things J. 2022, 9, 8229–8249. [Google Scholar] [CrossRef]
- Imteaj, A.; Amini, M.H. Leveraging asynchronous federated learning to predict customers financial distress. Intell. Syst. Appl. 2022, 14, 200064. [Google Scholar] [CrossRef]
- Roesch, M.; Linder, C.; Zimmermann, R.; Rudolf, A.; Hohmann, A.; Reinhart, G. Smart Grid for Industry Using Multi-Agent Reinforcement Learning. Appl. Sci. 2020, 10, 6900. [Google Scholar] [CrossRef]
- Zhang, Z.; Yang, T.; Liu, Y. SABlockFL: A blockchain-based smart agent system architecture and its application in federated learning. Int. J. Crowd Sci. 2020, 4, 133–147. [Google Scholar] [CrossRef]
- Połap, D.; Srivastava, G.; Yu, K. Agent architecture of an intelligent medical system based on federated learning and blockchain technology. J. Inf. Secur. Appl. 2021, 58, 102748. [Google Scholar] [CrossRef]
- Rincon, J.; Julian, V.; Carrascosa, C. FLaMAS: Federated Learning Based on a SPADE MAS. Appl. Sci. 2022, 12, 3701. [Google Scholar] [CrossRef]
Reference | Year | Selection Criteria | Number of Tools | Comparison Criteria | Benchmark | Hands-on Experience |
---|---|---|---|---|---|---|
Railsback et al. [16] | 2006 | Publicly released ABM tools | 4 | Agent-related functionalities (e.g., movement, scheduling), scalability, reproducibility | ✓ | ✓ |
Allan et al. [15] | 2010 | Authors’ curated list | 31 | |||
Kravari et al. [17] | 2015 | Actively supported ABM tools | 24 | Security, performance, user support, scalability, license, learning curve | ||
Rousset et al. [18] | 2016 | Parallel and distributed ABM computing tools | 10 | Agent-related functionalities (e.g., movement, scheduling), scalability, reproducibility | ✓ | ✓ |
Abar et al. [5] | 2017 | - | 85 | Programming language, GUI, OS Support, ease of use, scalability, license | ||
Pal et al. [19] | 2020 | - | 134 | |||
Ours | 2022 | Open-source actively supported ABM tools, associated with peer-reviewed articles | 23 | Available features (e.g., visual programming, HPC-related), ease of use, efficiency | ✓ | ✓ |
Feature | Description |
---|---|
Programming Language | Programming language adopted for model development. |
GUI | Availability of a Graphical User Interface (GUI) to control the simulation execution. |
Visual programming | Use of a Visual Programming Language (VSL) to support the model development phase. |
Simulation environment | Fields and topologies available to create the simulation environment, including GIS data. |
Visualization | Possibility to graphically visualize the model. |
Snapshot and checkpoint | Presence of functionalities to pause and save the simulation state and resume it later. |
Modularity and reusability | Adoption of a modular design supporting the reuse of portions of simulation code that can be combined to realize other simulations. |
Inspector | Facilities for retrieving the model’s information during its execution. |
Analysis tools | Presence of tools for statistical and non-statistical analysis, creation of charts and plots. |
Random number generator | Support for the custom generation of random numbers. |
Batch runner | Facilities to automatically perform multiple runs of the same simulation to assess whether stochastic processes influence the model’s output. |
Continuous Integration (CI)/Continuous Development (CD) | Facilities to let developers automate code continuous integration and delivery while keeping track of the simulation versions. |
Model exploration and optimization (MEO) | Facilities for exploring the model’s behavior when its input parameters vary and optimizing its outcomes. This feature also includes automated testing. |
HPC | Exploitation of parallel and distributed computing as well as integration with cloud platforms for in-model execution or optimization. |
↓ Tool/Feature → | Programming Language | GUI | VSL | Simulation Environment | Visualization | Snapshot and Checkpoint | Code |
---|---|---|---|---|---|---|---|
ActressMAS | C# | ✓ | Generic | [73] | |||
AgentPy | Python | ✓ | Grid, continuous, network | 2D | [74] | ||
Agents.jl | Julia | ✓ | Grid, continuous, network, GIS | 2D, 3D | [75] | ||
Care HPS | C++ | [43] | |||||
Cormas | VisualWorks | ✓ | ✓ | Generic | 2D | ✓ | [76] |
CppyABM | C++ and Python | Generic | 2D, 3D | [77] | |||
EcoLab | C++ and TCL | ✓ | Grid, continuous, network | 2D | ✓ | [78] | |
EvoPlex | C++ | ✓ | Grid, continuous, network | 2D | [79] | ||
FLAME | C++ and XXML | Generic | [80] | ||||
FLAME GPU | C++ and Python | Generic | 3D | [81] | |||
GAMA | GAML | ✓ | ✓ | Grid, continuous, network, GIS | 2D, 3D | ✓ | [82] |
Insight Maker | JavaScript | ✓ | ✓ | Grid, network | [83] | ||
Jade | Java | ✓ | Generic | ✓ | [84] | ||
JAS-mine | Java | ✓ | Grid | [85] | |||
krABMaga | Rust | ✓ | Grid, continuous, network | 2D | [86] | ||
MADKIT | Java | ✓ | ✓ | [87] | |||
MASON | Java | ✓ | Grid, continuous, network, GIS with GeoMASON [57] | 2D, 3D | ✓ | [88] | |
MASS | Three versions available: Java, C++, CUDA | ✓ | ✓ | Grid, network | 2D | [89] | |
Mesa | Python | ✓ | Grid, continuous, network, GIS with Mesa-Geo [90] | 2D, 3D with Mesa 3D [91] | [92] | ||
NetLogo | NetLogo, Python [93,94] and R [95] with extension | ✓ | ✓ | Grid, continuous, network, GIS with extension [96] | 2D, 3D with extension [97] | ✓ | [98] |
Pandora | C++ and Python | ✓ | Generic, GIS | ✓ | [99] | ||
Repast | Three version available: C++, Java, Python | ✓ | Grid, continuous, network, GIS | 2D, 3D | ✓ | [100] | |
RepastHPC | XXML | Generic | 3D | ✓ | [101] |
↓ Tool/Feature → | Inspector | Analysis | Random Number | Batch | CI/CD | MEO | HPC | |
---|---|---|---|---|---|---|---|---|
Tools | Generator | Runner | In-Model | MEO | ||||
ActressMAS | ✓ | ✓ | ✓ | Parallel, distributed | ||||
AgentPy | ✓ | ✓ | ✓ | With extension [102] | ✓ | Parallel | ||
Agents.jl | ✓ | ✓ | ✓ | ✓ | With extension [103] | ✓ | Distributed via the Distributed module [104] | |
Care HPS | ✓ | Parallel, distributed | ||||||
Cormas | ✓ | ✓ | With extension [105] | ✓ | ||||
CppyABM | ✓ | ✓ | ✓ | Parallel | ||||
EcoLab | ✓ | ✓ | ✓ | With extension [106] | Parallel, distributed | |||
EvoPlex | ✓ | ✓ | ✓ | ✓ | With extension [107] | Parallel | ||
FLAME | ✓ | ✓ | Parallel, distributed | |||||
FLAME GPU | ✓ | ✓ | With extension [108] | Parallel, distributed | ||||
GAMA | ✓ | With gamar [50] | ✓ | ✓ | ✓ | ✓ | Parallel | Parallel |
Insight Maker | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Jade | ✓ | ✓ | ✓ [109] | Parallel, distributed | ||||
JAS-mine | ✓ | ✓ | ✓ | ✓ | ✓ | |||
krABMaga | ✓ | ✓ | ✓ | With extension [110] | ✓ | Parallel, distributed, cloud | ||
MADKIT | ✓ | ✓ | With extension [111] | Distributed | ||||
MASON | ✓ | ✓ | ✓ | ✓ | With ECJ [112] | Distributed With Distributed MASON [113] | Parallel, distributed | |
MASS | ✓ | ✓ | ✓ | ✓ | With extension [114] | Parallel, distributed, cloud | ||
Mesa | ✓ | ✓ | ✓ | With extension [115] | ✓ | Parallel | ||
NetLogo | ✓ | With extension [116] | With BehaviorSpace [117] | With extension [118] | With extension [119] | With BehaviorSpace [117] | Parallel | |
Pandora | ✓ | ✓ | ✓ | ✓ | ✓ | Parallel, distributed | ||
Repast | ✓ | ✓ | ✓ | ✓ | With EMEWS [120] | Parallel, distributed | Distributed | |
RepastHPC | ✓ | ✓ | ✓ | Parallel |
DECLARED EASE OF USE | ||||||
---|---|---|---|---|---|---|
Very Low | Low | Medium | High | Very High | ||
D E C L A R E D E F F I C I E N C Y | Very low | Cormas Mesa |
Insight Maker NetLogo GAMA | |||
Low | AgentPy | |||||
Medium | FLAME MADKIT Repast |
ActressMAS Evoplex | ||||
High | EcoLab |
Agents.jl JADE krABMaga MASON MASS Pandora | CppyABM JAS-mine | |||
Very high | Care HPS FLAMEGPU | RepastHPC |
Tool | Installation and Setup | Documentation and Examples | Effort | Problems |
---|---|---|---|---|
ActressMAS | N/A | Basic | ∼4 h | No installation information provided; only works with VisualStudio. |
AgentPy | Easy | Good | ∼2 h | |
Agents.jl | Easy | Extensive | ∼2 h | |
CppyABM | Easy | Basic | ∼4 h | |
GAMA | Easy | Extensive | ∼2 h | |
krABMaga | Easy | Good | ∼3 h | |
MASON | Easy | Extensive | ∼3 h | |
Mesa | Easy | Extensive | ∼2 h | |
NetLogo | Easy | Extensive | ∼3 h without VSL | |
Repast | Easy | Good | ∼4 h | |
Care HPS | N/A | N/A | N/V | Only documented within the article. |
Cormas | Easy | N/A | N/V | The application crashes after few operations. |
EcoLab | Easy | Basic | N/V | The installation script does not work. |
EvoPlex | Easy | Basic | N/V | All the examples do not run; no usage information provided. |
FLAME | Easy | Basic | N/V | The installation script requires fixes to work properly; no more supported. |
FLAME GPU | Easy | Good | N/V | Not included because of the GPG involvement. |
Insight Maker | Easy | Extensive | N/V | The web application cannot handle huge workloads. |
Jade | Easy | Extensive | N/V | Not included due to the different programming model |
JAS-mine | Easy | Basic | N/V | Installation fails due to configuration errors. |
MADKIT | Easy | Basic | N/V | Installation fails due to the JAR file. |
MASS | Easy | Basic | N/V | The building process fails. |
Pandora | Easy | Basic | N/V | No more supported. |
RepastHPC | Hard | Good | N/V | The installation script provided does not work. |
↓ Tool/Model → | Flockers | Schelling | Wolf, Sheep, and Grass | ForestFire |
---|---|---|---|---|
ActressMAS | ○ | ● | ○ | ○ |
AgentPy | ● | ○ | ● | ● |
Agents.jl | ● | ● | ● | ● |
CppyABM | ○ | ● | ○ | ○ |
GAMA | ● | ○ | ● | ○ |
krABMaga | ● | ● | ● | ● |
MASON | ● | ● | ○ | ○ |
Mesa | ● | ● | ● | ● |
NetLogo | ● | ● | ● | ● |
Repast | ● | ● | ● | ○ |
# | Agents | Field Size | # | Agents | Field Size |
---|---|---|---|---|---|
1 | 1000 | 5 | 16,000 | ||
2 | 2000 | 6 | 32,000 | ||
3 | 4000 | 7 | 64,000 | ||
4 | 8000 | 8 | 128,000 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Antelmi, A.; Cordasco, G.; D’Ambrosio, G.; De Vinco, D.; Spagnuolo, C. Experimenting with Agent-Based Model Simulation Tools. Appl. Sci. 2023, 13, 13. https://doi.org/10.3390/app13010013
Antelmi A, Cordasco G, D’Ambrosio G, De Vinco D, Spagnuolo C. Experimenting with Agent-Based Model Simulation Tools. Applied Sciences. 2023; 13(1):13. https://doi.org/10.3390/app13010013
Chicago/Turabian StyleAntelmi, Alessia, Gennaro Cordasco, Giuseppe D’Ambrosio, Daniele De Vinco, and Carmine Spagnuolo. 2023. "Experimenting with Agent-Based Model Simulation Tools" Applied Sciences 13, no. 1: 13. https://doi.org/10.3390/app13010013
APA StyleAntelmi, A., Cordasco, G., D’Ambrosio, G., De Vinco, D., & Spagnuolo, C. (2023). Experimenting with Agent-Based Model Simulation Tools. Applied Sciences, 13(1), 13. https://doi.org/10.3390/app13010013