Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

39
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 Databases Network Databases GRUPPO 13: GRUPPO 13: Relatore: Relatore: Mengoli Dario Mengoli Dario Mengoli Dario Mengoli Dario Rovatti Fabrizio Rovatti Fabrizio Tassoni Davide Tassoni Davide Mohammad Kolahdouzan and Cyrus Shahabi Mohammad Kolahdouzan and Cyrus Shahabi

description

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 - PowerPoint PPT Presentation

Transcript of Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Page 1: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 2: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 3: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 4: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 5: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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)

Page 6: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 7: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 8: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 9: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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)

… ……

Page 10: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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)

… ……

Page 11: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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)

Page 12: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 13: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 14: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 15: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 16: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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. ………

Page 17: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Esempio Stradale

Page 18: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Esempio Stradale

Page 19: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 19

Inserimento punti di interesse

Page 20: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 21: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 22: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 23: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 24: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 25: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 26: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 27: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 27

Inserimento del Punto Query

Page 28: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 28

Primo Nearest-Neighbor

1-NN

Page 29: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 29

Filter-Step(Scelta dei candidati)

1-NN

Page 30: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 30

Refinement-Step(calcolo delle distanze)

1-NN

2-NN

Page 31: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 31

Refinement-Step(cammino minimo)

1-NN

2-NN

Page 32: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 32

K-esimo Nearest-Neighbor

1-NN

2-NN

3-NN

Page 33: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 33

K-esimo Nearest-Neighbor

1-NN

2-NN

3-NN

Page 34: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 34

K-esimo Nearest-Neighbor

1-NN

2-NN

3-NN

4-NN

Page 35: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases 35

K-esimo Nearest-Neighbor

1-NN

2-NN

3-NN

4-NN

Page 36: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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.

Page 37: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 38: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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

Page 39: Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases

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)