Mohammad Kolahdouzan and Cyrus Shahabi
Voronoi-Based K
Nearest Neighbor
Search for Spatial
Network Databases
GRUPPO 13:
Mengoli Dario
Rovatti Fabrizio
Tassoni Davide
Relatore: Mengoli Dario
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
1
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.
2.
Performance basse se le entità non sono densamente
distribuite nella rete
Non applicabile per distanze non euclidee (es. distanze di
rete)
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
2
Devo trovare i 5
ristoranti più vicini
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
3
Regole generali

1.
2.
3.
4.
5.
6.
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 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
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
5
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 Databases
6
Voronoi Diagram


punto dentro
Partiziona lo spazio in poligoniOgni
disgiunti
il
poligono
ha
come nearest
Ogni punto appartiene a una sola
cella point
ad
il generatore del
eccezione dei punti di bordo che
sono
poligono
condivisi tra le celle adiacenti
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
7
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
8
Network Voronoi Diagram
Nodo
Link
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
9
Network Voronoi Diagram
Punti di
interesse
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
10
Network Voronoi Diagram
Network
Voronoi
Polygon
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
11
Network Voronoi
Diagram
Punto di Bordo
equidistante dai
generatori (punto di
interesse) delle celle
adiacenti
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
12
Approccio utilizzato da VN3
1.
2.
3.
4.
5.
6.
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:
1.
2.
Filter step
Refinement step
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
13
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
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n3
P1
b5
n1
b6
b30
b31
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b1
n2
b4
b37
b17
b19
b2
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
14
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
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n3
P1
b5
n1
b6
b30
b31
P10
b16
P3
b1
n2
b4
b37
b17
b19
b2
b3
P5
b27
P11
b20
b22
P13
b38
b14
b15
b8
b7
P6
b35
P9
1. Adiacenza
poligoni
b36
2. Distanze
precalcolate
b34
b13
3. Punti di
b12 bordo
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
15
1. Distanza tra i punti di bordo con i punti
Passo 1 – Network
Voronoi
interni al poligono (per ogni NVP)
2. Distanza tra i punti di bordo del poligono
Diagram e Tabelle di Lookup


Generazione dei Network Voronoi Polygons
Precalcolo delle distanze, generazione dell’indice
spaziale (R-tree) e delle tabelle di lookup
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n3
P1
b5
n1
b6
b30
b31
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b1
n2
b4
b37
b17
b19
b2
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
16
Passo 1 – Network Voronoi
Diagram e Tabelle di Lookup
b1 P1  dGenerazione
n (b1, P1)
b1
b1
dei Network Voronoi Polygons
Questi
calcoli verranno
eseguiti
n1  dPrecalcolo
n (b1, n1)
delle distanze,
generazione
dell’indice
per ogni singolo poligono.
n2 dspaziale
(b
,
n
)
(R-tree)
e
delle
tabelle di lookup
n
1
2
b1 n 3
b2 …
…
dn (b1, n3)
b
……
39
P12
b21
P4
b23
b1 b2
dnb25(b1, b2 )
…
……
…
b27
b40
P14
b18
b28
35
36
16
n3
n2
b4
P1
b5
34
13
14
1
b24
b29
37
17
b19
b2
b3
P5
b26
P11
b20
b22
P13 ……
…
b38
In questo modo si riduce
b
b
la complessità
spaziale
e
P10
P9
b
b
computazionale
rispetto
al
b
b
P3
caso
in cuib vengano
b
b
b
P8
calcolate
le
distanze
tra
b
P2
q
ogni punto
con btutti gli
b
b
b
b
altri
del grafo
b
P
12
15
n1
8
9
11
33
10
b6
b30
b31
7
b
7
32
P6(punti di bordo<< punti totali)
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
17
Passo 2 – Generazione dell’indice
spaziale e delle tabelle di lookup
1.
Salvataggio in tabelle di lookup dei poligoni adiacenti
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n1
b6
b30
b31
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
18
Passo 2 – Generazione dell’indice
spaziale e delle tabelle di lookup
P1
P2, P1.
P5, P6
3, P4, Salvataggio
P2
P1, P3, P6, P7, P8 , P10
P3
P1, P2, P4, P10, P11
P4
…………
P12
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n1
b6
b30
b31
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b21
b39
in tabelle di lookup dei poligoni adiacenti
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
19
Passo 2 – Generazione dell’indice
spaziale e delle tabelle di lookup
1.
2.
Salvataggio in tabelle di lookup dei poligoni adiacenti
Creazione e salvataggio in memoria dell’ indice spaziale
(R-tree) per i poligoni
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n1
b6
b30
b31
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
20
Passo 2 – Generazione dell’indice
spaziale e delle tabelle di lookup
1.
2.
Salvataggio in tabelle di lookup dei poligoni adiacenti
Creazione e salvataggio in memoria dell’ indice spaziale
(R-tree) per i poligoni
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n1
b6
b30
b31
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
21
Passo 2 – Generazione dell’indice
spaziale e delle tabelle di lookup
1.
2.
Salvataggio in tabelle di lookup dei poligoni adiacenti
Creazione e salvataggio in memoria dell’ indice spaziale
(R-tree) per i poligoni
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n1
b6
b30
b31
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
22
Passo 2 – Generazione dell’indice
spaziale e delle tabelle di lookup
P3
in tabelle di lookup dei poligoni adiacenti
2. 2) Creazione e salvataggio in memoria dell’ indice spaziale
NVP(P
NVP(P3) (R-tree) per i poligoni
…
……
P1
P2
NVP(P
1. 1) Salvataggio
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
n1
b6
b30
b31
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
23
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
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
b31
q
n1
b6
b30
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
24
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
P1
NVP(P1)
P2
NVP(P2)
P3
…
P12
b21
b39
NVP(P3)
……
P14
b18
b24
b28
b29
b31
q
n1
b6
b30
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
b40
P4
b23
b25
b26
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
25
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
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
b31
q
n1
b6
b30
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
26
Proprietà: il numero di celle adiacenti
per ogni poligono sono in media 6
Passo 3 – Filter
Step
Proprietà
: il vicino successivo si trova

necessariamente nei poligoni adiacenti ai
poligoni contenenti i precedenti NN
Si trovano i poligoni candidati a contenere il secondo
NN attraverso le tabelle di lookup che contengono le
spazio di ricerca
informazione delle adiacenzeVincola
tra poligoni
Accessi al disco totali: O(5k+1)O(k)
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
b31
q
n1
b6
b30
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
27
Proprietà: il numero di celle adiacenti
per ogni poligono sono in media 6
Passo 3 – Filter
Step
Proprietà
: il vicino successivo si trova

necessariamente nei poligoni adiacenti ai
poligoni contenenti i precedenti NN
Si trovano i poligoni candidati a contenere il secondo
NN attraverso le tabelle di lookup che contengono le
spazio di ricerca
informazione delle adiacenzeVincola
tra poligoni
Accessi al disco totali: O(5k+1)O(k)
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b29
b31
q
n1
b6
b30
b1
n3
P1
b5
P10
P6
P9
b34
b13
b14
b15
b8
b7
b35
b36
b16
P3
b2
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b12
P8
P2
b9
b11
b10
b32
b33
P7
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
28
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.
2.
Query to border computation
Border to border computation
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
29
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 Databases
30
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 Databases
31
Minimum possible network
distance



È la distanza minima tra q e un punto di interesse.
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
32
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
P12
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b2
P1
b5
b29
b31
b1
q
b16
b15
P6
P9
b34
b13
b12
P8
P2
b8
b7
b35
b36
Primi 2 NN di bq14
n1
b6
b30
P10
P3
n3
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b9
b11
b10
b32
b33
P7
3° NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
33
Minimum possible network
Con VN3 tutte queste
distance
singole distanze sono
già precalcolate
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
b21
b39
P4
b23
b25
b26
b40
P14
b18
b24
b28
b2
P1
b5
b29
b31
b1
q
b16
b15
P6
P9
b34
b13
b12
P8
P2
b8
b7
b35
b36
Primi 2 NN di bq14
n1
b6
b30
P10
P3
n3
n2
b4
b37
b17
b19
b3
P5
b27
P11
b20
b22
P13
b38
b9
b11
b10
b32
b33
P7
3° NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
34
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
35
Riassumendo….
1.
2.
3.
4.
5.
6.
7.
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 2° NN
………
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
36
Esempio Stradale
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
37
Esempio Stradale
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
38
Inserimento punti di interesse
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
39
Calcolo delle distanze
6,08
6,08
9,06
12,17
11,18
9,06
12,17
10,2
9,06
12,17
10,2
12,17
6,08
6,08
9,06
6,08
6,08
14,32
12,17
6,08
7,07
11,66
16,12
6,08
12,17
12,17
11
7,07
8,25
8,25
12,17
8,25
13,04
14,18
7,07
8,25
11,05
11,05
6,08 6,08
15,03
12,17
12,17
6,08
9,06
6,08
12,17
9,43
14,04
10,2
9,06
13,04
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
40
Generazione del Network
Voronoi Diagram
6,08
6,08
9,06
12,17
11,18
9,06
12,17
10,2
9,06
12,17
10,2
12,17
6,08
6,08
9,06
6,08
12,17
6,08
12,17
12,17
12,17
11
6,08
12,17
6,08
7,07
8,25
8,25
12,17
8,25
13,04
14,18
7,07
8,25
11,05
11,05
6,08 6,08
15,03
14,32
7,07
11,66
16,12
6,08
12,17
6,08
9,06
12,17
12,17
9,43
14,04
10,2
9,06
13,04
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
41
Affinamento dei Network
Voronoi Poligons
6,08
6,08
9,06
12,17
11,18
9,06
12,17
10,2
9,06
12,17
10,2
12,17
6,08
6,08
9,06
6,08
12,17
6,08
12,17
12,17
12,17
11
6,08
12,17
6,08
7,07
8,25
8,25
12,17
8,25
13,04
14,18
7,07
8,25
11,05
11,05
6,08 6,08
15,03
14,32
7,07
11,66
16,12
6,08
12,17
6,08
9,06
12,17
12,17
9,43
14,04
10,2
9,06
13,04
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
42
Pre-calcolo delle distanze
Border-to-Generator
d(P1,b1)
34,82
6,08
6,08
9,06
12,17
12,17
10,2
9,06
12,17
10,2
12,17
6,08
6,08
9,06
12,17
6,08
12,17
12,17
12,17
6,08
6,08
11
12,17
6,08
7,07
8,25
P1
8,25
12,17
8,25
13,04
14,18
7,07
8,25
11,05
11,05
6,08 6,08
15,03
14,32
7,07
11,66
16,12
6,08
12,17
9,43
9,06
12,17
12,17
13,04
14,04
10,2
9,06
6,08
b1
11,18
9,06
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
43
Precalcolo delle distanze
Border-to-Generator
d(P1,b1)
34,82
…………
………
6,08
6,08
9,06
12,17
12,17
10,2
10,2
12,17
9,06
12,17
6,08
12,17
6,08
12,17
b5
6,08
12,17
12,17
12,17
6,08
12,17
6,08
14,32
b7
8,25
P1
8,25
12,17
8,25
13,04
b8
7,07
14,18
7,07
8,25
11,05
11,05
6,08 6,08
15,03
b6
7,07
11,66
16,12
9,06
12,17
12,17
6,08
11
6,08
9,06
9,43
14,04
10,2
b4
13,04
b2
b3
9,06
6,08
b1
11,18
9,06
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
44
Precalcolo delle distanze
Query-to-Border
d(n1,b1)
28,74
…………
………
6,08
6,08
9,06
12,17
12,17
10,2
10,2
12,17
9,06
12,17
6,08
12,17
6,08
6,08
12,17
12,17
12,17
12,17
12,17
6,08
12,17
6,08
8,25
14,32
b7
8,25
13,04
b8
P1
8,25
12,17
15,03
b6
7,07
14,18
7,07
8,25
11,05
11,05
6,08 6,08
n1
b5
7,07
11,66
16,12
9,06
12,17
6,08
11
6,08
9,06
9,43
14,04
10,2
b4
13,04
b2
b3
9,06
6,08
b1
11,18
9,06
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
45
Precalcolo delle distanze
Border-to-Border
…………
………
d(b2,b1)
35,295
…………
………
6,08
6,08
9,06
12,17
12,17
10,2
10,2
12,17
9,06
12,17
6,08
12,17
6,08
12,17
b5
6,08
12,17
12,17
12,17
6,08
12,17
6,08
14,32
b7
8,25
P1
8,25
12,17
8,25
13,04
b8
7,07
14,18
7,07
8,25
11,05
11,05
6,08 6,08
15,03
b6
7,07
11,66
16,12
9,06
12,17
12,17
6,08
11
6,08
9,06
9,43
14,04
10,2
b4
13,04
b2
b3
9,06
6,08
b1
11,18
9,06
7,07
8,25
7,07
8,25
7,07
7,07
7,07
7,07
7,07
7,07
7,07
11,4
11,05
6,08
8,25
6,08 6,08
14,14
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
46
Inserimento del Punto Query
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
47
Primo Nearest-Neighbor
1-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
48
Filter-Step
(Scelta dei candidati)
1-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
49
Refinement-Step
(calcolo delle distanze)
2-NN
1-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
50
Refinement-Step
(cammino minimo)
2-NN
1-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
51
K-esimo Nearest-Neighbor
2-NN
1-NN
3-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
52
K-esimo Nearest-Neighbor
2-NN
1-NN
3-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
53
K-esimo Nearest-Neighbor
2-NN
1-NN
4-NN
3-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
54
K-esimo Nearest-Neighbor
2-NN
1-NN
4-NN
3-NN
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
55
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



Aggiunta/rimozione di link/nodi contenuti in un più 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
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
56
VN3 vs INE

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
57
VN33havs
un tempo
di calcolo nullo
VN
INE
indipendentemente dalla densità

dei punti, INE peggiora di molto
Il tempo
risposta
VN3 è fino ad un ordine di
se
ho unatotale
bassadidensità
deidipunti
grandezza
di
interessein meno rispetto a INE
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
58
VN3 vs INE

VN3 ha più utilizzo cpu
a causa delle distanze
precalcolate ma ha
meno
accessi
Il tempo totale di risposta di VN3 è fino ad un
ordine
di in
memoria
grandezza in meno rispetto a INE
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
59
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
60
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)
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
61
Scarica

senza animazioni