Agent-based modeling and network science have been used extensively to advance our understanding of emergent collective behavior in systems that are composed of a large number of simple interacting individuals or agents. With the increasing availability of high computational power in affordable personal computers, dedicated efforts to develop multi-threaded, scalable and easy-to-use software for agent-based simulations are needed more than ever. Evoplex meets this need by providing a fast, robust and extensible platform for developing agent-based models and multi-agent systems on networks. Each agent is represented as a node and interacts with its neighbors, as defined by the network structure. Evoplex is ideal for modeling complex systems, for example in evolutionary game theory and computational social science. In Evoplex, the models are not coupled to the execution parameters or the visualization tools, and there is a user-friendly graphical interface which makes it easy for all users, ranging from newcomers to experienced, to create, analyze, replicate and reproduce the experiments.
domains such as life sciences, ecology and social sciences [1][2][3][4][5][6][7]. Those systems are composed of a number of interacting agents each of whom have a defined set of attributes and can exhibit specific behaviors based on their interactions with the environment and the other agents [8]. Research in this field usually aims to explore how small changes in individual behavior can both affect and promote collective behavior throughout the system [9][10][11].
Given the flexibility of the ABM approach and the increasing computing power of cheap personal computers, efforts to develop reusable, flexible, multi-threaded, scalable and user-friendly software are more than ever required by the scientific community. However, despite the high number of existing ABM toolkits and platforms available [12], due to the heterogeneity and diversity of the areas of research and application domains, most researchers still prefer to implement individual and domain-specific, specialized software from scratch, which is usually not publicly released. Many researchers write MATLAB or Mathematica based scripts which, although being complete and well-known scientific platforms, are neither free nor open-source, which therefore reduces the transparency and re-usability of the developed models [13].
In fact, implementing a highly specialized solution from scratch is time-consuming, complex and error-prone. Many projects try to overcome this by implementing a toolkit or platform for a general purpose problem domain. For instance, some projects such as NetLogo [14] and GAMA [15] succeed in providing generic and reusable software; however, they require the user to learn their specific programming language. A wide range of the ABM solutions including MASON [16] and Repast [17] are written in Java [18], which make them cross-platform and usually faster than some Python or JavaScript alternatives like Mesa [19] and AgentBase [20]. However, they usually require modelers to be highly proficient in the language or they have critical scalability issues. Overall, the main issues with some existing software include the use of old/deprecated technologies, not following state of the art in software engineering, developing single-threaded applications and not being community-friendly.
Furthermore, despite being a common strategy in the field, many ABM projects start with the promising and challenging intention of developing powerful software to meet any requirement in the field, from simple cellular automaton models to complex and realistic geographical information science (GIS) models. Unfortunately, this promising approach usually results in making the code base very complex and hard to both optimize and maintain. In reality, given the small size of the development teams, there is no best strategy for all scenarios, and the user choice is usually guided by their familiarity with the languages or technologies used in the software. In this way, defining a clear and focused scope can help solve those issues.
Thus, in this paper we present Evoplex, a cross-platform, free and open-source software which aims to mitigate the issues outlined by providing a fast and fully modular ABM platform for implementing and analyzing models which impose an explicit graph-theoretical approach, i.e., the agents are represented as nodes (or vertices) and edges (or links) represent connections between agents.
Evoplex is a fast, robust and extensible platform for developing agent-based models and multi-agent systems on networks. Here, each agent is represented as a node in the network and is constrained to interact only with its neighbors, which are linked by edges in the network. Although not limited to a particular domain, Evoplex is ideal for tackling problems associated with evolutionary computation, complex adaptive systems, evolutionary game theory and cellular automata.
As shown in Fig. 1, the Evoplex workflow is very straightforward and intuitive. The engine processes projects as inputs. A project is a plain table (csv file) where the experiments are listed along the rows, and the inputs to each experiment are placed along the columns. An experiment is defined by a set of parameter settings (inputs) necessary to perform one trial (simulation) and (optionally) the required data outputs, which can be the result of some statistical function and/or the state of the set of nodes/edges for each time step. Each experiment can run for one or more trials, i.e., repeat the same experiment using different pseudo-random generator seeds. The strategy of having the projects defined in plain text files aims to make it easier for users to replicate and reproduce their results. Furthermore, it allows newcomers to interact with the models without requiring any programming skills.
We provide a user-friendly and interactive graphical user interface (GUI) to allow for creating, opening, running and saving projects. Also, the GUI provides many useful tools including inter
This content is AI-processed based on open access ArXiv data.