<!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 />
    <article-meta>
      <title-group>
        <article-title>A Simulation Framework for Pervasive Services Ecosystems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Danilo Pianini</string-name>
          <email>danilo.pianini@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mirko Viroli</string-name>
          <email>mirko.viroli@unibo.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sara Montagna</string-name>
          <email>sara.montagna@unibo.it</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DEIS-Universita` di Bologna</institution>
          ,
          <addr-line>via Venezia 52, 47521 Cesena</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>DEIS-Universita` di Bologna</institution>
          ,
          <addr-line>via Venezia 52, 47521 Cesena</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>DEIS-Universita` di Bologna</institution>
          ,
          <addr-line>via Venezia 52, 47521 Cesena</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-This paper grounds on the SAPERE project (SelfAware PERvasive Service Ecosystems), which aims at proposing a multi-agent framework for pervasive computing, based on the idea of making each agent (service, device, human) manifest its existence in the ecosystem by a Live Semantic Annotation (LSA), and of coordinating agent activities by a small and fixed set of so-called eco-laws-sort of chemical-like reactions over patterns of LSAs. System dynamics in SAPERE is complex because of opennes and due to the self-* requirements imposed by the pervasive computing setting: a simulation framework is hence needed for what-if analysis prior to deployment. In this paper we present a prototype simulator we are developing, tested on a crowd steering scenario. Due to the role of chemicallike dynamics, this is based on a variation of an existing SSA (Stochastic Simulation Algorithm), suitable tailored to the specific features of SAPERE, including dynamicity of network topology, pattern-based application of eco-laws, and temporal triggers.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION AND MOTIVATION</title>
      <p>The increasing evolution of pervasive computing is
promoting the emergence of decentralised and complex infrastructures
for pervasive services composed by new communication
devices (e.g. mobile phones, PDA’s, smart sensors, laptops). Such
infrastructures include traditional services with dynamic and
autonomous context adaptation (e.g., public displays
showing information tailored to bystanders), as well as
innovative services for better interacting with the physical world
(e.g., people coordinating through their PDAs). The common
languages and software infrastructures are often inadequate
to face requirements of scalability, openness, adaptivity and
self-organisation typical of pervasive systems. In order to
better handle these scenarios, a paradigm shift towards agent
world is receiving more and more attention in the scientific
community. They support the realisation of distributed and
eventually communicating environments where different kind
of autonomous entities, the agents, are located. Agents can
sense and change the environment and can interact with other
agents. In particular one of the research topics about agents
regards coordination, namely the way they can produce,
consume and exchange information inside the pervasive system.</p>
      <p>
        Different approaches were proposed in the area of
coordination models and middlewares for pervasive computing
scenarios: they try to account for issues related to spatiality
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], spontaneous and opportunistic coordination [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], self-adaptation and self-management [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]; however, most
works propose ad-hoc solutions to specific problems in specific
areas, and lack generality.
      </p>
      <p>The SAPERE project (“Self-adaptive Pervasive Service
Ecosystems”) addresses the issues related to spatiality,
spontaneous and opportunistic coordination, self-adaptation and
self-management, in a uniform way by means of a truly
self-adaptive pervasive substrate; this is a space bringing
to life an ecosystem of individuals, namely, of pervasive
services, devices, and humans. These are coordinated in a
selforganising way by basic laws (called eco-laws), which evolve
the population of individuals in the system, thus modelling
diverse mechanisms of coordination, communication, and
interaction. Technically, such eco-laws are structured as sort of
chemical reactions, working on the “interface annotation” of
components residing in neighbouring localities—called LSA
(Live Semantic Annotation).</p>
      <p>In this context models and simulation can be useful in
supporting the design of pervasive systems. They give the
possibility to experiment the idea of exploiting bio-inspired
ecological mechanisms, showing through simulation the
overall behaviour of a system designed on top of eco-laws, as
well as to elaborate what-if scenarios. To capture the whole
complexity of the SAPERE approach the model has to support
the abstraction of (i) highly dynamic environment composed of
different, mobile, communicating nodes and (ii) autonomous
agents. They might be programmable through a set of chemical
rules.</p>
      <p>
        On one hand the adoption of the Agent-based Models
(ABM) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] seems to be quite natural as soon as the pervasive
system itself is engineered adopting the agent paradigm. There
are several works which apply this approach in different
contexts, from social systems (see, e.g., [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) to biological systems
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. An ABM grounds around autonomous and possibly
heterogeneous agents that can be situated in an environment.
They carry out the most appropriate line of action, possibly
interacting with other agents as well as the environment itself.
The agent behaviour is modelled through a set of rules which
describe how the agent behaves according to environmental
conditions. These rules can be of different types, according to
the specific model / architecture: from the simple reactive rules
– specifying how the agent must react to environmental stimuli
or perceptions – or pro-active —specifying how the agent must
behave with respect to its goals and tasks [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. Therefore ABM
does not normally provide a way to define the behavioural
rules in terms of chemical laws. In ABM the environment
is also a first class abstraction whose structure, topology and
dynamic can be explicitly modelled. To develop and simulate
ABMs different simulation frameworks have been developed,
such as MASON [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], Repast [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], NetLogo [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ],
[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] and Swarm [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>
        On the other hand considering pure chemical simulators
with stochastic extension, such as BioPEPA [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and BetaWB
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], helps for explicitly model the eco-laws. In this field few
simulators allow to define a multi-compartment topology [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
and to the best of our knowledge no one provides facilities
to move them inside an external environment. Moreover, all
compartments are subject to the same set of laws, which are
chemical reactions.
      </p>
      <p>
        To take the best of both approaches we developed a brand
new simulation framework, called ALCHEMIST, meant to face
natively the model requirements. It implements an optimised
version of the Gillespie’s SSA, namely the Next Reaction
Method [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], extended with the possibility to have dynamic
reactions, i.e. reactions that can be added or removed once the
simulation runs.
      </p>
      <p>A notable application of the proposed approach is in crowd
steering applications, in which a crowd is guided in a pervasive
computing scenario depending on unforeseen events, such
as the occurrence of critical events (i.e. alarms) and the
dynamic formation of jams. We exemplify the approach in
a crowd evacuation scenario, providing its set of eco-laws and
validating it via simulation of the associated Continuos-Time
Markov Chain (CTMC) model.</p>
      <p>The remainder of this paper is organised as follows:
Section II presents details about the computational model we
defined and the simulator engine, Section III reports the
application of the simulator in a crowd steering scenario and
Section IV provides concluding remarks and discusses future
works.</p>
    </sec>
    <sec id="sec-2">
      <title>II. ENGINE ARCHITECTURE</title>
      <p>In this section we first introduce how to model a chemical
system in both deterministic and stochastic ways, then we
show the known algorithms for stochastic simulation and our
choices for a full featured high performance engine.</p>
      <sec id="sec-2-1">
        <title>A. Stochastic Simulation Algorithms</title>
        <p>A chemical system can be modelled as a single space
filled with molecules that may interact through a number
of reactions describing how they combine. The instantaneous
speed of a reaction is called propensity and depends on the
kinetic rate of the reaction and on the concentrations of all the
reagents involved. For a reaction i with k reactants, j products,
stoichiometric coefficients of the i-th reaction expressed as ni
and rate r of the form:
r
n0R0 + n1R1 + : : : + nkRk ! m0P0 + m1P1 + : : : mj Pj</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>The propensity ai is defined as in equation 1:</title>
      <p>ai = r Rn0 Rn1 : : : Rnk
0 1 k
(1)</p>
      <p>
        The usual way chemical systems are studied is through
differential equations describing how the concentration of each
molecule continuously varies with time. In such a description
the system evolution caused by a reaction is modelled through
a continuous variable – the concentration – while it is an event
that changes a discrete variable—the number of molecules in
the system. This approximation is largely acceptable in most
systems, where millions of molecules of each kind are involved
simultaneously, but it’s no longer accurate when only few
molecules are present inside the system. In order to correctly
represent this situation, a stochastic model has been proposed
in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The whole system is described through a single master
equation that calculates the probability that at a given time
t the concentration of a reactant Xi is equal to a number
Ki. Solving this equation is infeasible for every non-trivial
problem, but its evolution can be analysed through stochastic
model checking [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], running series of Monte Carlo
simulations each one describing a possible path, exploiting the
useful property that the probability for the simulation to run
through a specific path is the probability of the path itself. This
kind of description considers the whole system as a CTMC, in
which the rate of the transaction representing the i-th reaction
is the propensity function ai.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], two algorithms are proposed in order to correctly
simulate a stochastic path of a chemical system. Those
algorithms were successively improved, but every algorithm, even
the optimized versions, relies on the idea that the system can
be simulated by effectively executing the reactions one by one
and changing the system status accordingly. Every algorithm
follows four main steps:
1) select the next reaction to be executed;
2) calculate the time of occurrence of according to an
exponential time distribution and make it the current
simulation time;
3) change the environment status in order to reflect this
execution;
4) update the propensities of the reactions.
      </p>
      <p>The known techniques differ in the implementation of first and
fourth steps. We will briefly present them and then justify our
choice for the engine.</p>
      <p>
        1) Direct Method: The direct method was first proposed in
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. It chooses the next reaction to be executed by throwing
a random number r 6 Pi ai and selecting the first reaction
which verifies the property that r &gt; Pi=0 ai. After the
execution of , it updates propensities for each reaction.
      </p>
      <p>
        2) Optimized Direct Method: The direct method can be
optimised as proposed in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] by introducing a binary
search tree and a dependency graph. The former allows to
choose the next reaction to be executed in logarithmic time,
the latter to update only the propensities of those reactions in
which concentration of regents is modified by the execution
of .
      </p>
      <sec id="sec-3-1">
        <title>3) Composition-Rejection Method: In [25] a constant time</title>
        <p>method relying on composition-rejection algorithm is
proposed. The separation between the number of reactions R and
the computational complexity of the algorithm is obtained by
splitting the whole set of reactions into G groups, and then
arguing that G does not depend (or depends loosely) by R.
It may rely on a dependency graph in order to improve the
update phase.</p>
        <p>
          4) First Reaction: The First Reaction Method is the dual
form of the Direct Method, and was proposed first in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. The
key idea is to calculate immediately the time of occurrence for
each reaction and select the next one using the lowest time.
It is demonstrably the same of the Direct Method both in
soundness and in time complexity.
        </p>
        <p>
          5) Next Reaction: The Next Reaction Method is an
optimised form of the First Reaction Method first proposed in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
It relies on an Indexed Priority Queue (IPQ) in order to smartly
sort the reactions by time, has constant time in the selection
phase since the root of the IPQ is always the next reaction to
execute. This algorithm requires the calculation of the times
for each reaction at every update, but a dependency graph can
be used, and the random re-usage is justified, speeding up
consistently the times recalculation.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Computational Model</title>
        <p>Before start discussing about our engine, we describe the
computational model we propose in order to close the gap
between the SAPERE world and the chemical simulators. In
fact, these requirements will influence some aspects of the
engine itself.</p>
        <p>Our model improves the classic model of chemical reactions
in three main directions, introducing the concepts of
environments, nodes and neighbourhoods; extending the concept
of classical chemical reaction as a set of conditions whose
validity may cause the execution of a set of actions and
supporting time fixed events.</p>
        <p>First, in the classic chemical model, the environment is a
single compartment that contains the molecules. This
description is pretty far from the world we want to model, which
is a pervasive service ecosystem. The natural extension is
to consider many compartments (nodes) placed in a space
(environment) which is responsible of linking them.
Depending on the specific environment, nodes can be dynamically
added, moved or removed. A neighbourhood is consequently
a structure which contains a node “centre” and a list of all
linked compartments.</p>
        <p>Second, in classical chemical model, a reaction lists a
number of reactant molecules which, combined, produce a set
of product molecules. This kind of description is too strict
for our purposes. A more generic concept is to consider a
reaction as a set of conditions about the environment which,
when matched, may allow the execution of a set of actions. A
condition is a function which associates a boolean to each
status of the environment, an action is a procedure which
modifies it. The propensity function can no longer be simply
the product of the reaction rate with the concentrations of the
reactants, but needs a more generic definition too: propensity
in our model is a function of the reaction rate, the conditions
and the environment status.</p>
        <p>5.5
1
10.1
0
0
0
2
3.7
1</p>
        <p>4.2
0
0</p>
        <p>2.0</p>
        <p>Third, we want to deal with events whose occurrence time
does not follow an exponential law, for instance triggers,
namely events which happen at a specific time regardless
the previous evolution of the system. A simple example of
simulation requiring triggers could be the simulation of a
failure of a server in a cloud computing system: who writes the
simulation has to set the failure event at a specific time, then
run multiple simulations in order to understand how the system
will react. Another usage of triggers appears when considering
the possibility to interact with a running simulation pausing
it and, exploiting triggers, interact with the environment in
its current status, then resume the simulation. Even if this
approach is not useful when the goal is to check the properties
of a model, it could be very handy when exploring and
testing it for the first times, because it allows the user to
have an immediate feeling on how his model reacts to some
modifications.</p>
      </sec>
      <sec id="sec-3-3">
        <title>C. Dynamic engine</title>
        <p>Given the model we want to simulate described in
Section II-B and the algorithms presented in Section II-A, we can
argue that no existing algorithm as-is is appropriate to allow
our simulations. In particular, no algorithm provides facilities
to add and remove reactions dynamically, and moreover it
appears to be hard to inject the concept of trigger in direct
method or its optimizations because they lack the possibility
to choose the next reaction to execute considering immediately
its time of occurrence. Our choice for the engine algorithm
to extend was then restricted between the First Reaction
and the Next Reaction. The latter is an optimization of the
former, offers a lower computational complexity in every case
and consequently can achieve higher performance. Our work
had the primary goal to extend Next Reaction providing the
possibility to add and remove reactions dynamically, since to
the best of our knowledge no work in this sense have been
ever made. In order to add this support, it is a mandatory
task to provide methods to add and remove reactions from the
indexed priority queue and the dependency graph.</p>
        <p>
          1) Dynamic Indexed Priority Queue: A key property of the
original Indexed Priority Queue proposed in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] is that the
swap procedure used to update the data structure does not
changes the balancing of the tree, ensuring optimal update
times in every situation. This feature was easily achieved
because no new nodes were ever added neither old ones were
removed from the structure, as a consequence, once the tree
is created balanced no event can occur to change its topology.
This is no longer the case, and we have to provide a small
extension to the structure in order to manage the balancing.
Our idea is, for each node, to keep track of the number of
children per branch, having in such way the possibility to keep
the tree balanced when adding nodes. In figure 1 we show how
the same IPQ drawn in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] would appear with our extension.
In the following algorithms, the procedure UPDATE_AUX(n)
is the same described in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Given this data structure, the
procedure to add a new node n is the following:
IF root does not exists
        </p>
        <p>n is the new root
ELSE
c &lt;- root
WHILE c has two children</p>
        <p>IF c.right &lt; c.left
dir &lt;- right</p>
        <p>ELSE
dir &lt;- left
next &lt;- dir children
add 1 to count of c.dir
c &lt;- next
IF c has no left child
n becomes left child of c
set count of left nodes of c to 1
ELSE
n is right child of c
set count of right nodes of c to 1
UPDATE_AUX(n)
The removal procedure for a node n is the following:
c &lt;- root
WHILE c is not a leaf</p>
        <p>IF c.left &gt; c.right</p>
        <p>c &lt;- c.left
ELSE</p>
        <p>c &lt;- c.right
IF c != n
swap c and n
delete n</p>
        <p>UPDATE_AUX(c)
ELSE</p>
        <p>remove n
Using the two procedures described above, the topology of
the whole tree is constrained to remain balanced despite the
dynamic addition and removal of reactions.</p>
        <p>2) Dynamic Dependency Graph: Since we want to support
natively and efficiently the multiple compartments, we defined
three contexts (also called scopes): local, neighborhood
and global. Each reaction has an input context and an output
context, meaning respectively where data influencing the rate
calculus is located and and where the modifications to the
environment are made.</p>
        <p>The first issue to address is to evaluate if two reactions may
influence each other, considering their contexts. We introduce
a boolean procedure called mayInfluence(r1, r2) that
operates on two reactions and returns a true value if:
r1 and r2 are both on the same node OR
Reaction Manager</p>
        <p>Simulation Flow
Dependency Graph
Reporting System</p>
        <p>Interactive UI</p>
        <p>Environment</p>
        <p>Language Parser
Environment Instantiator</p>
        <p>XML Bytecode</p>
        <p>Application-specific Alchemist Bytecode Compiler</p>
        <p>Environment description in application-specific language</p>
        <p>r1’s output context is global OR
r2’s input context is global OR
r1’s output context and r2’s input context are both
neighborhood and the node which r1 belongs to is
a neighbour of the node which r2 belongs.</p>
        <p>Given this handy function, we can assert that a dependency
exists between the execution of a reaction r1 and another
reaction r2 if mayInfluence(r1,r2) is true and at least
a molecule whose concentration is modified by r1 is among
those influencing r2.</p>
        <p>Adding a new reaction implies to verify its dependencies
against every reaction of the system. In case there is a
dependency, it must be added to the graph. Removing a reaction r
requires to delete all dependencies in which r is involved both
as influencing and influenced. Moreover, in case of change
of the system topology which, a dependencies check among
reactions belonging to nodes with modified neighbourhood is
needed. It can be performed by scanning them, calculating
the dependencies with the reactions belonging to new
neighbours and deleting those with nodes which are no longer in
neighbourhood.</p>
      </sec>
      <sec id="sec-3-4">
        <title>D. Engine architecture</title>
        <p>The whole framework has been designed to be fully modular
and extensible. The whole engine or parts of it can be
reimplemented without touching anything in the model, and
on the other hand the model can be extended and modify</p>
        <p>In the SAPERE flavour, all the information exchanged is
in form of Live Semantic Annotations, and the rules are
expressed in form of eco-laws. An LSA is simply modelled as
a tuple hv1; : : : ; vni (ordered sequence) of typed values, which
could be for example numbers, strings or structured types.</p>
        <p>Although in the SAPERE framework LSAs are semantic
annotations, expressing information with same expressiveness of
standard frameworks like RDF, we here consider a simplified
notation. There are three forms of LSAs used in this scenario:</p>
        <p>hsource; type; max; anni
hgrad; type; value; max; anni
hinfo; type; value; tstampi
without messing with engine. This modularity will make it
easy to make some experiments with other engines, such as
Composition-Rejection.</p>
        <p>
          The framework was effectively developed using Java. Being
performances a critical issue for a simulator, we compared
some common languages in order to evaluate their
performance level. Surprisingly, Java performance are at same level
of compiled languages such as C/C++ [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. The Java
language was consequently chosen because of the excellent trade
off among performances, easy portability and maintainability
of the code, plus the support for concurrent programming
at language level. The COLT Java library [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] provided us
the mathematical function we need. In particular, it offers a
fast and reliable random number generation algorithm, the so
called Mersenne Twister [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
        <p>As shown in figure 2, at the current status of development
the simulations are written in a specific XML language which
is interpreted in order to produce an instance of an
environment. Once the environment is created, no further
interpretation of the code is needed in order to run the simulation. This
XML code is not meant to be directly exploited by users, but
it represents a way to describe environments in a
machinefriendly way and is a formalisation of the generic model of
ALCHEMIST. The idea behind this choice is that ALCHEMIST
is flexible enough to be used in various contexts, each one
requiring a sightly different instantiation of the model and its
own language. It’s up to the extensor to write a translation
module from its personalised language to the ALCHEMIST
XML.</p>
        <p>A source LSA is used for gradient sources: type indicates
the type of gradient (fire, exit, and crowd); max is the
gradient’s maximum value; and ann is the annealing factor—
its purpose will be described later, along with eco-laws. A
gradient LSA is used for individual values in a gradient:
value indicates the individual value; and the other parameters
are like in the source LSAs. Finally, an info LSA is used for
local values (e.g., not part of a gradient)—parameters are like
in the source and gradient LSAs. The tstamp reflects the time
of creation of the LSA.</p>
        <p>The sources of the gradients are injected by sensors when an
exit, a fire or a number of persons is perceived, with the
values hsource; exit; Me; Aei and hsource; fire; Mf; Afi. For
the crowding information, we may assume that sensors are
calibrated so as to locally inject an LSA indicating the level of
crowding, i.e. the number of persons. The crowding LSA will
look like hsource; crowd; Mc; Aci and is periodically updated</p>
        <p>III. CASE STUDY by the sensor.</p>
        <p>We propose a crowd evacuation scenario as a case study. An eco-law is a chemical-resembling reaction working over
Imagine a museum with a large room, whose floor is covered patterns of LSAs. One such pattern P is basically an LSA
with a sensor network, and an external corridor with two exits. which may have some variable in place of one or more
A number of visitors are inside the main room, each one arguments of a tuple, and as usual an LSA L is said to match
equipped with a PDA that can guide the visitor towards the exit the pattern P if there exists a substitution of variables which
in case of emergency. Sensors may perceive the presence of applied to P gives L. In Figure 3, the eco-laws for our case
doors, fires and persons. When an emergency appears, PDAs study are given.
must show the direction towards an exit, along a safe path. The As sources are established, gradients are built by the first
system has to be resilient to changes or unpredicted situations, two rules in Figure 3. The former, given a source, initiates its
in particular the safe path must consider: gradient; the latter, when a node contains a gradient LSA,
distance: it should tend to lead to the nearest exit; spreads it to a neighbouring node with an increased value
fire: it should tend to stay away from fire; proportional to the distance between sensors indicated by the
crowd: it should tend to avoid overcrowded paths. variable #D. As a consequence of these laws, each node
will carry a grad LSA indicating the topological distance
A. A SAPERE model from the source. When the spread values reach the maximum</p>
        <p>The environment models the network of sensors. Each vale M , the gradient becomes a plateau. The spreading
ecosensor is a node of the network. PDAs are agents dynamically law above may produce duplicate values in locations (due to
linked with the nearest sensors – the neighbours are the sensors multiple sources, multiple paths to a source, or even diffusion
inside a certain radius r, parameter of the model – from which of multiple LSAs over time). Thus, the third eco-law retains
they can retrieve data in order to suggest visitors where to go. only the minimum distance. Finally, we have to address the
Visitors are agents which tend to follow the advices of the dynamism of the scenario where people move, fires extinguish,
PDA. They can move of discrete steps inside the environment, exits may be blocked, crowds form and dissolve. If a gradient
but there must be a physical limit in the minimum distance source vanishes, the diffused values should increase (e.g., the
between them, since two visitors can’t be in the same place distance to exit increases if the nearest exit is no longer
at the same time. available). This is the purpose of the annealing parameter in
Rs
7 !
!
Ratt
7 !</p>
        <p>!
hgrad; T; V; M; Ai; hgrad; T; W; M; Ai</p>
        <p>hgrad; T; min(V; W ); M; Ai
hgrad; T; V; M; Ai 7</p>
        <p>Rann(A!) hgrad; T; V +1; M; Ai
hsource; T; M; Ai 7 Rin!it</p>
        <p>hsource; T; M; Ai; hgrad; T; 0; M; Ai
hgrad; T; V; M; Ai</p>
        <p>hgrad; T; V; M; Ai; +hgrad; T; min(V +#D; M); M; Ai
hgrad; exit; E; Me; Aei;
hgrad; fire; F; Mf ; Af i;
hinfo; crowd; CR; TS i
hgrad; exit; E; Me; Aei; hgrad; fire; F; Mf ; Af i;
hinfo; crowd; CR; TS i;
hinfo; attr; (Me E)=(1 + (Mf F ) + k (Mc C)); #T i
hinfo; attr; A; TS i; hinfo; attr; A2 ; TS +T i</p>
        <p>hinfo; attr; A2 ; TS +T i
hinfo; escape; Li; hinfo; attr; A; T Si; 7
+hinfo; attr; A+ ; T S2i</p>
        <p>Rdisp( !) hinfo; escape; #Oi; hinfo; attr; A; T Si;</p>
        <p>+hinfo; attr; A + ; T S2i
the gradient LSAs: it defines the rate of fourth eco-law, which value automatically attached to each node by fifth eco-law.
continuously tends to level up gradient values, encouraging Coefficient k (tuned by simulation) is used to weight the
the replacement of old values by more current ones. The Rann effect on crowding on attractiveness. As gradients evolve, older
rate is directly proportional to A. When a fire is put out, for attractiveness LSAs are replaced with newer ones with seventh
example, this eco-law will gradually raise the fire gradient to eco-law (T is assumed positive).
the point where it reaches the maximum, indicating no fire.</p>
        <p>Annealing may introduce a burden on the system, therefore Each location contains by default an LSA of the form
high annealing values should only be used for gradients that hinfo; escape; L; TS i, where L is the direction to be
sughave to change often or quickly. gested by the PDA. In principle, the neighbour with the highest
attractiveness should be chosen, but a more resilient solution</p>
        <p>Based on exit distance, fire distance and crowding, a is to tie the markovian rate of eco-laws to the attractiveness of
location can be ranked as more or less “attractive” to be neighbours, so that the highest probability is to point the best
part of an escape path. This is done via an attractiveness neighbour, with a possibility to point a less-than-optimal (but
still attractive) neighbour, as described by the last eco-law. The
rate is proportional to the difference in attractiveness between
the node and its neighbour ( ). The higher the , the higher
the rate. Note that is a positive value, hence A + implies
that the last eco-law only considers neighbours with a higher
attractiveness, i.e., the PDA will not point away from the exit.</p>
        <p>The proposed architecture is intrinsically able to
dynamically adapt to unexpected events (like node failures, network
isolation, exits suddenly unavailable, crowd formation, and so
on) while maintaining its functionality.</p>
        <p>
          More details about the model of the case study are given in
[
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>B. Simulator configuration</title>
        <p>The behaviour of each agent is programmed according to the
eco-laws coordination model explained in Figure 3. We here
present simulations conducted over an exposition structured as
shown in Figure 5, where three snapshots of a simulation run
are reported: all the people in the room start moving towards
one of the two exists (located at the ends of the corridor)
because of the fire in the top-right corner of the room. Note
in third snapshot that a person is walking in the middle of the
corridor, for she was suggested to go to a farther exit because
of the corridor jam at the bottom-right. Rooms and corridors
are covered by a grid of locations hosting sensors, one per
meter in the room, one per two meters in the corridor: such
locations are the infrastructure nodes where LSAs are reified.
The maximum values for the gradients are set to: Me = 30,
Mf = 3, Mc = 20. The PDA of each person is modelled as
a mobile node, able to perceive the attractiveness gradient in
the nearest sensor locations: accordingly, the person moves in
the suggested direction.</p>
        <p>Each eco-law in Figure 3 is modeled inside the simulator
as a reaction. The behaviour of visitors is a reaction too,
featuring a special action in which the behaviour of the visitors
is expressed.</p>
        <p>Through this scenario many innovative aspects of
ALCHEMIST can be stressed: we have mobile compartments, a
triggers (which are exploited in order to set up fire),
dynamically changing neighbourhoods and a pretty rich scenario with
up to 316 nodes moving inside and exiting an environment
with physical obstacles.</p>
      </sec>
      <sec id="sec-3-6">
        <title>C. Parameter tuning and simulation results</title>
        <p>ALCHEMIST offers full support to run concurrently multiple
simulations in order to tune parameters. In this scenario this
feature is exploited to optimize the parameter k, finding out
how to fix it in the fifth reaction of Figure 3 in order to grant
a low exit time in different cases. We tested it with 50, 100
and 225 visitors. Results are shown in Figure 6.</p>
        <p>Figure 7 shows the gradients of exit, fire, crowding and
attractiveness (one per column) corresponding to the simulation
steps of Figure 5 (one step per row). At t = 0, gradients
are level; with time, the gradient self-modify—it is easy to
see the exits, fire and crowds in the respective gradients. The
crowding gradient in the third column changes dynamically
during simulation according to the movement of people. The
last column shows the attractiveness gradient, computed from
the other three gradients. Note how the second snapshot shows
an attractiveness “hole” in the middle of the room and in the
corridor due to crowding.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. CONCLUSION</title>
      <p>In the SAPERE metaphor, the ideal level of abstraction
to reach in order to easily and correctly model and simulate
pervasive systems stands between the ABM and
biochemistryoriented simulators. In this work we shown the ALCHEMIST
simulation framework, meant to fully support this way to think
pervasive systems. This framework embraces the SAPERE
vision and allows to approach the simulation of agent systems
in a new flavour, describing the system in terms of
reactionlike laws and having consequently the possibility to rely on all
the work already made about CTMC. We shown a case study
whose complexity overcomes the expressiveness possibility of
classical biochemistry-oriented simulation frameworks, and we
analysed it exploiting the same CTMC mathematical support.
Perspectives for the immediate future include a comparison
in terms of performance and expressiveness with the ABM
simulation frameworks, such as Repast and NetLogo, and the
analysis, modelling and simulation of further scenarios, with
different types of complexity so to stress the potentialities of
ALCHEMIST. Future work are also devoted to theoretically
compare the CTMC model with the Discrete Event Simulation
approach at the simulation, normally adopted in the ABM
simulators.</p>
    </sec>
    <sec id="sec-5">
      <title>ACKNOWLEDGMENT</title>
      <p>This work has been supported by the EU-FP7-FET Proactive
project SAPERE Self-aware Pervasive Service Ecosystems,
under contract no.256873</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>Alves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Antunes</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Salvador</surname>
          </string-name>
          .
          <article-title>Tools for kinetic modeling of biochemical networks</article-title>
          .
          <source>Nature Biotechnology</source>
          ,
          <volume>24</volume>
          (
          <issue>6</issue>
          ):
          <fpage>667</fpage>
          -
          <lpage>672</lpage>
          ,
          <year>June 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Autili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Benedetto</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          .
          <article-title>Context-aware adaptive services: The plastic approach</article-title>
          .
          <source>In FASE '09 Proceedings</source>
          , pages
          <fpage>124</fpage>
          -
          <lpage>139</lpage>
          , Berlin, Heidelberg,
          <year>2009</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bandini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Manzoni</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Vizzari. Crowd Behavior</surname>
          </string-name>
          <article-title>Modeling: From Cellular Automata to Multi-Agent Systems</article-title>
          . In A. M. Uhrmacher and D. Weyns, editors,
          <source>Multi-Agent Systems: Simulation and Applications</source>
          ,
          <source>Computational Analysis, Synthesis, and Design of Dynamic Systems</source>
          , chapter
          <volume>13</volume>
          , pages
          <fpage>389</fpage>
          -
          <lpage>418</lpage>
          . CRC Press,
          <year>June 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Beurier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Michel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Ferber</surname>
          </string-name>
          .
          <article-title>A morphogenesis model for multiagent embryogeny</article-title>
          . In L. M.
          <string-name>
            <surname>Rocha</surname>
            ,
            <given-names>L. S.</given-names>
          </string-name>
          <string-name>
            <surname>Yaeger</surname>
            ,
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Bedau</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Floreano</surname>
            ,
            <given-names>R. L.</given-names>
          </string-name>
          <string-name>
            <surname>Goldstone</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Vespignani, editors,
          <source>Artificial Life X: Proceedings of the Tenth International Conference on the Simulation and Synthesis of Living Systems</source>
          , pages
          <fpage>84</fpage>
          -
          <lpage>90</lpage>
          . MIT Press, Cambridge, MA,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Bull</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ball</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pottage</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Freeman</surname>
          </string-name>
          .
          <article-title>Benchmarking java against c and fortran for scientific applications</article-title>
          .
          <source>Concurrency and Computation: Practice and Experience</source>
          ,
          <volume>15</volume>
          (
          <issue>3-5</issue>
          ):
          <fpage>417</fpage>
          -
          <lpage>430</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Casadei</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          .
          <article-title>A framework to specify and verify computational fields for pervasive systems</article-title>
          .
          <source>ACM Transactions on Autonomous and Adaptive Systems</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F.</given-names>
            <surname>Ciocchetta</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Guerriero</surname>
          </string-name>
          .
          <article-title>Modelling biological compartments in Bio-PEPA</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          ,
          <volume>227</volume>
          :
          <fpage>77</fpage>
          -
          <lpage>95</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>L.</given-names>
            <surname>Dematte</surname>
          </string-name>
          ´,
          <string-name>
            <given-names>C.</given-names>
            <surname>Priami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Romanel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Soyer</surname>
          </string-name>
          .
          <article-title>Evolving blenx programs to simulate the evolution of biological networks</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>408</volume>
          (
          <issue>1</issue>
          ):
          <fpage>83</fpage>
          -
          <lpage>96</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>C.-L. Fok</surname>
            , G.-
            <given-names>C.</given-names>
            Roman, and C.
          </string-name>
          <string-name>
            <surname>Lu</surname>
          </string-name>
          .
          <article-title>Enhanced coordination in sensor networks through flexible service provisioning</article-title>
          . In J. Field and V. T. Vasconcelos, editors,
          <source>Proceedings of COORDINATION</source>
          <year>2009</year>
          , volume
          <volume>5521</volume>
          <source>of LNCS</source>
          , pages
          <fpage>66</fpage>
          -
          <lpage>85</lpage>
          . Springer-Verlag,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Gibson</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Bruck</surname>
          </string-name>
          .
          <article-title>Efficient exact stochastic simulation of chemical systems with many species and many channels</article-title>
          .
          <source>J. Phys. Chem. A</source>
          ,
          <volume>104</volume>
          :
          <fpage>1876</fpage>
          -
          <lpage>1889</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D. T.</given-names>
            <surname>Gillespie</surname>
          </string-name>
          .
          <article-title>Exact stochastic simulation of coupled chemical reactions</article-title>
          .
          <source>The Journal of Physical Chemistry</source>
          ,
          <volume>81</volume>
          (
          <issue>25</issue>
          ):
          <fpage>2340</fpage>
          -
          <lpage>2361</lpage>
          ,
          <year>December 1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T.</given-names>
            <surname>He</surname>
          </string-name>
          <article-title>´rault</article-title>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lassaigne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Magniette</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Peyronnet</surname>
          </string-name>
          .
          <article-title>Approximate probabilistic model checking</article-title>
          .
          <source>In VMCAI</source>
          , pages
          <fpage>73</fpage>
          -
          <lpage>84</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>W.</given-names>
            <surname>Hoschek</surname>
          </string-name>
          .
          <article-title>The Colt Distribution: Open Source Libraries for High Performance Scientific and Technical Computing in Java</article-title>
          . Geneva,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Luke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cioffi-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>
          , and
          <string-name>
            <given-names>G. C.</given-names>
            <surname>Balan</surname>
          </string-name>
          .
          <article-title>Mason: A multiagent simulation environment</article-title>
          .
          <source>Simulation</source>
          ,
          <volume>81</volume>
          (
          <issue>7</issue>
          ):
          <fpage>517</fpage>
          -
          <lpage>527</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>C. M. Macal</surname>
            and
            <given-names>M. J. North.</given-names>
          </string-name>
          <article-title>Tutorial on agent-based modelling and simulation</article-title>
          .
          <source>Journal of Simulation</source>
          ,
          <volume>4</volume>
          :
          <fpage>151</fpage>
          -
          <lpage>162</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mamei</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          .
          <article-title>Programming pervasive and mobile computing applications: The tota approach</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>18</volume>
          (
          <issue>4</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>56</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Matsumoto</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Nishimura</surname>
          </string-name>
          .
          <article-title>Mersenne twister: A 623- dimensionally equidistributed uniform pseudo-random number generator</article-title>
          .
          <source>ACM Trans. Model. Comput. Simul.</source>
          ,
          <volume>8</volume>
          (
          <issue>1</issue>
          ):
          <fpage>3</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Montagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Donati</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          .
          <article-title>An agent-based model for the pattern formation in Drosophila Melanogaster</article-title>
          . In H. Fellermann, M. Do¨rr,
          <string-name>
            <surname>M. M. Hanczyc</surname>
            ,
            <given-names>L. Ladegaard</given-names>
          </string-name>
          <string-name>
            <surname>Laursen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Maurer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Merkle</surname>
            ,
            <given-names>P.-A.</given-names>
          </string-name>
          <string-name>
            <surname>Monnard</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Stoy</surname>
          </string-name>
          , and S. Rasmussen, editors,
          <source>Artificial Life XII</source>
          , chapter
          <volume>21</volume>
          , pages
          <fpage>110</fpage>
          -
          <lpage>117</lpage>
          . The MIT Press, Cambridge, MA, USA,
          <year>2010</year>
          .
          <source>Proceedings of the 12th International Conference on the Synthesis and Simulation of Living Systems</source>
          ,
          <volume>19</volume>
          -
          <fpage>23</fpage>
          Aug.
          <year>2010</year>
          , Odense, Denmark.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Montagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Risoldi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Pianini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Di Marzo</surname>
          </string-name>
          <article-title>Serugendo</article-title>
          .
          <article-title>Self-organising pervasive ecosystems: A crowd evacuation example</article-title>
          .
          <volume>29</volume>
          -
          <issue>30</issue>
          <year>September 2011</year>
          . Submitted at the 3rd
          <source>International Workshop on Software Engineering for Resilient Systems.</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Murphy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Picco</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.-C.</given-names>
            <surname>Roman</surname>
          </string-name>
          .
          <article-title>Lime: A model and middleware supporting mobility of hosts and agents</article-title>
          .
          <source>ACM Trans. on Software Engineering and Methodology</source>
          ,
          <volume>15</volume>
          (
          <issue>3</issue>
          ):
          <fpage>279</fpage>
          -
          <lpage>328</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>M. J. North</surname>
            ,
            <given-names>T. R.</given-names>
          </string-name>
          <string-name>
            <surname>Howe</surname>
            ,
            <given-names>N. T.</given-names>
          </string-name>
          <string-name>
            <surname>Collier</surname>
            , and
            <given-names>J. R.</given-names>
          </string-name>
          <string-name>
            <surname>Vos</surname>
          </string-name>
          .
          <article-title>A declarative model assembly infrastructure for verification and validation</article-title>
          . In S. Takahashi,
          <string-name>
            <given-names>D.</given-names>
            <surname>Sallach</surname>
          </string-name>
          , and J. Rouchier, editors,
          <source>Advancing Social Simulation: The First World Congress</source>
          , pages
          <fpage>129</fpage>
          -
          <lpage>140</lpage>
          . Springer Japan,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>B.</given-names>
            <surname>Oancea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. G.</given-names>
            <surname>Rosca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Andrei</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. I. Iacob.</surname>
          </string-name>
          <article-title>Evaluating java performance for linear algebra numerical computations</article-title>
          .
          <source>Procedia CS</source>
          ,
          <volume>3</volume>
          :
          <fpage>474</fpage>
          -
          <lpage>478</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>P. V.</given-names>
            <surname>Roy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Haridi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reinefeld</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-B. Stefany</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Yap</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Coupaye</surname>
          </string-name>
          .
          <article-title>Self-management for large-scale distributed systems: an overview of the selfman project</article-title>
          .
          <source>In Formal Methods for Components and Objects</source>
          , LNCS No.
          <volume>5382</volume>
          , pages
          <fpage>153</fpage>
          -
          <lpage>178</lpage>
          . Springer Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>E.</given-names>
            <surname>Sklar</surname>
          </string-name>
          .
          <article-title>Netlogo, a multi-agent simulation environment</article-title>
          .
          <source>Artificial Life</source>
          ,
          <volume>13</volume>
          (
          <issue>3</issue>
          ):
          <fpage>303</fpage>
          -
          <lpage>311</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Slepoy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Thompson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Plimpton</surname>
          </string-name>
          .
          <article-title>A constant-time kinetic monte carlo algorithm for simulation of large biochemical reaction networks</article-title>
          .
          <source>The Journal of Chemical Physics</source>
          ,
          <volume>128</volume>
          (
          <issue>20</issue>
          ):
          <fpage>205101</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>R. D.</given-names>
            <surname>Team</surname>
          </string-name>
          . http://repast.sourceforge.net/.
          <source>Repast home page.</source>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>S. D.</given-names>
            <surname>Team</surname>
          </string-name>
          . http://www.swarm.org/index.php/Main Page.
          <article-title>Swarm home page</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28] G. M. University. http://www.cs.gmu.edu/n eclab/projects/mason/.
          <source>MASON home page.</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>C.</given-names>
            <surname>Versari</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Busi</surname>
          </string-name>
          .
          <article-title>Efficient stochastic simulation of biological systems with multiple variable volumes</article-title>
          .
          <source>Electr. Notes Theor. Comput. Sci.</source>
          ,
          <volume>194</volume>
          (
          <issue>3</issue>
          ):
          <fpage>165</fpage>
          -
          <lpage>180</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>U.</given-names>
            <surname>Wilensky</surname>
          </string-name>
          and CCL. http://ccl.northwestern.edu/netlogo/index.shtml.
          <source>NetLogo home page.</source>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          .
          <article-title>An Introduction to MultiAgent Systems</article-title>
          . John Wiley &amp; Sons, 1st edition,
          <year>June 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yildirim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. L.</given-names>
            <surname>Dam</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Houk</surname>
          </string-name>
          .
          <article-title>The mind agents in netlogo 3.1</article-title>
          . In
          <source>SpringSim (2)</source>
          , pages
          <fpage>137</fpage>
          -
          <lpage>143</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>