<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Workshop “From Objects to Agents”, September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>A preliminary experimentation for large scale epidemic forecasting simulations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gianfranco Lombardo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Agostino Poggi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Ingegneria e Architettura, Università di Parma - Parma</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <volume>1</volume>
      <fpage>4</fpage>
      <lpage>16</lpage>
      <abstract>
        <p>Agent-based modeling and simulation are some powerful techniques that are widely used with success for analyzing complex and emergent phenomena in many research and application areas. Many diferent reasons are behind the success of such techniques, among which an important mention goes to the availability of a great variety of software tools, that ease the development of models, as well as the execution of simulations and the analysis of results. This paper presents an actor software library, called ActoDeS, for the development of concurrent and distributed systems, and shows how it can be a suitable mean for building flexible and scalable epidemic forecasting simulations. In particular, the paper presents the first results of the experimentation of ActoDeS for defining a COVID-19 epidemic difusion model and for supporting the simulation in large populations.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;actor model</kwd>
        <kwd>epidemic difusion model</kwd>
        <kwd>COVID-19</kwd>
        <kwd>distributed simulation</kwd>
        <kwd>HPC</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Agent-based modeling and simulation (ABMS) has been and is widely used with success for
studying complex and emergent phenomena in many research and application areas, including
agriculture, biomedical analysis, ecology, engineering, sociology, market analysis, artificial
life, social studies, and others fields. Such studies are possible thanks to the availability of
several tools and libraries that support the development of ABMS applications. Moreover, the
availability of large-scale, dynamic, and heterogeneous networks of computational resources
and the advent of multi-cores computers allow the development of high performance and
scalable computationally intensive ABMS applications. As a matter of fact, such applications
are able to manage very large and dynamic models, whose computational needs (in space and
time) can be dificult to satisfy by a single machine.</p>
      <p>
        The success and the difusion of ABMS techniques is also due to the availability of software
tools that ease the development of models, the execution of simulations and the analysis of
results (see, for example, Mason [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], NetLogo [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], and Repast [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). However, all the most known
and used ABMS tools have been initially designed for the execution of simulations on a single
machine and, only in a second step, they were extended for supporting distributed simulations
(see, for example, D-Mason [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and HLA_ACTOR_REPAST [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). It is worth noting that such
extensions show a limitation in terms of reusability. In fact, the code of agents defined for a
standalone execution must be modified in order to gain suitable implementations to be used in
a distributed simulation.
      </p>
      <p>In this paper we present an actor based software library, called ActoDeS, that provides the
suitable features for simplifying the development of scalable and eficient agent based models and
simulations. The next section introduces the actor model and discusses the advantages of using
actors in ABMS applications. Section 3 introduces ActoDeS. Section 4 shows the advantages of
using this software library for ABMS applications. Section 5 presents the COVID-19 difusion
model that is used in the simulations. Section 6 presents the results of the experimentation on
the population of Bergamo province. Section 7 introduces the work necessary to extend the
simulation to all the population of Lombardia region. Finally, section 8 concludes the paper by
discussing its main features and the directions for future work.</p>
    </sec>
    <sec id="sec-2">
      <title>2. ABMS with acotrs</title>
      <p>
        Actors [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] are autonomous concurrent objects, which interact with other actors by exchanging
asynchronous messages and which, in response of an incoming message, can perform some
tasks, namely, sending messages to other actors, creating new actors, and designating a new
behavior for processing the messages that the actor will receive.
      </p>
      <p>
        Actors have the suitable features for defining agent models that can be used in ABMS
applications and for modeling the computational agents found in MAS and DAI systems [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
In fact, actors and computational agents share certain characteristics: i) both react to external
stimuli (i.e., they are reactive), ii) both are self-contained, self-regulating, and self-directed, (i.e.,
they are autonomous and can be goal directed), and iii) both interact through asynchronous
messages and such messages are the basis for their coordination and cooperation (i.e., they are
social).
      </p>
      <p>Moreover, the use of messages for exchanging state information decouples the code of agents.
In fact, agents do not need to access directly to the code of the other agents (i.e., their methods)
to get information about them, and so the modification of the code of a type of agent should
cause smaller modifications in the code of the other types of agent. Finally, the use of actors
simplifies the development of real computational agents in domains where, for example, they
need to coordinate themselves or cooperate through direct interactions.</p>
      <p>
        Diferent researchers propose the use of actors for agent based simulation. For example, Jang
and Agha [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] proposed an actor-based software infrastructure, called adaptive actor architecture,
to support the construction of large-scale agent-based simulations, by exploiting distributed
computing techniques to eficiently distribute agents across a distributed network of computers.
In particular, this software infrastructure uses some optimizing techniques in order to reduce
the amount of exchanged data among nodes and to support dynamic agent distribution and
search.
      </p>
      <p>
        Cicirelli et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] propose the use of actors for distributing Repast simulations. In particular,
they defined a software infrastructure that allows: the migration of agents, a location transparent
naming, and an eficient communication. This architecture allows the decomposition of a large
system into sub-systems (theatres), each hosting a collection of application actors, that can be
allocated on diferent computational nodes.
      </p>
      <p>
        Finally, de Berardinis et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] propose an actor based model which allows users to get an
idea of the impact of a mobility initiative prior to deployment is a complex task for both urban
planners and transport companies.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. ActoDeS</title>
      <p>
        ActoDeS is an actor-based software framework that has the goal of both simplifying the
development of concurrent and distributed complex systems and guarantying an eficient execution
of applications [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. ActoDeS is implemented by using the Java language and is an evolution
of CoDE [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] that simplifies the definition of actor behaviors and provides more scalable and
performant implementations. Moreover, it takes advantages of some implementation solutions
used in JADE [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ],[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for the definition of some internal components. In particular, it has
been used for the development of data analysis tools [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and their use for the analysis of social
networks data [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ],[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ],[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>ActoDeS has a layered architecture composed of an application and a runtime layer. The
application layer provides the software components that an application developer needs to
extend or directly use for implementing the specific actors of an application. The runtime layer
provides the software components that implement the ActoDeS middleware infrastructures to
support the development of standalone and distributed applications.</p>
      <p>In ActoDeS an application is based on a set of interacting actors that perform tasks
concurrently and interact with each other by exchanging asynchronous messages. Moreover, it can
create new actors, update its local state, change its behavior and kill itself.</p>
      <p>Depending on the complexity of the application and on the availability of computing and
communication resources, one or more actor spaces can manage the actors of the application.
An actor space acts as “container” for a set of actors and provides them the services necessary
for their execution. An actor space contains a set of actors (application actors) that perform
the specific tasks of the current application and two actors (runtime actors) that support the
execution of the application actors. These two last actors are called executor and the service
provider. The executor manages the concurrent execution of the actors of the actor space. The
service provider enables the actors of an application to perform new kinds of action (e.g., to
broadcast a message or to move from an actor space to another one).</p>
      <p>Communication between actors is bufered: incoming messages are stored in a mailbox until
the actor is ready to process them; moreover, an actor can set a timeout for waiting for a new
message and then can execute some actions if the timeout fires. Each actor has a system-wide
unique identifier called reference that allows it to be reached in a location transparent way
independently of the location of the sender (i.e., their location can be the same or diferent). An
actor can send messages only to the actors of which it knows the reference, that is, the actors it
created and of which it received the references from other actors. After its creation, an actor
can change several times its behavior until it kills itself. Each behavior has the main duty of
processing a set of specific messages through a set of message handlers called cases. Therefore,
if an unexpected message arrives, then the actor mailbox maintains it until a next behavior will
be able to process it.</p>
      <p>
        An actor can be viewed as a logical thread that implements an event loop [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. This
event loop perpetually processes incoming messages. In fact, when an actor receives a message,
then it looks for the suitable message handler for its processing and, if it exists, it processes
the message. The execution of the message handler is also the means for changing its way of
acting. In fact, the actor uses the return value of its message handlers for deciding to remain in
the current behavior, to move to a new behavior or to kill itself. Moreover, an actor can set a
timeout within receiving a new message and set a message handler for managing the firing of
the timeout. This message handler is bound to the reception of the message notifying the firing
of the timeout, and so the management of the timeout firing is automatically performed at the
reception of such notification message.
      </p>
      <p>ActoDeS supports the configuration of applications with diferent actor, scheduler ad service
provider implementations. The type of the implementation of an actor is one of the factors
that mainly influence the attributes of the execution of an application. In particular, actor
implementations can be divided in two classes that allow to an actor either to have its own
thread (from here named active actors) or to share a single thread with the other actors of the
actor space (from here named passive actors). Moreover, the duties of a scheduler depend on
the type of the actor implementation. Of course, a scheduler for passive actors is diferent from
a scheduler for active actors, but for the same kind of actor can be useful to have diferent
scheduler implementations. For example, it can allow the implementation of “cooperative”
schedulers in which actors can cyclically perform tasks whose duties vary from the processing
of the first message in the bufer to the processing of all the messages in it.</p>
      <p>
        The most important decision that influences the quality of the execution of an application is
the choice of the actor and scheduler implementations. In fact, the use of one or another couple
of actor and scheduler causes large diferences in the performance and in the scalability of the
applications [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. ABMS with ActoDeS</title>
      <p>
        The features of the actor model and the flexibility of its implementation make ActoDeS suitable
for building agent-based modelling and simulation (ABMS) applications and for analyzing
the results of the related simulations. In fact, the use of active and passive actors allows the
development of applications involving large number of actors, and the availability of diferent
schedulers and the possibility of their specialization allow an eficient execution of simulations
in application domains that require diferent types of scheduling algorithms [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>In particular, ActoDeS ofers a very simple scheduler that may be used in a large set of
application domains and, in particular, in ABMS applications. Such a scheduler manages agents
implemented as passive actors and its execution repeats until the end of the simulation the
following operations:
1. Sends a “step” message to all the agents and increments the value of “step”;
2. Performs an execution step of all the agents.</p>
      <p>In particular, the reception of a “step” message allows agents to understand that they have
all the information (messages) for deciding their actions; therefore, they decide, perform some
actions and, at the end, send information to other agents.</p>
      <sec id="sec-4-1">
        <title>4.1. Distribution</title>
        <p>The modeling and simulation of complex problems can require the use of large number of agents
that may determinate unacceptable simulation times, or the impossibility to run the simulation
on a single computational node. In such cases, the availability of distributed algorithms and,
of course, of an adequate number of computational nodes can help to perform simulations,
partitioning the agents among the available computational nodes. Moreover, depending of kind
of application, agents may need to communicate with some agents running on diferent
computational nodes. In this case, the execution of the computational nodes must be synchronized to
guaranty the processing of the messages in the correct order.</p>
        <p>Therefore, a distributed simulation involves a set of computational nodes whose execution is
driven by a set of schedulers and managers. In particular, each manager has the duty of creating
the subset of agents of its computational node and synchronize the execution of the simulation
with the execution of the other computational nodes. Moreover, one of such managers assumes
the role of “master” and has the duties of partitioning the agents involved in the simulation and
sends the information necessary for the creation of the agents to the other managers.</p>
        <p>In particular, the execution of a distributed simulation can be described by the following
steps:
1. Master manager partitions the agents and sends the information for creating a subset of
agents to each scheduler (including itself).
2. Managers create all the actors of its subset.
3. Repeat until the end of the simulation:
• Managers send a synchronization message to the other managers and wait for the
corresponding messages from them.
• Schedulers perform an execution step of all their actors.</p>
        <p>• Scheduler send a “end step” message to all their actors and managers.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Communication</title>
        <p>As introduced above, in diferent kinds of simulations the agents need to exchange data and often
such an interaction is not localized, therefore, the partition of agents on several computational
nodes may add an important communication cost. An important solution to reduce the cost
of communication is to reduce the frequency of interactions, merging multiple interactions to
one. In a conservative distributed simulation system, that synchronizes the simulation step of
all the computational nodes involved in the simulation, a possible solution is to group all the
messages directed to the agents of a specific computational node into the message that identifies
the successive synchronization message.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. COVID-19 epidemic difusion model</title>
      <p>
        In the last years, several computational models for the simulation of epidemic outbreaks have
been used with increased frequency, moreover, the current COVID-19 pandemic has increase
the interest and work on the definition and experimentation of such models [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ],[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ],[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. The
aim of our work is the definition of a model that allows to identify exactly how many people had
actually contracted the COVID-19 virus at the beginning of the pandemic and try to simulate
the real evolutionary trend of the spread of the virus that has produced such a large number of
people positive for the virus. The first experimentation involved the Bergamo province, but our
ifnal goal is to simulate the propagation in the Lombardia region.
      </p>
      <p>The basic idea was to model people based on their social interactions, which can vary from
person to person, estimated interactions with a particular rate. In our first model, people were
identified on the basis of an interaction rate (high, medium and low) and in a random way these
people came into contact, creating a network of interactions.</p>
      <p>At the beginning, all the people are in a susceptible phase, in this phase each person can be
infected by an infected person. When a person is infected, she/he passes from a susceptibility
phase to an incubation phase; here she/he remains there for a certain period of time and then
passes to another phase in which he is infectious. When a person is in this phase he could
infect other people. Once this last phase is over, the infected changes to be positive. After a
certain period of time, the person changes phase: heals or dies. When a person heals, she/he
can no longer be infected. Moreover, the incubation phase is made to last from 7 to 14 days,
that infectious from 3 to 7 and that of positivity from 14 to 30.</p>
      <p>In our model, each person is defined by the following attributes:
• Id of the person
• Province of belonging
• Degree of interaction
• Number of people met
• Current phase
• Id of the people met</p>
      <p>This model was used for simulating the COVID-19 propagation from January 30, 2020 to
March 31, 2020. Of course, the interaction frequency varies for all the people during the
simulation because some people become positive at the end of the phase in which they are
infectious; therefore, their interactions should collapse enough sudden because they should
stay in quarantine. Moreover, from March 8, 2020, people reduced their interaction frequency
because of the lockdown rules.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Experimentation and Results</title>
      <p>In order to test the model for the Bergamo province, multiple tests were carried out. Thanks
to them, it was gradually understood which parameters had to be modified to obtain a trend
similar to that of the contagion curve in the real case of Bergamo province. In particular, we
considered two "key" dates: March 8th (pre-lockdown date) and March 31st 2020. We focused
on the parameter that represents the value of the positive swabs made. In summary, there were
997 positives on March 8 and 8803 positives on March 31. Initially, the parameter that regulates
infections has been kept fixed at 0.7, given, found in the literature, which should represent the
average value of infection without a mask. The use of such parameter allowed to get good
results because the average number of positives obtained by ten simulations was 906. Of course
Infection value 0.3
Positives number 563
such parameter value is not good for the lookdown period and so a quite good number of
positives was obtained fixing the infection parameter at 0.3. In this case, average number of
positives obtained by ten simulations was 8370. Table 1 shows the positives number in the
two “key” dates for diferent infection parameters and compares them with the real number of
positives.</p>
    </sec>
    <sec id="sec-7">
      <title>7. Scaling to large populations</title>
      <p>The final goal of our work is the simulation of epidemic outbreaks in the entire Lombardia.
However, the number of people living in Lombardia is more than ten million and so its simulation
is feasible only with a distributed implementation. The simplest solution is to partition people
on the basis of their province. This solution allows to use diferent parameters in diference
provinces, but implies an unbalanced load among the diferent computational nodes and it can
be a big problem if the simulation should require the synchronization of the execution steps.</p>
      <p>Therefore, we decided to combine two kinds of partition: i) people is partitioned on the basis
of their province and so each person uses the parameter values associated with her/his province,
and ii) people is divided in subset of equivalent size by using the number of computational
nodes involved in the simulation. While the management of Lombardia population should be
possible without problems, thank to the availability of the computational nodes of the High
Performance Computing lab of our university, some problems can be raised by the number of
the messages necessary to create consistent sets of contacts in each step of the simulation (i.e.,
when a person A identifies a person B as her/his contact, then she/he needs to inform person B
that she/he in her/his contacts).</p>
      <p>Currently, we are evaluating several solutions to reduce the communication overhead, some
solutions avoid the exchange of messages, by saving for each step, the data of the people of each
computational node on a file and then merging the data of the diferent files associated with this
step, other solutions requires the sending by messages, but at each step a computational node
sends a message to all the other computational nodes. Each message contains all the contact
information for the people of a specific computational node.</p>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusions</title>
      <p>This paper presented ActoDeS, an actor software library for the development of concurrent
and distributed systems, and shows how it can be a suitable mean for building flexible and
scalable epidemic forecasting simulations. In particular, the paper presented the first results of
the experimentation of ActoDeS for forecasting COVID-19 epidemic difusion in the Bergamo
province and introduced the first work for defining a scalable distributed system able to forecast
COVID-19 epidemic difusion for all the population of Lombardia region. Our current and future
work will be dedicated to complete the design and the implementation of such a distributed
system, to experiment diferent communication solutions for the updating of the contacts of
each person, and finally, the definition of more accurate person model that replaces the use of
the simple interaction frequency to create new contacts, with the use of the person age and the
work sector.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Luke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ciofi-Revilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Panait</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Sullivan</surname>
          </string-name>
          , G. Balan,
          <article-title>Mason: A multiagent simulation environment</article-title>
          ,
          <source>Simulation</source>
          <volume>81</volume>
          (
          <year>2005</year>
          )
          <fpage>517</fpage>
          -
          <lpage>527</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Tisue</surname>
          </string-name>
          , U. Wilensky,
          <article-title>Netlogo: A simple environment for modeling complexity</article-title>
          ,
          <source>in: International conference on complex systems</source>
          , volume
          <volume>21</volume>
          , Boston, MA,
          <year>2004</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>21</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>North</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. T.</given-names>
            <surname>Collier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Vos</surname>
          </string-name>
          ,
          <article-title>Experiences creating three implementations of the repast agent modeling toolkit</article-title>
          ,
          <source>ACM Transactions on Modeling and Computer Simulation (TOMACS) 16</source>
          (
          <year>2006</year>
          )
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cordasco</surname>
          </string-name>
          , R. De Chiara,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mancuso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Mazzeo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Scarano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Spagnuolo</surname>
          </string-name>
          ,
          <article-title>Bringing together eficiency and efectiveness in distributed simulations: the experience with dmason</article-title>
          ,
          <source>Simulation</source>
          <volume>89</volume>
          (
          <year>2013</year>
          )
          <fpage>1236</fpage>
          -
          <lpage>1253</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Cicirelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Furfaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Giordano</surname>
          </string-name>
          , L. Nigro,
          <article-title>Hla_actor_repast: An approach to distributing repast models for high-performance simulations</article-title>
          ,
          <source>Simulation Modelling Practice and Theory</source>
          <volume>19</volume>
          (
          <year>2011</year>
          )
          <fpage>283</fpage>
          -
          <lpage>300</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Agha</surname>
          </string-name>
          ,
          <article-title>Actors: A model of concurrent computation in distributed systems</article-title>
          .,
          <source>Technical Report, Massachusetts Inst of Tech Cambridge Artificial Intelligence Lab</source>
          ,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kafura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Briot</surname>
          </string-name>
          ,
          <article-title>Actors and agents</article-title>
          , IEEE concurrency (
          <year>1998</year>
          )
          <fpage>24</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.-W.</given-names>
            <surname>Jang</surname>
          </string-name>
          , G. Agha,
          <article-title>Agent framework services to reduce agent communication overhead in large-scale agent-based simulations</article-title>
          ,
          <source>Simulation Modelling Practice and Theory</source>
          <volume>14</volume>
          (
          <year>2006</year>
          )
          <fpage>679</fpage>
          -
          <lpage>694</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>J. de Berardinis</surname>
            , G. Forcina,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Jafari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sirjani</surname>
          </string-name>
          ,
          <article-title>Actor-based macroscopic modeling and simulation for smart urban planning</article-title>
          ,
          <source>Science of Computer Programming</source>
          <volume>168</volume>
          (
          <year>2018</year>
          )
          <fpage>142</fpage>
          -
          <lpage>164</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Iotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <article-title>Concurrent and distributed applications with actodes</article-title>
          ,
          <source>in: MATEC Web of Conferences</source>
          , volume
          <volume>76</volume>
          ,
          <string-name>
            <given-names>EDP</given-names>
            <surname>Sciences</surname>
          </string-name>
          ,
          <year>2016</year>
          , p.
          <fpage>04043</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <article-title>An actor based software framework for scalable applications</article-title>
          ,
          <source>in: International Conference on Internet and Distributed Computing Systems</source>
          , Springer,
          <year>2014</year>
          , pp.
          <fpage>26</fpage>
          -
          <lpage>35</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Negri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Turci</surname>
          </string-name>
          ,
          <article-title>Dynamic grid tasks composition and distribution through agents</article-title>
          ,
          <source>Concurrency and Computation: Practice and Experience</source>
          <volume>18</volume>
          (
          <year>2006</year>
          )
          <fpage>875</fpage>
          -
          <lpage>885</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Adorni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , G. Rimassa,
          <article-title>Enabling fipa agents on small devices</article-title>
          , in: International Workshop on Cooperative Information Agents, Springer,
          <year>2001</year>
          , pp.
          <fpage>248</fpage>
          -
          <lpage>257</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Vitaglione</surname>
          </string-name>
          ,
          <article-title>A security infrastructure for trust management in multi-agent systems</article-title>
          ,
          <source>in: Trusting Agents for Trusting Electronic Societies</source>
          , Springer,
          <year>2004</year>
          , pp.
          <fpage>162</fpage>
          -
          <lpage>179</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>G.</given-names>
            <surname>Lombardo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fornacciari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mordonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>A multi-agent architecture for data analysis</article-title>
          ,
          <source>Future Internet</source>
          <volume>11</volume>
          (
          <year>2019</year>
          )
          <fpage>49</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Franchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>Agent-based social networks for enterprise collaboration, in: 2011 IEEE 20th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises</article-title>
          , IEEE,
          <year>2011</year>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>G.</given-names>
            <surname>Lombardo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fornacciari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mordonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <article-title>A combined approach for the analysis of support groups on facebook-the case of patients of hidradenitis suppurativa</article-title>
          ,
          <source>Multimedia Tools and Applications</source>
          <volume>78</volume>
          (
          <year>2019</year>
          )
          <fpage>3321</fpage>
          -
          <lpage>3339</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>G.</given-names>
            <surname>Lombardo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fornacciari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mordonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <article-title>Dynamics of emotions and relations in a facebook group of patients with hidradenitis suppurativa</article-title>
          ,
          <source>in: International Conference on Smart Objects and Technologies for Social Good</source>
          , Springer,
          <year>2017</year>
          , pp.
          <fpage>269</fpage>
          -
          <lpage>278</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          , G. Lombardo,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mordonini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cagnoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>A survey on troll detection</article-title>
          ,
          <source>Future Internet</source>
          <volume>12</volume>
          (
          <year>2020</year>
          )
          <fpage>31</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dedecker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. Van</given-names>
            <surname>Cutsem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mostinckx</surname>
          </string-name>
          ,
          <string-name>
            <surname>T. D'Hondt</surname>
          </string-name>
          , W. De Meuter,
          <article-title>Ambient-oriented programming in ambienttalk</article-title>
          ,
          <source>in: European Conference on Object-Oriented Programming</source>
          , Springer,
          <year>2006</year>
          , pp.
          <fpage>230</fpage>
          -
          <lpage>254</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. S.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Tribble</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Shapiro</surname>
          </string-name>
          ,
          <article-title>Concurrency among strangers</article-title>
          ,
          <source>in: International Symposium on Trustworthy Global Computing</source>
          , Springer,
          <year>2005</year>
          , pp.
          <fpage>195</fpage>
          -
          <lpage>229</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>Agent based modeling and simulation with actomos</article-title>
          .,
          <source>in: WOA</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>91</fpage>
          -
          <lpage>96</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>P.</given-names>
            <surname>Mathieu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Secq</surname>
          </string-name>
          , et al.,
          <article-title>Environment updating and agent scheduling policies in agentbased simulators</article-title>
          .,
          <source>in: ICAART (2)</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>170</fpage>
          -
          <lpage>175</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ajelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Gonçalves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Balcan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Colizza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Ramasco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Merler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vespignani</surname>
          </string-name>
          ,
          <article-title>Comparing large-scale computational approaches to epidemic modeling: agent-based versus structured metapopulation models</article-title>
          ,
          <source>BMC infectious diseases 10</source>
          (
          <year>2010</year>
          )
          <fpage>190</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>D.</given-names>
            <surname>Chumachenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dobriak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mazorchuk</surname>
          </string-name>
          , I. Meniailov,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bazilevych</surname>
          </string-name>
          ,
          <article-title>On agent-based approach to influenza and acute respiratory virus infection simulation</article-title>
          ,
          <source>in: 2018 14th International Conference on Advanced Trends in Radioelecrtronics</source>
          , Telecommunications and Computer Engineering (TCSET), IEEE,
          <year>2018</year>
          , pp.
          <fpage>192</fpage>
          -
          <lpage>195</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gatto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Bertuzzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Miccoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Carraro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Casagrandi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rinaldo</surname>
          </string-name>
          ,
          <article-title>Spread and dynamics of the covid-19 epidemic in italy: Efects of emergency containment measures</article-title>
          ,
          <source>Proceedings of the National Academy of Sciences</source>
          <volume>117</volume>
          (
          <year>2020</year>
          )
          <fpage>10484</fpage>
          -
          <lpage>10491</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>