voronoi-based k nearest neighbor search for spatial network databases1 gruppo 13: relatore: mengoli...
TRANSCRIPT
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 1
Voronoi-Based K Voronoi-Based K Nearest Neighbor Nearest Neighbor Search for Spatial Search for Spatial
Network DatabasesNetwork DatabasesGRUPPO 13:GRUPPO 13: Relatore: Mengoli Relatore: Mengoli DarioDarioMengoli DarioMengoli DarioRovatti FabrizioRovatti FabrizioTassoni DavideTassoni Davide
Mohammad Kolahdouzan and Cyrus ShahabiMohammad Kolahdouzan and Cyrus Shahabi
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:
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)
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:
1. Incorporare le connettività di rete (es. strade)2. Dare risposte efficienti per oggetti in movimento3. Scalabile4. Essere efficiente nell’inserimento di collegamenti
o nodi nella rete5. Indipendente dalla densità dei punti di interesse6. Possibilità di considerare query con vincoli su
direzione e range
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 4
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
Cella di Voronoi
Ogni punto dentro il poligono ha come nearest point il generatore del poligono
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
Nodo
Link
Punti di interess
e
Network Voronoi Polygon
Punto di Bordo equidistante dai generatori (punto di interesse) delle celle adiacenti
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 7
Approccio utilizzato da VN3
1. Creazione del Network Voronoi Diagram2. Precalcolo delle distanze e memorizzazione3. Generazione di un indice spaziale sui poligoni
di Voronoi (R-tree)4. Salvataggio per ogni cella dei poligoni
adiacenti in tabelle di lookup5. Calcolo del primo NN utilizzando l’indice
spaziale6. Iterazione per K-1 volte per trovare gli altri NN:
1. Filter step2. Refinement step
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 8
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
P2
P3P4
P5
P6
P7
P8
P9
P1b9
P14
P13
P12 P11 P10
b8
b7b6
b5
b4
b3b2
b1b15
b14
b13
b12
b11
b10
b26
b20 b19
b18 b17
b16
b25b24
b23
b22
b21
b30b29
b28b27
b33
b31
b32
b37
b36
b35
b34
b40
b39
b38
n1
n2n3
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
b1 P1 dn (b1, P1)
b1 n1 dn (b1, n1)
b1 n2 dn (b1, n2)
b1 n3 dn (b1, n3)
b2 … ……
… … ……
b1 b2 dn (b1, b2 )
… … ……
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)
1. Adiacenza poligoni2. Punti di bordo3. Distanze
precalcolate
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 9
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
P2
P3P4
P5
P6
P7
P8
P9
P1b9
P14
P13
P12 P11 P10
b8
b7b6
b5
b4
b3 b2b1
b15
b14
b13
b12
b11
b10
b26
b20 b19
b18 b17
b16
b25b24
b23
b22
b21
b30b29
b28b27
b33
b32
b37
b36
b35
b34
b40
b39
b38
n1
n2n3
b31
P1 P2, P3, P4, P5, P6
P2 P1, P3, P6, P7, P8 , P10
P3 P1, P2, P4, P10, P11
P4 …………
P1 NVP(P1)
P2 NVP(P2)
P3 NVP(P3)
… ……
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
P8
P2
P3P4
P5
P6
P7
P9
P1b9
P14
P13
P12 P11 P10
b8
b7b6
b5
b4
b3 b2b1
b15
b14
b13
b12
b11
b10
b26
b20 b19
b18 b17
b16
b25b24
b23
b22
b21
b30b29
b28b27
b33
b31
b32
b37
b36
b35
b34
b40
b39
b38
n1
n2n3 q
P1 NVP(P1)
P2 NVP(P2)
P3 NVP(P3)
… ……
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 11
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
P2
P3P4
P5
P6
P7
P8
P9
P1b9
P14
P13
P12 P11 P10
b8
b7b6
b5
b4
b3 b2b1
b15
b14
b13
b12
b11
b10
b26
b20 b19
b18 b17
b16
b25b24
b23
b22
b21
b30b29
b28b27
b33
b31
b32
b37
b36
b35
b34
b40
b39
b38
n1
n2n3 q
Proprietà: il numero di celle adiacenti per ogni poligono sono in media 6Proprietà: il vicino successivo si trova necessariamente nei poligoni adiacenti ai poligoni contenenti i precedenti NN
Vincola spazio di ricercaAccessi al disco totali:
O(5k+1)O(k)
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 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
P2
P3P4
P5
P6
P7
P8
P9
P1b9
P14
P13
P12 P11 P10
b8
b7b6
b5
b4
b3 b2b1
b15
b14
b13
b12
b11
b10
b26
b20 b19
b18 b17
b16
b25b24
b23
b22
b21
b30b29
b28b27
b33
b31
b32
b37
b36
b35
b34
b40
b39
b38
n1
n2n3 q
Primi 2 NN di q
3° NN
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)}
Con VN3 tutte queste singole distanze sono già precalcolate
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….
1. Precalcolo distanze, indice e tabelle2. Ricerca del primo NN attraverso l’indice3. Generazione dei possibili candidati per il 2° NN4. Calcolo delle minimun distance tra q e i
candidati5. Determinazione del 2° NN e determinazione
del cammino minimo attraverso Dijkstra6. Generazione dei possibili candidati per il 3° NN7. ………
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
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 21
Generazione del Network Voronoi Diagram
6,08
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
12,1712,17
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 22
Affinamento dei Network Voronoi Poligons
6,08
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
12,1712,17
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 23
Pre-calcolo delle distanze Border-to-Generator
6,08
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
d(P1,b1
)34,82
b1
P112,1712,17
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 24
Precalcolo delle distanze Border-to-Generator
6,08
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
b2
b3
b4
b5
b6
b7
d(P1,b1
)34,82
…………
………
12,1712,17
b8
b1
P1
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 25
Precalcolo delle distanze Query-to-Border
6,08
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
d(n1,b1
)28,74
…………
………
12,1712,17
b2
b3
b4
b5
b6
b7
b8
b1
n1 P1
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 26
Precalcolo delle distanze Border-to-Border
6,08
12,17
6,086,08
6,08
12,17
12,17
12,17
12,17
12,17
9,06
9,06 9,06
10,210,2 10,2
12,176,08
6,08
6,08
12,1712,17
12,176,086,08
9,06 9,06
9,06
14,14
14,32
15,03
16,12
14,04
14,18
8,25
8,25
11
6,08
11,66
6,08 6,08
11,18
9,43
13,04
7,07
12,17
13,04 7,077,07
7,077,07
7,07 7,07
7,077,07
7,07 7,077,07
6,08 6,08
6,08
11,05
11,0511,05
8,258,25 8,25 8,25
8,25
11,4
…………
………
d(b2,b1
)35,295
…………
………
12,1712,17
b2
b3
b4
b5
b6
b7
b8
b1
P1
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)
1-NN
2-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 31
Refinement-Step(cammino minimo)
1-NN
2-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 32
K-esimo Nearest-Neighbor
1-NN
2-NN
3-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 33
K-esimo Nearest-Neighbor
1-NN
2-NN
3-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 34
K-esimo Nearest-Neighbor
1-NN
2-NN
3-NN
4-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 35
K-esimo Nearest-Neighbor
1-NN
2-NN
3-NN
4-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 Il tempo totale di risposta di VN3 è fino ad un ordine di
grandezza in meno rispetto a 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
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 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!!!
Overhead dei precalcoli
Meno densi
Più densi
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)