Chapter 9
Self-Organizing Multi-Agent Systems
Event-based Sensor Processing, Feature Recognition, and Energy Man-
agement with Self-organizing Multi-Agent Systems for Sensor Process-
ing
Introduction to Self-Organizing Systems 296
Self-organizing Distributed Feature Recognition 298
Self-organizing Event-based Sensor Data Processing and Distribution 306
Self-organizing Energy Management and Distribution 315
Further Reading 323
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
296
In this Chapter the principles of self-organizing Multi-agent systems and the
relation to AAPL agents are discussed. Event-based sensor processing in large
scale networks is one major use-case of Self-organizing MAS (SoMAS).
9.1 Introduction to Self-Organizing Systems
A common conceptual approach for building adaptive systems involves the
design of such systems by using elements that find by themselves the solution
of the problem to be solved [GER07]. Mobile Agents that are capable to adapt
based on perception are well suited for the implementation of Self-organizing
Systems (SoS).
Every dynamic and active system can be considered as agents that interact
with each other and the agents are characterized by their behaviour and their
goals. The behaviour of agents have influence of the future outcome of the
behaviour of other agents and their aim to reach their goals or the selection
of goals.
Considering [GER07] an agent is related to a goal satisfaction or fulfilment
variable [0,1]. A system constructed of n agents is related to a system goal
satisfaction function f : R
2n+1
[0,1], depending on the weighted
i
of each
agent, defined in Equation 9.1. A weight w
i
specifies the importance of the ful-
filment of a particular agent for the system.
A system has a weight w
0
itself that can be considered as being a bias. This
concept can be extended to hierarchical systems, where each system levels
depends on the elements (sub-systems or agents) from which they are com-
posed. If the system consists of elements with nearly linear interaction, the
system satisfaction function can be approximated by a weighted sum. In het-
erogeneous systems, the system satisfaction function is non-linear.
(9.1)
The robustness of an SoS is related to the system satisfaction function. If
elements (sub-systems or agents) are removed or altered and
sys
does
change significantly, we can say that the system provides some kind of robust-
ness or tolerance regarding failures of parts of the system, and if
sys
does not
change significantly if any one of the elements fail (i.e.,
i
0 or |
i
| µ
|
sys
| ), we can say there is no single point of failure in the whole system. For
instance, a system goal can be the detection of a feature change of a sensing
system, e.g., a significant change of sensor values in a topologically correlated
region. On the other side, if a small change of any |
i
| |
sys
| affects the
system satisfaction significantly then the system can be considered as fragile.
Destructive inference and friction between elements minimizes the overall
system satisfaction
sys
. Semi-centralized sub-domain coordination can
σσσσ
sys n n
fwww= ( , ,..., , , ,.. )
12 01
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.1 Introduction to Self-Organizing Systems 297
improve the overall performance and the probability of the goal satisfaction
by introducing mediators maximizing cooperation and resolving especially
conflicts between elements, e.g., resource conflicts. A mediator is related to
observers defining constraints.
In the following sections three examples for Self-organizing MAS (SoMAS)
are introduced. All three MAS classes can be deployed in a sensor network.
The first SoMAS is used for the feature recognition detecting a boundary of
a correlated region of sensor values, the second SoMAS is used to distribute
and deliver sensor data event-based relying on the results of the feature rec-
ognition SoMAS, and the third SoMAS is used for the distributed smart energy
management with energy distribution.
The ontology consisting of the various agent classes is shown in Figure 9.1,
based on the adapted Agent Modelling Language (AML) notation [CER07].
The AML ontology diagram shows the relationship of the three MAS classes
and their deployment in the sensor network. The agent classes poses the
principle behaviours of agents instantiated from these classes.
The behaviours are not necessarily the AAPL activities of the agent classes
presented in the next sections. A behaviour can be implemented with differ-
ent activities.
Fig. 9.1 Ontology of the Sensor Network in AML notation composed of (a) node man-
agement, (b) event-based sensor processing, (c) feature recognition, and (d)
smart energy management agent classes.
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
298
In AML, an ontology class represents ontology concepts and frames. An
ontology class is specified by its name, usually related to an agent behaviour
class, a list of attributes, in the AAPL terminology the agent class parameters, a
set of operations (e.g., the AAPL activities and functions), parts, and behav-
iours [CER07]. AML provides the modelling of instance-level and class-level
ontologies (marked with a [C] icon), as shown in Figure 9.1 and later in Figure
9.9 (on page 314).
9.2 Self-organizing Distributed Feature Recognition
A small example implementing a distributed feature detection in an incom-
pletely connected and unreliable mesh-like sensor network using mobile
agents should demonstrate the suitability of self-organizing MAS for sensor
data processing in distributed sensor networks. The sensor network consists
of nodes with each node attached to a sensor used, for example, in a struc-
tural monitoring system (e.g. strain-gauge sensors), providing a scalar data
value. The nodes can be embedded in a mechanical structure, for example,
used in a robot arm. The goal of the MAS is to find the boundary of extended
correlated regions of increased sensor stimuli (compared to the neighbour-
hood) due to mechanical deformation resulting from externally applied load
forces. A distributed directed diffusion behaviour and self-organization (see
Figure 9.2) is used, derived from the approach proposed originally by [LIU01]
for image processing feature recognition. A single sporadic sensor activity not
correlated with the surrounding neighbourhood should be distinguished from
an extended correlated region, which is the feature to be detected. There are
three different agent classes used in the sensor network: an exploration, a
deliver, and a node agent.
A node agent is immobile and is primarily responsible for sensor measure-
ment, local preprocessing (filtering) and observation, and creating of
exploration and deliver agents.
The feature detection is performed by the mobile exploration agent, which
supports two main different behaviours: diffusion and reproduction. The
explorer agent can be composed of the root agent class implementing diffu-
sion and reproduction and an explorer child agent sub-class with a reduced
behaviour set used for the exploration of the immediate neighbourhood rela-
tive to the current position of the explorer agent. The diffusion behaviour is
used to move into a region, mainly limited by the lifetime of the agent, and to
detect the feature, here the region with increased mechanical distortion
(more precisely the edge of such an area). The detection of the feature ena-
bles the reproduction behaviour.
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.2 Self-organizing Distributed Feature Recognition 299
Fig. 9.2 Distributed feature extraction in an unreliable and incomplete network by
using distributed agents with migration and self-organization behaviour
The reproduction behaviour induces the agent to stay at the current node,
setting a feature marking and sending out more exploration agents in the
neighbourhood. The local stimuli H(i,j) for an exploration agent to stay at a
specific node with coordinate (i,j) is given by Equation 9.2.
(9.2)
The calculation of H at the current location (i,j) of the agent requires the
sensor values within the rectangular area (the region of interest ROI) R around
this location. If a sensor value S(i+s,j+t) with i,j {-R,..,R} is similar to the value S
at the current position (difference is smaller than the parameter ), H is incre-
mented by one.
If the H value is within a parametrizable interval 
0

1
], the exploration
agent has detected the feature and will stay at the current node to reproduce
new exploration agents sent to the neighbourhood. If H is outside this inter-
val, the agent will migrate to a neighbour different node and restarts
exploration (diffusion).
Hij Si sj t Sij
S
tR
R
sR
R
(, ) { ( , ) (, ) }
:
=++
=−=−
δ
Sensor Signal Sttrength
Square Region around (i,j)R :
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
300
The calculation of H is performed by a distributed calculation of partial sum
terms by sending out child explorer agents to the neighbourhood, which itself
can send out more agents until the boundary of the region R is reached. Each
child agent returns to its origin node and hands over the partial sum term to
his parent agent, shown in Figure 9.2. Because a node in the region R can be
visited by more than one child agent, the first agent reaching a node sets a
marking MARK. If another agent finds this marking, it will immediately return to
the parent. This multipath visiting has the advantage of an increased probabil-
ity of reaching nodes with missing (non operating) communication links (see
Figure 9.2). A deliver agent, created by the node agent, finally delivers explora-
tion results to interested nodes by using directed diffusion approaches, not
discussed here.
9.2.1 Explorer Agent Behaviour Model
The explorer agent behaviour is partitioned in a main class and a child sub-
class. The ATG is shown in Figure 9.3. The different goals of the explorer agent
(exploration, diffusion, reproduction) are served by the activities percept,
diffuse, and reproduce. Perception inference requires the forking of child
explorer agents, performed in the percept activity. Child agents create forked
child agents (in activity percept_neighbour) until they reach the boundary of
the ROI. The forked child agents will return to their parent location after per-
ception (collecting of sensor data and computation of the partial term h of H),
performed in the goback activity. Parents agents wait for their child agents
until either all child agents returned or a time-out occurs. Each time a child
agent delivers the percepted h value (in activity deliver) by updating the H
tuple in the tuple-space it sends a signal WAKEUP that decreases a counter
(enoughinput). The full APPL agent behaviour model is shown in Algorithm 9.1.
Alg. 9.1 Definition of the Explorer agent behaviour class and the Explorer child sub-
class
1 :{SENSORVALUE,FEATURE,H,MARK} setofkeysymbols
2 :{TIMEOUT,WAKEUP} setofsignals
3 :{NORTH,SOUTH,WEST,EAST,ORIGIN} setofdirections
4 1=3;2=6;MAXLIVE=1; someconstantparameters
5
6
Explorer:(dir,radius){
7 BodyVariables
8 :{dx,dy,live,h,s0,backdir,group}globalpersistentvariables
9 :{enoughinput,again,die,back,s,v}localtemporaryvariables
10
11 Activities
12 
init:{
13 dx0;dy0;h0;diefalse;group{0..10000};
14 ifdirORIGINthen
15 dir;backdir(dir)
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.2 Self-organizing Distributed Feature Recognition 301
16 else
17 liveMAXLIVE;backdirORIGIN
18 
+
(H,$self,0);
19 found
?%
(0,SENSORVALUE,s0?)
20 }
21 
percept:{
22 enoughinput0;
23 {nextdir|nextdirbackdir?(nextdir)}do
24 incr(enoughinput);
25 
Explorer.child(nextdir,radius)
26 
+
(ATMO,TIMEOUT)
27 }
28 reproduce:{
29 live‐‐;
30 
(H,$self,?);
31 if?(FEATURE,?)then
(FEATURE,n?)elsen0;
32 
+
(FEATURE,n+1);
33 iflive>0then
34 *(reproduceinit)
35 {nextdir|nextdirbackdir?(nextdir)}do
36 
(nextdir,radius)
37 *(reproduceexit)
38 }
39 
diffuse:{
40 live‐‐;
41 
(H,$self,?);
42 iflive>0then
43 dir{nextdir|nextdirbackdir?(nextdir)}
44 else
45 dietrue
46 }
47 
exit:{($self)}
48
49 inbound:(nextdir){
50 casenextdirof
51 |NORTHdy>‐radius
52 |SOUTHdy<radius
53 |WESTdx>‐radius
54 |EASTdx<radius
55 }
56 
57 Signalhandler
58 
TIMEOUT:{
59 enoughinput0
60 }
61 
WAKEUP:{
62 enoughinput‐‐;
63 if?(H,$self,?)then
(H,$self,h?);
64 ifenoughinput<1then
(TIMEOUT);
65 }
66
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
302
67 MainTransitions
68 :{
69 entryinit
70 initpercept|found
71 initexit|found
72 perceptreproduce|(h1h2)(enoughinput<1)
73 perceptdiffuse|(h<1h>2)
(enoughinput<1)
74 reproduceexit
75 diffuseinit|die=false
76 diffuseexit|die=true
77 }
78 Explorerchildsubclass
79 
child:{
80 percept,exitimportedfromrootclass
81 group,s,s0,h,backdir,dx,dy,dir,enoughinput,back
82 
percept_neighbour{
83 found
?%
(0,SENSORVALUE,s?);
84 iffoundnot?(MARK,group)then
85 backfalse;enoughinput0;
86 
(MTMO,MARK,group);
87 h(if|ss0|DELTAthen1else0);
88 
+
(H,$self,h);
89 *(percept_neighbourmove)
90 {nextdir|nextdirbackdir?(nextdir)inbound(nextdir)}do
91 
(nextdir,radius)
92 *(percept_neighbourgoback|enoughinput<1)
93 
+
(ATMO,TIMEOUT)
94 elsebacktrue
95 }
96 
move:{
97 backdir(dir);(dx,dy)(dx,dy)+(dir);
98 dir;
99 }
100 
goback:{
101 if?(H,$self,?)then
(MARK,$self,h?)elseh0;
102 backdir;
103 }
104 
deliver:{
105 
(H,$parent,v?);
+
(H,$parent,v+h);
106 WAKEUP$parent;
107 }
108 :{
109 perceptmove
110 movepercept_neighbour
111 percept_neighbour(enoughinput<1)back
112 gobackdeliver
113 deliverexit
114 }
115 }
116 }
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.2 Self-organizing Distributed Feature Recognition 303
Fig. 9.3 AAPL Behaviour Model of the explorer agent and the explorer child agent class
branching from the percept activity.
9.2.2 Some Simulation Experiments of a Sensor Network
To evaluate the capabilities of the feature marking SOMAS introduced in
the previous section, the simulation environment described in Chapter 11 is
used to carry out simulations with synthetic and real-world sensor data
(though obtained from FEM simulation, the data sets are rather realistic
including noise).
Figure 9.4 shows simulation results of a connectivity-incomplete 8x8 sensor
network with a rectangular sensor stimuli region having a sharp boundary.
The network had a communication connectivity of CN=70% (30% communica-
tion links are not operating). The creation of a root explorer agent involves
three parameters: 1. The radius R and the size N
R
of the square ROI (R=1
means 9 sensor values, R=2 means 27 sensor values contributing to the H cal-
culation); 2. The lifetime L in node distance units; 3. The 
0

1
] decision
interval. In all simulations a ] setting was used.
With a parameter set {R=1, L=1} the sharp boundary of the sensor stimuli is
detected reliable for a cluster size of 8 and 15 sensors shown in the plots (a)-
(c) and (d). Surprisingly, the CL=15 cluster is not recognized with a parameter
set {R=2, L=1} (e), in contrast to the smaller cluster with CL=8.
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
304
Fig. 9.4 SOS Feature Marking (red circles) with a localized rectangular sensor stimuli
region having a sharp boundary (yellow dotted line). CL: Cluster size, R: Explo-
ration radius, L: Explorer lifetime, Network connectivity CN=70%
Increasing the lifetime usually not increases the quality of feature recogni-
tion. In the case of the larger cluster size CL=15 (f) the fuzziness of the
boundary increases if the lifetime is increased.
In Figure 9.5 the feature detection is applied to data sets retrieved from
load and strain simulations of a steel plate using FEM simulation (see
[BOS14C][BOS14F] for details), which leads to a more continuously sensor
stimuli distribution without having a sharp boundary.
The first data set related to a specific load case has a significant increase of
sensor values at the east side of the network. The boundary feature detection
SOMAS reliable finds the west side of the region regardless of the different
parameter settings, shown in the plots (a)-(c).
The second data set and load case with a smoother sensor value distribu-
tion and a lower sensor value gradient shows a totally different result. In plot
(d) with the parameter set {R=1, L=1} the flat region is marked instead the sen-
sor value gradient on the east side. This changes again with the parameter
sets {R=2, L=1} and {R=2, L=2} shown in the plots (e)-(f), now detecting the gra-
dient boundary correctly.
The third data set and load case with a nearly constant gradient of the sen-
sor values shows again different results for R=1 and R=2 settings. The R=2
setting always marks the entire network, which is primarily a result of the
(a) CL=8 R=1 L=1 (b) CL=8 R=2 L=1 (c) CL=8 R=2 L=2
(d) CL=15 R=1 L=1 (e) CL=15 R=2 L=2 (f) CL=15 R=1 L=2
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.2 Self-organizing Distributed Feature Recognition 305
decision interval setting . The R=1 setting finds again the west side of the
sensor stimuli related to the lowest sensor values.
To summarize the edge detection capabilities of the SoMAS are mostly suit-
able to recognize a stimulated sensor value region and can be used for
triggering of the event-based sensor data distribution and processing
described in Section 9.3. The quality of the feature detection depends on the
parameter set {R,}, which can be adjusted at run-time by using reinforce-
ment learning performed by the agents based on a quality feedback from the
computational nodes.
Fig. 9.5 SOS Feature Marking (red circles) with a large area sensor stimuli region hav-
ing no clearly defined boundary (continuous change). LC: Load case, R:
Exploration radius, L: Explorer lifetime, Network connectivity CN=70%
(a) LC=1 R=1 L=1 (b) LC=1 R=2 L=1 (c) LC=8 R=2 L=2
(d) LC=2 R=1 L=1 (e) LC=2 R=2 L=1 (f) LC=2 R=2 L=2
(g) LC=3 R=1 L=1 (h) LC=3 R=2 L=1 (i) LC=3 R=2 L=2
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
306
9.3 Self-organizing Event-based Sensor Data Processing and
Distribution
Large scale sensor networks with hundreds and thousands of sensor nodes
require smart data processing concepts far beyond the traditional centralized
approaches. Multi-Agent systems can be used to implement smart and opti-
mized sensor data processing in these distributed sensor networks.
Event-based sensor data distribution and pre-computation with agents
reduces communication and overall network activity resulting in reduced
energy consumption of single nodes and the entire network.
Different sensor data processing and distribution approaches are used and
implemented with agents, leading to a significant decrease of network pro-
cessing and communication activity and a significant increase of reliability and
the Quality-of-Service:
1. An event-based sensor distribution behaviour is used to deliver sensor
information from source sensor to computation nodes
2. Adaptive path finding (routing) supports agent migration in unreliable
networks with missing links or nodes by using a hybrid approach of
random and attractive walk behaviour
3. Self-organizing agent systems with exploration, distribution, replica-
tion, and interval voting behaviours based on feature marking are used
to identify a region of interest (ROI, a collection of stimulated sensors)
and to distinguish sensor failures (noise) from correlated sensor activ-
ity within this ROI. The feature SoS, already presented in the previous
section, triggers the creation of sensor distribution agents.
It is assumed that sensor nodes arranged in a two-dimensional grid net-
work (as shown in Figure 9.6) providing spatially resolved and distributed
sensing information of a surrounding technical structure, for example, a
metal plate. Each sensor node shall sense mechanical properties of the tech-
nical structure nearby the node location, for example, by using strain gauge
sensors. Usually a single sensor cannot provide any meaningful information
of the mechanical structures. A connected area of sensors (complete sensor
matrix or a part of it) is required to calculate the response of the material due
to applied forces, i.e., computing the applied load vector from the sensor data
vector either by using inverse numerical or machine learning approaches, dis-
cussed in Chapter 14. The computation of the material response requires high
computational power of the processing unit, which cannot offered by down-
scaled single micro-chip platforms. For these reasons, sensor nodes use
mobile agents to deliver their sensor data to dedicated computational nodes
located at the edges of the sensor network, shown in Figure 9.6, discussed in
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.3 Self-organizing Event-based Sensor Data Processing and Distribution 307
detail in the following sub-sections. The computational nodes arranged at the
outside of the network are further divided in pre-computation and the final
computation nodes (the four nodes located at the corners of the network).
The pre-computational nodes can be embedded PCs or single micro-chips,
and the computational nodes can be workstations or servers physically dis-
placed from the material-embedded sensor network. Only the inner sensor
nodes are micro-chip platforms embedded in the technical structure material,
for example, using thinned silicon technologies.
The computation of the system response information requires basically the
complete sensor signal matrix S. In traditional sensor signal processing net-
works this sensor matrix is updated in regular time intervals, resulting in a
high network communication and sensor node activities. In this approach pre-
sented here the elements of the sensor matrix are only updated if a
significant change of specific sensors occurred. Only the four corner computa-
tional nodes store the complete sensor matrix and perform the load
computations.
The sensor processing uses both stationary (non-mobile) and mobile
agents carrying data, illustrated in Figure 9.7 on the left side. There are two
different stationary (non-mobile) agents operating on each sensor node: the
sampling agent which collects sensor data, and the sensing agent, which pre-
processes and interprets the acquired sensor data.
Fig. 9.6 The logical view of a sensor network with a two-dimensional mesh-grid topol-
ogy (left) and examples of the population with different mobile and immobile
agents (right): event deliver, node, and computational processing agents. The
sensor network can contain missing or broken links between neighbour
nodes.
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
308
Fig. 9.7 Left: Sensor data distribution with event (green) and preprocessing agents
(blue): A sensor node which detected a significant change of the sensor values
creates event agents which are sent in all four directions to the network
boundary (pre-computation nodes). Right: ATG behaviour model of the event
agent.
If the sensing agent detects a relevant change in the sensor data, it sent out
four mobile event agents, each in another direction. The event agent carries
the sensor data and delivers it to the pre-computation nodes at the boundary
of the sensor network. The agent behaviour is specified in Algorithms 9.2 and
9.3 (giving the routing behaviour), and an overview of the agent behaviour and
the ATG can be found in Figure 9.7 on the right side.
9.3.1 Event Agent Behaviour
An event agent has a predefined path in the direction dir that is followed by
the move activity as long as there is connectivity to the next neighbour node in
this direction. Normally the agent travels to the outside of the network on the
given direction by applying the route_normal routing strategy successfully. If
it is impossible to migrate in the predefined direction, an alternative path is
chosen by using the route_opposite routing strategy, which chooses a path
away from the original destination to bypass unconnected nodes and missing
communication links. Using the route_relax routing strategy the agent is
directed again to the original planned path. Making routing decisions and
migration are performed in the move activity of the agent, followed by the
check activity, which collects sensor data from the current node and checks
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.3 Self-organizing Event-based Sensor Data Processing and Distribution 309
the destination node goal, and if reached delivering the sensor values in the
deliver activity.
Each pre-computation node stores a row or a column of the sensor matrix
S. If their data changes, the pre-computation nodes will send out two mobile
distribution agents in opposite directions, delivering a row or column of S to
the final computation nodes, located at the edges of the sensor network.
Alg. 9.2 Agent behaviour of the Event agent class offering a robust event-based and
path tracking sensor data distribution
1 :{SENSORVALUE,DISTRIBUTER} setofkeysymbols
2 :{NORTH,SOUTH,WEST,EAST,ORIGIN} setofdirections
3 MAXFAILED=4 someconstantparameters
4
5 typeRoute=(dir=,lastdir=,delta=,gamma=,routed=boolean);
6
7
Event:(dir){
8 BodyVariables
9 :{route,arrived,failed,die,SX=[0..DIMX1],SY=[0..DIMY1]}
globalpersistentvariables
10 :{vx,vy,index,found,row,col,rown,coln}
localtemporaryvariables
11
12 Activities
13 
init:{
14 arrivedfalse;
15 i{0..DIMX1}doSX[i]‐1;
16 i{0..DIMY1}doSY[i]‐1;
17 routeRoute(dir,ORIGIN,(0,0),(0,0),false);
18 found
?%
(0,SENSORVALUE,vx?,vy?);
19 iffoundthenSX[0]vx;SY[0]vy;
20 }
21
22 
move:{
23 route.dirdir;Trydifferentroutingstrategies
toreachthedestination
24 routeroute_relax(route);
25 ifnotroute.routedthenrouteroute_normal(route);
26 ifnotroute.routedthenrouteroute_opposite(route);
27 ifroute.routedthen(route.dir)elsefailed++;
28 }
29
30 
check:{
31 found?(DISTRIBUTER);
32 iffoundroute.gamma=(0,0)thenarrivedtrue
33 elseifroute.gamma=(0,0)then
34 found
?%
(0,SENSORVALUE,vx?,vy?);Collectallsensorvalues
alongdeliverypath
35 iffoundthen
36 casedirof
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
310
37 |NORTHindex‐route.delta.Y
38 |SOUTHindexroute.delta.Y
39 |WESTindex‐route.delta.X
40 |SOUTHindexroute.delta.X
41 SX[index]vx;SY[index]vy;
42 iffailed>MAXFAILEDthendietrue;
43 }
44
45 
deliver:{
46 
%
(MATRIXDIM,row?,col?,rown?,coln?);
47 index0;
48 casedirofDeliverallsensorvaluescollectedalongdeliverypath
49 |NORTH
50 row{‐route.delta.Y1..0}do
51 
+
(SENSORVALUE,row,col,SX.[index],SY.[index]);index++;
52 |SOUTH
53 row{rownroute.delta.Y..rown1}do
54 
+
(SENSORVALUE,row,col,SX.[index],SY.[index]);index++;
55 |WEST
56 col{‐route.delta.X1..0}do
57 
+
(SENSORVALUE,row,col,SX.[index],SY.[index]);index++;
58 |EAST
59 col{colnroute.delta.X..coln1}do
60 
+
(SENSORVALUE,row,col,SX.[index],SY.[index]);index++;
61 }
62
63 
exit:{($self)}
64
65 MainTransitions
66 :{
67 entryinit
68 initmove
69 movecheck
70 checkdeliver|arrived=true
71 checkmove|arrived=falsedie=false
72 checkexit|die=true
73 deliverexit
74 }
75 }
Alg. 9.3 Routing functions
1 :{NORTH,SOUTH,WEST,EAST,ORIGIN} setofdirections
2 typeRoute=(dir=,lastdir=,delta=,gamma=,routed=boolean);
3
4
route_normal:(route){
5 if?(dir)route.last_dir(dir)then
6 route.routedtrue;route.lastdirdir;
7 route.deltaroute.delta+(route.dir);
8 caseroute.dirof
9 |NORTH
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.3 Self-organizing Event-based Sensor Data Processing and Distribution 311
10 ifroute.gamma.Y0thenroute.gammaroute.gamma+(dir);
11 |SOUTH
12 route.routedtrue;route.lastdirNORTH;
13 ifroute.gamma.Y0thenroute.gammaroute.gamma+(dir);
14 |WEST
15 ifroute.gamma.X0thenroute.gammaroute.gamma+(dir);
16 |EAST
17 ifroute.gamma.X
0thenroute.gammaroute.gamma+(dir);
18 route
19 }
20
21
route_opposite:(route){
22 routes{d|?(d)route.lastdir(d)};
23 ifroutesthen
24 route.routedtrue;
25 route.dir(routes);
26 route.lastdirroute.dir;
27 route.deltaroute.delta+(route.dir);
28 route.gammaroute.gamma+(dir);
29 route
30 }
31
32
route_relax:(route){
33 nextdirORIGIN;
34 ifroute.gamma(0,0)then
35 ifroute.gamma.X<0?(EAST)route.lastdir(EAST)then
36 nextdirEAST;
37 ifroute.gamma.X>0?(WEST)route.lastdir(WEST)then
38 nextdirWEST;
39 ifroute.gamma.Y<
0?(SOUTH)route.lastdir(SOUTH)then
40 nextdirSOUTH;
41 ifroute.gamma.Y>0?(NORTH)route.lastdir(NORTH)then
42 nextdirNORTH;
43 ifnextdirORIGINthen
44 route.dirnextdir;
45 route.routedtrue;route.lastdirdir;
46 route.deltaroute.delta+(route.dir);
47 route
48 }
49
50 :(dir){
51 casedirof
52 |NORTH(0,1)
53 |SOUTH(0,+1)
54 |WEST(1,0)
55 |EAST(+1,0)
56 }
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
312
9.3.2 Simulation Experiments of a Sensor Network
Figure 9.8 shows the population of sensor and computation nodes with
these agents retrieved from simulation using the Multi-Agent simulation envi-
ronment shell SeSAm (see Chapter 11). At the beginning there is an initial
update of all sensor values, resulting in a fairly high number of event agents
followed delayed by a high number of distribute agents (324 event and more
than 500 distribute agents). The replicated sensor value delivery to four differ-
ent computational nodes ensures a high reliability in the presence of node
and link failures, which is likely in sensor networks embedded in technical
structures and materials. But after this initial setup of the sensor network
resulting in a flooding of the network, there are only few event and distribute
agents (four event agents for each stimulated sensor node) required to
update changes in the sensor matrix, shown in the simulation in Figure 9.8
(top row) at different time points t=100, 200, and so forth, for two different
cluster sizes (the correlated area of stimulated sensors). The total number of
distributed agents (maximal 8 for each stimulated sensor) depends on the
time interval in which the pre-computation nodes send updated rows or col-
umns to the computation nodes.
Simulation results obtained from different network situation using Monte-
Carlo simulation are shown in the bottom row in Figure 9.8. In the case of 30%
broken links a slight increase of the travelling time of event and distribute
agents can be observed by a broadening of the agent population curve, and in
the case of 50% broken links the increased mean travelling time is significant,
compared with the results shown on the top row in Figure 9.8.
All agents can reach their intended destination if the probability for a bro-
ken link is below 10%. With increasing link failure probability not all event and
distribute agents can reach their destination, which will die somewhere on the
way after an upper limit of unsuccessful routing iterations.
Due to failed deliveries of sensor values and due to the temporal delay of
different sensor values, resulting from different path lengths and node posi-
tions, the sensor matrix stored in each computational nodes can differ
temporally or permanently from the real sensor matrix at a given time. Sur-
prisingly, even with a large fraction of non-operational communication links,
each cumulative image of the real sensor matrix stored in the computational
nodes experience less deviation.
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.3 Self-organizing Event-based Sensor Data Processing and Distribution 313
Fig. 9.8 Analysis results of the agent population obtained from the multi-agent simu-
lation of the event-based sensor data processing.
(Top, left): clusters of four sensors are stimulated periodically with different
centre position, (Top, right): cluster size is 8 sensors
(Bottom, left): With 30% broken links, (Bottom, right): With 50% broken links,
(Both: cluster size is 8 sensors)
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
314
9.3.3 Interaction of Event and Explorer Agents
The following Figure 9.9 poses the relationship between feature recognition
explorer, explorer child, event-based sensor distribution, and the node agents
(sampling, sensing,..).
Fig. 9.9 Ontology of the sensor network: Node sensing and sensor processing agent
classes and the instantiation of agents
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.4 Self-organizing Energy Management and Distribution 315
9.4 Self-organizing Energy Management and Distribution
Having the technical ability to communicate data carrying energy with mes-
sages by using communication links, which will be introduced in the Section
13.2.2, it is possible to use active messaging to transfer energy from "good"
nodes having enough energy towards "bad" nodes, requiring energy. A mobile
smart energy management (SEM) agent can be sent out by a bad node to
explore and exploit the near neighbourhood. The agent examines sensor
nodes during path travel or passing a region of interest (perception) and
decides to send agents holding additional energy back to the original request-
ing node (action). Additionally, a sensor node is represented by a node energy
management agent (SEN), too. The node and the energy management agents
must negotiate the energy request.
9.4.1 The Mobile Smart Energy Management Agent
The behaviour of the SEM agent is composed of multiple sub-behaviours,
each associated with its own subclass, shown in Algorithm 9.4. The subclasses
share the activities route and move. All subclass behaviours are entered from
the main class arrive activity. The agent is capable to transfer energy from
the current node to a neighbour node using the transfer operation. The
behaviour and goals of each agent subclass are:
Request
Point-to-point agent: this agent requests energy from a specific destination
node, returned with a Reply agent.
Reply
Point-to-point agent: Reply agent created by a Request agent, which has
reached its destination node. This agent carries energy from one node to
another.
Help
ROI agent: this agent explores a path starting with an initial direction and
searches a good node having enough energy to satisfy the energy request
from a bad node. This agent resides on the final good node for a couple of
times and creates multiple deliver agents periodically in dependence of the
energy state of the current node.
Deliver
Path agent: this agent carries energy from a good node to a bad node (re-
sponse to Help agent). Depending on selected sub-behaviour (HELPONWAY),
this agent can supply bad nodes first, found on the back path to the original
requesting node.
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
316
Distribute
ROI agent: this agent carries energy from and is instantiated on a good node
and explores a path starting with an initial direction and searches a bad
node supplying it with the energy.
Initially the SEM agent is instantiated by the local SEN agent, either with the
sub-class behaviour help (kind=HELP) or distribute (kind=DISTRIBUTE) selected,
beginning at lines 148 and 184, respectively. The first action that the SEN
agent performs is moving in the specified direction Dx/Dy (using the route and
move activities), assuming a two-dimensional grid network topology. The ini-
tial direction was chosen randomly by the SEN parent agent. Moving of the
agent consumes energy, which decrements the ENERGY tuple value (lines
34,35). Each time the agent moves it must previously transfer its virtual
energy (stored in the body variable Energy) to the new destination node. Fur-
thermore, the migration of the agent itself consumes energy (EnergySend).
After the agent arrived at the destination node, it updates the local ENERGY
tuple by the amount of the transferred energy (reduced by the transmission
efficiency EnergyEff), shown in lines 45-47.
Help Agent
The percept activity of the Help agent subclass decides what happens with
the agent. If the agent finds bad nodes along the path to the desired explo-
ration boundary (limited by Dx/Dy), it will donate energy to these nodes to
ensure the operational vividness of this bad node. If the boundary of the
exploration region is reached (Dx/Dy=0), the agent dies (and leave its energy
deposit at this last node). If the agent founds a good node, it will create a
SEM agent of subclass Deliver to pass energy back to the root node, and
then continues moving towards the boundary of the search range by enter-
ing the route activity again. Each good node found along its path increases
the age, each bad node decreases the age of the agent. If the agent reaches
its end of live (Age=0), then he dies, too.
Deliver Agent
The deliver agent propagates energy from a good node to a bad node,
which destination is specified by Dx/Dy.If the help-on-way (HelpOnWay) be-
haviour is activated, it will deliver energy to bad nodes along its path first,
and dies finally.
Distribute Agent
The distribute agent has the goal to deliver energy to bad nodes (whose en-
ergy is below DistThres) along the path to the destination or finally to the
destination node specified by Dx/Dy (regardless if this is a bad or good
node).
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.4 Self-organizing Energy Management and Distribution 317
Request and Reply Agent
The request and reply subclass agents are used to transfer energy between
nodes directly on a peer-to-peer basis. There is no help-on-way behaviour
activated.
Alg. 9.4 AAPL model of the SEM Agent Behaviour
1 :{NORTH,SOUTH,WEST,EAST,ORIGIN} setofdirections
2 kind:{REQUEST,REPLY,DELIVER,HELP,DISTRIBUTE}setofagentgoals
3 state:{TRAVEL,AWAIT,DYING,HELP,IAMHERE,SLEEP}setofagentstates
4
5
SEM:(Dx,Dy,De,Energy,Kind,
6 SEMSet=(recordofSEMparametersettings
7 EnergieThres,EnergyEff,EnergyHelp,DistrThres,SendThres,
8 EnergyDeposit,HelpOnWay,HelpTime,AgingGood,AgingBad,
9 EnergySend)){
10 :{TIMER}setofsignals
11
12 :{Dir,Dx1,Dy1,Age,AgentState}
13 :{en,tryagain,qos}
14
15 
init:{
16 DirORIGIN;AgentStateTRAVEL;
17 }
18
19 
route:{
20 ifDx>0&?(WEST)then
21 decr(Dx);DirWEST;
22 elsifDx<0&?(EAST)then
23 incr(Dx);DirEAST;
24 elsifDy<0&?(SOUTH)then
25 decr(Dy);DirSOUTH;
26 elsifDy>0&?(NORTH)then
27 
incr(Dy);DirNORTH;
28 elseAgentStateDYING;
29 }
30
31 
move:{
32 tryagainfalse
33 
%
(ENERGY,en?)
34 ifen>EnergieThresthen
35 
(ENERGY,en?)
36 
+
(ENERGY,enEnergyEnergySend)
37 
transfer(DIR,Energy)transferenergyofthisagenttoneighbournode
38 (DIR)
39 else
40 stateSLEEP;
41 +(TIMER,1sec);
42 }
43
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
318
44 arrive:{
45 
(ENERGY,en?)
46 enen+Energy*EnergyEffconsiderenergyloss
47 
+
(ENERGY,en)updatelocalENERGYvalue,
48 energywasalreadytransferred
49 }
50
51 
dying:{
52 kill($self)
53 }
54
55 TIMER:{tryagaintrue}
56
57 :{
58 initroute
59 routedying|AgentState=DYING
60 routemove|AgentState=TRAVEL
61 movemove|AgentState=SLEEPandtrygain
62 movearrive|AgentState=TRAVEL
63 }
64
65 
Request{
66 :{en,Dx,Dy,Dx1,Dy1,De,SEMSet,AgentState,Kind}
67 :{arrive,dying,route}
68
69 percept:{
70 if(Dx,Dy)=(0,0)thenAgentState<‐IAMHERE;
71 }
72
73 action:{
74 
%
(ENERGY,en?)
75 ifenDe>SendThresthen
76 eval(
newSEM(Dx1,Dy1,0,De,REPLY,SEMSet))
77 Age0
78 AgentStateDYNING
79 else
80 
%
(QOS,qos?)
81 decr(Age)
82 ifAge=0thenAgentStateDYING
83 ifqos<0.9thenAgentStateDYING
84 }
85
86 :{
87 arrivepercept|Kind=REQUEST
88 perceptaction|AgentState=IAMHERE
89 perceptroute|AgentState=TRAVEL
90 perceptdying|AgentState=
DYING
91 actiondying|AgentState=DYING
92 actionroute|AgentStateDYING
93 }
94
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.4 Self-organizing Energy Management and Distribution 319
95 }
96
97 
Reply:{
98 Dx,Dy,AgentState,Kind
99 dying,route
100
101 percept:{
102 if(Dx,Dy)=(0,0)thenAgentStateIAMHERE;
103 }
104
105 action:{
106 Age0
107 AgentStateDYING
108 }
109
110 :{
111 arrivepercept|Kind=REPLY
112 perceptaction|AgentState=IAMHERE
113 percept
route|AgentState=TRAVEL
114 perceptdying|AgentState=DYING
115 actiondying|AgentState=DYING
116 }
117 }
118
119 
Deliver:{
120 :{en,duty,SEMSet,Energy,Dx,Dy,Age,Kind,AgentState}
121 :{arrive,dying,route}
122
123 help:{
124 
(ENERGY,en?)
125 
%
(DUTY,duty?)
126 ifduty>0anden<EnergyHelpthen
127 incr(en,duty)
128 decr(Energy,duty)
129 
+
(ENERGY,en)
130 }
131
132 percept:{
133 
%
(ENERGY,en?)
134 if(HelpOnWayen<EnergyHelp)(Dx,Dy)=(0,0)then
135 AgentStateIAMHERE;
136 }
137
138 action:{
139 Age0
140 AgentStateDYING
141 }
142
143 :{
144 arrivehelp|Kind=DELIVER
145 helppercept
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
320
146 perceptaction|AgentState=IAMHERE
147 perceptroute|AgentState=TRAVEL
148 perceptdying|AgentState=DYING
149 actiondying|AgentState=DYING
150 }
151 }
152
153 
Help:{
154 :{en,time,De,SEMSet,Dx,Dx1,Dy,Dy1}
155 :{arrive,dying,route}
156
157 percept:{
158 
%
(ENERGY,en?)
159 ifen>De+EnergyDepositthen
160 AgentState<‐IAMHERE;
161 decr(Dx1,Dx)
162 decr(Dy1,Dy)
163 elsif(Dx,Dy)=(0,0)then
164 AgentStateDYING
165 Age0
166 }
167
168 action:{
169 
%
(ENERGY,en?)
170 ifen>(De+EnergyDeposit)then
171 eval(
newSEM(Dx1,Dy1,0,De,DELIVER,SEMSet))
172 incr(Age,AgingGood)
173 else
174 incr(Age,AgingBad)
175 ifAge=0thenAgentStateDYING
176 }
177
178 :{
179 arrivepercept|Kind=HELP
180 perceptaction|AgentState=IAMHERE
181 perceptroute|AgentState=TRAVEL
182 perceptdying|AgentState=DYING
183 action
route|AgentStateDYING
184 actiondying|AgentState=DYING
185 }
186
187 }
188
189 
Distribute:{
190 :{en,DistThres,Dx,Dy,Kind,AgentState}
191 :{arrive,dying,route}
192
193 percept:{
194 
%
(ENERGY,en?)
195 ifen<DistrThres(Dx,Dy)=(0,0)then
196 AgentStateIAMHERE;
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.4 Self-organizing Energy Management and Distribution 321
197 }
198
199 action:{
200 AgentStateDYING
201 Age0
202 }
203
204 :{
205 arrivepercept|Kind=DISTRIBUTE
206 perceptaction|AgentState=IAMHERE
207 perceptroute|AgentState=TRAVEL
208 perceptdying|AgentState=DYING
209 actiondying|
AgentState=DYING
210 }
211 }
212 }
9.4.2 The Immobile Sensor Node Energy Management Agent
The mobile SEM agent is created by a non-mobile sensor node energy man-
agement agent SEN. The SEM agents interact with SEN agents through the
tuple-space on each node, using the ENERGY tuple, as shown in Algorithm 9.5.
The behaviour of the SEN agent consists mainly of collecting of local available
energy by energy harvesting, and to monitor the local energy deposit in rela-
tion to the energy requirements, which determine the actually available
service a node can provide (e.g., agent processing, routing of messages).
There are two goals of the SEN agent to be fulfilled by instantiating a SEM
agent:
Sensor Node Vividness
The local node requires energy from the neighbourhood to ensure the ser-
vice of the node, i.e., it is an individual goal.
Sensor Network Vividness
The local node want to distribute energy to the neighbourhood to ensure
the service quality of the sensor network, i.e., it is a system goal.
It is assumes that each sensor node is equipped with an energy harvester
module, which is capable to collect energy from the environment. The har-
vested energy amount can be checked by the harvest function returning the
amount of energy collected since the last call. If the energy is low, help agents
are sent out (actually a bad node), if the energy is high (actually a good node)
some portion of the energy deposit is distributed to the neighbourhood. The
radius limiting the mobility of help and distribution agents is given by the SEN
parameter DistRange. The help and distribute agents are created in the service
activity (lines 34-53).
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
322
Alg. 9.5 AAPL model of the non-mobile Sensor Node Energy Management (SEN) Agent
Behaviour
1 SEN:(
2 SENSet=(ProbeActivity,EnergyHigh,EnergyVeryHigh
3 EnergyDonation,ActivityCost,
4 EnergyThres,EnergySendThres,
5 HelpEnergy,MessageEnergy,
6 SleepTime,DistRange)){
7 S:{Energy,EnergyFlow,Time,UpTime,DownTime}
8 s:{dir,dirs,tryagain,lasttime}
9 :{SLEEP}
10
11 SEMSet=(recordofSEMparametersettings
12 EnergieThres,EnergyEff,EnergyHelp,DistrThres,SendThres,
13 EnergyDeposit,HelpOnWay,HelpTime,AgingGood,AgingBad,
14 EnergySend)
15
16 
init:{
17 ..
18 }
19 
20 
collect:{
21 rd(TIME,Time?);
22 in(ENERGY,Energy?)
23 incr(Energy,harvest())UpdateEnergyvalue
24 out(ENERGY,Energy)
25 ifEnergy<EnergySendThresthen
26 tryagainfalse
27 incr(DownTime,Timelasttime)
28 +(SleepTime,SLEEP)
29 else
30 incr(UpTime,Timelasttime)
31 lasttimeTime
32 }
33
34 
service:{
35 in(ENERGY,Energy?)
36 decr(Energy,ActivityCost)
37 out(ENEGRY,Energy)
38 dirs{}
39 testdirdoif?(testdir)thendirsdirs@{testdir}
40 if{0..100}<ProbeActivitythen
41 ifEnergy>EnergyHighthen
42 dir(dirs)
43 eval(
newSEM(.x(dir)*DistRange,.y(dir)*DistRange,0,
44 EnergyDonation,DISTRIBUTE,SEMSet))
45 ifEnergy>EnergyVeryHighthen
46 dir(dirs)
47 eval(
newSEM(.x(dir)*DistRange,.y(dir)*DistRange,0,
48 EnergyDonation*2,DISTRIBUTE,SEMSet))
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
9.5 Further Reading 323
49 ifEnergy<EnergyThresthen
50 dir(dirs)
51 eval(
newSEM(.x(dir)*DistRange,.y(dir)*DistRange,HelpEnergy,
52 MessageEnergy,HELP,SEMSet))
53 }
54
55 
evaluate:{
56 Evaluateenergyharvesting,distribution,andcollection
57 fromothernodesandadaptSENSetparameterstofulfill
58 localandgloballifenessgoals
59 }
60
61 SLEEP:{tryagaintrue}
62
63 :{
64 initcollect
65 collectcollect|tryagain
66 collect>service|Energy
>EnergySendThres
67 serviceadapt
68 evaluatecollect
69 }
70 }
9.5 Further Reading
1. H. He, Self-Adaptive Systems for Machine Intelligence, John Wiley & Sons,
Ltd, 2011, ISBN 9780470343968
2. C. Gershenson, Design and Control of Self-organizing Systems, Vrije Uni-
versiteit Brussel, CopIt ArXives, 2007.
3. J. Liu, Autonomous Agents and Multi-Agent Systems - Explorations in Learn-
ing, Self-Organization and Adaptive Computation, World Scientific Pub-
lishing, 2001, ISBN 9810242824
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)
Chapter 9. Self-Organizing Multi-Agent Systems
324
S. Bosse, Unified Distributed Sensor and Environmental Information Processing with Multi-Agent Systems
epubli, ISBN 9783746752228 (2018)