<?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 CASE OF SELF-ORGANISING ENVIRONMENT FOR MAS: THE COLLECTIVE SORT PROBLEM</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Matteo</forename><surname>Casadei</surname></persName>
							<email>m.casadei@unibo.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Alma Mater Studiorum-Università di Bologna</orgName>
								<address>
									<addrLine>Via Venezia 52</addrLine>
									<postCode>47023</postCode>
									<settlement>Cesena</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Luca</forename><surname>Gardelli</surname></persName>
							<email>luca.gardelli@unibo.it</email>
							<affiliation key="aff0">
								<orgName type="institution">Alma Mater Studiorum-Università di Bologna</orgName>
								<address>
									<addrLine>Via Venezia 52</addrLine>
									<postCode>47023</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="aff0">
								<orgName type="institution">Alma Mater Studiorum-Università di Bologna</orgName>
								<address>
									<addrLine>Via Venezia 52</addrLine>
									<postCode>47023</postCode>
									<settlement>Cesena</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A CASE OF SELF-ORGANISING ENVIRONMENT FOR MAS: THE COLLECTIVE SORT PROBLEM</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">ADFDDB32853D84D920CD917E48D4B61D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T14:52+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>Environments of multiagent systems typically feature the application of techniques coming from the research context of complex systems: adaptivity and self-organisation are exploited in order to tackle recurrent issues in multiagent systems applications like openness, dynamism and unpredictability. By adopting the "agents and artifacts" meta-model, we conceived the environment as populated by artifacts: as a specific case, we consider them as information repositories storing relevant facts about the external world and agent interaction/coordination. We focus on the coordination problem called collective sort, where autonomous agents in charge of managing such artifacts have the goal of moving information across different artifacts according to local criteria, resulting in the emergence of the complete clustering property. Using a library we developed for the Maude term rewriting system, we simulate the behaviour of this system and evaluate a full solution to this problem.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Systems that should self-organise to face unpredictable changes in the surrounding conditions often need to achieve adaptivity as an emergent property. As this observation was first made in the context of natural systems, it was shortly recognised as an inspiring metaphor for artificial systems as well <ref type="bibr" target="#b2">[3]</ref>. However, a main problem with emergent properties is that, by their very definition, they cannot be achieved through a systematic design: their dynamics and outcomes cannot be fully predicted. Nonetheless, providing some design support in this context is still possible. The whole system of interest-that is, the system application and the environment it is immersed incan be partially modelled, e.g. as a stochastic system (whose dynamics and duration aspects are probabilistic). In this scenario, simulations can be run and used as a fruitful tool to predict certain aspects of the system behaviour, and to support a correct design before actually implementing the application at hand <ref type="bibr" target="#b5">[6]</ref>.</p><p>This scenario is particularly interesting for the design of MAS environments <ref type="bibr" target="#b19">[20]</ref>. Some works like the TOTA middleware <ref type="bibr" target="#b8">[9]</ref>, the AGV application <ref type="bibr" target="#b20">[21]</ref>, and stigmergic fields <ref type="bibr" target="#b16">[17]</ref>, though starting from different perspectives, all develop on the idea of developing MAS environments with coordination techniques featuring adaptivity and self-organisation. They share the idea that information situated into the environment eventually spread to other locations in a non-deterministic way, depending on previous interactions and being affected by timing and probability. Accordingly, in this paper we focus on the role that simulation tools can have in this context, towards the identification of some methodological approach to environment design.</p><p>We consider the "agent and artifacts" meta-model for MAS as a reference <ref type="bibr" target="#b18">[19,</ref><ref type="bibr" target="#b15">16]</ref>: this is based on the idea of modelling the agent environment in terms of a set of artifacts. Each artifact provides one or more services to agents-differently from agents-without the freedom of autonomy: services are accessed through the artifact interface. Typically, artifacts are used to encapsulate shared repositories of information and knowledge: a simple incarnation of this notion can be the tuple space model or any of its variants <ref type="bibr" target="#b17">[18]</ref>-e.g. as provided by TuCSoN <ref type="bibr" target="#b11">[12]</ref> or TOTA <ref type="bibr" target="#b8">[9]</ref> MAS infrastructures.</p><p>In particular, when developing an environment built upon tuple spaces, we recognise tuples distribution among tuple spaces as a main concern: indeed, having tuples sorted out may improve overall system efficiency. Hence, we get inspiration from the brood sorting problem <ref type="bibr" target="#b2">[3]</ref> to evaluate a solution for sorting tuples in a distributed tuple space scenario: we call this problem collective sort-as we originally suggested in <ref type="bibr" target="#b3">[4]</ref>. This application features autonomous agents managing a closed set of tuple spaces situated in different nodes. These agents have the goal of moving tuples from one space to the other until completely "sorting" them, that is, (i) tuples of different types reside in different tuple spaces, and (ii) tuples of the same kind reside in the same tuple space.</p><p>We show a first solution to this problem considering a simplified scenario: environmental agents, each associated to a particular tuple space S and a particular tuple type T , have the private goal of ensuring that S is not wrongly collecting tuples of the type T . This goal is achieved by moving away tuples which are apparently not contributing to perfect clustering. Despite the locality of this criterion, complete sorting emerges from initial chaotic tuple configurations. In order to obtain full convergence from any initial state, we refine the model introducing the concept of space vacuum, leading to the full solution of the collective sort problem.</p><p>To devise design choices, and provide evidence of correctness and appropriateness of our approach, we relied on simulations throughout. Many simulation tools can be exploited to this end, though they all necessarily force the designer to exploit a given specification language, and therefore better apply to certain scenarios and not to others-examples are SPiM <ref type="bibr" target="#b13">[14]</ref>, SWARM <ref type="bibr" target="#b1">[2]</ref> and REPAST <ref type="bibr" target="#b0">[1]</ref>. Instead of relying on one of them, in this paper we adopted a general-purpose approach we proposed in <ref type="bibr" target="#b3">[4]</ref>. We evaluate the applicability of the Maude specification tool as a general-purpose engine for running simulations <ref type="bibr" target="#b4">[5]</ref>. Maude allows for modelling syntactic and dynamic aspects of a system in a quite flexible way, supporting e.g. process algebraic, automata, and net-like specifications-all of which can be seen as instantiations of Maude term rewriting framework. We developed a library for allowing a system designer to specify in a custom way a model in terms of a stochastic transition system-a labelled transition system where actions are associated with a rate (of occurrence) <ref type="bibr" target="#b14">[15]</ref>. One such specification is then exploited by the tool to perform simulations of the system behaviour, thus making it possible to observe the emergence of certain (possibly unexpected) properties.</p><p>The remainder of this paper is as follows: Section 2 provides some background on coordination techniques featuring adaptivity, Section 3 briefly introduces our simulation framework, Section 4 describes the collective sort scenario, and finally Section 5 presents the full solution we conceived for this problem.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background</head><p>Environment models and technologies for multiagent systems are moving towards the application of self-organising techniques, most of which are inspired by natural phenomena.</p><p>A first example is the TOTA (Tuples On The Air) middleware <ref type="bibr" target="#b8">[9]</ref> for pervasive computing applications, inspired by the concept of field in physics-like e.g. the gravitational or magnetic fields. This middleware supports the concept of "spatially distributed tuple": that is, a tuple can be cloned and spread to the neighboring tuple spaces, creating a sort of computational field, which grows when initially pumped and then eventually fade. To this end, when injected in a tuple space, each tuple can be equipped with some application-dependent rules, defining how a tuple should spread across the network, how the content of the tuple should be accordingly affected, and so on. TOTA is mainly targeted to support multiagent systems whose environment is open, dynamic and unpredictable, like e.g. to let mobile agents meet each other in a dynamic network.</p><p>Another example is the AGV (automatic guided vehicles) application described in <ref type="bibr" target="#b20">[21]</ref>, where unmanned vehicles controlled by agents transport various kinds of loads through a warehouse. The "virtual environment" (VE) keeps a consistent and updated map of the physical environment, including vehicles' location and status-such as whether they are executing a job. Moreover, it encapsulates important functionalities to support cooperation between agents: e.g. agents can put marks in the VE that propagate in the network and are used to avoid collisions.</p><p>A similar mechanism is generalised and adopted in the Digital Pheromone Infrastructure <ref type="bibr" target="#b16">[17]</ref>, which provides services for injecting and perceiving digital pheromones in different sites of the physical/logical distributed environment. Such an environment has the inner ability of aggregating, maintaining and diffusing information according to spatial and temporal criteria-this idea is inspired by stigmergy <ref type="bibr" target="#b12">[13]</ref>, similarly also to the work on TOTA co-fields. Applied to the military context, these features can be exploited for several purposes such as surveillance and patrol, target acquisition, and target tracking. For example, target acquisition can be realised by an agent that keeps injecting a pheromone, with the goal of attracting the target.</p><p>In the effort to handle the design of this kind of environments, bridging the gap between abstract model and implementation, it has become very common practice to take into account quantitative aspects like temporal and probabilistic ones, which are necessary in order to tackle systems that should feature emergent properties-see e.g. <ref type="bibr" target="#b13">[14,</ref><ref type="bibr" target="#b5">6,</ref><ref type="bibr" target="#b9">10]</ref>. This calls for proper analysis and design tools, supporting system development at various levels, from formal specification up to simulations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">A Maude Library for Simulation</head><p>In <ref type="bibr" target="#b3">[4]</ref> we developed a framework in the Maude term rewriting language, which is meant to speed up the process of modelling and simulating stochastic systems featuring distributed and interacting systems, like MASs. We here briefly describe some features of this framework-the reader interested in further details should refer to <ref type="bibr" target="#b3">[4]</ref>.</p><p>Maude is a high-performance reflective language supporting both equational and rewriting logic, for specifying a wide range of applications <ref type="bibr" target="#b4">[5]</ref>. Other than specifying algorithmic aspects through algebraic data types, Maude can be used to provide rewriting laws-i.e. transition rules-that are typically used to implement a concurrent rewriting semantics, and are then able to deal with aspects related to interaction and system evolution. In the course of finding a general simulation tool for stochastic systems, we found Maude as a particularly appealing framework, for it allows to directly model a system structure and dynamics, or to prototype a new domain-dependent language to have more expressiveness and compact specifications.</p><p>Inspired by the work of Priami on the stochastic π-Calculus <ref type="bibr" target="#b14">[15]</ref>, we realised in Maude a general simulation framework for stochastic systems which does not mandate a specification language as e.g. π-Calculus, but is rather open to any language equipped with a stochastic transition system semantics. In this tool a system is modelled as a LTS (labelled transition system) where transitions are of the kind S r:a − − → S , meaning that the system in state S can move to state S by action a, where r is the (global) rate of action a in state S. The rate of an action in a given state can be understood as the number of times action a could occur in a time-unit (if the system would rest in state S), namely, its occurrence frequency. This idea generalises the activity mechanism of stochastic π-Calculus, where each channel is given a fixed local rate, and the global rate of an interaction is computed as the channel rate multiplied by the number of processes willing to send a message and the number of processes willing to receive a message. Our model is hence a generalisation, in that the way the global rate is computed is custom, and ultimately depends on the application at hand-e.g. the global rate can be fixed, or can depend on the number of system sub-processes willing to execute the action. Given a transition system of this kind and an initial state, a simulation is simply executed by: (i) checking each time the available actions and their rate; (ii) picking one of them probabilistically (the higher the rate, the more likely the action should occur); (iii) accordingly changing the system state; and finally (iv) advancing the time counter according to an exponential distribution, so that the average frequency is the sum of the action rates.</p><p>As an example, we consider the N a − Cl chemical reaction dynamics, provided e.g. in SPiM documentation <ref type="foot" target="#foot_0">1</ref> . Syntax and semantics of this system is expressed in our Maude library as follows: This system is characterised by a state of the kind &lt;Na,Na+,Cl,Cl-&gt;, where Na is the number of sodium atoms, Na+ the number of sodium ions, Cl is the number of chlorine atoms, Cl-the number of chlorine ions. Two kinds of constant actions are then defined: ion stands for ionization and deion for deionization. Finally, the transition system is expressed by a single equation, associating to any state two possible effects: one in which ionization decrements Na and Cl (by prefix predecessor function p) and increments Na+ and Cl-(by prefix successor function s), and the other that behaves in the opposite way. Note that, according e.g. to the Gillespie selection algorithm in <ref type="bibr" target="#b6">[7]</ref>, the rate of ionization and deionization is here proportional to the product of the two reactants, multiplied by a constant value: we here enforce deionization factor as being twice that of ionization. By a command of the kind rewrite [300: &lt;100,0,100,0&gt; @ 0.0] the system yields a trace of 300 steps, starting from state &lt;100,0,100,0&gt; and elapsed time 0.0; an example of such trace is:</p><p>[300 : &lt; 100,0,100,0 &gt; @ 0.0], [299 : &lt; 99,1,99,1 &gt; @ 5.2282294378567067e-5], [298 : &lt; 98,2,98,2 &gt; @ 6.9551290710937174e-5], [297 : &lt; 97,3,97,3 &gt; @ 8.5491215950091466e-5], ... [3 : &lt; 57,43,57,43 &gt; @ 4.0424914101137542e-2], [2 : &lt; 58,42,58,42 &gt; @ 4.0506028901053114e-2], [1 : &lt; 59,41,59,41 &gt; @ 4.0661029058233995e-2], [0 : &lt; 60,40,60,40 &gt; @ 4.0695684943167353e <ref type="bibr">-2]</ref> This output can be easily exploited to trace charts of the most relevant quantities for the application at hand, as shown in the following.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Collective Sort</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">General Scenario</head><p>We consider a case inspired by the Swarm Intelligence problem known as brood sorting <ref type="bibr" target="#b2">[3]</ref>. It features a multiagent system where the environment is distributed and populated with items of different kinds: the goal of agents is to collect and move items across the environment so as to collect and order them according to an arbitrary shared criterion. This problem basically amounts to clustering: homogeneous items should be grouped together and should be separated from others. Moving to a typical context of MAS software environments, we consider the case of a fixed number of artifacts resembling tuple spaces, hosting tuples of a known set of tuple types. The goal of agents is to move tuples from one tuple space to the other until they are clustered in different tuple spaces according to their type: we call this problem collective sort. Note that the agents are not aware of their cooperative attitude since it is implicit in their goal, and they do not have to interact nor need to perceive other agents.</p><p>In several scenarios, sorting tuples may increase the overall system efficiency. For instance, it can make it easier for an agent to find an information of interest based on its previous experience: the probability of finding information where a previous and related one was found is high. Moreover, when tuple spaces contain tuples of one kind only, it is possible to apply aggregation techniques to improve their performance, and it is generally easier to manage and achieve load-balancing.</p><p>Increasing system order however comes at a computational price. Achieving ordering is a task that should be generally performed online and in background, i.e. while the system is running and without adding a significant overhead to the main system functionalities. Indeed, it might be interesting to look for suboptimum algorithms, which are able to guarantee a certain degree of ordering in time.</p><p>Nature is a rich source of simple but robust strategies; the behaviour we are looking for has already been explored in the domain of social insects-the aforementioned brood sorting. Ants perform similar tasks when organising broods and larvae: although their actual behaviour is still not fully understood, there are several models that are able to mimic the dynamics of the system. Ants wander randomly and their behaviour is modelled by two probabilities, respectively, the </p><formula xml:id="formula_0">P p = k 1 k 1 + f 2 , P d = f k 2 + f 2 ,<label>(1)</label></formula><p>where k 1 and k 2 are constant parameters and f is the number of items perceived by an ant in its neighborhood: f may be evaluated with respect to the recently encountered items. To evaluate the system dynamics it can be useful to provide a measure of the system order. Such an estimation can be obtained by measuring the spatial entropy, as done e.g. in <ref type="bibr" target="#b7">[8]</ref>. Basically, the environment is subdivided into nodes and P i is the fraction of items within a node, hence the local entropy is H i = −P i log P i . The sum of H i having P i &gt; 0 gives an estimation of the order of the entire system, which is supposed to decrease in time, hopefully reaching zero (complete clustering).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">An Architecture for Implementing Collective Sort</head><p>We conceive a multiagent system where a collection of agents are users of some tuple spaces, forming their environment, and interact with/via them to achieve social goals: in particular, agents are allowed to read, insert and remove tuples in the tuple spaces. Additionally, and transparently to these agents, some further infrastructural support exists that provides tuple spaces with a sorting service, in order to maintain a certain degree of order of tuples in tuple spaces. This service is realised by a class of collector agents, spread in the nodes of the distributed environment along with tuple spaces, and which will be responsible for the sorting task.</p><p>We suppose that tuples belong to a well defined and globally shared set of tuple kinds. Each collector agent is implicitly associated to the tuple space S of the node where it is situated. For a specific single tuple kind K, the individual agent's goal is to make sure that S is not wrongly collecting tuples of the kind K. Since we look for collecting a tuple kind in only one tuple space, this means that the agent should check that there is seemingly no other tuple space R collecting tuples K more than what S is currently doing, in which case some tuple K has to be moved to R. This scenario is depicted in Figure <ref type="figure" target="#fig_1">1</ref>: an agent is moving a tuple of kind C from the left tuple space to the top one, since the latter is collecting tuples C more-and similarly for D. Since we want to perform this task online and in background, and with a fully-distributed, swarm-like algorithm, agents cannot compute the probabilities in Equation 1 to decide whether to move or not a tuple: the approach would not be scalable since it requires to count all the tuples for each tuple space, which might not be practical.</p><p>In general, a new primitive to access tuple spaces is needed which (i) can feature the locality character, (ii) can take into account the different quantities of tuples occurring in the space at a given time, and (iii) can possibly fit the semantics of some existing tuple space primitive-so as not to impose a too severe semantic change. A reading primitive urd called uniform read is hence introduced. This is a variant of the standard rd primitive that takes a tuple template and yields any tuple matching the template: primitive urd instead chooses the tuple in a probabilistic way   among all the tuples that could be returned. For instance, if a tuple space has 10 copies of tuple t(1) and 20 copies of tuple t(2), then the probability that operation urd (t(X))-where X is a logic variable-returns t( <ref type="formula" target="#formula_4">2</ref>) is twice as much as t(1)'s. As standard tuple space models typically do not directly implement this variant, it can e.g. be easily supported by some more expressive model like ReSpecT tuple centres <ref type="bibr" target="#b10">[11]</ref>-but we shall not deepen this implementation aspect in the following.</p><formula xml:id="formula_1">) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[0]) | ('b[136]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[35]) | ('c[80]) | ('d[0]) &gt; | &lt; 3 @ ('a[53]) | ('b[0]) | ('c[0]) | ('d[80]) &gt; @ 9.7664497212663287e+2], ... [2000 : &lt; 0 @ ('a[127]) | ('b[50]) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[0]) | ('b[210]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[0]) | ('c[80]) | ('d[0]) &gt; | &lt; 3 @ ('a[33]) | ('b[0]) | ('c[0]) | ('d[80]) &gt; @ 3.0679938546387184e+3], ... [1000 : &lt; 0 @ ('a[142]) | ('b[18]) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[0]) | ('b[242]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[0]) | ('c[80]) | ('d[0]) &gt; | &lt; 3 @ ('a[18]) | ('b[0]) | ('c[0]) | ('d[80]) &gt; @ 4.0271359303450395e+3], ... [438 : &lt; 0 @ ('a[160]) | ('b[0]) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[0]) | ('b[260]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[0]) | ('c[80]) | ('d[0]) &gt; | &lt; 3 @ ('a[0]) | ('b[0]) | ('c[0]) | ('d[80]) &gt; @ 4.</formula><p>Going back to our collective sort scenario, each agent has now the ability of performing a uniform read over all tuple kinds of a tuple space: in general, if a tuple of kind K is (uniformly) read, the agent can locally assume that, probabilistically, the tuple kind K is aggregating there more than others.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">A Prototype Solution to the Problem</head><p>Given this general architecture for modelling the collective sort problem, providing a self-organising solution here means to identify the agents' agenda-sequence of tasks-that could lead each agent to achieve its individual goal. For one such solution to be adequate, complete sorting has to be achieved as an emergent property of the overall system, form possibly any initial configuration of tuples.</p><p>Each agent is associated to its source tuple space S, seeks for moving tuples of kind K, and works at a given rate r-the frequency at which each agent schedules the execution of the agenda. The agent agenda we consider is as follows:</p><p>1. a destination tuple space D = S is drawn randomly;  At the time the first task is executed, the agent is focussing on whether one tuple of kind K has to be moved from S to D. At the third task, the agent perceives kind K S as the one aggregating most in S, and K D as the one aggregating most in D. Then, the point of last task is that a tuple of kind K is to be moved if and only if K is aggregating in D but not in S.</p><p>The success of this distributed algorithm is clearly affected by both probability and timing aspects. Will complete ordering be reached starting from a completely chaotic situation? Will complete ordering be reached starting from the case where all tuples occur in just one tuple space? And if ordering is reached, how many moving attempts are globally necessary? These are the sort of questions that a designer would like to address at the early stages of design without actually resorting to implementation, and that simulation can help addressing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Simulation</head><p>We represent the distributed state of a system in Maude using a syntax of the kind:  meaning that we allow for the tuple kinds 'a, 'b, 'c, and 'd, and the tuple spaces identified by 0, 1, 2, and 3. Hence, the content of the tuple space 0 is represented as <ref type="bibr" target="#b9">[10]</ref>)|('d <ref type="bibr" target="#b9">[10]</ref>) &gt;, meaning we have 100 tuples of kind 'a, 100 of kind 'b, 10 of 'c, and 10 of 'd. The formal definition of the agents' agenda is defined in terms of easy transition rules-which are not reported for the sake of brevity: interested readers can refer to <ref type="bibr" target="#b3">[4]</ref> for specifications description<ref type="foot" target="#foot_1">2</ref> .</p><formula xml:id="formula_2">[ 'a , 'b , 'c , 'd ] | { 0 , 1 , 2 , 3 } | &lt; 0 @ ('a[100])| ('b[100]) | ('c[10]) | ('d[10]) &gt; | &lt; 1 @ ('a[0]) | ('b[100]) | ('c[10]) | ('d[10]) &gt; | &lt; 2 @ ('a[10]) | ('b[50]) | ('c[50]) | ('d[10]) &gt; | &lt; 3 @ ('a[50]) | ('b[10]) | ('c[10]) | ('d[50]) &gt;</formula><formula xml:id="formula_3">&lt; 0 @ ('a[100])|('b[100])|('c</formula><p>We simulated traces of execution starting from the above state, obtaining e.g. the behaviour shown in Figure <ref type="figure" target="#fig_4">2</ref>. After some steps, some tuple starts moving from one space to the others. After 2024 time units, for instance, tuple kind 'c is already completely collected in tuple space 2. After 4600 time units, the system converged to complete sorting, as we expected. The chart in Figure <ref type="figure" target="#fig_6">3</ref> (a) reports the dynamics of the winning tuple in each tuple space, showing that complete sorting is reached at different times in each space. The chart in Figure <ref type="figure" target="#fig_6">3</ref> (b) displays instead the evolution of the tuple space 0: notice that only the tuple kind 'a aggregates here despite its initial concentration was the same of tuple kind 'b.</p><p>Although it would be possible to make some prediction, we do not know in general which tuple space will host a specific tuple kind at the end of sorting: this is an emergent property of the system and is the very result of the interaction of the tuple spaces through the agents! Indeed, the final result is not completely random and the concentration of tuples will evolve in the same direction most of the times. It is interesting to analyse the trend of the entropy of each tuple space as a way to estimate the degree of order in the system through a single value: since the strategy we simulate is trying to increase the inner order of the system we expect the entropy to decrease, as actually shown in Figure <ref type="figure" target="#fig_6">3 (c</ref>). If we denote with q ij the amount of tuples of the kind i within the tuple space j, n j the total number of tuples within the tuple space j, and k the number of tuple kinds, then, the entropy associated with the tuple kind i within the tuple space j is</p><formula xml:id="formula_4">H ij = q ij n j log 2 n j q ij (<label>2</label></formula><formula xml:id="formula_5">)</formula><p>and it is easy to notice that 0 ≤ H ij ≤ 1 k log 2 k. The entropy associated with a single tuple space is then computed as</p><formula xml:id="formula_6">H j = k i=1 H ij log 2 k<label>(3)</label></formula><p>where the division by log 2 k is introduced in order to obtain 0 ≤ H j ≤ 1.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.5">On Convergence</head><p>Considering the reference configuration of four tuple spaces and four tuple types, we made several simulations varying the initial condition, i.e. tuples distribution among tuple spaces: different configurations, i.e. consisting of a different numbers of tuple spaces and tuple types, will be investigated in future works. Although, it initially seemed that the solution adopted always converged to complete sorting, we later identified certain configurations that do not evolve properly. In particular, there are certain states attracting the system trajectory and having positive entropy, that is, characterised by a non-complete degree of sorting: we call such states local minima. In particular, local minima seem not to be related to tuples distribution rather to the absence of tuples: an example of such minimum is the following state</p><formula xml:id="formula_7">&lt; 0 @ ('a[20]) | ('b[0]) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[140]) | ('b[0]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[260])| ('c[0]) | ('d[0]) &gt; | &lt; 3 @ ('a[0]) | ('b[0]) | ('c[80]) | ('d[80]) &gt;</formula><p>Tuple kind 'a is the only one aggregating in both spaces 0 and 1, and at the same time, kinds 'c and 'd aggregate both in space 3. Once the system reaches this state, no agent will ever move a tuple for they all reached their individual goal-in no space a tuple kind can be found that aggregates more than elsewhere. Moreover, such states are attractors-when the system starts in a state sufficiently near to them, it ends up quickly converging to one such local minimum. The attempt of solving this problem is what lead us to the solution proposed in this article.</p><p>5 Solving Collective Sort</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Modelling Vacuum</head><p>There are two main reasons why the local minimum analysed above cannot be escaped: (i) in spite tuple spaces 0 and 1 host a different number of tuples of kind 'a they are perceived in the same way by agents, for they both have 100% of tuples 'a-instead, it would be desirable to consider space 1 as a stronger aggregator-; (ii) there is no chance of moving a tuple 'c or 'd away from space 3, for no other space aggregates them at all. These two issues can actually find a common solution by more carefully analysing the brood sorting problem for social insects. There, an ant takes some brood and releases it where a new place is found where brood has a greater concentration. Such a concentration is expressed as quantity of brood over a unit of space. That is, implicitly the ant compares the amount of brood with that of "vacuum" in the unit of space.</p><p>If a similar notion of vacuum would be defined in our collective sort example, and e.g. the same amount of vacuum would exist in each space, that could in principle allow to solve the two issues above. On the one hand, space 0 could be recognised as having "less" tuples 'a than space 1-since space 1 occupies less space for vacuum, relatively-and hence movements from space 0 to 1 could be promoted most. On the other hand, some tuples 'c or 'd could be moved from space 3 to another one following the reasonable idea that "tuples that are not aggregating much should fill the vacuum elsewhere".</p><p>To evaluate this solution, we add to tuple spaces another kind of tuple called vacuum, and suppose the quantity of vacuum tuples in each space is the same and is fixed statically since the beginning. The uniform read operation can now possibly yield a vacuum tuple: the more such tuples exist with respect to those to be sorted, the more this event is likely. Then, following the above discussion, we change the agent agenda as follows:</p><p>1. a destination tuple space D = S is drawn randomly; 2. a urd is performed on S, yielding tuple kind K S ; 3. a urd is performed on D, yielding tuple kind K D ;</p><formula xml:id="formula_8">4. if K = K D = K S a tuple of kind K is moved from S to D. 5. if K = K S and K D = vacuum a tuple of kind K is moved from S to D.</formula><p>Now both K S and K D could be vacuum. Our last task says that if the kind K is not aggregating locally (K = K S ) and we find significant vacuum in D (K D = vacuum), then we move a tuple of kind K.</p><p>We considered the following as starting state:</p><formula xml:id="formula_9">&lt; 0 @ ('a[50])| ('b[0]) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[50])| ('b[0]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[100])| ('c[0]) | ('d[0]) &gt; | &lt; 3 @ ('a[0]) | ('b[0]) | ('c[100])| ('d[100]) &gt;</formula><p>By simulation we noticed that, independently from the number of vacuum tuples, the system escapes the local minimum reaching complete ordering; But of course such a number can potentially influence effectiveness and efficiency of the solution. Hence, in Figures <ref type="figure" target="#fig_8">4 (a</ref>) and (b) we display how the sorting time and the number of tuples moved varies with the number of vacuum tuples in each tuple space. We note the following: (i) performance is actually dependent on the number of vacuum tuples; (ii) as vacuum tuples tend to be the same as the final number of tuples in a tuple space, i.e. 100%, performance degrades dramatically; (iii) sorting time has minima values around 20 and 75 vacuum tuples; (iv) the number of tuples moved increases with the vacuum. What we learn from these charts is that on the one hand, this technique brings anyway to convergence, but on the other, good performance is achieved if the number of vacuum tuples is around 20% of the final number of tuples expected in each tuple space. There in fact, we have a good combination of convergence time and resources allocated to sorting (i.e., number of tuples moved).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Adapting Vacuum</head><p>If we require a truly self-organising solution, we must devise a solution which works without knowing a priori any information about tuple distribution. Hence, we cannot statically design the number of vacuum tuples to be used in each tuple space: an adaptive technique has to be used to make this number dynamic, namely, to make vacuum adapting to the situation at hand. In principle, here we seek for a solution where vacuum is initially very low-guaranteeing to move tuples in a proper way-and then, when/if we are about to reach a local minimum, agents make vacuum locally increase guaranteeing to leave perilous states.</p><p>Informally, the idea is to increase vacuum each time an agent discovers two spaces aggregating the same tuple, and decrease vacuum when a tuple successfully moves towards an aggregator. That is, we add to the above agent agenda the following tasks: 6. if K = K D = K S drop one vacuum tuple from S 7. if K = K D = K S add one vacuum tuple to S</p><p>In particular, we start from one vacuum tuple, and make sure that this level is never decreased. The charts in Figure <ref type="figure" target="#fig_8">4</ref> (a) and (b) show how this new technique (horizontal line) compares with the one with fixed vacuum. Namely, the behaviour we obtain has average values of convergence time and tuples moved, staying sufficiently far from divergence and bad performance.</p><p>Moreover, further simulations we performed on systems that converge with requiring the vacuum management (as in Section 4), show that our adaptive vacuum management does not significantly impact their performance, namely, it is a mechanism exploited on a by-need basis.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion and Future Works</head><p>In this article we focussed on stochastic aspects in the designing of emergent coordination mechanisms, an emergent issue in the research on MAS environments and in related research contexts. The collective sort problem discussed is a paradigmatic one: indeed, it emphasises the typical unpredictability of environment in coordination, e.g. in tuple space scenario, tuples distribution in space. Any attempt to find general mechanisms to achieve global properties about such configurations, will likely issue the same problems we identified in collective sort: complete/partial convergence, performance vs. resource usage, need for adaptive mechanisms. Starting from the work in <ref type="bibr" target="#b3">[4]</ref>, where the Maude library for simulation is described in detail and the collective sort problem is sketched, in this paper we solved these problems developing a full solution.</p><p>Several interesting future works can be pursued:</p><p>• In the context of collective sort, we plan to evaluate other load-balancing approaches, optimising the convergence to complete order, the vacuum mechanism, and studying the performance of our solution as tuple configurations change dynamically.</p><p>• The library itself is currently a very simple prototype, but we believe it could be improved in several ways and become a very practical simulation tool.</p><p>• Another interesting idea would be to apply our library to some existing coordination models like TOTA, and provide the necessary tests for the proposed algorithms.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>op &lt;_,_,_,_&gt; : Nat Nat Nat Nat -&gt; State . vars Na Na+ Cl Cl-: Nat . eq &lt; Na,Na+,Cl,Cl-&gt; ==&gt; = ( ion # (float(Na * Cl) * 1.0) -&gt; [&lt; p Na,s Na+,p Cl,s Cl-&gt;] ); ( deion # (float(Na+ * Cl-) * 2.0) -&gt; [&lt; s Na,p Na+,s Cl,p Cl-&gt;] ) .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Architecture for collective sort</figDesc><graphic coords="5,191.98,85.04,213.88,165.77" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>[</head><label></label><figDesc>5000 : &lt; 0 @ ('a[100]) | ('b[100]) | ('c[10]) | ('d[10]) &gt; | &lt; 1 @ ('a[0]) | ('b[100]) | ('c[10]) | ('d[10]) &gt; | &lt; 2 @ ('a[10]) | ('b[50]) | ('c[50]) | ('d[10]) &gt; | &lt; 3 @ ('a[50]) | ('b[10]) | ('c[10]) | ('d[50]) &gt; @ 0.0], [4000 : &lt; 0 @ ('a[107]) | ('b[89]</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>('a[160]) | ('b[0]) | ('c[0]) | ('d[0]) &gt; | &lt; 1 @ ('a[0]) | ('b[260]) | ('c[0]) | ('d[0]) &gt; | &lt; 2 @ ('a[0]) | ('b[0]) | ('c[80]) | ('d[0]) &gt; | &lt; 3 @ ('a[0]) | ('b[0]) | ('c[0]) | ('d[80]) &gt; @ 5.0313233386068514e+3]</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: A trace of simulation for the Collective Sort</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head></head><label></label><figDesc>(a) Dynamics of the winning tuple in each tuple space (b) Dynamics of tuple space 0 (c) Entropy of tuple spaces</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Charts for a simulation of the Collective Sort</figDesc><graphic coords="7,88.36,257.28,213.86,145.39" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Influence of vacuum tuples on performance: (a) show the case of fixed amount of vacuum tuples, while (b) the case of adaptation.</figDesc><graphic coords="8,307.77,85.28,213.87,154.30" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">http://www.doc.ic.ac.uk/~anp/spim/Chemical.pdf</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">All the specifications cited in this article, charts and instructions for running simulations are available online at http://www.alice.unibo.it</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<ptr target="http://repast.sourceforge.net/" />
		<title level="m">Recursive porous agent simulation toolkit (repast)</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title/>
		<author>
			<persName><surname>Swarm</surname></persName>
		</author>
		<ptr target="http://www.swarm.org/" />
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Swarm Intelligence: From Natural to Artificial Systems</title>
		<author>
			<persName><forename type="first">E</forename><surname>Bonabeau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dorigo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Theraulaz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Santa Fe Institute Studies in the Sciences of Complexity</title>
				<imprint>
			<publisher>Oxford University Press, Inc</publisher>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Simulating emergent properties of coordination in Maude: the collective sorting case</title>
		<author>
			<persName><forename type="first">M</forename><surname>Casadei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Gardelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">5th International Workshop on Foundations of Coordination Languages and Software Architectures (FOCLASA&apos;06)</title>
				<meeting><address><addrLine>Bonn, Germany; , Spain</addrLine></address></meeting>
		<imprint>
			<publisher>Proceedings</publisher>
			<date type="published" when="2006-08-31">31 Aug. 2006</date>
			<biblScope unit="page" from="57" to="75" />
		</imprint>
		<respStmt>
			<orgName>University of Málaga</orgName>
		</respStmt>
	</monogr>
	<note>CONCUR 2006</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Maude Manual</title>
		<author>
			<persName><forename type="first">M</forename><surname>Clavel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Durán</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Eker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Lincoln</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Martí-Oliet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Talcott</surname></persName>
		</author>
		<ptr target="http://maude.cs.uiuc.edu" />
		<imprint>
			<date type="published" when="2005-12">December 2005</date>
		</imprint>
		<respStmt>
			<orgName>Department of Computer Science University of Illinois at Urbana-Champaign</orgName>
		</respStmt>
	</monogr>
	<note>2.2 edition. Version 2.2 is available</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">On the role of simulations in engineering self-organising MAS: The case of an intrusion detection system in TuCSoN</title>
		<author>
			<persName><forename type="first">L</forename><surname>Gardelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">3rd International Workshop (ESOA 2005)</title>
				<meeting><address><addrLine>Utrecht, The Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2006. 26 July 2005</date>
			<biblScope unit="volume">3910</biblScope>
			<biblScope unit="page" from="153" to="168" />
		</imprint>
	</monogr>
	<note>Engineering Self-Organising Systems. Revised Selected Papers</note>
</biblStruct>

<biblStruct xml:id="b6">
	<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">1977</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Complexity-seeking ants</title>
		<author>
			<persName><forename type="first">H</forename><surname>Gutowitz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Third European Conference on Artificial Life</title>
				<meeting>the Third European Conference on Artificial Life</meeting>
		<imprint>
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Programming pervasive and mobile computing applications with the tota middleware</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="m">Proceedings of the Second IEEE Annual Conference on</title>
				<meeting>the Second IEEE Annual Conference on</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2004-03">2004. March 2004</date>
			<biblScope unit="page" from="263" to="273" />
		</imprint>
	</monogr>
	<note>Pervasive Computing and Communications</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Formal modeling and quantitative analysis of Klaim-based mobile systems</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">D</forename><surname>Nicola</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Latella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Massink</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SAC &apos;05: Proceedings of the 2005 ACM symposium on Applied computing</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="428" to="435" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">From tuple spaces to tuple centres</title>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Denti</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science of Computer Programming</title>
		<imprint>
			<biblScope unit="volume">41</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="277" to="294" />
			<date type="published" when="2001-11">Nov. 2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Coordination for Internet application development</title>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Zambonelli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Autonomous Agents and Multi-Agent Systems</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="251" to="269" />
			<date type="published" when="1999-09">Sept. 1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Go To The Ant&apos;: Engineering principles from natural agent systems</title>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">D</forename><surname>Parunak</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Annals of Operations Research</title>
		<imprint>
			<biblScope unit="volume">75</biblScope>
			<biblScope unit="page" from="69" to="101" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">The Stochastic Pi Machine (SPiM)</title>
		<author>
			<persName><forename type="first">A</forename><surname>Phillips</surname></persName>
		</author>
		<ptr target="http://www.doc.ic.ac.uk/˜anp/spim/" />
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Stochastic pi-calculus</title>
		<author>
			<persName><forename type="first">C</forename><surname>Priami</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Computer Journal</title>
		<imprint>
			<biblScope unit="volume">38</biblScope>
			<biblScope unit="issue">7</biblScope>
			<biblScope unit="page" from="578" to="589" />
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Construenda est CArtAgO: Toward an infrastructure for artifacts in MAS</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ricci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Austrian Society for Cybernetic Studies. 18th European Meeting on Cybernetics and Systems Research (EMCSR 2006), 5th International Symposium &quot;From Agent Theory to Theory Implementation</title>
				<meeting><address><addrLine>Vienna, Austria</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2006-04">2006. Apr. 2006</date>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="18" to="21" />
		</imprint>
	</monogr>
	<note>Proceedings.</note>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Performance of digital pheromones for swarming vehicle control</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Sauter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">S</forename><surname>Matthews</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">V D</forename><surname>Parunak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Brueckner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4rd International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2005)</title>
				<meeting><address><addrLine>Utrecht, The Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2005">July 25-29, 2005. 2005</date>
			<biblScope unit="page" from="903" to="910" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Infrastructures for the environment of multiagent systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Holvoet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ricci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Schelfthout</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Zambonelli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Autonomous Agents and Multiagent Systems</title>
				<imprint>
			<publisher>Press</publisher>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
	<note>available online</note>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Engineering MAS environment with artifacts</title>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ricci</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2nd International Workshop &quot;Environments for Multi-Agent Systems</title>
				<meeting><address><addrLine>Utrecht, The Netherlands</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005-07-26">26 July 2005</date>
		</imprint>
	</monogr>
	<note>AAMAS 2005</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Environments for multiagent systems state-of-the-art and research challenges</title>
		<author>
			<persName><forename type="first">D</forename><surname>Weyns</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">V D</forename><surname>Parunak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Michel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Holvoet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Ferber</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">1st International Workshop (E4MAS 2004</title>
		<title level="s">LNAI</title>
		<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2004-07">Jan. 2005. 19 July 2004</date>
			<biblScope unit="volume">3374</biblScope>
			<biblScope unit="page" from="1" to="47" />
		</imprint>
	</monogr>
	<note>Environments for MultiAgent Systems. Revised Selected and Invited Papers</note>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Decentralized control of e&apos;gv transportation systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Weyns</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Schelfthout</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Holvoet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Lefever</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2005)</title>
				<meeting><address><addrLine>Utrecht, The Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2005">July 25-29, 2005. 2005</date>
			<biblScope unit="page" from="67" to="74" />
		</imprint>
	</monogr>
</biblStruct>

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