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.