Espacios métricos y consultas de proximidad
A continuación se muestra la notación básica del problema de
búsquedas, las cuales satisfacen la proximidad y el modelo usado [CNBYM99].
El conjunto denotará el universo de objetos válidos. Un subconjunto finito de ellos,
, de tamaño
U
, es el conjunto
de objetos donde se aplicará la búsqueda.
podría ser llamado diccionario, base de datos o simplemente nuestro
conjunto de puntos. La función
Denotará una medida de distancia entre objetos (por ejemplo la distancia más pequeña, la más cercana o más similar a la que están los objetos). La función de distancia [NBY00] tiene las siguientes propiedades:
a)Positiva
b)Simetrica
c)Reflexiva
y en algunos de los casos
d)Positividad estricta
Las propiedades de similaridad mencionadas arriba solo garantizan una definición consistente de la función y
no pueden ser usadas para
guardar comparaciones en una consulta de proximidad. Si es una distancia,
y si satisface la desigualdad del triángulo, es decir,
e)
entonces el par es llamado un espacio métrico.
Si la función de distancia no satisface la propiedad de estrictamente positiva (d)
entonces el espacio es llamado espacio pseudo-métrico
Sin embargo por simplicidad no consideramos espacios pseudo-métricos en este trabajo,
todas las técnicas presentadas son fácilmente
adaptadas a ellos por sencillez identificamos todos los objetos a distancia cero son el mismo
objeto, tomando en cuenta esto, tenemos que
Existen básicamente tres tipos de consultas de interés en espacios métricos
a) Consulta de rango o de proximidad.- La cual consiste en recuperar todos los elementos los cuales están dentro de
una distancia de
. Esto es
. Denotaremos esta consulta por
.
b) Consulta del vecino más cercano.- Este tipo de consulta recupera el elemento más cercano a , en
, Esto es,
}
Podemos dar una distancia máxima r
tal que si el elemento más cercano esta a una distancia mayor
que r
no queremos ningún reporte.
c) Consulta de los k-vecinos más cercanos.- En la cual se
recuperan los elementos más cercanos a
en
. Esto es,
recuperar un conjunto
tal que
y
.
El tipo básico de consulta es el correspondiente al inciso (a), en la figura se ilustra este
tipo de consulta. Una consulta de proximidad
será por lo tanto, un par
. El conjunto
será llamado resultado de la consulta de
proximidad.
Existen otros dos tipos de consultas que
son solucionados usando una variante de la consulta de rango. Por
ejemplo, la consulta de tipo (b) la cual es normalmente
solucionada con una consulta de
rango donde el radio inicialmente es infinito y este es reducido con los elementos más cercanos a la
consulta a medida que son encontrados. Normalmente
se trata de obtener los elementos más cercanos tan rápido como sea posible
(el problema es siempre más fácil para radios
pequeños). El otro tipo de consulta (el tipo c) es normalmente solucionado como una variante del tipo (b), donde los
elementos más cercanos son guardados y
la
activa es la distancia más larga de estos elementos a la consulta (Los elementos más lejanos no son
de interés).
Es claro que cualquier tipo de consulta puede ser resuelta examinando el diccionario
completo . De hecho, si no pudiéramos
preprocesar los datos, por ejemplo construir una estructura de datos indexada, entonces una
examinación exhaustiva es la única manera
de proceder. En nuestro modelo la función de distancia
es costosa y por lo
tanto, el número de cálculos de distancia
procesadas será la medida de complejidad del algoritmo.
Ahora bien un algoritmo de indexamiento es un procedimiento independiente para
construir una estructura de datos (o índice), diseñada
para ahorrar cálculos de distancia cuando se responde a una consulta de
proximidad. Esta estructura de datos puede ser costosa de
construir, pero ahorrará cálculos de distancia sobre
muchas consultas a la base de datos. Todos los algoritmos de
indexamiento trabajan en base a descartar elementos usando
la desigualdad del triángulo (de hecho la única propiedad para ahorrar
cálculos de distancia).
Finalmente, el objetivo de este trabajo, es realizar un algoritmo que
sea capaz de encontrar a todos los vecinos más cercanos,
utilizando un índice de complejidad lineal en su construcción, y con esto reducir el número de cálculos
de distancia, que se compara con la solución al problema aplicando fuerza bruta, el cual es resuelto usando
cálculos de distancia.