Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases1 GRUPPO 13: Relatore: Mengoli Dario Mengoli Dario Rovatti Fabrizio Tassoni Davide.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

Algoritmi e Strutture Dati
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
Obiettivo della tesi Percorso
Algoritmi e Strutture Dati
1 Progetto CASD A.A. 2009/2010 Triangulation PR kd-tree: un indice spaziale per la modellazione di terreni Introduzione Lindice spaziale PR kd-tree Lindice.
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Alberi binari di ricerca
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Flusso Massimo Applicazione di algoritmi
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
Algoritmi e Strutture Dati
Clustering Mercoledì, 24 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Density-Based Clustering.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni.
Prof. Cerulli – Dott.ssa Gentili
Strutture dati per insiemi disgiunti
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Algoritmi e Strutture Dati
THE V*-DIAGRAM: A QUERY-DEPENDENT APPROACH TO MOVING KNN QUERIES Capoccia Emiliano - DIorio Andrea - Fontanelli Davide Sarana Nutanong Rui Zhang Egemen.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
2. Grafi.
Realizzato da Roberto Savino
Algoritmi e Strutture Dati
Euristiche: algoritmi costruttivi e di ricerca locale
Index Land Surface for Efficient kNN Query Gruppo 2 Riccardo Mascia Roberto Saluto Relatore Roberto Saluto Cyrus Shahabi Lu-An TangSonghua Xing.
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
Superfici nascoste Daniele Marini.
Studio degli indici per query di similarità basati su matrici di distanze Esame di Sistemi Informativi per le Decisioni L-S Presentato da: Ing. Marco Patella.
Microsoft Access Query (II), filtri.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Tema 2: progettazione e interrogazione di data warehouse
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Università degli Studi di Roma Tor Vergata
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
CURE: AN EFFICIENT CLUSTERING ALGORITHM FOR LARGE DATABASES GRUPPO 12 Filippo Bindi Massimiliano Ceccarini Andrea Giuliodori PRESENTAZIONE Sistemi Informativi.
Problemi risolvibili con la programmazione dinamica Abbiamo usato la programmazione dinamica per risolvere due problemi. Cerchiamo ora di capire quali.
Sommario Analisi del dominio: i sistemi per la localizzazione
Convegno Nazionale di Coordinamento CIRA Settembre 2004, Villasimius, Cagliari 1/24 DIPARTIMENTO DI ELETTROTECNICA ED ELETTRONICA POLITECNICO DI.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Cammini minimi fra tutte le coppie:
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Sezioni trasversali e movimenti di materia
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Luciano Gualà
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi di routing statici (pag.72) UdA2L4 Questi algoritmi, sono eseguiti solamente all'avvio della rete, e le decisioni di routing a cui essi pervengono.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Product Quantization for Nearest Neighbor search.
Transcript della presentazione:

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases1 GRUPPO 13: Relatore: Mengoli Dario Mengoli Dario Rovatti Fabrizio Tassoni Davide Mohammad Kolahdouzan and Cyrus Shahabi

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases2 Introduzione Trovare i K Nearest-Neighbors in un Spatial Network Database Approcci esistenti sono basati sul: 1. Calcolo on-line delle distanze tra query e oggetti (Incremental Network Expansion) 2. Utilizzo di strutture a indici (M-tree, R-tree) Gli svantaggi di questi approcci sono: 1. Performance basse se le entità non sono densamente distribuite nella rete 2. Non applicabile per distanze non euclidee (es. distanze di rete)

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases3 Devo trovare i 5 ristoranti più vicini

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases4 Regole generali Per ottenere un buon risultato un algoritmo deve avere alcune caratteristiche: 1. Incorporare le connettività di rete (es. strade) 2. Dare risposte efficienti per oggetti in movimento 3. Scalabile 4. Essere efficiente nell’inserimento di collegamenti o nodi nella rete 5. Indipendente dalla densità dei punti di interesse 6. Possibilità di query con vincoli su direzione e range

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases5 Voronoi Diagram Partiziona lo spazio in poligoni disgiunti Ogni punto appartiene a una sola cella ad eccezione dei punti di bordo che sono condivisi tra le celle adiacenti Punto di interesse

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases6 Voronoi Diagram Partiziona lo spazio in poligoni disgiunti Ogni punto appartiene a una sola cella ad eccezione dei punti di bordo che sono condivisi tra le celle adiacenti Cella di Voronoi

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases7 Voronoi Diagram Partiziona lo spazio in poligoni disgiunti Ogni punto appartiene a una sola cella ad eccezione dei punti di bordo che sono condivisi tra le celle adiacenti Ogni punto dentro il poligono ha come nearest point il generatore del poligono

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases8 Network Voronoi Diagram Specializzazione di un diagramma di Voronoi calcolato su una rete (dove gli oggetti sono posizionati sugli archi che connettono i nodi) Gli archi possono rappresentare le strade e i nodi i punti di intersezione tra le strade Le distanze tra gli oggetti dipendono dalle connettività della rete e non dalla loro posizione spaziale (non si considera la distanza euclidea)

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases9 Network Voronoi Diagram Nodo Link

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases10 Network Voronoi Diagram Punti di interesse

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases11 Network Voronoi Diagram Network Voronoi Polygon

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases12 Network Voronoi Diagram Punto di Bordo equidistante dai generatori (punto di interesse) delle celle adiacenti

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases13 Approccio utilizzato da VN 3 1. Creazione del Network Voronoi Diagram 2. Precalcolo delle distanze e memorizzazione 3. Generazione di un indice spaziale sui poligoni di Voronoi (R-tree) 4. Salvataggio per ogni cella dei poligoni adiacenti in tabelle di lookup 5. Calcolo del primo NN utilizzando l’indice spaziale 6. Iterazione per K-1 volte per trovare gli altri NN: 1. Filter step 2. Refinement step

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases14 Passo 1 – Network Voronoi Diagram e Tabelle di Lookup Generazione dei Network Voronoi Polygons Precalcolo delle distanze, generazione dell’indice spaziale (R-tree) e delle tabelle di lookup P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases15 Passo 1 – Network Voronoi Diagram e Tabelle di Lookup Generazione dei Network Voronoi Polygons Precalcolo delle distanze, generazione dell’indice spaziale (R-tree) e delle tabelle di lookup P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 1.Adiacenza poligoni 2.Distanze precalcolate 3.Punti di bordo

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases16 Passo 1 – Network Voronoi Diagram e Tabelle di Lookup Generazione dei Network Voronoi Polygons Precalcolo delle distanze, generazione dell’indice spaziale (R-tree) e delle tabelle di lookup P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 1.Distanza tra i punti di bordo con i punti interni al poligono (per ogni NVP) 2.Distanza tra i punti di bordo del poligono

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases17 Passo 1 – Network Voronoi Diagram e Tabelle di Lookup Generazione dei Network Voronoi Polygons Precalcolo delle distanze, generazione dell’indice spaziale (R-tree) e delle tabelle di lookup P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 q b1b1 P1P1 d n (b 1, P 1 ) b1b1 n1n1 d n (b 1, n 1 ) b1b1 n2n2 d n (b 1, n 2 ) b1b1 n3n3 d n (b 1, n 3 ) b2b2 ……… …… b1b1 b2b2 d n (b 1, b 2 ) ………… Questi calcoli verranno eseguiti per ogni singolo poligono. In questo modo si riduce la complessità spaziale e computazionale rispetto al caso in cui vengano calcolate le distanze tra ogni punto con tutti gli altri del grafo (punti di bordo<< punti totali)

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases18 Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup 1.Salvataggio in tabelle di lookup dei poligoni adiacenti P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 b 31

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases19 Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup 1.Salvataggio in tabelle di lookup dei poligoni adiacenti P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 b 31 P1P1 P 2, P 3, P 4, P 5, P 6 P2P2 P 1, P 3, P 6, P 7, P 8, P 10 P3P3 P 1, P 2, P 4, P 10, P 11 P4P4 …………

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases20 Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup 1.Salvataggio in tabelle di lookup dei poligoni adiacenti 2.Creazione e salvataggio in memoria dell’ indice spaziale (R-tree) per i poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 b 31

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases21 Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup 1.Salvataggio in tabelle di lookup dei poligoni adiacenti 2.Creazione e salvataggio in memoria dell’ indice spaziale (R-tree) per i poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 b 31

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases22 Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup 1.Salvataggio in tabelle di lookup dei poligoni adiacenti 2.Creazione e salvataggio in memoria dell’ indice spaziale (R-tree) per i poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 b 31

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases23 Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup 1.Salvataggio in tabelle di lookup dei poligoni adiacenti 2.Creazione e salvataggio in memoria dell’ indice spaziale (R-tree) per i poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 b 31 P1P1 NVP(P 1 ) P2P2 NVP(P 2 ) P3P3 NVP(P 3 ) ………

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases24 Ricerca 1° Nearest Neighbor Attraverso l’indice spaziale R-tree si ricava il primo NN (poligono che contiene q) Accessi al disco O(logn), dove n sono i generatori della rete P8P8

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases25 Ricerca 1° Nearest Neighbor Attraverso l’indice spaziale R-tree si ricava il primo NN (poligono che contiene q) Accessi al disco O(logn), dove n sono i generatori della rete P8P8 P1P1 NVP(P 1 ) P2P2 NVP(P 2 ) P3P3 NVP(P 3 ) ………

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases26 Passo 3 – Filter Step Si trovano i poligoni candidati a contenere il secondo NN attraverso le tabelle di lookup che contengono le informazione delle adiacenze tra poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 q

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases27 Passo 3 – Filter Step Si trovano i poligoni candidati a contenere il secondo NN attraverso le tabelle di lookup che contengono le informazione delle adiacenze tra poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 q Proprietà : il numero di celle adiacenti per ogni poligono sono in media 6 Proprietà : il vicino successivo si trova necessariamente nei poligoni adiacenti ai poligoni contenenti i precedenti NN Vincola spazio di ricerca Accessi al disco totali: O(5k+1)  O(k)

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases28 Passo 3 – Filter Step Si trovano i poligoni candidati a contenere il secondo NN attraverso le tabelle di lookup che contengono le informazione delle adiacenze tra poligoni P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 q Proprietà : il numero di celle adiacenti per ogni poligono sono in media 6 Proprietà : il vicino successivo si trova necessariamente nei poligoni adiacenti ai poligoni contenenti i precedenti NN Vincola spazio di ricerca Accessi al disco totali: O(5k+1)  O(k)

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases29 Passo 3 – Refinement step Si calcolano le distanze tra l’insieme dei candidati (punti di interesse) trovati nel passo di filter con il punto query per trovare il prossimo NN. Per far questo è necessario usare 2 tipologie di distanze: 1. Query to border computation 2. Border to border computation

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases30 Passo 3 – Refinement step Si calcolano le distanze tra l’insieme dei candidati (punti di interesse) trovati nel passo di filter con il punto query per trovare il prossimo NN. Per far questo è necessario usare 2 tipologie di distanze: Query to border computation Distanza tra il punto query e i punti di bordo del poligono che lo contiene (trovata attraverso le distanze salvate nelle tabelle di lookup)

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases31 Passo 3 – Refinement step Si calcolano le distanze tra l’insieme dei candidati (punti di interesse) trovati nel passo di filter con il punto query per trovare il prossimo NN. Per far questo è necessario usare 2 tipologie di distanze: Border to border computation Distanze tra i bordi dei NVP, per far questo si usano le distanze precalcolate all’inizio e salvate nelle tabelle di lookup

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases32 Minimum possible network distance È la distanza minima tra q e un punto di interesse. Proprietà: Se (P 1 ; …; P k ) è l’insieme dei primi K generatori più vicini a q, allora il cammino minimo tra q e P k può passare solo attraverso una combinazione dei confini comuni tra i poligoni contenenti (P 1 ; …; P k ) Questo cammino può passare solo attraverso poligoni il cui generatore è già stato precedentemente selezionato come NN di q

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases33 Minimum possible network distance Se (P1, P2) sono i generatori più vicini a q già etichettati, il cammino più breve da q a P6 (il prossimo NN) può passare solo attraverso i confini comuni tra P1/P2 e P6 P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 q Primi 2 NN di q 3° NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases34 Minimum possible network distance P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P1P1 b9b9 P 14 P 13 P 12 P 11 P 10 b8b8 b7b7 b6b6 b5b5 b4b4 b3b3 b2b2 b1b1 b 15 b 14 b 13 b 12 b 11 b 10 b 26 b 20 b 19 b 18 b 17 b 16 b 25 b 24 b 23 b 22 b 21 b 30 b 29 b 28 b 27 b 33 b 31 b 32 b 37 b 36 b 35 b 34 b 40 b 39 b 38 n1n1 n2n2 n3n3 q Primi 2 NN di q 3° NN Es: d mpn (q, P 6 ) = min{ d(q, b 6 )+d(b 6, P 6 ) ; d(q,b 7 )+d(b 7, P 6 ) ; d(q, b 8 )+d(b 8, b 9 )+d(b 8, b 9 )} Con VN3 tutte queste singole distanze sono già precalcolate

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases35 Trovare il cammino minimo Al passo precedente si è etichettato il prossimo NN. Sono proposti due metodi per definire il cammino minimo: Network Voronoi Poligon Expansion Generazione di sottoreti Distance Computing Optimizazion Versione ottimizzata del precedente in grado di ricalcolare le distanze solo se necessario

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases36 Riassumendo…. 1. Precalcolo distanze, indice e tabelle 2. Ricerca del primo NN attraverso l’indice 3. Generazione dei possibili candidati per il 2° NN 4. Calcolo delle minimun distance tra q e i candidati 5. Determinazione del 2° NN e determinazione del cammino minimo attraverso Dijkstra 6. Generazione dei possibili candidati per il 2° NN 7. ………

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases37 Esempio Stradale

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases38 Esempio Stradale

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases39 Inserimento punti di interesse

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases40 Calcolo delle distanze 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases41 Generazione del Network Voronoi Diagram 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4 12,17

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases42 Affinamento dei Network Voronoi Poligons 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4 12,17

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases43 Pre-calcolo delle distanze Border-to-Generator 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4 d(P 1,b 1 )34,82 b1b1 P1P1 12,17

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases44 Precalcolo delle distanze Border-to-Generator 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 d(P 1,b 1 )34,82 ………………… 12,17 b8b8 b1b1 P1P1

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases45 Precalcolo delle distanze Query-to-Border 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4 d(n 1,b 1 )28,74 ………………… 12,17 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b8b8 b1b1 n1n1 P1P1

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases46 Precalcolo delle distanze Border-to-Border 6,08 12,17 6,08 12,17 9,06 10,2 12,17 6,08 12,17 6,08 9,06 14,14 14,32 15,03 16,12 14,04 14,18 8, ,08 11,66 6,08 11,18 9,43 13,04 7,07 12,17 13,04 7,07 6,08 11,05 8,25 11,4 ………………… d(b 2,b 1 )35,295 ………………… 12,17 b2b2 b3b3 b4b4 b5b5 b6b6 b7b7 b8b8 b1b1 P1P1

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases47 Inserimento del Punto Query

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases48 Primo Nearest-Neighbor 1-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases49 Filter-Step (Scelta dei candidati) 1-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases50 Refinement-Step (calcolo delle distanze) 1-NN 2-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases51 Refinement-Step (cammino minimo) 1-NN 2-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases52 K-esimo Nearest-Neighbor 1-NN 2-NN 3-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases53 K-esimo Nearest-Neighbor 1-NN 2-NN 3-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases54 K-esimo Nearest-Neighbor 1-NN 2-NN 3-NN 4-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases55 K-esimo Nearest-Neighbor 1-NN 2-NN 3-NN 4-NN

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases56 Update Network Modifiche alla rete comportano cambiamenti non all’intero NVD ma solo ad alcuni poligoni e questo comporta il ricalcolo solo di alcune distanze Aggiunta/rimozione di link/nodi contenuti in un solo NVP ricalcolo delle distanze rispetto ai punti di bordo Eventuale ricalcolo della forma del NVP e delle distanze con i punti di bordo dei NVP Aggiunta/rimozione di link/nodi contenuti in un più NVP Rigenerazione dei NVP interessati e di quelli adiacenti Aggiunta/rimozione di un punto d’interesse La modifica della rete interesserà solo il poligono che contiene il punto d’interesse aggiunto/rimosso ed alcuni poligoni adiacenti.

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases57 VN 3 vs INE Il tempo totale di risposta di VN 3 è fino ad un ordine di grandezza in meno rispetto a INE

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases58 Il tempo totale di risposta di VN 3 è fino ad un ordine di grandezza in meno rispetto a INE VN 3 vs INE VN3 ha un tempo di calcolo nullo indipendentemente dalla densità dei punti, INE peggiora di molto se ho una bassa densità dei punti di interesse

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases59 VN 3 vs INE Il tempo totale di risposta di VN 3 è fino ad un ordine di grandezza in meno rispetto a INE VN3 ha più utilizzo cpu a causa delle distanze precalcolate ma ha meno accessi in memoria

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases60 Overhead precalcoli Il numero di precalcoli aumenta quando la densità dei punti di interesse diminuisce in quanto i NVP devono ricoprire aree più grandi Nell’approccio Naive dove si calcolano le distanze tra tutte le coppie di nodi sono richiesti comunque 3,2 miliardi di precalcoli!!! Overhead dei precalcoli Meno densi Più densi

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases61 Conclusioni VN3 migliora le prestazioni di INE di un fattore che varia da 1,5 a 12 a seconda della densità dei punti di interesse La fase di Filter Step genera un set di candidati 4 volte più piccolo rispetto approcci tradizionali e varia di poco a seconda della densità dei punti di interesse Complessità spaziale degli accessi al disco O(k+log(n)) Implementato utilizzando semplici strutture dati (es: R-tree, tabelle) Il precalcolo richiede bassa complessità e temporale poiché interessa aree più piccole (rispetto all’intera rete)