=Paper=
{{Paper
|id=Vol-1382/paper14
|storemode=property
|title=Agent Based Modeling and Simulation with ActoMoS
|pdfUrl=https://ceur-ws.org/Vol-1382/paper14.pdf
|volume=Vol-1382
|dblpUrl=https://dblp.org/rec/conf/woa/Poggi15
}}
==Agent Based Modeling and Simulation with ActoMoS==
Proc. of the 16th Workshop “From Object to Agents” (WOA15) June 17-19, Naples, Italy Agent based Modeling and Simulation with ActoMoS Agostino Poggi Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Parma, Italy agostino.poggi@unipr.it Abstract — ActoMoS is an actor-based software library for software library. Section 3 describes the features of the the development of agent-based models and for their simulation. software library and shows how it makes easy the developing This library offers software components and tools for modeling of agent based models and simulations. Section 4 shows its and simulating systems in different application domains. In experimentation in some well-known ABMS application particular, it allows the definition of agent model by reusing or domains. Section 5 introduces related work. Finally, section 6 extending a set of predefined agent models and supports efficient concludes the paper by discussing its main features and the and scalable agent-based simulations involving a large number of directions for future work. agents. This paper, after an introduction of the actor model and implementation used by the software library, underlines the main features of the software library and presents its experimentation II. CODE SOFTWARE FRAMEWORK in some well-known domains. CoDE (Concurrent Development Environment) is an actor- based software framework aimed at both simplifying the Keywords – Agent Based Modeling and Simulation, Actor development of large and distributed complex systems and model, Java. guarantying an efficient execution of applications [27]. CoDE is implemented by using the Java language and takes advantage I. INTRODUCTION of preexistent Java software libraries and solutions for Simulation models are increasingly being used for solving supporting concurrency and distribution. CoDE has a layered problems and for helping in decision-making. The size and architecture composed of an application and a runtime layer. complexity of systems that are usually modeled are ever The application layer provides the software components that an increasing. Modeling and simulation of such systems is application developer needs to extend or directly use for challenging because it requires suitable and efficient modelling implementing the specific actors of an application. The runtime and simulation tools that take advantage of the power of layer provides the software components that implement the current computing architectures, programming languages and CoDE middleware infrastructures to support the development software frameworks, and that make easy the development of of standalone and distributed applications. applications. In CoDE a system is based on a set of interacting actors Agent-based modeling and simulation (ABMS) tools and that perform tasks concurrently. An actor is an autonomous techniques seem be the most suitable means to cope with such concurrent object, which interacts with other actors by challenges [19], [30]. In fact, ABMS has been and is widely exchanging asynchronous messages. Communication between used with success for studying complex and emergent actors is buffered: incoming messages are stored in a mailbox phenomena in many research and application areas, including until the actor is ready to process them. After its creation, an agriculture, biomedical analysis, ecology, engineering, actor can change several times its behavior until it kills itself. sociology, market analysis, artificial life, social studies, and Each behavior has the main duty of processing incoming others fields. However, the limit of such tools and libraries is messages through some handlers called cases. Each case can that their agent models shown a very limited use of the features process only the messages that match a specific message offered by the computational agents found in Multi-Agent pattern represented by an object that can apply a combination Systems (MAS) or Distributed Artificial Intelligence (DAI) of constraints on the value of all the fields of a message. techniques [12]. Therefore, it may be difficult to model some Therefore, if an unexpected message arrives, then the actor kinds of problem that, for example, require complex interaction mailbox maintains it until a next behavior will be able to among agents, and is usually less natural to distribute a process it. simulation on a network of computational nodes. An actor can perform different types of action. It can send This paper presents an actor based software library, messages to other actors or to itself, create new actors, update ActoMoS, (Actor Modeling and Simulation) providing a set of its local state, set a timeout for waiting for the next message, suitable software components for the development of ABMS change its behavior and kill itself. An actor can be viewed as a applications, the visualization of the simulations and the logical thread that implements an event loop [11], [21]. This analysis of their results. The next section provides an overview event loop perpetually processes events representing the of the software framework used for the implementation of the reception of messages, the exchange of behavior and the firing 91 Proc. of the 16th Workshop “From Object to Agents” (WOA15) June 17-19, Naples, Italy of timeouts. In response on a reception of a message or the type of implementation represents special passive actors, called firing of a timeout, the actor finds and executes the suitable shared actors, which get messages from a shared queue. The case for the processing of such an event. When the event first two types of scheduler implementation drive the execution represents the change of the behavior, the actor moves to the of either active or passive actors (active and passive new behavior. In particular, the API of an actor does not offer schedulers). The third type of implementation is used for any action for managing the reception of messages and for shared actors (shared schedulers). Finally, the forth type of monitoring the firing of timeouts. In fact, an application implementation is used in actor spaces containing both active developer uses an actor implementation provided by the CoDE and passive actors (hybrid schedulers). runtime and needs only to provide the behaviors of the The identification of the best couple of actor and scheduler different actors of the application by defining the methods for their initialization and the message pattern – process method implementations for a specific application mainly depends on the number of actors, the number of exchanged messages, the pairs of their cases. preeminent type of communication used by actors (i.e., point- Depending on the complexity of the application and on the to-point or broadcast) and the possible presence of a subset of availability of computing and communication resources, one or actors that consume a large part of the computational resources more actor spaces can manage the actors of the application and of the application. Table 1 shows what should be the best so an application can be distributed on a network of choices for a qualitative partition of the values of the previous computational nodes. An actor space acts as “container” for a parameters. In particular, the third column indicates the set of actors and provides the services necessary for their preeminence of either point-to-point communication (P) or execution. In particular, an actor space takes advantages of two broadcast communication (B), the forth column indicates the special actors: the scheduler and the service provider. The presence/absence of a subset of heavy actors and the word scheduler manages the concurrent execution of the actors of the “any” is used when the value of the associate parameter has not actor space. The service provider enables the actors of an effect on the choice of actor and scheduler implementations. application to perform new kinds of action. The current TABLE 1 implementation of the software framework provides services for supporting the broadcast of messages, the exchange of actors messages P/B Heavy scheduler messages through the “publish and subscribe” pattern, the mapping of actors address to symbolic names, the mobility of few any any any active actors, the interaction with users through emails and the many any P no passive creation of actors. The last service is important because an actor cannot directly create actors in other actor spaces, but can many few B no passive delegate it to their service providers. many many B no shared One of the most important features of CoDE is the many any any yes hybrid possibility of configuring an application with different implementations of the runtime components. It allows the use Finally, an actor space can enable the execution of an of different actor implementations, different schedulers and additional runtime component called logger. The logger has the service providers. The type of the implementation of an actor is possibility to store (or to send to another application), in a one of the factors that mainly influence the attributes of the textual or binary format, the relevant information about the execution of an application. In particular, actor implementation execution of the actors of the actor space (e.g., creation and can be divided in two classes that allow to an actor either to deletion of actors, exchange of messages, processing of have its own thread (from here named active actors) or to share messages and timeouts, exchange of behaviors and failures). a single thread with the other actors of the actor space (from Therefore, users and other applications can use such here named passive actors). Moreover, the duties of a scheduler information for understanding the activities of an application, depend on the type of the actor implementation. Of course, a for diagnosing the causes of execution problems, and for scheduler for passive actors is different from a scheduler for solving them. active actors, but for the same kind of actor can be useful to have different scheduler implementations. For example, it can allow the implementation of “cooperative” schedulers in which III. ACTOMOS actors can cyclically perform tasks varying from the processing The features of the actor model and the flexibility of its of the first message in the buffer to the processing of all the implementation make CoDE suitable for building ABMS messages in it. applications [28]. In particular, actors have the suitable features The most important decision that influence the quality of for defining agent models that can be used in ABMS the execution of an application is the choice of the actor and applications and to model the computational agents found in scheduler implementations. In fact, the use of one or another MAS) and DAI systems. In fact, actors and computational couple of actor and scheduler causes large differences in the agents share certain characteristics: i) both react to external stimuli (i.e., they are reactive), ii) both are self-contained, self- performance and in the scalability of the applications [6]. regulating, and self-directed, (i.e., they are autonomous), and CoDE provides three types of actor implementation and iii) both interact through asynchronous messages and such four types of scheduler. The first two types of actor messages are the basis for their coordination and cooperation implementation represent active and passive actors. The third (i.e., they are social). Moreover, given that actors interact only 92 Proc. of the 16th Workshop “From Object to Agents” (WOA15) June 17-19, Naples, Italy through messages and there is not a shared state among them, it broadcasts them a “clock” message. This last message allows is not necessary to maintain an additional copy of the to the agents to understand that they have all the information environment to guarantee that agents decide their actions with for deciding their actions, therefore, they decide, perform some the same information (thing that is usually necessary in some actions and, at the end, broadcast the information about their application domain with other ABMS platforms). Finally, the new state. use of messages for exchanging state information decouples the code of agents. In fact, agents do not need to access directly to In ActoMos, all the agents are usually represented by one or more actor behaviors that process the input messages the code of the other agents to get information about them, and so the modification of the code of a type of agent should cause through two cases. The first case processes the messages informing an agent about the state of the other agents. The lesser modifications in the code of the other types of agent. Finally, the use of actors simplifies the development of real second case processes the “clock” messages. However, while active agents exchange messages and perform other types of computational agents in domain where, for example, they need to coordinate themselves or cooperate through direct action (e.g., in a spatial domain to change their location), often, passive agents have the only duty of sending messages for interactions. informing the active agents about their presence (e.g., Moreover, the use of CoDE simplify the development of immutable obstacles or path points in a spatial domain). flexible and scalable ABMS applications. In fact, the use of Therefore, such passive agents are represented by an actor active and passive actors allows the development of behavior providing a case that get the “clock” messages for applications involving large number of actors, and the deciding when sending the information about their presence availability of different schedulers and the possibility of their and state. specialization allow a correct and efficient scheduling of the agents in application domains that require different scheduling Of course, different types of agent have different implementations of the cases of their behaviors. In particular, algorithms [20]. Moreover, the efficient implementation of broadcasting and multicast removes the overhead given to the ActoMoS provides some abstract behavior implementations for developing applications in different domains. Such need that agents must often diffuse the information about their state to the other agents of the application (e.g., their location in implementations define the state information that an agent need to maintain in its specific application domain and provides a set a spatial domain). of abstract methods for processing incoming information and However, CoDE does not offer specific components for for performing the actions in response to the “clock” messages. ABMS (e.g., simulators, agent models and simulation viewers). Therefore, we defined a software library, called ActoMoS Often the modelling of some systems (e.g., social networks) requires a massive number of agents. However, in such kind of (Actor Modelling and Simulation), that, starting from CoDE, systems, usually only a part of them is simultaneously active provides a set of software components and tools for making and the actions of the different agents do not need a easy the development of ABMS applications. synchronization. Therefore, it is necessary a scheduler that can In large part of ABMS platforms usually a simulation is manage a massive number of agents, but that can try to given by a sequence of steps where each agent needs only to optimize the execution by scheduling only the active agents. get information about its surround (i.e., about a subset of the The solution we implemented derives from the virtual memory other agents and about the environment) and then to use such techniques used by operating systems: agents increment an information for deciding its actions. In ActoMoS the simulation inactivity counter in the scheduling cycles in which they do not is similar, but agents get information about agents and the process messages and reset it in the cycles in which they environment through messages. process a message. The scheduler can get the value of such counters and can move an actor in a persistent store when its In ActoMoS, to simplify the interaction between agents and inactivity counter becomes greater than a fixed (or dynamic) the environment, the relevant parts of an environment are threshold. The scheduler reload an actor from the persistent represented by a set of actors whose goals are to inform the store when it receives a new message from another agent. agents acting in the environment about their presence and their state, and to update their state when the agents act on them. Of course, the number of active agents can vary over the Given that the behavior of such actors is similar to the one simulation, but the quality of the simulation can be guaranteed expressed by the agents acting in the environment, we call both if the number of the agents, maintained by the scheduler, agents, but we divided them in active and passive agents. remains in a range that depends on the available computational Active agents are the typical agents of an ABMS, i.e., they resources. The adopted solution, to limit to the number of represent the entities able to move and cooperate with other active actors and to guarantee good performances, is to provide entities acting in the environment. Passive agents define the a scheduler able to move an inactive agent in the persistent environment of an ABMS, i.e., they represent the relevant storage on the basis of a variable number of inactive cycles. In elements of the environment (e.g., in a spatial domain the particular, this number becomes high when the number of obstacles and the reference points for the movement of the scheduled agents decreases (i.e., the scheduler does not spend active agents). time for storing agents in the persistence storage and reloading them) and becomes more and more low with the increasing of Such agents are usually implemented taking advantage of the number of scheduled agents. the shared actor implementation provided by CoDE, but it is necessary to develop a specific scheduler. Such a scheduler Two important features that an ABMS framework should executes repeatedly all the agents and after each execution step provide are the availability of graphical tools for the 93 Proc. of the 16th Workshop “From Object to Agents” (WOA15) June 17-19, Naples, Italy visualization of the evolution of simulations and the possibility among the moves of agents (i.e., two or more agents cannot of analyzing the data obtained from simulations. CoDE does share the same cell) with different coordination algorithms. The not provide any specific tool for ABMS, but provides a logging only constraint for using such coordination algorithms is that service that allows the recording of the Java objects describing each agent needs to perform the current move, compute its next the relevant actions of an actor (i.e., its initialization, reception, move and inform the other agents about it at each cycle. sending and processing of messages, creation of actors, change Therefore, each agent knows the intentions of the other agents of behavior, and its shutdown). Therefore, we developed two before performing its move and performs the move only if the graphical tools, that use such logging data for visualizing the rules of the coordination algorithm allow it. This constraint evolution of simulations in spatial domains based on does not cause a different behavior of the prey and the continuous and discrete 2D space representations, and another predators respect to the implementations of other ABMS tool that use them for extracting statistical information about platforms, because even in this implementation an agent can simulations. Fig. 9 shows two views of the GUI that supports only either perform the previously decided move or remain in 2D spatial simulations. In particular, it presents the initial and the same cell. final views of the evacuation of a large number of pedestrians The first experimentation of the crowd evacuation problem from a building. had be done in a 2D continuous space and by implementing the agents of the crowd by using the boid model [31]. This experimentation take advantage of an extended set of boid rules that allow to agents to reach a meeting point outside the building by following either other agents or a set of alternative paths. Even in this case, the main result of the experimentation is the definition of a flexible agent model. Such a model allows the definition of different types of simulation by using different sets of boid rules. In particular, the experimentation shows how the possibility to follow other agents and the presence of paths towards the exit points make possible successful evacuations. Moreover, the use of the boid rules shows how is possible to obtain intelligent behaviors without using complex AI algorithms. However, the “calibration" of the model requires in some cases a large number of simulations to obtain a successful evacuation where agents both do not collide among them or with obstacles and do not lost time inside the building. In fact, the movement of each agent of the crowd is defined by the boid rules and so it is necessary to find the correct weights with which such rules contribute to the movement of the agent. We are working for some time in the analysis and simulation of social networks [3], [4]. In particular, currently we are using ActoMoS for designing a peer-to-peer social network that can guarantee the same services of the centralized ones. The problem of peer-to-peer social network is that they Fig. 9. Initial and final view of the simulation of a crowd do not have a centralized service that maintain the information evacuation. shared among the users and so, for example, is difficult for a user that wakes up after a period of inactivity to get all the IV. EXPERIMENTATION information of her/his interest that has been published when she/he was offline. We are using ActoMoS for the simulation of two well- known problems in a spatial environment: the prey-predator In particular, we defined a model of a peer-to-peer social pursuit problem [2], and the crowd evacuation problem [33]. It network where a user can move from the online and offline is possible because ActoMoS offers all the software state, publish new information and subscribe to new types of components necessary for modelling agents in a continuous or information. Each user is defined by a simple agent, which discrete 2D (or 3D) space (e.g., implementation of the performs her/his actions using non-deterministic rules. algorithms that drive the movement of agents, agent models Moreover, such an agent has also the duty to cooperate with the representing obstacles and path points). other agents to avoid that offline users lost information of their interest. Of course, the actors representing the online users The first experimentation of the prey-predator pursuit should perform such a task. Moreover, its implementation problem had be done in a 2D discrete space. Its main result is should have the goals of limiting the amount of the recovered the definition of a flexible agent model that allows the information (i.e., only the information of interest for the offline execution of simulations with different algorithms, which drive users should be recovered) and of guaranteeing privacy (i.e., the movement of the prey and of the predators, by simply users should not have additional information about the other changing the values of some configuration properties. users through the execution of such a task). Moreover, this agent model allows the solution of the conflicts 94 Proc. of the 16th Workshop “From Object to Agents” (WOA15) June 17-19, Naples, Italy The experimentation is in the initial phase and we obtain MASON [16] is a Java ABMS tool designed to be flexible good results with a simple algorithm of election that allows to enough to be used for a wide range of simulations, but with a the agents, representing the users that are moving offline, to special emphasis on “swarm” simulations of a very many (up assign the recording of the information of their interest, to to millions of) agents. MASON is based on a fast, orthogonal, agents of the users that remain online. The problems we need software library to which an experienced Java programmer can to solve is that in some situations there are few or no online easily add features for developing and simulating models in users. In fact, when there are few users then their agents are specific domains. overloaded in the recording of the information for the other users. When there are not users, when a user becomes online ATC [7] is a framework for the modeling and validation of real-time concurrent systems based on the actor model. In again it cannot have the lost information and cannot act as recorder for the other users. The solution that we are studying particular, it inherits all the functional capabilities of actors and further allows the expression of most of the temporal to solve such two problems is based on the introduction of “auxiliary agents”, i.e., agents that: i) do not represent a user, constraints pertaining to real-time systems: exceptions, delays ii) are running on computational nodes that are usually and emergencies. operative, and iii) have only the task of recording the The Adaptive Actor Architecture [17] is an actor-based information for the offline users. software infrastructure designed to support the construction of large-scale multi-agent applications by exploiting distributed V. RELATED WORK computing techniques for efficiently distribute agents across a distributed network of computers. This software infrastructure A lot of work has been done in the field of agent-based uses several optimizing techniques to address three modeling and simulation. Moreover, some researchers used the fundamental problems related to agent communication between actor model for the modeling and simulation of complex nodes: agent distribution, service agent discovery and message systems. The rest of the section presents some of the most passing for mobile agents. interesting works presented in the previous two fields. An actor-based infrastructure for distributing Repast Swarm [22] is the ancestor of many of the current ABMS models is proposed in [9]. This solution allows, with minimal platforms. The basic architecture of Swarm is the simulation of changes, to address very large and reconfigurable models collections of concurrently interacting agents, and this whose computational needs (in space and time) can be difficult paradigm is extended into the coding, including agent inspector to satisfy on a single machine. Novel in the approach is an actions as part of the set of agents. So in order to inspect one exploitation of a lean actor infrastructure implemented in Java. agent on the display, you must use another hidden, non- In particular, actors bring to RePast agents migration, location- interacting agent. Swarm is a stable platform, and seems transparent naming, efficient communication, and a control- particularly suited to hierarchical models. Moreover, it supports centric framework. good mechanisms for structure formation using multi-level feedback between agents, groups of agents, and the Statechart actors [10] are an implementation of the actor environment (all treated as agents). computational model that can be used for building a multi- agent architecture suitable for the distributed simulation of Ascape [26] is a framework for developing and analyzing discrete event systems whose entities have a complex dynamic agent based models following some of the ideas of Swarm. behavior. Complexity is dealt with by specifying the behavior However, it is somewhat easier to develop models with Ascape of actors through “distilled” statecharts [14]. Distribution is than with Swarm. Indeed, its goal is to allow people with only supported by the theatre architecture [8]. This architecture a little programming experience to develop quite complex allows the decomposition of a large system into sub-systems simulations by providing a range of end user tools. Ascape is (theatres) each hosting a collection of application actors, implemented in Java and users would require some ability to allocated for execution on to a physical processor. program in Java together with understanding of the object orientation philosophy. Simulator X [18] is a software research platform for intelligent interactive simulation that takes advantage of the NetLogo [32] is an ABMS platform based on the Logo actor model for supporting fine-grained concurrency and programming language. Its initial goal was to provide a high- parallelism. The architecture uses actors to obtain a distributed level platform allowing students, down to the elementary level, application state and execution model. Simulator X is mainly to build and learn from simple ABMS applications. Now it used in the areas of real-time interactive systems, virtual reality offers many sophisticated capabilities and tools that make it and multimodal interaction. suitable for complex applications too. Moreover, a big advantage respect to the other platforms is the simplicity of its own language. VI. CONCLUSIONS Repast [25] is a well-established ABMS platform with This paper presented a software library, called ActoMoS, many advanced features. It started as a Java implementation of which makes easy the development of agent-based models and the Swarm toolkit, but rapidly expanded to provide a very full supports efficient agent-based simulations involving a large featured toolkit for ABMS. Although full use of the toolkit number of agents. ActoMoS has been implemented on the top requires Java programming skills, the facilities of the last of CoDE (Concurrent Development Environment) that is an implementations allow the development of simple models with actor-based software framework aimed at both simplifying the little programming experience [24]. 95 Proc. of the 16th Workshop “From Object to Agents” (WOA15) June 17-19, Naples, Italy development of large and distributed complex systems and [12] A. Drogoul, D. Vanbergue, and T. Meurisse, “Multi-agent based guarantying an efficient execution of applications [27]. simulation: Where are the agents?,” In Multi-agent-based simulation II, Berlin, Germany: Springer, 2003, pp. 1-15. ActoMoS has been experimented with success in the [13] E. Franchi, A. Poggi, and M. Tomaiuolo. "Open social networking for development of ABMS applications. Of course, its current online collaboration," International Journal of e-Collaboration, vol. 9, implementation does not provide all the features of the most no. 3, pp. 50-68, 2013. known ABMS platforms (i.e., NetLogo [32], Repast [25] and [14] D. Harel, and A. Naamad, “The Statemate semantics of Statecharts,” ACM Transactions on Software Engineering and Methodology, vol. 5, MASON [16]). However, the use of the actor model for the no. 4, pp. 293–333, 1996. definition of agents allows to define real agent models where [15] C. E. Hewitt, “Viewing controll structures as patterns of passing agent interact through the exchange of messages avoiding the messages,” Artificial Intelligence, vol. 8, no. 3, pp. 323–364, 1977. use of a shared state and it simplifies the development of non- [16] S. Luke, C. Cioffi-Revilla, L. Panait, K. Sullivan, and G. Balan, trivial applications where the management of concurrent “MASON: A multiagent simulation environment,” Simulation, vol. 81, activities may be of primary importance. Moreover, the no. 7, pp. 517-527, 2005. availability of techniques to reduce the overhead of the [17] M. Jang, and G.A. Agha, “Scalable agent distribution mechanisms for diffusion of broadcast and multicast messages generally allows large-scale UAV simulations,” in Proc. of Int. Conf. of Integration of the development of applications whose performances are Knowledge Intensive Multi-Agent Systems, Waltham, MA, USA, 2005. comparable with the ones provide by applications implemented [18] M. E. Latoschik, and H. Tramberend. "A scala-based actor-entity architecture for intelligent interactive simulations," Proc. of 5th IEEE by platforms that do not use messages for diffusing the state of Workshop on Software Engineering and Architectures for Realtime the environment and of the agents of applications. Interactive Systems (SEARIS), 2012, pp. 9-17. Current work has the goals of extending the functionalities [19] C.M. Macal, and M.J. North, “Tutorial on agent-based modelling and simulation, Journal of Simulation,” vol. 4, no. 3, pp. 151–162, 2010. of the software library and of continuing its current [20] P. Mathieu, and Y Secq, “Environment Updating and Agent Scheduling experimentation. Moreover, future work will be dedicated to Policies in Agent-based Simulators,” in Proc. of 4th Int. Conf. on Agents the modeling and simulation of systems for e-business services and Artificial Intelligence (ICAART), Algarve, Portugal, 2012, pp. 170- [23], collaborative work services [13] and for the management 175. of information in pervasive environment [5][29]. [21] M. S. Miller, E. D. Tribble, and J. Shapiro, “Concurrency among strangers,” in Trustworthy Global Computing, Berlin, Germany: Springer, 2005, pp. 195-229. REFERENCES [22] N. Minar, R. Burckhart, C. Langton, and V. Askenasi, 1996. “The [1] G.A. Agha, “Actors: A Model of Concurrent Computation in Distributed Swarm simulation system: a toolkit for building multi-agent systems,” Systems,” Cambridge, MA, USA: MIT Press, 1986. Santa Fe Institute, Santa Fe, NM, USA. http://www.swarm.org/ [2] M. Benda, V. Jagannathan, and R. Dodhiawalla, “On optimal [Accessed March 25, 2015]. cooperation of knowledge sources,” Tech. Rep. BCS-G2010-28, Boeing [23] A. Negri, A. Poggi, M. Tomaiuolo, and P. Turci, “Agents for e-Business AI Center, Bellevue, WA, USA, 1986. Applications,” in 5th Int. Joint Conf. on Autonomous Agents and Multi- [3] F. Bergenti, E. Franchi, and A. Poggi,. “Selected models for agent-based Agent Systems, Hakodate, Japan: ACM., 2006, pp. 907-914. simulation of social networks,” in Proc. of 3rd Symp. on Social [24] M. J. North, T. R. Howe, N. T. Collier, and J. R. Vos, “The Repast Networks and Multiagent Systems (SNAMAS 2011), York, UK. 2011, Simphony runtime system,” in Proc. of the Agent 2005 Conf. on pp. 27-32. Generative Social Processes, Models, and Mechanisms, Chicago, IL, [4] F. Bergenti, E. Franchi and A. Poggi, “Agent-based interpretations of USA, 2005 classic network models,” Computational and Mathematical Organization [25] M. J. North, N. Collier, and J. Vos, “Experiences in creating three Theory, Vol. 19, No. 2, 2013, pp. 105-127, 2013. implementations of the repast agent modeling toolkit,” ACM [5] F. Bergenti, and A. Poggi, “Ubiquitous Information Agents,” Transactions on Modeling and Computer Simulation, vol. 16, no. 1, pp. International Journal on Cooperative Information Systems, Vol. 11, No. 1-25, 2006. 3-4, pp. 231-244, 2002. [26] M. T. Parker, "What is Ascape and why should you care," Journal of [6] F. Bergenti, A. Poggi, and M. Tomaiuolo, "An Actor Based Software Artificial Societies and Social Simulation, vol. 4, no. 1, 2001. Framework for Scalable Applications," in Internet and Distributed [27] A. Poggi, “Developing Scalable Applications with Actors,” WSEAS Computing Systems, Berlin, Germany: Springer, 2014, pp. 26-35. Transactions on Computers vol. 14, pp. 660-669, 2014. [7] L. Boualem, and S. Yamina, “On equivalences for actors expressions [28] A. Poggi, “Replaceable Implementations for Agent-Based Simulations,” and configurations of ATC,” WSEAS Transactions on Computers vol. 4, SCS M&S Magazine, vol. 4, no. 3, pp. 1-10, 2014. no. 9, pp. 1045-1053, 2005. [29] A. Poggi, and M. Tomaiuolo, "A DHT-based multi-agent system for [8] F. Cicirelli, A. Furfaro, and L. Nigro, “Exploiting agents for modelling semantic information sharing," in New Challenges in Distributed and simulation of coverage control protocols in large sensor networks,” Information Filtering and Retrieval, Berlin, Germany: Springer, 2013, Journal of Systems and Software, vol. 80, no. 11, pp. 1817-1832, 2007. pp. 197-213. [9] F. Cicirelli, A. Furfaro, A. Giordano and L. Nigro, “Distributing Repast [30] S.F. Railsback, S.L. Lytinen, and S.K. Jackson, “Agent-based simulation simulations using actors,” in Proc. of 23rd European Conf. on Modelling platforms: Review and development recommendations,” Simulation, vol. and Simulation, Madrid, Spain, 2009, pp. 226–231. 82, no. 9, pp. 609–623, 2006. [10] F. Cicirelli, A. Furfaro, and L. Nigro, “Modeling and simulation of [31] C.W. Reynolds, “Flocks, herds and schools: A distributed behavioral complex manufacturing systems using Statechart-based actors,” model,” ACM SIGGRAPH Computer Graphics, vol. 21, no. 4, pp. 25- Simulation Modelling Practice and Theory, vol. 19, no. 2, pp. 685–703, 34, 1987. 2011. [32] S. Tisue, and U. Wilensky, “Netlogo: A simple environment for [11] J. Dedecker, T. Van Cutsem, S. Mostinckx, T. D’Hondt and W. De modeling complexity,” in Proc. of Int. Conf. on Complex Systems Meuter, “Ambient-oriented programming in ambienttalk,” in ECOOP (ICCS 2004), 16-21, Boston, MA, USA, 2004, pp. 16-21. 2006 – Object-Oriented Programming, Berlin, Germany: Springer, 2006, [33] M.H. Zaharia, F. Leon, F. C. Pal, and G. Pagu, Agent-based simulation pp. 230-254. of crowd evacuation behavior, in Proc. of 11th WSEAS Int. Conf. on Automatic control, modelling and simulation (ACMOS'09), Istanbul, Turkey, 2009, pp. 529-533. 96