15/03/2006An Approximation-Based Data Structure for Similarity Search18 Algoritmo VA-NOA Definizioni Variabili Generali N: numero dei punti i  raggio di ricerca l i : lower bound dell'i-esimo punto u i : upper bound dell'i-esimo punto Heap: Coda a priorità ad l i crescenti Chiamata InitCandidate Ciclo FOR Chiamata InitCandidate e definizione PopHeap Ciclo WHILE  := InitCandidate(); FOR i:= 1 TO N DO l i, u i := GetBounds(a i,q); IF l i <=  THEN  := Candidate(u i, i); InsertHeap (Heap, l i, i); END-FOR; Calcola e restituisce le distanze dalla query rispetto agli UPPER BOUND, non ai punti Inserisce nella coda Heap ordinando in funzione del LOWER BOUND  := InitCandidate(); l i, i:= PopHeap (Heap, l i, i); FASE1FASE1 FASE2FASE2 WHILE l i <  DO  := Candidate(L p (p i,q), i); l i, i:= PopHeap (Heap, l i, i); END-WHILE; Calcola e restituisce le distanze tra la query e i punti Estrae dalla coda Heap in funzione del LOWER BOUND più vicino alla query