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}localtemporaryvariables
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)