=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== https://ceur-ws.org/Vol-1382/paper14.pdf
     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