1 Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Peter N. Yanilos Presentazione di: Medri Matteo Tronconi Federica.

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

Teoria e Tecniche del Riconoscimento
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
1 Ricerca del bosone di Higgs nel canale di decadimento WW (*) 2l2 nel canale di decadimento WW (*) 2l2 Dati Spring07 CMSSW_1_3_x 100 pb -1 (47 pagine)
Ing. Rigutini Leonardo – Automatic Text Segmentation: Text Relationship Map Automatic Text Segmentation: Text Relationship Map (Salton 1996) Ing. Leonardo.
Un DataBase Management System (DBMS) relazionale client/server.
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
HDM Information Design notation v.4. HDM Information Design.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
TIPOLOGIA DELLE VARIABILI SPERIMENTALI: Variabili nominali Variabili quantali Variabili semi-quantitative Variabili quantitative.
// PROTOTIPI void costruisciLista(Pnodo &, string &); void stampaLista(Pnodo ); void creaNodo (int, Pnodo&); Pnodo inserisciNodoTesta (int,Pnodo &); Pnodo.
Algoritmi e Strutture Dati III. Algoritmi di Ordinamento
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
6.6Ordinamento di Vettori Ordinamento di dati –Applicazione computazionale importante –Virtualmente ogni organizzazione deve ordinare dei dati Enormi quantità
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Sorting: MERGESORT Vogliamo ordinare lista (a 1,…,a n ). 1.Dividi lista in 2 sottoliste aventi (quasi) la stessa dimensione: (a 1,a 3,a 5,…) e (a 2,a 4,…),
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
Constraints.
1 Programmazione grafica 1 Daniele Marini. 2 Linguaggio di riferimento OpenGL: libreria di procedure che realizza un API (application programmers interface)
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Ricerca di una chiave: Search(x, k) if x == nil or k == x.key return x
1 I 4 quadrati B A D C Osservate bene questo diagramma Seguiranno 4 domande riguardo a questi quadrati. Pronti ?
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Analisi e valutazione.
Presentazione Finale Team 2 1. Decomposizione in sottosistemi 2.
22 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ore 10:00.
LarioFiere - Erba 29 febbraio Premessa – perché EXPANDERE Anno 2005: alcuni imprenditori associati a CDO, chiedono maggiore spazio alla relazione.
Microsoft Access Maschere.
I triangoli.
Riprendendo Il tag il tag Div rappresenta un contenitore. Tutto quello che è incluso fra il tag iniziale e quello di chiusura reagisce secondo gli stili.
Pagina 1 Copyright © Scoa – The School of Coaching – all rights reserved SCOA in collaborazione con AIDP - CRORA BOCCONI - FIC presenta I RISULTATI DELLA.
I mille volti della formazione dalle-learning allemployergame Novembre 2012 I mille volti della formazione: dalle-learning allemployergame 4° Release Novembre.
Direzione Provinciale Trento
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Ischia, giugno 2006Riunione Annuale GE 2006 Algoritmi ed architetture per sistemi ad alta dinamica S. Marsi, G. Ramponi and S. Carrato A.Ukovich,
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Perché insegnare statistica a scuola Utilità della Statistica 1.è a fondamento della crescita democratica di un nazione moderna 2.è essenziale per monitorare.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
LAVORO ED ENERGIA L’energia è la capacità di un sistema di compiere lavoro In natura esistono diverse forme di energia e ognuna di esse si trasforma continuamente.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
L2 Elaborazione di immagini in C/C++
(1) Sistemi Operativi Prof. P. Cattaneo ufficio: L Ricevimento: Martedì14.00 –
Efficient Region- Based Image Retrieval di Roger Weber e Michael Mlivoncic Swiss Federal Institute of Technology (ETH) Presentazione di Laura Galli, Mauro.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
1 Jeopardy Verbi Regolari PreposizioniEssere Espressioni Con Avere Come si dice? Q $100 Q $200 Q $300 Q $400 Q $500 Q $100 Q $200 Q $300 Q $400 Q $500.
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
Pippo.
Scrivere un algoritmo non deterministico di complessita` polinomiale che risolva il problema del commesso viaggiatore. Vengono proposte due soluzioni,
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
1 An Approximation- Based Data Structure for Similarity Search R. Weber, S. Blott Hermes, 1998 Sistemi Informativi per le Decisioni Diego Cera – Michele.
Metaclassificazione Giovedì, 18 novembre 2004 Francesco Folino ( Combinare Classificatori Lecture 8.
Interrogazioni private di database mediante Filtri di Bloom:
Dynamic SQL.
Soluzione 6: Algoritmo Quicksort
Transcript della presentazione:

1 Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Peter N. Yanilos Presentazione di: Medri Matteo Tronconi Federica Vassura Annalisa Sistemi informativi per le decisioni LS

2 Sommario Obiettivo: ricerca del Nearest Neighbor in un generico spazio metrico. Come ridurre il tempo di ricerca? Ordinando opportunamente i dati. Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Descrizione teorica dei VP-Tree Un algoritmo di ricerca del NN Risultati sperimentali: confronto con i KD-Tree nello spazio Euclideo

3 VP-tree VP-tree (Vantage Point) Sviluppato da Peter N. Yanilos nel 1986/87 Albero binario Partizione ricorsiva dello spazio ad ogni nodo tramite una funzione distanza (“tagli sferici” con centro in VP) Ordinano gli oggetti in modo da rendere più efficiente la ricerca del NN Tempi di costruzione:O(n log(n)) Tempo di ricerca:O(log(n)) Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

4 Definizioni preliminari Spazio metrico(S,d) DatabaseS D  S Queryq  S Ricerca del Nearest NeighborNN(q, S D ) Distanza soglia  Per semplicità il range della funzione distanza verrà ristretto all’intervallo [0,1]. Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces NN|  (q,S D ) Ricerca “ristretta” del NNNN|  (q,S D )

5 Definizioni (2)  p : S  [0,1] /  p (a) = d(a,p) d p : SxS  [0,1] / d p (a,b) = |  p (a)-  p (b)| Siano (S,d) uno spazio metrico limitato in [0,1] e p un elemento di S;per ogni a, b di S: d p è una pseudo-metrica perché non soddisfa l’assioma di positività. d(a,b)  |d(a,p)-d(b,p)| = d p (a,b) d domina d P ! y x q Trovato y / d(q,y)   d p (q,x)    d(q,x)   Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces p d p (q,x)

6 Split dei nodi Dato p  S D, definiamo  p ( S D ) l’immagine di S D in [0,1]. La mediana µ di  p ( S D ) divide l’intervallo in [0, µ [punti interni alla sfera di centro p (S pL ) [ µ,1 ]punti esterni e sulla superficie (S pR ) Generalmente pochi elementi sono sulla superficie, perciò avremo N R  N L. SDSD S pL S pR p Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

7 Condizioni di pruning Data una query q: Se  p (q)  µ +  allora si può non considerare S pL nella ricerca del NN. Se  p (q)  µ -  allora si può non considerare S pR. Se µ -  <  p (q) < µ +  non è possibile alcuna esclusione. SDSD S pL S pR p Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

8 Formulazione probabilistica Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Sia x  [0,1]. La probabilità della superficie della sfera S(p,x) è P(  -1 (x)). Per brevità indicheremo P(x). Uno spazio metrico (S,d,P) ha Zero Probability Spheres (ZPS) property se: P(S S (x,r)) = 0  x  S,  r  0 dove: S S (x,r) =  y  S / d(y,x) = r  Assumiamo sia valida (semplificazione non banale!) Dato  >0,  N / [0,1] è divisibile in N parti ognuna di probabilità P< .

9 Due teoremi M  log 2 (n) + 1  1.Sia (S,d,P) uno spazio metrico in cui vale la ZPS. Ogni database S D  S di dimensione n può essere organizzato in un albero binario. Dati M>0 e q, allora  0 / NN|  (q,S) richiede al più M  log 2 (n) + 1  valutazioni. M  log 2 (n) + 1  2.Sia (S,d,P) uno spazio metrico in cui vale la ZPS. Dati la dimensione n e M>1, allora  0 / NN|  (q,S) richiede al più M  log 2 (n) + 1  valutazioni. Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

10 Scelta del Vantage Point Si vuole  più grande possibile.  dipende da  p, quindi da p  va scelto un VP “buono” 3 scelte naturali per il VP (p c, p m, p e ) La lunghezza b del confine tra i due sottospazi è proporzionale alla probabilità di non-pruning Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces I VP migliori sono negli “angoli” pcpc pmpm pepe 1 10

11 Algoritmi di costruzione: VP-Tree Select_vp sceglie il VP migliore tra un insieme di candidati P Ogni candidato è confrontato con un campione di punti D Si sceglie il VP con Deviazione Standard (della distanza) maggiore Tempi di ricerca del NN inferiori (rispetto alla selezione random) Function Make_vp_tree(S) if S=0 then return 0 new(node); node .p := Select_vp(S); node .mu := Median s  S d(p,s); L :=  s  S-  p  | d(p,s)  mu  ; R :=  s  S-  p  | d(p,s)  mu  ; node .left := Make_vp_tree(L); node .right := Make_vp_tree(R); return node; Function Select_vp(S) P := Random sample of S; best_spread := 0; for p  P D := Random sample of S; mu := Median d  D d(p,d); spread := 2nd-Moment d  D (d(p,d) – mu); if spread > best_spread best_spread := spread; best_p := p; return best_p; VP ID mu left right Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

12 VP s -Tree Ad ogni elemento sono associati un identificatore id e una lista hist hist contiene le distanze dell’elemento da ogni VP che lo precede Quando splitta un nodo, divide la lista list in L e R e aggiorna la hist di ogni elemento Ogni nodo contiene lower e upper bounds del suo sottospazio, riferiti a tutti i VP precedenti Function Make_vps_tree(S) list = 0; for s  S new(item); item .id :=  s; item .hist := 0; add item to list; return Recurse_vps_tree(list); Function Recurse_vps_tree(list) if list := 0 then return 0 new(node); node .p := Select_vp(list); delete node .p from list; for item  list append d(p. item .id) to item .hist; mu := Median item  list tail(item .hist); L := 0; R := 0; for item  list if tail(item .hist) < mu then add item to L, delete from list; else add item to R, delete from list; node .left := Recurse_vps_tree(L); node .right := Recurse_vps_tree®; node .bnds := Merge(node .left .bnds, node .right .bnds, node .p .hist); return node; Function Merge(range_list1,range_list2,value_list) Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

13 VP s -Tree Ad ogni elemento sono associati un identificatore id e una lista hist hist contiene le distanze dell’elemento da ogni VP che lo precede Quando splitta un nodo, divide la lista list in L e R e aggiorna la hist di ogni elemento Ogni nodo contiene lower e upper bounds del suo sottospazio, riferiti a tutti i VP precedenti Function Make_vps_tree(S) list = 0; for s  S new(item); item .id :=  s; item .hist := 0; add item to list; return Recurse_vps_tree(list); Function Recurse_vps_tree(list) if list := 0 then return 0 new(node); node .p := Select_vp(list); delete node .p from list; for item  list append d(p. item .id) to item .hist; mu := Median item  list tail(item .hist); L := 0; R := 0; for item  list if tail(item .hist) < mu then add item to L, delete from list; else add item to R, delete from list; node .left := Recurse_vps_tree(L); node .right := Recurse_vps_tree®; node .bnds := Merge(node .left .bnds, node .right .bnds, node .p .hist); return node; Function Merge(range_list1,range_list2,value_list) right left Lower/upper VP ID Lower/upper Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

14 VP sb -Tree Crea buckets di foglie per risparmiare spazio Ogni bucket contiene n b records Ogni record si riferisce a un elemento e per questo specifica identificatore e le distanze dai VP precedenti VP ID NbNb d(x,c)d(x,b)d(x,a)VP ID a c b Record dell’elemento x Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

15 Algoritmo di ricerca Ricerca il NN in VP-Tree in cui ogni nodo contiene bounds dei sottospazi figli  tiene traccia della distanza del NN già incontrato Il confronto con il valore middle determina l’ordine di esplorazione I L è l’intervallo compreso tra n .left_bnd[low]-  e n .left_bnd[high]+  Analogamente è definito I R Ha complessità O(log(n)) Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Procedure Search(n) if n = 0 then return; x := d(q,n .id); if x < tau then tau := x; best := n .id; middle := (n .left_bnd[high] + n .right_bnd[low]) / 2; if x < middle then if x  I L then Search(n .left); if x  I R then Search(n .right); else if x  I R then Search(n .right); if x  I L then Search(n .left);

16 Risultati sperimentali Sono state confrontate le performances di VP-Tree e KD-Tree, utilizzando diverse metriche (L1, L2, L  ) Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Introdotti da Friedman e Bentley nel 1977 Dividono ricorsivamente il database con tagli monodimensionali (su una sola coordinata) Per lo split si sceglie l’attributo sul quale la distribuzione è più “larga” Funzionano bene in spazi Euclidei di moderate dimensioni KD-Tree

17 Risultati sperimentali Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces In 8 dimensioni, KD_Tree ha performance intermedie a quelle dei due tipi di VP-Tree In 12 dimensioni, per dimensioni del database sopra i elementi, KD-Tree si dimostra il migliore (nonostante la sua performance non sia comunque buona: viene visitato il 25% dei nodi) In L1 al crescere delle dimensioni, VP s -Tree e VP-Tree scalano meglio di KD-Tree Mentre in L2 le prestazioni sono confrontabili Nonostante i VP-Trees ignorino la struttura a coordinate dello spazio sono confrontabili nei tempi di ricerca con i KD-Tree.

18 Risultati sperimentali Attraverso matrici di rotazione lineare mappiamo database definiti in R m in R n, dove n>m. Dai risultati sperimentali in tabella si evince che i VP-Tree rappresentano l’approccio migliore per la ricerca del NN quando non si conosce la struttura interna del database. Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces KD R2R2 R 2  R 10 R VP VPS

19 Ricerca del NN di immagini Query presenti nel database  visita d nodi Query “vicine” a elementi del DB  visita  5% dei nodi Query “lontane” da elementi del DB  visita  15% dei nodi Similar (simile ad almeno una di ogni VP-Tree) General (immagini diverse da quelle della libreria ) Libreria di 16 immagini, ognuna 604x486 pixels. Uso della metrica Euclidea. 4 VP-Tree di 4 immagini ognuno; 2 fonti di query: Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Queries4x48x816x1632x3250x50 Similar1.0%3.4%4.5% 5.2% General1.4%5.7%10.7%15.7%19.3%

20 Ricerca del NN di immagini (2) I KD-Tree danno performances pessime L’uso di VP sb -Tree permette miglioramenti del 15-30% (rispetto ai VP-Tree) Riducendo  si riduce significativamente il tempo della VP-Tree Search…………ma ne risente l’efficacia! Per molte queries non trovo alcun Nearest Neighbor TrovareProvare Trovare il NN e Provare che è il NN sono cose diverse Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces La seconda fase è spesso la più onerosa (in termini di complessità computazionale) !

21 Conclusioni Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces Spazi vettoriali e metrici Complessità di Ricerca O(log(n)) Punti di forza Usa solo una funzione distanza VP e  “buoni”  Alta probabilità di pruning Ma le prestazioni di VP-Tree degradano al crescere del numero di elementi del database!

22 Spazi metrici d(x,y)  0, d(x,y) = 0  x = y(positivity) d(x,y) = d(y,x)(simmetry) d(x,y)  d(x,z) + d(z,y)(triangle inequality) Uno spazio metrico M = (U,d) è una coppia, dove U è il dominio dei valori e d è una funzione distanza che,  x, y, z  U, soddisfa gli assiomi metrici: Infatti, d p (a,b) = 0 anche se a e b sono punti distinti equidistanti da p Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces

23 N-ary VP-Tree Trova le distanze tra VP e gli altri elementi del database In base alle distanze il database è diviso in N sottospazi, “più o meno” di uguali dimensioni  x  S i,  i-1  d(x,p)   i Data una query q, saranno esplorati i sottospazi S i t.c.  i -  < d(q,p)   i+1 +  Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces S i-1 SiSi S i+1 d(x,p)  i-2  i-1 ii  i+1