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/4colore= 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.