TESI DI LAUREA
Un Algoritmo Multi-Agente
per Data Mining Spaziale
RELATORI
CANDIDATO
Prof. Domenico Saccà
Roberto Cavarretta
Ing. Giandomenico Spezzano
CONTRORELATORE
Ing. Francesco Scarcello
Sunto del lavoro di tesi:
 Data Mining Spaziale
 Algoritmi di clustering
 Vita Artificiale
 Swarm Intelligence
 Esempi di Swarm Intelligence

Ants (formiche)

Flock (stormi di uccelli)
 Flock
 Algoritmo SPARROW
 Risultati sperimentali
Data Mining Spaziale:
 Estrarre pattern spaziali
 Relazioni intrinseche tra dati spaziali e non spaziali
 Regolarità dei dati
 Regole associative
 Classificazione e Clustering dei dati spaziali
Algoritmi di Clustering:
 Partizione
 Gerarchia
 Densità
Algoritmi di Partizione:
In questi Algoritmi ogni partizione è
rappresentata da un insieme di oggetti disposti
intorno ad un oggetto chiamato medoid.
Algoritmi Gerarchici (HA):
(HA) sul data set {a,b,c,d}
a,b,c,d
a,b
a
c,d
b
c
d
Algoritmi a densità:
 Settore (raggio )
 Densità (numero oggetti=5 )

Algoritmo DBSCAN:
 Densità raggiungibile direttamente:
A
p
q
Densità raggiungibile:
A
p
q
Densità connessa:
p
o
q
Vita Artificiale:
 Nata in un primo momento per studiare il
comportamento degli organismi viventi.
 Usata per scopi informatici
Le proprietà di un essere vivente:
 Complessità
 Emergenza
 Riproduzione
 Evoluzione
Swarm Intelligence:
 È un insieme di Agenti non intelligenti, che
cooperando,
esibiscono
collettivi intelligenti.
 Esempi di Swarm intelligence:
 Ants (formiche)
 Flock (stormo di uccelli)
comportamenti
Cos’è un agente:
 Un agente è un’entità dotata di semplici regole
locali e di una forma di controllo distribuito che si
manifesta attraverso comunicazioni con agenti
immediatamente vicini, stabilita attraverso
osservazioni ambientali.
Stigmergy (Grassè)
 Sign-based:
L’agente nel compiere una azione deposita,
permanentemente o temporaneamente,
qualcosa nell’ambiente dove vive.
 Sematectonic:
Consiste in un cambiamento nelle caratteristiche
fisiche dell’ambiente circostante.
Quadro riassuntivo:
Algoritimi di clustering (di Partizione, Gerarchici, a
Densità)
 Vita Artificiale
 Swarm Intelligence
agenti
comunicazione fra gli agenti
sign-based
sematectonic stigmergy
SPARROW:
 Nasce dall’idea proposta da Macgill.
 Un algoritmo a Densità.
 Applica per la ricerca dei clusters un sistema Multiagente.
 Stigmergy (sign-based).
 Usa come forma di intelligenza collettiva il Flock.
 Decentralizzato.
 Non espolora l’intero data set.
 Tollerante ai guasti.
 Non sequenziale.
Le due fasi di SPARROW:
 Movimento
 Emulato dal Flock.
 Individuazione e fusione dei clusters nei dati
Flock:
 C. Reynolds
 Separazione: ogni boids nella moltitudine mantiene
una distanza di sicurezza rispetto ai suoi vicini.
 Coesione: ogni boids si muoverà verso la posizione
media dei boids vicini.
 Allineamento: ogni boids si muoverà secondo il
senso dei loro vicini.
 Autonomia
 Controllo localizzato
Settore e direzioni di un agente
in SPARROW:
 Settore di rilevazione
 Direzione di movimento: Nord, NordOvest, ….
 Distanza di sicurezza fra boid nel settore.
Regole di movimento:
 Attrazione
 Repulsione
 Boids estraneo
 Ostacolo
Regola di attrazione:
R
all.
attr.
d>dmin
 Se il boid rilevato è ad una distanza che è maggiore
della minima, scatta la regola di attrazione.
Regola di repulsione:
R
rep.
all.
d<dmin
 Se il boid rilevato è ad una distanza minore di
quella fissata, scatta la regola di repulsione.
Boid di “razza” diversa:
all.
dir.di moto
invertito
 Se nel settore di rilevazione entra un boid
appartenente ad un'altra moltitudine il boid
si muoverà nel senso opposto al suo moto.
Ostacolo:
 Se nel settore di rilevazione è presente uno
ostacolo il boid lo eviterà.
Individuazione dei cluster:
 Cluster come fonte di cibo
 Ogni boid sarà colorato di:

Nero

Blu

Verde

Rosso

Giallo
Le fasi fondamentali dell’algoritmo SPARROW:
 Colorazione
 Individuazione e fusione dei cluster
 Regole di guida
 Velocità di movimento
Colorazione
Fissata la dimensione del settore (es. 2x2); e la densità
di cibo (es. densitàCibo= 12) allora, ogni boid a
seconda di quanto cibo trova si colorerà di:
cibo=0  colore= Nero
0<cibo<=densitàCibo/4colore= Blu
densitàCibo /4<cibo<= densitàCibo/2
 colore=Verde
densitàCibo /2<cibo<= densitàCibo 
colore= Rosso
Cibo> densitàCibo  colore= Giallo
classifica il cibo come cluster.
Individuazione
Ogni boid colorato di giallo individua un cluster.

Si marca il terreno di giallo (Sing-based)
Si colora il cibo individuato nel settore con un
colore assegnato automaticamente dall’algoritmo.

Fusione dei cluster
 La fusione s’ispira a quella del DBSCAN, la regola che
viene usata è quella dell’intersezione.
Regola d’intersezione:
 La condizione necessaria, ma non sufficiente, affinchè
due cluster Ci , Cj siano fusi è:
|Ci  Cj|1
 La sufficienza è legata alla disposizione del cibo nel
cluster, praticamente un pezzo di cibo, nel cluster, deve
essere a distanza  da un altro (densità raggiungibile).
Esempio di fusione fra cluster vicini:







 c1< c2 < c3


 fusione dei cluster con colore c1
Fusione dei cluster di DBSCAN:
p
B
A
O4
O1
O2
C
O3
Regole di guida:
 Prima di muovere il boid devo correggere direzione e
velocità di volo, allora per ogni boid rilevato nel settore:

Se il boid è troppo vicino indipendente dal colore
Respingi();

Se il boid è Verde
Ignora();

Se il boid è Rosso oppure Giallo
Attrai();

Se il boid Blu oppure Nero
Evita();
Prendere la media vettoriale dei punti obiettivi generati
Velocità di movimento:
 boid Blu muovi velocemente il boid
 boid Verde muovi moderatamente il boid
 boid Rosso muovi lentamente il boid
 boid Giallo oppure Nero

Arresta il boid

Genera il boid (PosX, PosY)
Problemi incontrati in SPARROW:
 Effetto ad elastico
 Effetto gabbia
 Cluster anomalo
Timer Life:
 Ad ogni Boid viene assegnato un numero
prefissato di movimenti che costituiranno la
sua vita. L’invecchiamento è pensato come
il consumo dei movimenti.
Effetto ad elastico:
PassoN (effetto attrattivo)
Passo N+1 (effetto repulsivo)
Effetto Gabbia:
Nasce dalla rigenerazione del boid in una
zona povera di casi e circondata da boid di
colore Nero.
cibo
Rilevazione di cluster anomali:
 è legata ad un errato settaggio dei parametri
densità e/o dimensione del settore. Funge da inganno
per gli altri boid attratti da fonti di cibo sbagliate.
 tutto questo è stato implementato con un
linguaggio basato sul modello ad automi cellulari
denominato CARPET (ISI-CNR).
Risultati sperimentali:
Data set DS1.
Da notare la disposizione strategica dei cluster,
con la distribuzione di alcuni punti a forma di
“sinusoide”.
1° Esp.
 Settore
(2*2)
 Densità
(11)
C
U
R
E
S
P
A
R
R
O
W
 Settore (2*2), Densità (14), Passo (10000)
 Simulazione
al Passo (11000)
Data Set DS2
 2° Esp.
Settore
(2*2)
Densità
(10)
C
U
R
E
S
P
A
R
R
O
W
Data Set DS3
 3° Esp.
Settore
(2*2)
Densità
(10)
C
U
R
E
S
P
A
R
R
O
W
 4° Esp.
Settore
(2*2)
Densità
(10)
D
B
S
C
A
N
S
P
A
R
R
O
W
Esempio di cooperazione fra i boid:
Conclusioni:
 Questo lavoro di tesi ha voluto dimostrare
come sia possibile adottare tecniche di Vita
Artificiale per individuare cluster in dati
spaziali.
 Negli sviluppi futuri di SPARROW sono
previsti:
nuovi insiemi di regole, come
quella di memorizzare le posizioni
delle zone ricche di dati.

il modello ad agenti da inserire in
maniera primitiva all’interno del
linguaggio CARPET.
