1 / 39

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Mohammad Kolahdouzan and Cyrus Shahabi. Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases. GRUPPO 13: Relatore: Mengoli Dario Mengoli Dario Rovatti Fabrizio Tassoni Davide. Introduzione. Trovare i K Nearest-Neighbors in un Spatial Network Database

ivy-mooney
Download Presentation

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mohammad Kolahdouzan and Cyrus Shahabi Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases GRUPPO 13: Relatore: Mengoli DarioMengoli DarioRovatti FabrizioTassoni Davide Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

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

  4. Voronoi Diagram Ogni punto dentro il poligono ha come nearest point il generatore del poligono • 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 Punto di interesse Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  5. 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 Databases

  6. Network Voronoi Diagram Punto di Bordo equidistante dai generatori (punto di interesse) delle celle adiacenti Punti di interesse Nodo Network Voronoi Polygon Link Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

  8. Passo 1 – Network Voronoi Diagram e Tabelle di Lookup • Distanza tra i punti di bordo con i punti interni al poligono (per ogni NVP) • Distanza tra i punti di bordo del poligono • Generazione dei Network Voronoi Polygons • Precalcolo delle distanze, generazione dell’indice spaziale (R-tree) e delle tabelle di lookup 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) P12 b38 P11 b37 P10 b35 • Adiacenza poligoni • Punti di bordo • Distanze precalcolate b21 P9 b39 b18 b17 b36 b20 b19 b16 b22 b34 P13 P4 P3 b13 b2 b3 b14 b12 P8 b1 b23 b24 b15 n3 P2 b25 n2 b4 P5 b26 P1 n1 b8 b9 b11 b33 b5 b10 b27 b28 b29 b7 P7 b6 b32 b40 b30 P6 P14 b31 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  9. Passo 2 – Generazione dell’indice spaziale e delle tabelle di lookup • Salvataggio in tabelle di lookup dei poligoni adiacenti • Creazione e salvataggio in memoria dell’ indice spaziale (R-tree) per i poligoni P12 b38 P11 b37 P10 b35 b21 P9 b39 b18 b17 b36 b20 b19 b16 b22 b34 P13 P4 P3 b13 b3 b2 b14 b12 P8 b1 b23 b24 b15 n3 P2 b25 n2 b4 P5 b26 P1 n1 b8 b9 b11 b33 b5 b10 b27 b28 b29 b7 P7 b6 b32 b40 b30 P6 P14 b31 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  10. Ricerca 1° Nearest Neighbor • Attraverso l’indice spaziale R-tree si ricava il primo NN (poligono che contiene q) • Accessi al disco O(log n), dove n sono i generatori della rete P12 b38 P11 b37 P10 b35 b21 P9 b39 b18 b17 b36 b20 b19 b16 b22 b34 P13 P4 P3 b13 b3 b2 b14 b12 P8 b1 b23 b24 b15 n3 P2 b25 n2 q b4 P5 b26 P1 n1 b8 b9 b11 b33 b5 b10 b27 b28 b29 b7 P7 b6 b32 b40 b30 P6 P14 b31 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  11. Passo 3 – Filter Step 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) • Si trovano i poligoni candidati a contenere il secondo NN attraverso le tabelle di lookup che contengono le informazione delle adiacenze tra poligoni P12 b38 P11 b37 P10 b35 b21 P9 b39 b18 b17 b36 b20 b19 b16 b22 b34 P13 P4 P3 b13 b3 b2 b14 b12 P8 b1 b23 b24 b15 n3 P2 b25 n2 q b4 P5 b26 P1 n1 b8 b9 b11 b33 b5 b10 b27 b28 b29 b7 P7 b6 b32 b40 b30 P6 P14 b31 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  12. 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 due tipologie di distanze: • Query to border computation • Border 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) • Distanze tra i bordi dei NVP, per far questo usano le distanze precalcolate all’inizio e salvate nelle tabelle di lookup Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  13. Minimum possible network distance • È la distanza minima tra q e un punto di interesse nella rosa dei candidati • Proprietà: Se (P1; …; Pk) è l’insieme dei primi K generatori più vicini a q, allora il cammino minimo tra q e Pk può passare solo attraverso una combinazione dei confini comuni tra i poligoni contenenti (P1; …; Pk) • 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 Databases

  14. Minimum possible network distance Con VN3 tutte queste singole distanze sono già precalcolate • 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 Es: dmpn(q, P6) = min{ d(q, b6)+d(b6, P6) ; d(q,b7)+d(b7, P6) ; d(q, b8)+d(b8, b9)+d(b8, b9)} P12 b38 P11 b37 P10 b35 b21 P9 b39 b18 b17 b36 b20 b19 b16 b22 b34 P13 P4 P3 b13 Primi 2 NN di q b3 b2 b14 b12 P8 b1 b23 b24 b15 n3 P2 b25 n2 q b4 P5 b26 P1 n1 b8 b9 b11 b33 b5 b10 b27 b28 b29 b7 P7 b6 b32 b40 b30 P6 P14 b31 3° NN Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  15. 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 Databases

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

  17. Esempio Stradale Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  18. Esempio Stradale Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  19. Inserimento punti di interesse Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

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

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

  23. Pre-calcolo delle distanze Border-to-Generator 6,08 6,08 12,17 b1 11,18 9,06 9,06 13,04 12,17 9,06 12,17 9,43 14,04 6,08 10,2 7,07 7,07 10,2 7,07 10,2 8,25 12,17 11 11,66 6,08 6,08 11,05 16,12 9,06 11,4 11,05 6,08 6,08 11,05 9,06 9,06 P1 6,08 8,25 7,07 7,07 12,17 8,25 6,08 15,03 12,17 6,08 12,17 8,25 8,25 8,25 6,08 12,17 6,08 8,25 7,07 6,08 12,17 7,07 12,17 14,32 7,07 7,07 12,17 7,07 12,17 13,04 7,07 7,07 14,18 6,08 6,08 12,17 14,14 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  24. Precalcolo delle distanze Border-to-Generator 6,08 6,08 12,17 b1 11,18 9,06 9,06 13,04 12,17 9,06 b2 12,17 9,43 14,04 6,08 b3 10,2 7,07 7,07 10,2 7,07 10,2 8,25 b4 12,17 11 11,66 6,08 6,08 11,05 16,12 9,06 11,4 11,05 6,08 6,08 11,05 9,06 9,06 P1 6,08 b5 8,25 7,07 7,07 12,17 8,25 6,08 15,03 12,17 6,08 12,17 8,25 b6 8,25 8,25 6,08 12,17 6,08 8,25 7,07 6,08 12,17 7,07 12,17 14,32 7,07 7,07 12,17 b7 7,07 12,17 13,04 7,07 7,07 b8 14,18 6,08 6,08 12,17 14,14 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  25. Precalcolo delle distanze Query-to-Border 6,08 6,08 12,17 b1 11,18 9,06 9,06 13,04 12,17 9,06 b2 12,17 9,43 14,04 6,08 b3 10,2 7,07 7,07 10,2 7,07 10,2 8,25 b4 12,17 11 11,66 6,08 6,08 11,05 16,12 9,06 11,4 11,05 6,08 6,08 11,05 n1 9,06 9,06 P1 6,08 b5 8,25 7,07 7,07 12,17 8,25 6,08 15,03 12,17 6,08 12,17 8,25 b6 8,25 8,25 6,08 12,17 6,08 8,25 7,07 6,08 12,17 7,07 12,17 14,32 7,07 7,07 12,17 b7 7,07 12,17 13,04 7,07 7,07 b8 14,18 6,08 6,08 12,17 14,14 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  26. Precalcolo delle distanze Border-to-Border 6,08 6,08 12,17 b1 11,18 9,06 9,06 13,04 12,17 9,06 b2 12,17 9,43 14,04 6,08 b3 10,2 7,07 7,07 10,2 7,07 10,2 8,25 b4 12,17 11 11,66 6,08 6,08 11,05 16,12 9,06 11,4 11,05 6,08 6,08 11,05 9,06 9,06 P1 6,08 b5 8,25 7,07 7,07 12,17 8,25 6,08 15,03 12,17 6,08 12,17 8,25 b6 8,25 8,25 6,08 12,17 6,08 8,25 7,07 6,08 12,17 7,07 12,17 14,32 7,07 7,07 12,17 b7 7,07 12,17 13,04 7,07 7,07 b8 14,18 6,08 6,08 12,17 14,14 Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  27. Inserimento del Punto Query Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  28. Primo Nearest-Neighbor 1-NN Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

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

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

  32. K-esimo Nearest-Neighbor 2-NN 1-NN 3-NN Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  33. K-esimo Nearest-Neighbor 2-NN 1-NN 3-NN Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

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

  36. 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 Databases

  37. VN3 vs Incremental Network Expansion 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 VN3 ha più utilizzo cpu a causa delle distanze precalcolate ma ha meno accessi in memoria • Il tempo totale di risposta di VN3 è fino ad un ordine di grandezza in meno rispetto a INE Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  38. 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!!! Meno densi Più densi Overhead dei precalcoli Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

  39. 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à totale degli accessi al disco O(k+log(n)) • Implementato utilizzando semplici strutture dati (es: R-tree, tabelle) • Il precalcolo richiede bassa complessità spaziale e temporale poiché interessa aree più piccole (rispetto all’intera rete) Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

More Related