<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Simulation Framework for Pervasive Services Ecosystems</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Danilo</forename><surname>Pianini</surname></persName>
							<email>danilo.pianini@unibo.it</email>
							<affiliation key="aff0">
								<orgName type="institution">DEIS-Università di Bologna via</orgName>
								<address>
									<addrLine>Venezia 52</addrLine>
									<postCode>47521</postCode>
									<settlement>Cesena</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Mirko</forename><surname>Viroli</surname></persName>
							<email>mirko.viroli@unibo.it</email>
							<affiliation key="aff1">
								<orgName type="institution">DEIS-Università di Bologna via</orgName>
								<address>
									<addrLine>Venezia 52</addrLine>
									<postCode>47521</postCode>
									<settlement>Cesena</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Sara</forename><surname>Montagna</surname></persName>
							<email>sara.montagna@unibo.it</email>
							<affiliation key="aff2">
								<orgName type="institution">DEIS-Università di Bologna via</orgName>
								<address>
									<addrLine>Venezia 52</addrLine>
									<postCode>47521</postCode>
									<settlement>Cesena</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Simulation Framework for Pervasive Services Ecosystems</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">74924707E7415527C7C7D53961084988</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T08:25+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper grounds on the SAPERE project (Self-Aware 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION AND MOTIVATION</head><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 <ref type="bibr" target="#b15">[16]</ref>, <ref type="bibr" target="#b19">[20]</ref>, spontaneous and opportunistic coordination <ref type="bibr" target="#b1">[2]</ref>, <ref type="bibr" target="#b8">[9]</ref>, self-adaptation and self-management <ref type="bibr" target="#b22">[23]</ref>; 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) <ref type="bibr" target="#b14">[15]</ref> 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., <ref type="bibr" target="#b2">[3]</ref>) to biological systems <ref type="bibr" target="#b17">[18]</ref>, <ref type="bibr" target="#b3">[4]</ref>. 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 <ref type="bibr" target="#b31">[31]</ref>. 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 <ref type="bibr" target="#b13">[14]</ref>, <ref type="bibr" target="#b27">[28]</ref>, Repast <ref type="bibr" target="#b20">[21]</ref>, <ref type="bibr" target="#b25">[26]</ref>, NetLogo <ref type="bibr" target="#b30">[30]</ref>, <ref type="bibr" target="#b23">[24]</ref>, <ref type="bibr" target="#b32">[32]</ref> and Swarm <ref type="bibr" target="#b26">[27]</ref>.</p><p>On the other hand considering pure chemical simulators with stochastic extension, such as BioPEPA <ref type="bibr" target="#b6">[7]</ref> and BetaWB <ref type="bibr" target="#b7">[8]</ref>, helps for explicitly model the eco-laws. In this field few simulators allow to define a multi-compartment topology <ref type="bibr" target="#b0">[1]</ref>, 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 <ref type="bibr" target="#b9">[10]</ref>, 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. ENGINE ARCHITECTURE</head><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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Stochastic Simulation Algorithms</head><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 n i and rate r of the form:</p><formula xml:id="formula_0">n 0 R 0 + n 1 R 1 + . . . + n k R k r − → m 0 P 0 + m 1 P 1 + . . . m j P j</formula><p>The propensity a i is defined as in equation 1:</p><formula xml:id="formula_1">a i = r • R n0 0 • R n1 1 • . . . • R n k k<label>(1)</label></formula><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 <ref type="bibr" target="#b10">[11]</ref>. 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 X i is equal to a number K i . Solving this equation is infeasible for every non-trivial problem, but its evolution can be analysed through stochastic model checking <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b11">[12]</ref>, 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 a i .</p><p>In <ref type="bibr" target="#b10">[11]</ref>, 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:</p><p>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. 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 <ref type="bibr" target="#b10">[11]</ref>. It chooses the next reaction to be executed by throwing a random number r i a i and selecting the first reaction µ which verifies the property that r µ i=0 a i . 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 <ref type="bibr" target="#b9">[10]</ref> and <ref type="bibr" target="#b29">[29]</ref> 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><p>3) Composition-Rejection Method: In <ref type="bibr" target="#b24">[25]</ref> a constant time 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 <ref type="bibr" target="#b10">[11]</ref>. 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 <ref type="bibr" target="#b9">[10]</ref>. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Computational Model</head><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. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Dynamic engine</head><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 <ref type="bibr" target="#b9">[10]</ref> 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 <ref type="figure" target="#fig_0">1</ref> we show how the same IPQ drawn in <ref type="bibr" target="#b9">[10]</ref> would appear with our extension. In the following algorithms, the procedure UPDATE_AUX(n) is the same described in <ref type="bibr" target="#b9">[10]</ref>. Given this data structure, the procedure to add a new node n is the following: The removal procedure for a node n is the following: 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:</p><p>• r1 and r2 are both on the same node OR neighborhood and the node which r1 belongs to is a neighbour of the node which r2 belongs. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Engine architecture</head><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 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++ <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b21">[22]</ref>. 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 <ref type="bibr" target="#b12">[13]</ref> provided us the mathematical function we need. In particular, it offers a fast and reliable random number generation algorithm, the so called Mersenne Twister <ref type="bibr" target="#b16">[17]</ref>.</p><p>As shown in figure <ref type="figure">2</ref>, 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. CASE STUDY</head><p>We propose a crowd evacuation scenario as a case study. Imagine a museum with a large room, whose floor is covered with a sensor network, and an external corridor with two exits. A number of visitors are inside the main room, each one equipped with a PDA that can guide the visitor towards the exit in case of emergency. Sensors may perceive the presence of doors, fires and persons. When an emergency appears, PDAs must show the direction towards an exit, along a safe path. The system has to be resilient to changes or unpredicted situations, in particular the safe path must consider:</p><p>• distance: it should tend to lead to the nearest exit;</p><p>• fire: it should tend to stay away from fire;</p><p>• crowd: it should tend to avoid overcrowded paths.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. A SAPERE model</head><p>The environment models the network of sensors. Each sensor is a node of the network. PDAs are agents dynamically linked with the nearest sensors -the neighbours are the sensors inside a certain radius r, parameter of the model -from which they can retrieve data in order to suggest visitors where to go. Visitors are agents which tend to follow the advices of the PDA. They can move of discrete steps inside the environment, but there must be a physical limit in the minimum distance between them, since two visitors can't be in the same place at the same time.</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 v 1 , . . . , v n (ordered sequence) of typed values, which could be for example numbers, strings or structured types. 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: source, type, max, ann grad, type, value, max, ann info, type, value, tstamp 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 factorits 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. The sources of the gradients are injected by sensors when an exit, a fire or a number of persons is perceived, with the values source, exit, Me, Ae and source, fire, Mf, Af . 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 source, crowd, Mc, Ac and is periodically updated by the sensor.</p><p>An eco-law is a chemical-resembling reaction working over patterns of LSAs. One such pattern P is basically an LSA which may have some variable in place of one or more arguments of a tuple, and as usual an LSA L is said to match the pattern P if there exists a substitution of variables which applied to P gives L. In Figure <ref type="figure" target="#fig_3">3</ref>, the eco-laws for our case study are given.</p><p>As sources are established, gradients are built by the first two rules in Figure <ref type="figure" target="#fig_3">3</ref>. The former, given a source, initiates its gradient; the latter, when a node contains a gradient LSA, spreads it to a neighbouring node with an increased value proportional to the distance between sensors indicated by the variable #D. As a consequence of these laws, each node will carry a grad LSA indicating the topological distance from the source. When the spread values reach the maximum vale M , the gradient becomes a plateau. The spreading ecolaw above may produce duplicate values in locations (due to multiple sources, multiple paths to a source, or even diffusion of multiple LSAs over time). Thus, the third eco-law retains only the minimum distance. Finally, we have to address the dynamism of the scenario where people move, fires extinguish, exits may be blocked, crowds form and dissolve. If a gradient source vanishes, the diffused values should increase (e.g., the distance to exit increases if the nearest exit is no longer available). This is the purpose of the annealing parameter in &lt;?xml version="1.0" encoding="UTF8"?&gt; &lt;environment ... &gt; &lt;concentration type="DoubleConcentration"&gt;&lt;/concentration&gt; &lt;position type="Continuous2DEuclidean"&gt;&lt;/position&gt; &lt;molecule name="exitSource" type="Molecule" p0="exitSource"&gt;&lt;/molecule&gt; &lt;molecule name="exitGrad" type="Molecule" p0="exitGrad"&gt;&lt;/molecule&gt; ... &lt;node name="door1" ... &gt; &lt;content exitSource="1"&gt;&lt;/content&gt; &lt;reaction name="pumpToField" type="ExpTimeReaction" p0="n0" p1="1"&gt; &lt;condition type="MoleculePresentCondition" p0="exitSource" p1="door1" p2="1"&gt;&lt;/condition&gt; &lt;action name="setGrad" type="SetLocalMoleculeConcentration" p0="door1" p1="exitGrad" p2="0"&gt;&lt;/action&gt; &lt;/reaction&gt; ... &lt;/node&gt; ... &lt;/environment&gt; the gradient LSAs: it defines the rate of fourth eco-law, which continuously tends to level up gradient values, encouraging the replacement of old values by more current ones. The R ann rate is directly proportional to A. When a fire is put out, for example, this eco-law will gradually raise the fire gradient to the point where it reaches the maximum, indicating no fire. Annealing may introduce a burden on the system, therefore high annealing values should only be used for gradients that have to change often or quickly.</p><p>Based on exit distance, fire distance and crowding, a location can be ranked as more or less "attractive" to be part of an escape path. This is done via an attractiveness value automatically attached to each node by fifth eco-law. Coefficient k (tuned by simulation) is used to weight the effect on crowding on attractiveness. As gradients evolve, older attractiveness LSAs are replaced with newer ones with seventh eco-law (T is assumed positive).</p><p>Each location contains by default an LSA of the form info, escape, L, TS , where L is the direction to be suggested by the PDA. In principle, the neighbour with the highest attractiveness should be chosen, but a more resilient solution is to tie the markovian rate of eco-laws to the attractiveness of neighbours, so that the highest probability is to point the best neighbour, with a possibility to point a less-than-optimal (but Fig. <ref type="figure">5</ref>. A simulation run of the reference exposition: three snapshots of the ALCHEMIST graphic reporting module with this simulation 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 <ref type="bibr" target="#b18">[19]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Simulator configuration</head><p>The behaviour of each agent is programmed according to the eco-laws coordination model explained in Figure <ref type="figure" target="#fig_3">3</ref>. We here present simulations conducted over an exposition structured as shown in Figure <ref type="figure">5</ref>, 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 <ref type="figure" target="#fig_3">3</ref> 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 AL-CHEMIST 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Parameter tuning and simulation results</head><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 <ref type="figure" target="#fig_3">3</ref> 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 <ref type="figure" target="#fig_5">6</ref>.</p><p>Figure <ref type="figure" target="#fig_6">7</ref> shows the gradients of exit, fire, crowding and attractiveness (one per column) corresponding to the simulation steps of Figure <ref type="figure">5</ref> (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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. CONCLUSION</head><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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Indexed Priority Queue extended with children count per branch</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>IF root does not exists n is the new root ELSE c &lt;-root WHILE c has two children IF c.right &lt; c.left dir &lt;-right 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)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Eco laws.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Alchemist XML code snipped of the case study, with the translation of the first eco-law.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. Results of the k parameter analysis.</figDesc><graphic coords="7,311.97,193.81,251.06,150.56" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 7 .</head><label>7</label><figDesc>Fig. 7. Gradients for the snaphots in Figure 5. Concentration is the gradient value normalised to its maximum value.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Fig.2. ALCHEMIST architecture. Elements drawn with continuous lines indicates components common for every scenario and already developed, those with dotted lines are extension-specific components which have to be developed with the specific application in mind.</figDesc><table><row><cell>Core Engine</cell><cell></cell></row><row><cell>Reaction Manager</cell><cell>Reporting System</cell></row><row><cell>Simulation Flow</cell><cell>Interactive UI</cell></row><row><cell>Dependency Graph</cell><cell>Environment</cell></row><row><cell>Language Parser</cell><cell></cell></row><row><cell cols="2">Environment Instantiator</cell></row><row><cell>XML Bytecode</cell><cell></cell></row><row><cell cols="2">Application-specific Alchemist Bytecode Compiler</cell></row><row><cell cols="2">Environment description in application-specific language</cell></row></table><note>• 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</note></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACKNOWLEDGMENT</head><p>This work has been supported by the EU-FP7-FET Proactive project SAPERE Self-aware Pervasive Service Ecosystems, under contract no.256873</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Tools for kinetic modeling of biochemical networks</title>
		<author>
			<persName><forename type="first">R</forename><surname>Alves</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Antunes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Salvador</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Nature Biotechnology</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="667" to="672" />
			<date type="published" when="2006-06">June 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Context-aware adaptive services: The plastic approach</title>
		<author>
			<persName><forename type="first">M</forename><surname>Autili</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Benedetto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Inverardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">FASE &apos;09 Proceedings</title>
				<meeting><address><addrLine>Berlin, Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="124" to="139" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Crowd Behavior Modeling: From Cellular Automata to Multi-Agent Systems</title>
		<author>
			<persName><forename type="first">S</forename><surname>Bandini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Manzoni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Vizzari</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Multi-Agent Systems: Simulation and Applications, Computational Analysis, Synthesis, and Design of Dynamic Systems</title>
				<editor>
			<persName><forename type="first">A</forename><forename type="middle">M</forename><surname>Uhrmacher</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Weyns</surname></persName>
		</editor>
		<imprint>
			<publisher>CRC Press</publisher>
			<date type="published" when="2009-06">June 2009</date>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page" from="389" to="418" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A morphogenesis model for multiagent embryogeny</title>
		<author>
			<persName><forename type="first">G</forename><surname>Beurier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Michel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Ferber</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Artificial Life X: Proceedings of the Tenth International Conference on the Simulation and Synthesis of Living Systems</title>
				<editor>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Rocha</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><forename type="middle">S</forename><surname>Yaeger</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Bedau</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Floreano</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><forename type="middle">L</forename><surname>Goldstone</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Vespignani</surname></persName>
		</editor>
		<meeting><address><addrLine>Cambridge, MA</addrLine></address></meeting>
		<imprint>
			<publisher>MIT Press</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="84" to="90" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Benchmarking java against c and fortran for scientific applications</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Bull</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">A</forename><surname>Smith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Ball</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Pottage</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Freeman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Concurrency and Computation: Practice and Experience</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">3-5</biblScope>
			<biblScope unit="page" from="417" to="430" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A framework to specify and verify computational fields for pervasive systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Casadei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Autonomous and Adaptive Systems</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Modelling biological compartments in Bio-PEPA</title>
		<author>
			<persName><forename type="first">F</forename><surname>Ciocchetta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">L</forename><surname>Guerriero</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electronic Notes in Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">227</biblScope>
			<biblScope unit="page" from="77" to="95" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Evolving blenx programs to simulate the evolution of biological networks</title>
		<author>
			<persName><forename type="first">L</forename><surname>Dematté</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Priami</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Romanel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Soyer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">408</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="83" to="96" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Enhanced coordination in sensor networks through flexible service provisioning</title>
		<author>
			<persName><forename type="first">C.-L</forename><surname>Fok</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G.-C</forename><surname>Roman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Lu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of COORDINATION 2009</title>
				<editor>
			<persName><forename type="first">J</forename><surname>Field</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">V</forename><forename type="middle">T</forename><surname>Vasconcelos</surname></persName>
		</editor>
		<meeting>COORDINATION 2009</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5521</biblScope>
			<biblScope unit="page" from="66" to="85" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Efficient exact stochastic simulation of chemical systems with many species and many channels</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Gibson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bruck</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Phys. Chem. A</title>
		<imprint>
			<biblScope unit="volume">104</biblScope>
			<biblScope unit="page" from="1876" to="1889" />
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Exact stochastic simulation of coupled chemical reactions</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">T</forename><surname>Gillespie</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Journal of Physical Chemistry</title>
		<imprint>
			<biblScope unit="volume">81</biblScope>
			<biblScope unit="issue">25</biblScope>
			<biblScope unit="page" from="2340" to="2361" />
			<date type="published" when="1977-12">December 1977</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Approximate probabilistic model checking</title>
		<author>
			<persName><forename type="first">T</forename><surname>Hérault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lassaigne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Magniette</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Peyronnet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">VMCAI</title>
				<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="73" to="84" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">The Colt Distribution: Open Source Libraries for High Performance Scientific and Technical Computing in Java</title>
		<author>
			<persName><forename type="first">W</forename><surname>Hoschek</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<pubPlace>Geneva</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Mason: A multiagent simulation environment</title>
		<author>
			<persName><forename type="first">S</forename><surname>Luke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Cioffi-Revilla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Panait</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Sullivan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">C</forename><surname>Balan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Simulation</title>
		<imprint>
			<biblScope unit="volume">81</biblScope>
			<biblScope unit="issue">7</biblScope>
			<biblScope unit="page" from="517" to="527" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Tutorial on agent-based modelling and simulation</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">M</forename><surname>Macal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>North</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Simulation</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="151" to="162" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Programming pervasive and mobile computing applications: The tota approach</title>
		<author>
			<persName><forename type="first">M</forename><surname>Mamei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Zambonelli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Softw. Eng. Methodol</title>
		<imprint>
			<biblScope unit="volume">18</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="1" to="56" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator</title>
		<author>
			<persName><forename type="first">M</forename><surname>Matsumoto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Nishimura</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Model. Comput. Simul</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="3" to="30" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">An agent-based model for the pattern formation in Drosophila Melanogaster</title>
		<author>
			<persName><forename type="first">S</forename><surname>Montagna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Donati</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 12th International Conference on the Synthesis and Simulation of Living Systems</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Fellermann</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Dörr</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><forename type="middle">M</forename><surname>Hanczyc</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><surname>Ladegaard Laursen</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Maurer</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Merkle</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P.-A</forename><surname>Monnard</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">K</forename><surname>Stoy</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Rasmussen</surname></persName>
		</editor>
		<meeting>the 12th International Conference on the Synthesis and Simulation of Living Systems<address><addrLine>Cambridge, MA, USA; Odense, Denmark</addrLine></address></meeting>
		<imprint>
			<publisher>The MIT Press</publisher>
			<date type="published" when="2010-08">2010. Aug. 2010</date>
			<biblScope unit="page" from="19" to="23" />
		</imprint>
	</monogr>
	<note>Artificial Life XII, chapter 21</note>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Self-organising pervasive ecosystems: A crowd evacuation example</title>
		<author>
			<persName><forename type="first">S</forename><surname>Montagna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Risoldi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pianini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Di Marzo</surname></persName>
		</author>
		<author>
			<persName><surname>Serugendo</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011-09">September 2011</date>
			<biblScope unit="page" from="29" to="30" />
		</imprint>
	</monogr>
	<note>Submitted at the 3rd International Workshop on Software Engineering for Resilient Systems</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Lime: A model and middleware supporting mobility of hosts and agents</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">L</forename><surname>Murphy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">P</forename><surname>Picco</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G.-C</forename><surname>Roman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="279" to="328" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">A declarative model assembly infrastructure for verification and validation</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>North</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">R</forename><surname>Howe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">T</forename><surname>Collier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Vos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advancing Social Simulation: The First World Congress</title>
				<editor>
			<persName><forename type="first">S</forename><surname>Takahashi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Sallach</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Rouchier</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer Japan</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="129" to="140" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Evaluating java performance for linear algebra numerical computations</title>
		<author>
			<persName><forename type="first">B</forename><surname>Oancea</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">G</forename><surname>Rosca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Andrei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">I</forename><surname>Iacob</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Procedia CS</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="474" to="478" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Self-management for large-scale distributed systems: an overview of the selfman project</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">V</forename><surname>Roy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Haridi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Reinefeld</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-B</forename><surname>Stefany</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Yap</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Coupaye</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Formal Methods for Components and Objects</title>
				<imprint>
			<publisher>Springer Verlag</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">5382</biblScope>
			<biblScope unit="page" from="153" to="178" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Netlogo, a multi-agent simulation environment</title>
		<author>
			<persName><forename type="first">E</forename><surname>Sklar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Life</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="303" to="311" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">A constant-time kinetic monte carlo algorithm for simulation of large biochemical reaction networks</title>
		<author>
			<persName><forename type="first">A</forename><surname>Slepoy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">P</forename><surname>Thompson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">J</forename><surname>Plimpton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Journal of Chemical Physics</title>
		<imprint>
			<biblScope unit="volume">128</biblScope>
			<biblScope unit="issue">20</biblScope>
			<biblScope unit="page">205101</biblScope>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">D</forename><surname>Team</surname></persName>
		</author>
		<ptr target="http://repast.sourceforge.net/.Repasthomepage" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">D</forename><surname>Team</surname></persName>
		</author>
		<ptr target="http://www.swarm.org/index.php/MainPage.Swarmhomepage" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">M</forename><surname>University</surname></persName>
		</author>
		<ptr target="http://www.cs.gmu.edu/\∼eclab/projects/mason/" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<monogr>
		<title/>
		<author>
			<persName><surname>Mason Home</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<analytic>
		<title level="a" type="main">Efficient stochastic simulation of biological systems with multiple variable volumes</title>
		<author>
			<persName><forename type="first">C</forename><surname>Versari</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Busi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electr. Notes Theor. Comput. Sci</title>
		<imprint>
			<biblScope unit="volume">194</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="165" to="180" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b30">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">U</forename><surname>Wilensky</surname></persName>
		</author>
		<author>
			<persName><surname>Ccl</surname></persName>
		</author>
		<ptr target="http://ccl.northwestern.edu/netlogo/index.shtml.NetLogohomepage" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b31">
	<monogr>
		<title level="m" type="main">An Introduction to MultiAgent Systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wooldridge</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002-06">June 2002</date>
			<publisher>John Wiley &amp; Sons</publisher>
		</imprint>
	</monogr>
	<note>1st edition</note>
</biblStruct>

<biblStruct xml:id="b32">
	<analytic>
		<title level="a" type="main">The mind agents in netlogo 3.1</title>
		<author>
			<persName><forename type="first">S</forename><surname>Yildirim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">L</forename><surname>Dam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Houk</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SpringSim</title>
		<imprint>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="137" to="143" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
