EVALUACIÓN DE CONSULTAS SKYLINE ESPACIAL TEXTUAL

Transcripción

EVALUACIÓN DE CONSULTAS SKYLINE ESPACIAL TEXTUAL
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS DE POSTGRADO
COORDINACIÓN DE POSTGRADO EN CIENCIAS DE LA COMPUTACIÓN
MAESTRÍA EN CIENCIAS DE LA COMPUTACIÓN
EVALUACIÓN DE CONSULTAS SKYLINE ESPACIAL
TEXTUAL
Trabajo de Grado presentado a la Universidad Simón Bolívar por
Alfredo José Regalado Frías
Como requisito para optar al grado de
Magister en Ciencias de la Computación
Con la asesoría de las Profesoras
Marlene Goncalves Da Silva
Soraya Abad Mota
Noviembre, 2011.
iii
DEDICATORIA
A Dios por darnos la vida, ser sus hijos y ofrecernos la fuerza para cumplir las metas
profesionales y proyectos de vida.
A mis padres Zenovia y Antonio por su constancia, dedicación y amor brindado a
cada uno de sus hijos. Gracias a ustedes vamos hacia adelante.
iv
AGRADECIMIENTOS
A Dios por otorgarme fuerza, voluntad y dedicación para llevar a cabo el inicio y nalización de este trabajo de grado y sentir la satisfacción del cumplimiento de dicha meta.
A mi madre, padre y hermanos, por todo el apoyo y consejos a seguir en este camino
de preparación profesional.
A Marlene Goncalves Da Silva, tutor de este trabajo de grado, por su alto nivel
profesional y calidad humana.
A Soraya Abad Mota, co-tutor de este trabajo de grado, el cual es un privilegio
trabajar y aprender de ella.
A la USB por permitirme las herramientas necesarias para la realización de este gran
esfuerzo y recibir el conocimiento de los profesores de esta respetable casa de estudio.
v
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS DE POSTGRADO
COORDINACIÓN DE POSTGRADO EN CIENCIAS DE LA COMPUTACIÓN
MAESTRÍA EN CIENCIAS DE LA COMPUTACIÓN
EVALUACIÓN DE CONSULTAS SKYLINE ESPACIAL
TEXTUAL
Por:
Alfredo José Regalado Frías
Carnet: 07-85716
Tutor: Marlene Goncalves
21 de noviembre de 2011
RESUMEN
Aplicaciones como GoogleMaps, Google Earth y Bing Maps han impulsado la exploración visual de mapas en la Web y consultas de información de objetos espaciales que son
de interés para el usuario. Estos objetos poseen coordenadas de ubicación en el mapa y
son descritos además mediante texto y/o enlaces a un documento en la Web, donde se hace
necesario establecer criterios para ltrar, entre grandes cantidades de datos, la información
que es relevante para un usuario. En la literatura existen paradigmas, como el Skyline,
que permiten denir consultas en base a múltiples criterios, donde todos los criterios son
importantes. La fusión entre la ubicación de objetos espaciales y su descripción en texto
permiten un nuevo tipo de consultas basadas especícamente en dos criterios, al que se
ha denominado Skyline Espacial Textual. Una consulta Skyline es espacial y textual si
considera criterios como distancia y relevancia de palabras claves en textos que describen
a los objetos espaciales. En este sentido, en este trabajo de grado se desarrollan técnicas
de evaluación para consultas Skyline Espacial Textual y se realiza un estudio experimental
sobre las mismas.
Palabras claves:
ciales.
Skyline, Information Retrieval, distancia, frecuencia, datos espa-
ÍNDICE GENERAL
Pág.
APROBACIÓN DEL JURADO
ii
DEDICATORIA
iii
AGRADECIMIENTOS
iv
RESUMEN
v
ÍNDICE GENERAL
vi
ÍNDICE DE TABLAS
ix
ÍNDICE DE FIGURAS
xiv
LISTA DE SÍMBOLOS Y ABREVIATURAS
xv
I INTRODUCCIÓN
1.1 Ejemplo Motivante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II MARCO TEÓRICO
1
2
9
vii
2.1 Consultas Basadas en Preferencias . . . . . . . . . . . . . . . . . . . . . . .
9
2.2 Bases de Datos Espaciales . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3 Estructuras de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
III PLANTEAMIENTO DEL PROBLEMA
19
3.1 Denición del problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2 Justicación e importancia . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
IV TRABAJOS RELACIONADOS
26
V SOLUCIONES AL PROBLEMA DE ECSET
31
5.1 Solución basada en BDS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.1.1
Estructuras de datos . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.1.2
Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.2 Solución basada en S2DS
. . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2.1
Estructuras de datos . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2.2
Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.3 Solución híbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.3.1
Estructuras de datos . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.3.2
Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
VI ESTUDIO EXPERIMENTAL DE LAS SOLUCIONES AL PROBLEMA
viii
DE ECSET
51
6.1 Conguración del Experimento . . . . . . . . . . . . . . . . . . . . . . . .
51
6.2 Métricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
6.3 Experimento I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
6.3.1
Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
6.3.2
Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
6.3.3
Metodología Utilizada . . . . . . . . . . . . . . . . . . . . . . . . .
54
6.3.4
Análisis de Resultados Obtenidos . . . . . . . . . . . . . . . . . . .
56
6.4 Tamaño del Skyline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
VIICONCLUSIONES Y TRABAJO FUTURO
67
REFERENCIAS
70
APÉNDICES
75
A DEMOSTRACIONES
76
B SOPORTE DE RESULTADOS EXPERIMENTALES
78
C ALGORITMOS PARA EL CÓMPUTO DEL SKYLINE
88
ÍNDICE DE TABLAS
Tablas
Pág.
1.1 Puntos de ubicación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2 Frecuencia de palabras claves en la descripción de cada playa. . . . . . . .
4
1.3 Playas de interés para el turista. . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1 Representación de un posible Inverted File. . . . . . . . . . . . . . . . . . .
17
3.1 Complejidad en tiempo de los algoritmos Skyline. Fuente: [22] . . . . . . .
24
3.2 Tamaño estimado del Skyline. . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.1 Ubicación de cada playa. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.2 Descripción de cada playa. . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.3 Representación de un Inverted File. . . . . . . . . . . . . . . . . . . . . . .
34
5.4 Valores de Distancias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.5 Valores de Frecuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.6 Superconjunto de Distancias. . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.7 Superconjunto de Frecuencias. . . . . . . . . . . . . . . . . . . . . . . . . .
37
x
5.8 Superconjunto de distancias. . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.9 Superconjunto de frecuencias. . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.10 Objetos Skyline Espacial Textual. . . . . . . . . . . . . . . . . . . . . . . .
38
5.11 Objetos Skyline Espacial Textual. . . . . . . . . . . . . . . . . . . . . . . .
39
5.12 Objetos Skyline Espacial Textual de la solución. . . . . . . . . . . . . . . .
39
5.13 Representación de varios Inverted File. . . . . . . . . . . . . . . . . . . . .
41
5.14 Valores de distancias y frecuencias . . . . . . . . . . . . . . . . . . . . . . .
43
5.15 Traza del cálculo del Skyline Espacial Textual. . . . . . . . . . . . . . . . .
44
5.16 Objetos Skyline Espacial Textual de la solución. . . . . . . . . . . . . . . .
44
5.17 Lista de Distancias y Frecuencias. . . . . . . . . . . . . . . . . . . . . . . .
48
5.18 Identicadores de Frecuencias. . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.19 Traza en base a distancia. . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.20 Traza en base a frecuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.21 Traza en base a distancia. . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.22 Traza en base a frecuencia. . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.23 Objetos Skyline Espacial Textual de la solución. . . . . . . . . . . . . . . .
50
6.1 Tiempo de Evaluación Promedio para el Conjunto de Datos Reales. . . . .
58
6.2 Tiempo de Evaluación Promedio para el Conjunto de Datos Independientes. 58
6.3 Tiempo de Evaluación Promedio para el Conjunto de Datos Correlacionados. 58
6.4 Número de Comparaciones Promedio para el Conjunto de Datos Reales. . .
60
xi
6.5 Número de Comparaciones Promedio para el Conjunto de Datos Independientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
6.6 Número de Comparaciones Promedio para el Conjunto de Datos Correlacionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
6.7 Uso de Memoria Promedio para el Conjunto de Datos Reales. . . . . . . .
62
6.8 Uso de Memoria Promedio para el Conjunto de Datos Independientes. . . .
62
6.9 Uso de Memoria Promedio para el Conjunto de Datos Correlacionados. . .
62
6.10 Promedio de Objetos Accedidos para el Conjunto de Datos Reales. . . . . .
64
6.11 Promedio de Objetos Accedidos para el Conjunto de Datos Independientes.
64
6.12 Promedio Objetos Accedidos para el Conjunto de Datos Correlacionados. .
64
6.13 Promedio del Tamaño del Skyline. . . . . . . . . . . . . . . . . . . . . . . .
66
2.1 Tiempo de Evaluación Promedio para el Conjunto de Datos Reales. . . . .
78
2.2 Tiempo de Evaluación Promedio para el Conjunto de Datos Independientes. 78
2.3 Tiempo de Evaluación Promedio para el Conjunto de Datos Correlacionados. 79
2.4 Tiempo de Evaluación Promedio para el Conjunto de Datos Reales. . . . .
79
2.5 Tiempo de Evaluación Promedio para el Conjunto de Datos Independientes. 79
2.6 Tiempo de Evaluación Promedio para el Conjunto de Datos Correlacionados. 79
2.7 Número de Comparaciones Promedio para el Conjunto de Datos Reales. . .
80
2.8 Número de Comparaciones Promedio para el Conjunto de Datos Independientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
xii
2.9 Número de Comparaciones Promedio para el Conjunto de Datos Correlacionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
2.10 Número de Comparaciones Promedio para el Conjunto de Datos Reales. . .
81
2.11 Número de Comparaciones Promedio para el Conjunto de Datos Independientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
2.12 Número de Comparaciones Promedio para el Conjunto de Datos Correlacionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
2.13 Uso de Memoria Promedio para el Conjunto de Datos Reales. . . . . . . .
82
2.14 Uso de Memoria Promedio para el Conjunto de Datos Independientes. . . .
82
2.15 Uso de Memoria Promedio para el Conjunto de Datos Correlacionados. . .
82
2.16 Uso de Memoria Promedio para el Conjunto de Datos Reales. . . . . . . .
83
2.17 Uso de Memoria Promedio para el Conjunto de Datos Independientes. . . .
83
2.18 Uso de Memoria Promedio para el Conjunto de Datos Correlacionados. . .
83
2.19 Promedio de Objetos Accedidos para el Conjunto de Datos Reales. . . . . .
84
2.20 Promedio de Objetos Accedidos para el Conjunto de Datos Independientes.
84
2.21 Promedio de Objetos Accedidos para el Conjunto de Datos Correlacionados. 84
2.22 Promedio de Objetos Accedidos para el Conjunto de Datos Reales. . . . . .
85
2.23 Promedio de Objetos Accedidos para el Conjunto de Datos Independientes.
85
2.24 Promedio de Objetos Accedidos para el Conjunto de Datos Correlacionados. 85
2.25 Promedio del Tamaño del Skyline para el Conjunto de Datos Reales. . . . .
86
2.26 Promedio del Tamaño del Skyline para el Conjunto de Datos Independientes. 86
xiii
2.27 Promedio del Tamaño del Skyline para el Conjunto de Datos Correlacionados. 86
2.28 Promedio del Tamaño del Skyline para el Conjunto de Datos Reales. . . . .
87
2.29 Promedio del Tamaño del Skyline para el Conjunto de Datos Independientes. 87
2.30 Promedio del Tamaño del Skyline para el Conjunto de Datos Correlacionados. 87
ÍNDICE DE FIGURAS
Figuras
Pág.
1.1 Ejemplo de mapa de la Isla de Margarita. Fuente: [3] . . . . . . . . . . . .
2
1.2 Representación de playas en Margarita en R2 . . . . . . . . . . . . . . . . .
3
2.1 Consulta Skyline en SQL Tradicional . . . . . . . . . . . . . . . . . . . . .
10
2.2 Consulta Skyline en SQL Extendido . . . . . . . . . . . . . . . . . . . . . .
10
2.3 Representación de un posible R-Tree . . . . . . . . . . . . . . . . . . . . .
16
5.1 Representación de un posible R-Tree . . . . . . . . . . . . . . . . . . . . .
33
5.2 Representación de un posible IR-Tree . . . . . . . . . . . . . . . . . . . . .
41
6.1 Tiempo de Ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
6.2 Número de Comparaciones . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
6.3 Cantidad de Memoria Utilizada . . . . . . . . . . . . . . . . . . . . . . . .
61
6.4 Cantidad de Objetos Vistos . . . . . . . . . . . . . . . . . . . . . . . . . .
63
6.5 Tamaño del Skyline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
xv
LISTA DE SÍMBOLOS Y ABREVIATURAS
BDS
Basic Distributed Skyline
D&C
Divide y Conquistarás
ECSET
Evaluación de Consultas Skyline Espacial Textual
S2DS
Sorted 2D Skyline
SETBDS
Skyline Espacial Textual basado en Basic Distributed Skyline
SETS2DS
Skyline Espacial Textual basado en Sorted 2D Skyline
SETHíbrido Skyline Espacial Textual Híbrido
CAPÍTULO I
INTRODUCCIÓN
El continuo desarrollo de tecnologías de la comunicación y servicios de información
han motivado el incremento de aplicaciones como: GoogleMaps, Google Earth y Bing
Maps, entre otras, que permiten manipular grandes cantidades de datos referenciados en
el espacio, también conocidos como datos espaciales. Los datos espaciales adicionalmente
pueden considerar información textual, que ayuda a describir un objeto o elemento ubicado
en el espacio. El incremento y manejo de grandes volúmenes de datos espaciales hace
necesario el hecho de poder denir criterios que permitan ltrar los datos, dado que muchos
datos pueden ser irrelevantes o poco importantes dentro del requerimiento de un usuario.
Cuando un usuario especica sus criterios en una consulta compuesta por una ubicación y palabras claves que describen a un objeto, se debe tomar en cuenta el problema
de obtener los datos textuales y espaciales que son más importantes para el usuario. En
ese sentido existen paradigmas como el Skyline [8] que permite evaluar consultas de múltiples criterios, donde todos los criterios son igualmente relevantes o también llamados no
dominados. Sin embargo, el Skyline no contempla atributos espaciales, por lo que se hace
necesario considerar una extensión del paradigma conocido como Skyline Espacial [40].
En la literatura dicha extensión del paradigma no considera atributos textuales. Por lo
tanto, en este trabajo de grado se dene un nuevo tipo de consulta Skyline llamada consulta Skyline Espacial Textual que especícamente considera dos criterios o dimensiones,
compuestas por la cercanía con respecto a un punto y la frecuencia de palabras claves que
lo describen. Adicionalmente, se presentan tres técnicas que permiten evaluar este tipo de
2
consultas.
En la siguiente sección se presenta, a través de una serie de pasos, un ejemplo donde
intuitivamente se motiva el problema a tratar en este trabajo de grado.
1.1 Ejemplo Motivante
Esta sección promueve mediante un ejemplo la necesidad de evaluar consultas Skyline
Espacial Textual. Una consulta Skyline Espacial Textual es un tipo de consulta basada en
preferencias especicadas por el usuario, donde las preferencias están dadas por la cercanía
de la posición de un usuario y la relevancia de un documento que describe a un objeto en
el espacio.
Supóngase una situación donde un turista se encuentra de vacaciones en la paradisíaca Isla de Margarita, Venezuela. Considérese que el turista está interesado en conocer
las playas donde pueda practicar deportes tales como windsurf y kitesurf, y que se encuentren cercanas al hotel donde se hospeda. La Figura 1.1 ilustra un mapa sobre el cual
se muestran puntos con la ubicación de las playas cercanas (A,B,C,D,E y F) al hotel (H).
Figura 1.1: Ejemplo de mapa de la Isla de Margarita. Fuente: [3]
La Tabla 1.1 contiene la ubicación de cada punto en el espacio de la Figura 1.1 y la
distancia euclidiana [9] desde el punto H hasta cada uno de los puntos A,B,C,D,E y F ;
la Figura 1.2 es una representación en dos dimensiones de los puntos sobre el espacio. La
3
ubicación de cada punto está dada por una coordenada (X,Y), donde X y Y corresponden
a la latitud y longitud de un punto, respectivamente. Por simplicidad, se considera que
la latitud y longitud varían entre 1 y 8. En la literatura este tipo de datos puede formar
parte de una base de datos espacial [24].
Playa Ubicación Distancia
A
B
C
D
E
F
H
(3,8)
(5,8)
(6,6)
(7,4)
(1,1)
(2,1)
(5,3)
5,4
5,0
3,2
2,2
4,5
3,6
0,0
Tabla 1.1: Puntos de ubicación.
Figura 1.2: Representación de playas en Margarita en R2 .
Adicionalmente, cada playa puede estar descrita en un documento de texto publicado
en la Web. Un ejemplo de esta descripción se encuentra en las páginas de información
turística, blogs y foros donde los turistas expresan sus opiniones1 . La selección de los
puntos de interés del turista está dada en función de la menor distancia [9] entre el hotel
H y las playas, y en base a la relevancia o frecuencia de palabras claves como: windsurf
y kitesurf en la descripción textual de cada punto. En este caso se podría hacer uso de
alguna técnica conocida de Information Retrieval [6, 17, 18, 23, 26, 39]; esta área trata
de identicar cuál documento de texto cumple con el criterio de búsqueda de un usuario.
Una forma de hacer esto es determinando cuáles palabras claves contiene cada documento,
de modo que se pueda determinar la aparición de ciertas palabras claves de interés, de
acuerdo con el criterio de búsqueda del usuario. La Tabla 1.2 muestra la cantidad de
palabras claves en la descripción de cada playa y la frecuencia de ambas palabras claves.
La frecuencia de las palabras claves puede ser calculada haciendo uso de una función de
frecuencia, que determine un valor entre 0 y 1 para el número de repeticiones de palabras
1 Ejemplo: http://www.playasyresorts.com/windsurfkitesurf-playa-el-yaquevenezuelamargarita
4
claves en la descripción de una playa.
Las playas de interés para el usuario pueden ser seleccionadas primero en base a la
distancia al hotel y posteriormente por frecuencia de las palabras windsurf y kitesurf en
la descripción textual de cada playa. En este sentido, las playas que se podrían obtener
como las más cercanas no necesariamente representan las playas donde se pueden practicar
windsurf y kitesurf, como es el caso de la playa D en la Tabla 1.2. El caso contrario
sería pensar en usar primero la frecuencia de las palabras windsurf y kitesurf, y luego la
distancia, pero podrían ser seleccionadas playas como E que es una de las más lejanas.
Así, en este conjunto de datos no existe la playa más cercana al hotel H con la mayor
frecuencia de palabras windsurf y kitesurf, y por ende, la respuesta de la consulta sería
vacía.
Playa windsurf kitesurf Frecuencia
A
B
C
D
E
F
4
2
5
0
6
2
3
2
2
0
6
2
0,8
0,3
0,8
0,0
1,0
0,3
Tabla 1.2: Frecuencia de palabras claves en la descripción de cada playa.
Un paradigma que puede ser empleado para este tipo de consultas es el Skyline
[8, 12, 13, 37]. El Skyline [8] es el conjunto de aquellos puntos que no son dominados por
ningún otro punto; un punto domina a otro punto si es mejor o igual en todos los criterios
y es mejor en al menos uno de los criterios. Por lo tanto, el Skyline o en el ejemplo, las
playas de interés para el usuario, son todas aquellas playas donde no exista otra playa que
posea menor distancia al hotel y mayor frecuencia de palabras claves en su descripción
textual. Por ejemplo, la playa E domina a la playa A puesto que tiene una distancia menor
al hotel y una mayor frecuencia de palabras claves en su descripción. El conjunto Skyline
resultante se muestra en la Tabla 1.3. Nótese que el Skyline identica las playas D y E
que son las mejores en distancia y frecuencia, respectivamente, pero también la playa C
que está un poco más lejos que la playa D, con una frecuencia alta de 0.8. De esta manera,
5
el Skyline ofrece un conjunto de playas de interés descartando aquellas dominadas, donde
el usuario puede seleccionar la que considere de su preferencia.
Playa Distancia Frecuencia
C
D
E
3,2
2,2
4,5
0,8
0,0
1,0
Tabla 1.3: Playas de interés para el turista.
Cuando el criterio del Skyline involucra una función sobre atributos o coordenadas
espaciales se dice que el Skyline es espacial [14, 15, 29, 40]. Sin embargo, en la literatura,
el Skyline ha sido denido sólo para atributos cuyo dominio son números, fechas y coordenadas espaciales y no considera criterios que involucren atributos textuales que a su vez
permitan describir un objeto espacial. La extensión del Skyline Espacial que adiciona
un atributo textual para describir un objeto permite expresar un nuevo tipo de consultas
Skyline a las que se ha denominado en este trabajo de grado como Skyline Espacial Textual. Una consulta Skyline Espacial Textual es denida en base a dos criterios, distancia y
frecuencia de palabras claves. Para el cálculo de la función de distancia se puede hacer uso
de la distancia euclidiana [9] y para la función de frecuencia de palabras claves se puede
utilizar alguna función ya denida en el área de Information Retrieval [6].
El problema de evaluar consultas Skyline Espacial Textual es el alto costo de la
evaluación. En primer lugar, la evaluación de estas consultas requiere el cálculo de las
funciones de distancia y frecuencia, y en segundo lugar la aplicación de algún algoritmo
existente para el cómputo del Skyline sobre los valores calculados por las funciones de
distancia y frecuencia. Por dichas razones, en este trabajo de grado se plantean técnicas
de evaluación para ese tipo de consultas.
Las técnicas a utilizar en las soluciones del problema emplean estructuras de datos
basadas en índices que permiten acceder los datos con mayor facilidad y mantienen el
orden de los datos. Por ejemplo, la estructura de datos R-Tree [25] es utilizada para el
manejo de datos espaciales, el Inverted File [43] para las colecciones de texto y por último,
el IR-Tree [33], se emplea para el manejo de datos espaciales y textuales conjuntamente.
6
Por otra parte, las técnicas están basadas en dos tipos de algoritmos, un algoritmo que
requiere el orden de los datos, que evita calcular las funciones de distancia y frecuencia
para todos los datos, y otro algoritmo que disminuye el número de comparaciones entre
objetos cuando se chequea la dominancia de los mismos.
En el trabajo presentado en este informe se logró contribuir al tema en varios aspectos, los cuales se describen a continuación:
La denición de un nuevo tipo de consulta que extiende el paradigma Skyline, que
permite evaluar múltiples criterios, recibiendo el nombre de consultas Skyline Espacial
Textual, particularmente se enfoca en sólo dos criterios o dimensiones, donde ambos son
igualmente importantes para el usuario; el primer criterio está dado por una función que
permite conocer los objetos más cercanos a un punto o coordenada espacial y el segundo
criterio por una función que permite obtener la frecuencia de palabras claves que describen
un punto en el espacio.
Se propone el uso de estructuras de datos basadas en índices para el nuevo tipo de
consultas. Los índices son utilizados con el objetivo de evitar el chequeo exhaustivo de
los datos, los cuales reducen el número de elementos a visitar al momento de computar
una consulta. Dichas estructuras permiten un mejor desempeño en el manejo de datos
espaciales y textuales. Por ejemplo, en el caso de los datos espaciales se puede hacer uso
de estructuras de datos como el R-Tree [25], el cual permite optimizar el acceso a los
datos, particularmente las coordenadas espaciales. Otras estructuras de datos como el
Inverted File [43], agiliza la manipulación de datos textuales a través de la agrupación de
una colección de texto en base a palabras. Por otra parte, la estructura de datos IR-Tree
[33], combina las propiedades de un R-Tree y un Inverted File para optimizar el acceso a
los datos espaciales y textuales, en una misma estructura.
Se plantean tres soluciones al problema de evaluación de consultas Skyline Espacial
Textual (ECSET ). Las dos primeras soluciones son el resultado de la adaptación de algoritmos existentes, que permiten computar el Skyline. La tercera solución propone un
nuevo algoritmo, el cual unica las propiedades utilizadas en las dos soluciones anteriores,
7
obteniendo una solución híbrida que permite evaluar ese tipo de consultas.
En la primera solución se extiende el algoritmo Basic Distributed Skyline (BDS)
denido por Balke et al. [7], el cual consta de dos fases. En la primera fase, construye
un superconjunto del Skyline Espacial Textual en función del cálculo de las funciones
de distancia y frecuencia, aplicando una condición de parada basada en el orden de los
datos, evitando recorrerlos todos. Luego, en la segunda fase, son descartados los elementos
dominados del superconjunto.
La segunda solución adapta el algoritmo Sorted 2D Skyline (S2DS) [30], el cual
recorre todos los datos para calcular las funciones de distancia y frecuencia, devolviendo
los datos ordenados en base a la distancia. Adicionalmente, chequea la dominancia o
igualdad de criterios entre objetos, comparando solamente con los últimos objetos que son
considerados potencialmente Skyline, evitando realizar comparaciones innecesarias.
En la tercera solución, se dene un nuevo algoritmo considerado híbrido, dado que
se basa en los algoritmos Basic Distributed Skyline (BDS) y Sorted 2D Skyline (S2DS),
empleados en las soluciones anteriores. Dicha solución toma lo mejor de cada algoritmo y
sus propiedades para producir una solución unicada que permite solucionar el problema de
ECSET, presentando ventajas sobre las anteriores. El algoritmo propuesto posee ventajas
en comparación con las dos primeras soluciones. Con respecto a la primera solución tiene
ventaja en cuanto al chequeo de dominancia, dado que evita comparaciones innecesarias.
Con respecto a la segunda solución, posee ventaja dado que evita recorrer todos los datos,
pues utiliza una condición de parada basada en el orden de los datos.
Y por último, se realizó el análisis empírico de la calidad de las soluciones desarrolladas mediante un estudio experimental. El estudio experimental muestra de forma empírica
las bondades de cada una de las soluciones. En ese sentido, los resultados del estudio experimental evidencian que la solución híbrida presenta un mejor rendimiento en función
del tiempo de ejecución, en comparación con las dos primeras soluciones.
Este documento se compone de siete capítulos. El capítulo 2 presenta un conjunto de
deniciones que conforman al marco teórico, el cual contempla temas tales como: consultas
8
basadas en preferencias, bases de datos espaciales y estructuras de datos basadas en índices.
En el capítulo 3 se introduce un conjunto de deniciones que ayudan a comprender
la denición del problema. Adicionalmente, se describe la justicación y objetivos que
motivan la realización del trabajo de grado.
En el capítulo 4 se describen los trabajos que están relacionados al problema a tratar,
mostrando sus contribuciones y limitaciones.
El capítulo 5 describe tres soluciones para el problema presentado en este trabajo de
grado.
El capítulo 6 ilustra el estudio experimental realizado sobre las tres soluciones
planteadas en el capítulo anterior. Adicionalmente, para el análisis del estudio experimental fueron considerados conjuntos de datos reales, independientes y correlacionados
para evaluar el comportamiento de los algoritmos.
En el capítulo 7 se muestran las conclusiones alcanzadas en el desarrollo de este
trabajo de grado, y a su vez se complementa con el planteamiento de trabajos futuros en
la misma área de investigación.
CAPÍTULO II
MARCO TEÓRICO
En este capítulo se describe el marco teórico de este trabajo de grado. El capítulo
está organizado en tres secciones. La primera sección contempla los conceptos básicos de
las consultas basadas en preferencias. En la segunda sección se consideran las nociones
asociadas a las bases de datos espaciales. En la tercera sección se describen algunas de
las estructuras de datos basadas en índices que permiten el manejo de datos espaciales y
textuales.
2.1 Consultas Basadas en Preferencias
Una consulta basada en preferencias es un tipo de consulta que permite ltrar y
acceder a la información en base a criterios denidos por el usuario, y así obtener la
información más relevante. En la literatura existen varios paradigmas tales como el Skyline,
que soportan este tipo de consultas.
El paradigma del Skyline permite seleccionar entre un conjunto de elementos los
mejores elementos que son incomparables entre sí, es decir que ninguno es mejor que otro
en todos sus valores. En [8] se dene la extensión de la instrucción SELECT del lenguaje
de consultas estructurado SQL para manejar e±te tipo de consultas. Las guras 2.1 y 2.2
muestran respectivamente, un ejemplo de la equivalencia entre una consulta descrita en
SQL tradicional y su extensión para especicar una consulta Skyline. Supóngase que en el
10
ejemplo, un usuario desea obtener las playas más cercanas a una ciudad y adicionalmente,
se requieren las playas con mejores referencias.
SELECT *
FROM Playas p
WHERE p.ciudad = <ciudad> AND NOT EXISTS(
SELECT *
FROM Playas p1
WHERE p1.ciudad = <ciudad>
AND p1.distancia<=p.distancia
AND p1.referencia>=p.referencia
AND (p1.distancia<p.distancia OR p1.referencia>p.referencia));
Figura 2.1: Consulta Skyline en SQL Tradicional
SELECT *
FROM Playas
WHERE ciudad = <ciudad>
SKYLINE OF distancia MIN, referencia MAX;
Figura 2.2: Consulta Skyline en SQL Extendido
La instrucción SKYLINE OF permite denir atributos d1 , d2 , .., dm , y mediante las
opciones MIN, MAX, DIFF, especicar si el valor de un atributo debería ser maximizado,
minimizado o agrupado, respectivamente. La opción DIFF es equivalente a la opción
GROUP BY en SQL tradicional.
En este trabajo de grado se propone un nuevo tipo de consulta Skyline que permite
especicar las preferencias del usuario a través de dos criterios, donde cada criterio es
denido en base a funciones y no a valores.
2.2 Bases de Datos Espaciales
Los sistemas de bases de datos espaciales [24] ofrecen el manejo de datos existentes
en un espacio o tipos de datos espaciales dentro de un modelo de datos. El diseño de
información espacial partiendo del mundo real, es una tarea que puede llegar a ser muy
11
compleja, ya que son muchos los elementos que pueden interactuar sobre cada aspecto de
la realidad. Por lo tanto, es necesario que exista un alto nivel de abstracción de modo
que las computadoras logren reducir la complejidad de la representación de las entidades
espaciales a elementos básicos. En ese sentido, a continuación se enuncia una serie de
deniciones que se encuentran dentro del contexto espacial.
Base de Datos Espacial
Una base de datos espacial [24, 27] es una colección de datos referenciados en el
espacio, que actúa como un modelo abstracto de la realidad. Adicionalmente, se utiliza
un sistema administrador de bases de datos para el manejo de datos espaciales, que debe
ser capaz de gestionar la localización y relación entre objetos, denida por un marco de
referencia establecido por el espacio. Por otra parte, una base de datos espacial además
de manipular datos espaciales también puede tener funciones para el manejo de datos no
espaciales, como los que emplea un manejador de base de datos tradicional.
Datos Espaciales
Dato espacial [19, 21] es un término utilizado para describir los datos que pertenecen
al espacio ocupado por objetos en una base de datos espacial. Dichos datos pueden
ser: puntos, líneas, polígonos, supercies y volúmenes. Los datos espaciales pueden ser
discretos o continuos. Los datos son discretos cuando pueden ser modelados haciendo uso
de técnicas tradicionales de un manejador de bases de datos relacional, por ejemplo, los
valores de coordenada de un punto pueden ser tratados como atributos en una tupla. Los
datos continuos abarcan una región en el espacio, por ejemplo: líneas y áreas o regiones.
Consultas Espaciales
Una consulta espacial es un tipo de consulta soportada por bases de datos espaciales.
En los manejadores de base de datos tradicionales se emplea el lenguaje de consultas
estructurado o SQL. Los sistemas de base de datos espaciales cuentan con un lenguaje
de consultas sobre datos espaciales, que permite la creación de índices y métodos para
realizar relaciones espaciales entre objetos. Para el manejo de consultas espaciales se
12
cuenta con una extensión del lenguaje SQL denominado SQL Espacial o SSQL [19], el
cual está en capacidad de recuperar datos espaciales y no espaciales, sin embargo las
consultas espaciales poseen varias diferencias con respecto a las consultas SQL. Entre las
diferencias más importantes se pueden mencionar las siguientes, las consultas espaciales
permiten ser denidas en base al uso de datos de tipo geométrico tales como: puntos
o coordenadas espaciales, líneas y polígonos, las consultas espaciales también permiten
denir relaciones espaciales entre los objetos. El resultado de una consulta espacial es un
conjunto de objetos espaciales. Formalmente, se tiene que:
Denición 1 (Consulta Espacial). Sean o y o0 objetos espaciales denidos en un espacio
multidimensional E d , una consulta espacial Q es un conjunto de objetos o que satisfacen
un operador espacial Θ dado o0 . Q(o0 ) = {o : Θ(o, o0 )}
Operadores de Consultas Espaciales
Esta sección describe algunos de los operadores espaciales [21] del álgebra de los
sistemas de bases de datos espaciales, que pueden ser aplicados dentro de una consulta
espacial.
Operador 1 (Consulta Exacta). Dado un objeto espacial o0 con extensión espacial o
atributo G, representado por o0 .G, donde o0 .G ⊆ E d , una consulta exacta es aquella que
permite encontrar todos los objetos espaciales o con los mismos atributos de o0 .
CE(o0 ) = {o|o0 .G = o.G}
Operador 2 (Consulta de Puntos). Dado un punto p ∈ E d , una consulta de puntos es
aquella que permite encontrar todos los objetos espaciales o que se superponen a p.
CP (p) = {o|p ∩ o.G = p}
Operador 3 (Consulta de Rango o Ventana). Dado un intervalo d-dimensional I d =
[l1 , v1 ]x[l2 , v2 ]x...x[ld , vd ], una consulta de rango o ventana es aquella que permite encontrar
todos los objetos o que tienen al menos un punto en común con I d .
CR(I d ) = {o|I d ∩ o.G 6= ∅}
13
Operador 4 (Consulta de Intersección). Dado un objeto espacial o0 con extensión espacial
o atributo G, representado por o0 .G, donde o0 .G ⊆ E d , una consulta de intersección es
aquella que permite encontrar todos los objetos o que tienen al menos un punto en comun
con o0 .
CI(o0 ) = {o|o0 .G ∩ o.G 6= ∅}
Operador 5 (Consulta de Cubrimiento). Dado un objeto espacial o0 con extensión espacial
o atributo G, representado por o0 .G, donde o0 .G ⊆ E d , una consulta de cubrimiento es
aquella que permite encontrar todos los objetos o que cubren a o0 .
CU (o0 ) = {o|(o0 .G ∩ o.G) = o0 .G}
Operador 6 (Consulta de Contención). Dado un objeto espacial o0 con extensión espacial
o atributo G, representado por o0 .G, donde o0 .G ⊆ E d , una consulta de contención es
aquella que permite encontrar todos los objetos o que están contenidos por o0 .
CC(o0 ) = {o|(o0 .G ∩ o.G) = o.G}
Los operadores CC y CU son casos particulares del operador CI .
Operador 7 (Consulta de Adyacencia). Dado un objeto espacial o0 con extensión espacial
o atributo G, representado por o0 .G, donde o0 .G ⊆ E d , una consulta de adyacencia es
aquella que permite encontrar todos los objetos o adyacentes a o0 .
◦
◦
CA(o0 ) = {o|o.G ∩ o0 .G 6= ∅ ∧ o0 .G ∩ o.G = ∅}
Donde o0 .G y o.G representan la parte interna (sin considerar los bordes) de las
◦
◦
extensiones espaciales o0 .G y o.G respectivamente.
Operador 8 (Consulta del Vecino Más Cercano). Dado un objeto espacial o0 con extensión
espacial o atributo G, representado por o0 .G, donde o0 .G ⊆ E d , una consulta del vecino más
cercano es aquella que permite encontrar todos los objetos o que poseen menor distancia
desde o0 .
CV M C(o0 ) = {o|∀o00 : distancia(o0 .G, o.G) ≤ distancia(o0 .G, o00 .G)}
14
La distancia entre dos objetos espaciales es usualmente denida como la distancia
entre sus puntos de ubicación, comúnmente representadas por la distancia Euclidiana o la
distancia Manhattan.
A pesar de los diferentes operadores espaciales, en el contexto del problema planteado
en este trabajo de grado, se considera especícamente, el operador de consulta del vecino
más cercano y la relación métrica de distancia.
Métodos de Acceso
Los métodos de acceso tienen por objetivo apoyar la selección de objetos espaciales
en forma eciente, como por ejemplo, las consultas de rangos de objetos u objetos más
cercanos.
Un método de acceso debe considerar tanto los índices espaciales, como las técnicas
de agrupamiento de los datos. Sin un índice espacial, se tendrían que revisar de manera
exhaustiva todos los objetos de una base de datos y, vericar si satisfacen un requerimiento
representado a través de un operador espacial. Una característica de los datos espaciales es
que generalmente se encuentran en grandes cantidades y distribuidos de manera irregular
en el espacio; esto aanza la necesidad del uso de índices.
Todo método de acceso requiere de una estructura de datos que facilita el tipo de
acceso que se quiere hacer. Una posible clasicación de estos métodos establece dos grandes
grupos, a saber: los métodos de acceso de puntos multidimensionales (MAPM) y los
métodos de acceso espaciales (MAE). Un MAPM divide el espacio de búsqueda en áreas
o regiones, donde todos los registros de una región están almacenados en la misma página
de disco. Un MAE organiza los objetos espaciales en base a su posición espacial indexada
por el área o región mínima que cubre completamente al objeto; esto para aquellos MAE
que se utilizan para la representación vectorial del espacio. Las principales estructuras que
representan a los MSPM son las siguientes: el árbol K-D-B, el archivo malla y el árbol
compañero. Las correspondientes a los MAE son: el árbol binario espacial k-d, el árbol-R,
el árbol-R+ y el árbol celda.
15
2.3 Estructuras de Datos
Esta sección describe tres estructuras de datos basadas en índices, las cuales mejoran
el acceso a datos espaciales y textuales, evitando el recorrido exhaustivo de todos los datos.
R-Tree o Árbol-R
Un R-Tree o árbol-R [25] es un árbol balanceado similar a un B-Tree, utilizado
para almacenar grandes cantidades de datos espaciales, compuesto por nodos hoja, nodos
internos y un nodo raíz. Esta estructura está diseñada de modo que una búsqueda espacial
requiera visitar un número pequeño de nodos, dado que los datos son almacenados de forma
ordenada.
El R-Tree o árbol-R cumple con las siguientes propiedades:
• Todo nodo está asociado a un área mínima de un espacio. Por tanto el nodo raíz
está asociado con todo el espacio. El área mínima asociada a un nodo interno está
compuesta por el área mínima asociada a cada uno de su hijos. El área mínima de
un nodo hoja está asociada a un conjunto de elementos, donde cada elemento del
nodo puede ser una coordenada espacial o un polígono.
• El número de elementos de un nodo en el árbol, a excepción del nodo raíz, está entre
m y M , donde m ∈ [1, M/2], M es el máximo número de elementos en un nodo,
M = btamaño(P )/tamaño(E ) c, P representa las páginas en disco y E representa
los elementos.
• Si el nodo raíz no es hoja, tiene al menos dos elementos.
• Todos los nodos hoja están al mismo nivel.
• Un nodo interno referencia los nodos del nivel siguiente en el árbol. Un elemento de
un nodo interno es un par (I, O), donde I es un identicador del nodo hijo, y O es
el área mínima de todas los elementos del nodo hijo.
16
• Un nodo hoja referencia el conjunto de objetos espaciales contenidos en su área
mínima. Un nodo hoja contiene elementos (i, o), donde i es el identicador del
objeto espacial, y o es su dirección física en disco.
• Un R-Tree de profundidad d, indexa al menos md+1 objetos y a lo más M d+1 objetos,
en otras palabras blogM N − 1c ≤ d ≤ blogm N − 1c
La gura 2.3 ilustra un posible R-Tree, donde la imagen 2.3(a) muestra las áreas o
regiones mínimas y la imagen 2.3(b) muestra la estructura de un posible R-Tree.
(a) Regiones
(b) R-Tree
Figura 2.3: Representación de un posible R-Tree
Por ejemplo, las regiones R8, R9 y R10 corresponden a las entradas del nodo hoja
R3. Las regiones R11 y R12 son las entradas del nodo hoja R4. Las regiones R13 y R14
son las entradas del nodo hoja R5. Las regiones R3, R4 y R5 son las entradas del nodo
intermedio R1. Por último, Las regiones R1 y R2 son las entradas del nodo raíz.
Inverted File o Archivo Invertido
El Inverted File o archivo invertido es una estructura de datos que emplea índices
para el rápido acceso y manejo de colecciones de documentos de texto en base a los
términos que los describen. Los archivos invertidos son las estructuras de datos más
utilizadas en sistemas de Information Retrieval o de recuperación de información [6]. Un
archivo invertido consta de dos componentes, a saber:
17
• Un vocabulario para todos los términos o palabras t en una colección de documentos
de texto.
• Por cada término t se cuenta con un conjunto de pares (d, wd,t ), donde d representa
el identicador de un documento que contiene a t y wd,t es el número de veces que t
aparece en el documento d.
La tabla 2.1 muestra un posible archivo invertido, donde por cada palabra se tiene
una colección de pares, y cada par se cuenta con el identicador del documento que
contiene la palabra y el número de veces que la palabra aparece en el mismo. Por ejemplo,
la palabra objetivo está contenida en los documentos identicados por doc1 y doc3 , y
aparece tres veces en el documento doc1 y dos veces en el documento doc3 .
Palabras Repeticiones
objetivo
vida
de
triunfo
trabajo
(doc1 ,3),(doc3 ,2)
(doc1 ,1),(doc2 ,2),(doc3 ,1)
(doc1 ,5),(doc2 ,4)
(doc1 ,2),(doc2 ,1),(doc3 ,4)
(doc3 ,3)
Tabla 2.1: Representación de un posible Inverted File.
IR-Tree o Árbol-IR
Un IR-Tree o árbol-IR es básicamente un R-Tree, que se compone de las siguientes
características:
• Todos los nodos del IR-Tree son enriquecidos con un apuntador a un Inverted File
o archivo invertido que contiene los objetos que contiene el área o región mínima del
nodo.
• Un nodo interno referencia los nodos del nivel siguiente en el árbol. Un elemento de
un nodo interno tiene la forma (I, O, D), donde I es un identicador del nodo hijo,
O es el área mínima de todos los elementos del nodo hijo y D es un identicador
que representa todos los documentos de los elementos de un nodo hijo.
18
• La estructura de un nodo hoja contiene entradas de la forma (i, o, d), donde i es un
identicador del objeto, o es la dirección física en disco del objeto espacial y d es el
identicador del documento asociado al objeto i.
CAPÍTULO III
PLANTEAMIENTO DEL PROBLEMA
Este capítulo está organizado en tres partes. La primera parte muestra la denición
formal del problema de evaluación de consultas Skyline Espacial Textual. La segunda parte
describe la justicación e importancia del problema a tratar; y por último, la tercera parte
contiene los objetivos planteados en este trabajo de grado.
3.1 Denición del problema.
A continuación se formaliza el problema a ser tratado en este trabajo de grado,
introduciendo una serie de deniciones ilustradas mediante ejemplos que ayudan a la
comprension del problema.
Una coordenada espacial es una representación de una ubicación en el espacio, que
puede ser denida en función de una medida de latitud y otra de longitud para describir
la localización espacial de un punto. Adicionalmente, las coordenadas espaciales pueden
ser manejadas a través de sistemas de bases de datos espaciales, que además de manipular
datos u objetos espaciales, están en capacidad de mantener las relaciones entre los objetos.
En este trabajo de grado se dene una base de datos espacial textual, donde cada objeto
de la base de datos es descrito por una coordenada espacial y un documento de texto.
Formalmente, se pueden enunciar las siguientes deniciones:
Denición 2 (Coordenada Espacial). Una coordenada espacial es un par (X, Y ), donde
20
X y Y representan latitud y longitud, respectivamente.
Denición 3 (Base de Datos Espacial Textual). Sea O una base de datos. Cada objeto
o ∈ O está denido como un par (loc, doc), donde o.loc es una ubicación o coordenada
espacial y o.doc es un documento de texto que describe al objeto.
Ejemplo 1. Considérese el punto E del ejemplo de motivación.
Sea E = (loc, doc) un objeto espacial, donde:
• E.loc = (1, 1).
• E.doc ="La playa El Yaque ubicada al sur de la Isla de Margarita es uno de los
mejores sitios del mundo para practicar deportes como winsurf y kitesurf. El Yaque
ha ganado aún mayor popularidad por sus excelentes condiciones para el windsurf y
kitesurf...".
Dentro del contexto espacial, se cuenta con métodos que permiten el acceso a los
datos de acuerdo a las preferencias o criterios de ubicación denidos por el usuario, la
esprecicación de las preferencias se conoce en la literatura como una consulta espacial.
La siguiente denición describe una consulta espacial que adicionalmente a la ubicación de un objeto en el espacio considera también palabras claves que describen al objeto.
Este tipo de consultas que solamente considera dos criterios, uno espacial y uno textual
es denida como una consulta espacial textual.
Denición 4 (Consulta Espacial Textual). Sea Q = (loc, keywords) una consulta, donde
Q.loc es una ubicación o coordenada espacial de un objeto y Q.keywords es un conjunto
de palabras claves.
Ejemplo 2. En base al ejemplo de motivación presentado en la sección anterior supóngase la siguiente consulta: "Un turista está interesado en conocer las playas donde pueda
practicar deportes tales como windsurf y kitesurf, y que se encuentren cercanas al hotel
donde se hospeda".
Sea Q = (loc, keywords), donde:
21
• Q.loc = (5, 3).
• Q.keywords = {windsurf, kitesurf}.
Al momento de denir una consulta espacial textual el usuario considera que ambos
criterios poseen la misma relevancia. El criterio textual que considera la frecuencia de
la ocurrencia de las palabras claves y el espacial, es decir, la cercanía al objeto de la
consulta. En ese sentido, existen paradigmas que permiten ltrar los datos, donde todos
los criterios son importantes para el usuario. Por ejemplo, el Skyline considera múltiples
criterios, pero no toma en cuenta datos espaciales. El paradigma del Skyline Espacial está
denido para trabajar con criterios espaciales, sin embargo no considera criterios sobre
atributos de tipo texto. Por tanto, en este trabajo de grado se introduce una extensión
de estos paradigmas denominado Skyline Espacial Textual, que involucra criterios sobre
datos espaciales y textuales.
Denición 5 (Skyline ). El Skyline [8] es un conjunto de objetos que no son dominados
por ningún otro objeto. Un objeto domina a otro si y sólo si es mejor o igual en todos sus
criterios y es mejor en al menos uno de sus criterios que el otro. El Skyline fue denido
inicialmente sólo para atributos cuyo dominio tienen una relación de orden total.
Denición 6 (Skyline Espacial ). El Skyline Espacial [40] es un conjunto de objetos que
no son dominados espacialmente por ningún otro objeto. Sea P un conjunto de puntos en
un espacio d-dimensional denotado por Rd , W = {w1 , w2 , .., wn } un conjunto de puntos
de consulta en Rd , p y p0 dos puntos en Rd , se dice que p domina p0 con respecto a W si
para todo wi ∈ W , D(p, wi ) 6 D(p0 , wi ) y para algún wj ∈ W , D(p, wj ) < D(p0 , wj ).
Denición 7 (Función de Distancia). Dada una consulta Q y un objeto espacial o, la
función de distancia D(Q.loc, o.loc) devuelve la distancia entre Q.loc y o.loc. El cálculo
de la distancia podría denirse en función de la distancia Euclidiana [9] y se denota como
Dε (Q.loc, o.loc).
Denición 8 (Función de Frecuencia). Dada una consulta Q y un objeto espacial o, la
función de frecuencia f (Q.keywords, o.doc) devuelve el promedio del número de veces que
un conjunto de palabras clave aparecen en un documento de texto asociado al objeto o.
22
Devuelve un valor en el intervalo [0, 1] en base a la frecuencia de palabras claves
encontradas en un documento de texto.
Denición 9 (Problema de Evaluación de Consultas Skyline Espacial Textual (ECSET )).
Dada una base de datos espacial textual O y una consulta Q, el problema de ECSET
consiste en hallar un subconjunto de O, tal que:
{∀o0 |o0 ∈ O : (¬∃o|o ∈ O : Dε (Q.loc, o.loc) 6 Dε (Q.loc, o0 .loc) ∧
f (Q.keywords, o.doc) > f (Q.keywords, o0 .doc) ∧
(Dε (Q.loc, o.loc) < Dε (Q.loc, o0 .loc) ∨
f (Q.keywords, o.doc) > f (Q.keywords, o0 .doc)))}
El problema de ECSET extiende el Skyline Espacial [40] dado que éste no considera
atributos textuales. El problema del Skyline Espacial Textual consiste en seleccionar un
subconjunto de objetos de una base de datos espacial textual, donde los objetos que
están en la respuesta son aquellos que no son dominados por otros objetos, en base a dos
dimensiones compuestas por una función de distancia y una función de frecuencia.
Una solución inicial al problema puede dividirse en tres partes, a saber: el cálculo de
la distancia entre las coordenadas espaciales de la consulta y todos los objetos, el cálculo
de la función de frecuencia de palabras claves en todas las descripciones de los objetos, y
posteriormente el cálculo del Skyline en base a los valores de las funciones ya computadas.
Sin embargo, este tipo de solución puede resultar costosa en tiempo [13], ya que se deben
evaluar las funciones en cada objeto y luego se deben comparar los objetos entre sí para
obtener la respuesta.
En este sentido, en este trabajo de grado se proponen tres técnicas que permiten
la evaluación de consultas Skyline Espacial Textual. Estas técnicas buscan disminuir el
cómputo de las funciones de distancia y frecuencia, así como el número de chequeos de
dominancia para determinar si un objeto es Skyline.
23
3.2 Justicación e importancia
La especicación de consultas Skyline en SQL se realiza a través de la cláusula
SKYLINE OF [8]. Sintácticamente, Skyline puede ser expresado como sigue:
SELECT ... FROM ... WHERE ...
GROUP BY ... HAVING ...
SKYLINE OF d1 [MIN | MAX | DIFF], ..., dm [MIN | MAX | DIFF]
Donde d1, ..., dm denotan las dimensiones o atributos del Skyline y las directivas
MIN, MAX y DIFF que indican si el atributo se desea minimizar, maximizar o agrupar,
respectivamente. Por ejemplo, la siguiente cláusula SKYLINE OF:
... SKYLINE OF d1 MAX, d2 MIN, d3 DIFF
Representa la maximización del valor del atributo d1, la minimización del valor del
atributo d2 y la y agrupación del Skyline por cada valor distinto del atributo d3.
Inicialmente, cada dimensión de la cláusula SKYLINE OF puede ser entero, real o fecha
[8]. Recientemente, el Skyline Espacial [40] permite que las dimensiones se correspondan
con funciones de distancia sobre coordenadas espaciales. Sin embargo, el paradigma Sky-
line no contempla casos como los planteados en el ejemplo de motivación, donde los objetos
espaciales son descritos mediante un documento de texto y se requiere incluir la relevancia
de palabras claves como parte de los criterios de la consulta del usuario. Así, en este
trabajo de grado, se introduce un nuevo tipo de consulta Skyline denominada Skyline Es-
pacial Textual que permite especicar dos tipos de criterio: un criterio de distancia y un
criterio de relevancia de palabras claves.
Por otra parte, en la literatura [8, 16, 22, 32] se han propuesto diversas técnicas
de evaluación de consultas Skyline. Estas técnicas pueden ser empleadas para evaluar
consultas Skyline Espacial Textual. Intuitivamente, una solución inicial sería calcular las
24
funciones de distancia y frecuencia por cada objeto espacial; y luego computar el Skyline
[8] basado en los valores de las funciones usando alguna de las técnicas de evaluación
de consultas Skyline existentes. Sin embargo, esta solución inicial tiene un alto costo
computacional por la evaluación de las funciones de distancia y frecuencia para todos los
objetos espaciales, y por el costo de evaluación del Skyline. En la Tabla 3.1 se presenta la
complejidad en tiempo para algunas de las técnicas de evaluación de consultas Skyline.
Algoritmo
Mejor Caso
Kung et al. [32]
O(dn log n)
Extensión de Kung et al. [8]
O(dn)
BNL [8]
O(dn)
SFS [16]
O(dn + n log n)
LESS [22]
O(dn)
Caso Promedio
√ - 2d
O( d2 n)
-
O(dn + n log n)
O(dn)
Peor Caso
O(n logd−2 n)
O(dn2 )
O(dn2 )
O(dn2 )
O(dn2 )
Tabla 3.1: Complejidad en tiempo de los algoritmos Skyline. Fuente: [22]
En la Tabla 3.2 se muestra un ejemplo del tamaño estimado del Skyline dado por
O(ln nd−1 ) para dos dimensiones d=2 y donde n es el número de tuplas de una tabla. A
medida que n aumenta se puede observar que, el tamaño estimado del Skyline también
aumenta y el porcentaje del tamaño estimado del Skyline con respecto al número de tuplas
es pequeño; resultando costoso recorrer todas las tuplas del conjunto de datos para sólo
obtener un subconjunto pequeño. Por ejemplo, para 100 tuplas sólo aproximadamente 5
son Skyline.
n Tamaño Estimado O(ln nd−1 ) (%) Tamaño Estimado
100
1000
10000
100000
1000000
10000000
4,605170186
6,907755279
9,210340372
11,51292546
13,81551056
16,11809565
4,6052
0,6908
0,0921
0,0115
0,0014
0,0002
Tabla 3.2: Tamaño estimado del Skyline.
Adicionalmente, se han realizado esfuerzos independientes en las áreas de Skyline
Espacial e Information Retrieval para proponer algoritmos que permitan evaluar consultas sin recorrer todos los datos. Para la evaluación de consultas Skyline Espacial se han
25
propuesto algoritmos como B 2 S 2 y V S 2 en [40]. El primero para evaluación de objetos
espaciales estáticos y el segundo para objetos espaciales móviles. En [14] además se introduce el algoritmo Distribuited Spatial Skyline (DSS) que computa el Skyline Espacial de
forma distribuida sobre redes de sensores inalámbricos. Todos estos algoritmos se enfocan
en el cálculo del Skyline Espacial sin considerar que los criterios pueden incluir funciones
sobre atributos textuales.
En el área de Information Retrieval, se han denido funciones como la función probabilística de [17] que determina la relevancia de palabras claves en documentos de texto.
No obstante, esta área se centra en la evaluación eciente de funciones de relevancia para
documentos textuales. En ambas áreas se ha estudiado el cálculo de estas funciones de
forma independiente; en este trabajo de grado se presentan soluciones al problema de
evaluación de consultas Skyline Espacial Textual, tomando en cuenta las áreas de Skyline
Espacial e Information Retrieval conjuntamente.
3.3 Objetivos
El objetivo general del trabajo de grado es: desarrollar técnicas que permitan resolver
el problema de evaluación de consultas Skyline Espacial Textual.
Objetivos Especícos
• Denir e implementar un algoritmo que permita evaluar consultas Skyline Espacial
Textual.
• Diseñar y llevar a cabo experimentos que permitan comprobar de forma empírica las
propiedades de la solución propuesta.
CAPÍTULO IV
TRABAJOS RELACIONADOS
La selección de puntos de interés en base a criterios de ubicación y frecuencia de
palabras claves en su descripción, se relaciona con problemas de las áreas de Information
Retrieval y consultas Skyline sobre objetos espaciales. Esta sección contempla trabajos
relacionados a estas áreas, presentando sus contribuciones y limitaciones.
Information Retrieval
El Information Retrieval [6] es una disciplina que se encarga de la búsqueda de información en documentos, contando con varias estrategias que permiten medir la similitud
entre una consulta y un documento o conjunto de documentos. Dentro de las estrategias
más comunes para recuperar información se tienen las descritas a continuación [23]. El
Vector Space Model, donde la consulta y cada documento son representados como vectores
en el espacio y se evalúa la similitud entre ambos vectores. El Probabilistic Retrieval,
donde la medida de similitud para los términos que se corresponden entre una consulta y
un documento se calcula como la combinación de las probabilidades de cada uno de los
términos. El Language Model, donde por cada documento se construye un modelo estadístico que asigna la probabilidad de que un documento corresponda con la consulta. Las
Inference Networks, que hacen uso de redes bayesianas para inferir la relevancia o coeciente de similitud de un documento con respecto a una consulta. El Boolean Indexing,
que computa la relevancia de un documento asignando un peso o score a cada término
de una consulta. Las Neural Networks, donde se tiene una secuencia de nodos en una
27
red que son activados a través de una consulta a los documentos; cada nodo devuelve un
peso o score que representa la similitud entre la consulta y un documento. Los Genetic
Algorithms, donde se genera una nueva consulta para encontrar documentos relevantes,
como una evolución de la consulta inicial. El Fuzzy Set Retrieval, donde un documento
corresponde a un conjunto difuso, y cada elemento del conjunto es asociado a un número,
que representa una función de membresía, la cual calcula el coeciente de similitud con
respecto a una consulta.
Las estrategias de Information Retrieval pueden ser usadas para la evaluación de
la función de frecuencia o relevancia de palabras claves en la descripción de un objeto
espacial, éste a su vez es uno de los criterios del nuevo tipo de consulta denominada
Skyline Espacial Textual, propuesta en este trabajo de grado. Particularmente en este
trabajo, la función de frecuencia está basada en la media, el cual devuelve el promedio del
número de veces que un conjunto de palabras clave aparecen en un documento de texto o
descripción textual de un objeto en el espacio.
Skyline y Objetos Espaciales
El paradigma Skyline, conocido también como curva de Pareto [8, 37] identica un
conjunto de objetos no dominados o incomparables entre sí, donde un objeto domina a
otro si y sólo si es mejor o igual en todos los criterios y es mejor en al menos uno de sus
criterios. Recientemente, ha existido interés sobre la extensión de Skyline que adiciona
atributos espaciales como lo es el Skyline Espacial [40].
Recientemente, varios trabajos de investigación [14, 29, 40] se han enfocado en los
aportes de Skyline Espacial para ltrar información en bases de datos espaciales [24].
En [40] se dene formalmente el paradigma Skyline Espacial, donde un punto domina
espacialmente a otro en base a la distancia. La diferencia entre el Skyline Espacial y el
Skyline tradicional radica en que la dominancia entre los objetos está dada en función
de la ubicación de puntos en el espacio. El Skyline Espacial [24] está denido sobre
múltiples dimensiones o múltiples criterios en base a distancia. En este sentido, se han
propuesto varios algoritmos como por ejemplo B 2 S 2 y V S 2 [40] para la evaluación de
28
objetos espaciales estáticos y objetos móviles, respectivamente.
En [29] se presenta un prototipo para dispositivos móviles con un pequeño manejador
de base de datos relacional que facilita la indexación de datos espaciales y la ejecución
de consultas Skyline Espacial. En dicho trabajo de investigación se extiende el Skyline
Espacial para incorporar atributos categóricos. Se presenta el algoritmo Spatial Skyline
with Preferences (SSP) basado en el algoritmo del vecino más cercano, el cual permite
ltrar información en base a los criterios de ubicación y preferencias de usuario. No
obstante, este enfoque sólo está limitado por el tamaño de la pantalla y las capacidades
de procesamiento de un dispositivo móvil.
Por otra parte, los autores en [14] proponen el algoritmo Distribuited Spatial Skyline
(DSS), que computa consultas Skyline Espacial de forma distribuida, especícamente sobre
redes de sensores inalámbricos. A diferencia de la evaluación de consultas Skyline Espacial
centralizada donde se supone la existencia de un conjunto de datos en espacio y tiempo,
el DSS computa la dominancia entre los objetos espaciales a través de la información que
provee la comunicación entre sensores.
En el contexto del Skyline Espacial Textual, éste se dene en base a dos dimensiones
que corresponden a distancia y frecuencia de palabras claves. La característica común de
los algoritmos mencionados anteriormente es que computan Skyline Espacial en diferentes
contextos. No obstante, ninguno de los algoritmos considera funciones sobre atributos
textuales que describen un punto en el espacio.
El cálculo del Skyline para dos dimensiones, o para un número pequeño de dimensiones, también ha sido un área donde se han propuesto varios algoritmos [30, 31, 34, 35].
Algunos trabajos se han enfocado en el cálculo del Skyline en función de subespacios o
división del conjunto de datos en subconjuntos [15, 20, 38, 41, 42]. Los autores de [34] presentan un algoritmo para calcular el Skyline con dos dimensiones basados en el paradigma
Divide y Conquistarás (D&C).
Adicionalmente en [31] presentan el algoritmo Nearest Neighbor for 2-Dimensional
Skylines (NN 2D) para objetos móviles que a diferencia de SSP computa Skyline de forma
29
on-line produciendo más y más resultados continuamente a medida que un objeto se
encuentra en movimiento, permitiendo al usuario obtener respuestas durante la ejecución
del algoritmo, sin tener que esperar a que el algoritmo nalice su ejecucion.
En el peor de los casos, algunos algoritmos para el cálculo del Skyline pueden producir
una complejidad cuadrática cuando el conjunto de datos es grande [22]. En [30] se propone
el algoritmo Sorted 2D-Skyline que computa el Skyline de forma eciente para grandes
cantidades de datos, dimensiones pequeñas y datos correlacionados, es decir puntos que
son buenos en todas las dimensiones.
Los algoritmos D&C, NN 2D y Sorted 2D-Skyline están relacionados a este trabajo
de grado dado que dichos algoritmos computan el Skyline para dimensiones pequeñas y
grandes cantidades de datos. En ese sentido, los algoritmos mencionados están pensados
para atributos almacenados y no para funciones denidas sobre los atributos.
Dado el reciente interés en el problema de ltrar infomación que se compone de una
ubicación espacial [26, 39], asociada a texto descriptivo [17, 18], se han propuesto soluciones basadas en otros paradigmas distintos al Skyline ; se han implementando algoritmos
basados en estructuras de datos como el R-tree [25], que permiten el manejo de datos
espaciales.
Considerando el paradigma de evaluación de consultas Top-k [11, 17] que produce
los mejores k entre un conjunto de objetos en base a la evaluación de una función de score,
en [17, 18] se toman en cuenta puntos en el espacio asociados a texto descriptivo. En
ambos trabajos se propone un framework que está en capacidad de devolver los primeros
k con respecto a la evaluación de una función de score, que podría ser la cercanía de un
punto en el espacio y la relevancia del texto descriptivo.
En [17] se proponen dos soluciones basadas en la estructura de datos R-Tree. La
primera solución es una estructura de datos híbrida llamada IR-Tree [33] que considera
un R-Tree [25] tradicional para indexar los datos espaciales, y la estructura de archivos
Inverted Files [43] para indexar de forma eciente la información textual. La segunda
solución es una estructura de datos denominada DIR-Tree que toma en cuenta la ubicación
30
e información textual durante la construcción de la estructura del R-Tree.
En [18] se propone el IR2 − T ree, una estructura de datos que se basa en la combinación de un R-Tree y una estructura de archivos; cada nodo de un IR2 − T ree contiene
la información espacial y la información de palabras claves.
Por otra parte, otros enfoques basados en el paradigma de Top-k [10, 28] proponen
algoritmos que ltran un número entero de k objetos que son cercanos a una ubicación y
que poseen una descripción textual que corresponde con un conjunto de palabras claves.
En [10] los autores proponen dos algoritmos, EBC y ES-EBC, ambos algoritmos son basados en PageRank [36] o prestigio, es decir un valor numérico que representa la importancia
de un objeto y sus objetos relacionados. Los autores se enfocan en ltrar los objetos en
base a una función combinada que se aplica sobre todos los objetos. La función combinada computa el score de una descripción textual en base a palabras claves, utilizando el
algoritmo personalizado PageRank, y la distancia entre todos los objetos con respecto a
el punto descrito en la consulta. La diferencia entre ambos algoritmos, es que el segundo
extiende al primero mediante el uso de una condición de parada basada en el orden de los
datos.
A pesar de que el paradigma del Top-k es un problema distinto al del Skyline, los algoritmos presentados en [10, 17, 18, 28] basados en el paradigma Top-k están relacionados
al problema planteado en este trabajo de grado dado que consideran la cercanía de objetos
espaciales y la relevancia de palabras claves que describen a un objeto en el espacio. Sin
embargo, una consulta Top-k requiere que se dena una función que combine la distancia
y la relevancia de palabras claves, mientras que la función en una consulta Skyline está
basada en la minimización y/o maximización de estos criterios. Adicionalmente, las consultas Top-k devuelven un número entero de objetos, mientras que Skyline produce todos
los objetos que cumplen con múltiples criterios igualmente relevantes. Por lo tanto, se
utiliza un enfoque distinto para resolver consultas como la presentada en el ejemplo de
motivación.
CAPÍTULO V
SOLUCIONES AL PROBLEMA DE
ECSET
En este capítulo se plantean tres posibles soluciones al problema de ECSET, donde las
dos primeras son extensiones de soluciones existentes y la última es la solución propuesta
en este trabajo de grado. Las tres soluciones emplean estructuras de datos basadas en
índices. La primera solución evita recorrer todos los datos, mediante una condición de
parada basada en el ordenamiento de los datos, mientras que la segunda solución reduce
comparaciones innecesarias entre elementos. Por último, la tercera es una solución híbrida
que unica las bondades de las dos soluciones anteriores.
Adicionalmente, para facilitar la comprensión de las soluciones desarrolladas, se explicará cada una de ellas a través de una extensión del ejemplo de motivación presentado
en el capítulo 1, considerando además los datos que se muestran en las tablas 5.1 y 5.2.
Playa Ubicación
A
B
C
D
E
F
G
I
(3,8)
(5,8)
(6,6)
(7,4)
(1,1)
(2,1)
(2,5)
(8,8)
Tabla 5.1: Ubicación
de cada playa.
Playa windsurf kitesurf comida deportes surf
A
B
C
D
E
F
G
I
4
2
5
0
6
2
2
2
3
2
2
0
6
2
2
2
3
2
3
0
3
2
3
3
5
0
5
0
6
0
5
5
0
3
2
5
1
3
1
5
Tabla 5.2: Descripción de cada playa.
Los datos de las tablas 5.1 y 5.2 ilustran, respectivamente, los puntos de ubicación
32
de un conjunto de playas (A,B,C,D,E,F,G,I), y el número de repeticiones de las palabras
que describen a cada playa, que a su vez pueden corresponder a una base de datos espacial
textual.
5.1 Solución basada en BDS
El algoritmo Basic Distributed Skyline (BDS) denido por Balke et al. en [7], fue
pensado para el cálculo del Skyline de forma distribuida para sistemas Web, utilizando
listas como estructuras de datos. El algoritmo BDS es presentado en el apéndice C de este
trabajo de grado. La primera solución al problema de ECSET supone el ordenamiento de
los datos. En ese sentido, se propone el uso de dos estructuras de datos independientes,
un R-Tree [25] y un Inverted File [43], que emplean índices para el manejo de los datos
espaciales y textuales, respectivamente.
En la primera solución se plantea un algoritmo para el cálculo del Skyline Espa-
cial Textual basado en Basic Distributed Skyline (BDS), de ahora en adelante llamado
SETBDS, el cual consta de dos fases. En la primera fase, se obtiene un superconjunto del
Skyline Espacial Textual dada una consulta. Dicho superconjunto se construye en función
del cálculo de las funciones de distancia y frecuencia sobre los objetos de cada índice, devolviendo los datos ordenados por distancia y por frecuencia hasta encontrar la condición
de parada, evitando así recorrer todos los datos. Luego, en la segunda fase son descartados
los elementos dominados del superconjunto. En las próximas secciones se construyen las
estructuras de datos a utilizar y se enuncia el algoritmo 1 que computa la solución basada
en BDS.
5.1.1
Estructuras de datos
En esta sección se construyen las estructuras de datos propuestas para el manejo de
índices en la solución basada en BDS, en función a cada objeto de las tablas 5.1 y 5.2.
33
En el caso de los datos espaciales se inserta sobre un R-Tree [25] la coordenada (X,Y) o
punto de ubicación de cada playa, como también para el caso de los datos textuales se
inserta sobre un Inverted File [43] las palabras que describen a cada playa y su número
de repeticiones. Ambas estructuras han sido propuestas para ser usadas en esta solución
dadas las características que presenta cada una, sin embargo otras estructuras de datos
podrían también ser utilizadas. En el caso del R-Tree permite el manejo de índices para
los datos espaciales, adicionalmente su recorrido puede devolver los objetos más cercanos
a una coordenada espacial. Para el caso del Inverted File, éste permite indexar los datos
textuales en base a palabras.
La gura 5.1 ilustra un ejemplo de la representación de un posible R-Tree. La imagen
(a) contiene la ubicación en un espacio bidimensional de las playas (A,B,C,D,E,F,G,I) de
la tabla 5.1; la imagen (b) representa las regiones o áreas mínimas {R1 , R2 , R3 , R4 } que
comprimen subconjuntos de playas, es decir la región R1 comprime el área mínima de la
ubicación de las playas (A,B,I), R2 comprime el área mínima de las playas (C,D,G), R3
comprime el área mínima de las playas (E,F) y R4 comprime el área mínima de las tres
regiones anteriores, y por último la imagen (c) muestra la representación de un R-Tree,
donde las regiones R1 ,R2 y R3 corresponden a los nodos hoja y la región R4 corresponde
al nodo raíz.
(a) Objetos en el espacio
(b) Regiones
(c) R-Tree
Figura 5.1: Representación de un posible R-Tree
La tabla 5.3, muestra un ejemplo de un posible Inverted File en base a los datos de
la tabla 5.2, donde por cada palabra que describe una playa se cuenta con una colección
34
de pares, y cada par contiene el número de repeticiones de la palabra y el identicador
de la playa. Por ejemplo, la palabra windsurf aparece en la descripción textual de siete
documentos, uno de ellos es el documento que describe a la playa A, apareciendo dicha
palabra cuatro veces en ese documento.
Palabras Repeticiones
windsurf
kitesurf
comida
deportes
surf
(A,4),(B,2),(C,5),(E,6),(F,2),(G,2),(I,2)
(A,3),(B,2),(C,2),(E,6),(F,2),(G,2),(I,2)
(A,3),(B,2),(C,3),(E,3),(F,2),(G,3),(I,3)
(A,5),(C,5),(E,6),(G,5),(I,5)
(B,3),(C,2),(D,5),(E,1),(F,3),(G,1),(I,5)
Tabla 5.3: Representación de un Inverted File.
5.1.2
Algoritmo
En esta sección se describe, a través de una serie de pasos, el algoritmo que computa
la primera solución al problema de ECSET, basada en BDS [7]. En dicho algoritmo se
considera el uso de índices dada la construcción de las estructuras de datos mencionadas
en la sección anterior.
En el paso 1 se inicializan en vacío dos superconjuntos, ambos superconjuntos pueden
almacenar tripletas de la forma (id, valor1 , valor2 ), donde id es el identicador de un objeto
y, valor1 y valor2 pueden ser valores de distancia o de frecuencia. El primer superconjunto
es denotado como Sd y almacena los valores de distancia y frecuencia en base al orden
de los valores de distancia. El segundo superconjunto es denotado como Sf y se emplea
para almacenar los valores de frecuencia y distancia en función al orden de los valores de
frecuencia.
En el paso 2 se recorren de forma parelela las dos estructuras de datos hasta que
se encuentre la condición de parada o nalice el recorrido de las estructuras. La función proxDist(R, Q) considera los datos almacenados en R y calcula el próximo objeto d
más cercano a la ubicación denida en la consulta Q. La función F rec(I, Q, d.id) toma en
cuenta los datos almacenados en I y devuelve la frecuencia de palabras claves con respecto
35
Algoritmo 1 Algoritmo SETBDS.
ENTRADA: R: R-Tree ; I : Inverted File ; Q: consulta Skyline Espacial Textual.
SALIDA: S : conjunto de objetos Skyline Espacial Textual.
1: INICIALIZAR:
Sd ← ∅;
Sf ← ∅;
2:
3:
MIENTRAS no encuentre un objeto nal y existan objetos en R o en I HACER
d ← proxDist(R, Q); f ← F rec(I, Q, d.id); Sd ← Sd ∪ (d.id, d.valor, f.valor);
f ← proxF rec(I, Q); d ← Dist(R, Q, f.id); Sf ← Sf ∪ (f.id, f.valor, d.valor);
MIENTRAS existan objetos con distancias iguales a d.id y existan objetos en R
HACER
d0 ← proxDist(R, Q); f 0 ← F rec(I, Q, d0 .id); Sd ← Sd ∪ (d0 .id, d0 .valor, f 0 .valor);
4:
MIENTRAS existan objetos con frecuencias iguales a f.id y existan objetos en I
HACER
f 0 ← proxF rec(I, Q); d0 ← Dist(R, Q, f 0 .id); Sf ← Sf ∪ (f 0 .id, f 0 .valor, d0 .valor);
5:
6:
7:
8:
Skyd ← skyline(Sd );
Skyf ← skyline(Sf );
S ← mezclar(Skyd , Skyf );
Devolver S .
a Q, dado el identicador del objeto de distancia, y luego se adicionan los valores al superconjunto de distancias. Análogamente, la función proxF rec(I, Q) produce el siguiente
objeto f con mejor valor de frecuencia de palabras claves con respecto a Q y la función
Dist(R, Q, f.id) devuelve el valor de distancia que corresponde al identicador del objeto
de frecuencia, y posteriormente se unen los valores al superconjunto de frecuencias.
Las tablas 5.4 y 5.5 corresponden a un ejemplo de los valores que pueden ser obtenidos
por las funciones proxDist(R, Q) y proxF rec(I, Q). La tabla 5.4 ilustra los valores de
distancia en orden ascendente y tabla 5.5 los valores de frecuencia en orden descendente.
Los valores de las tablas 5.4 y 5.5 son denominados en este trabajo de grado como
dominios de interés, los cuales pueden ser denidos como sigue:
Denición 10 (Dominio de Interés). Un dominio de interés D es un conjunto de pares
(i, v), donde i es el identicador de un objeto y v es un valor numérico.
El paso 2 considera el acceso secuencial tanto en R como en I hasta que se cumpla
36
Playa Distancia
Playas Frecuencia
Tabla 5.4: Valores de Distancias.
Tabla 5.5: Valores de Frecuencias.
D
C
F
G
E
B
I
A
2,2
3,2
3,6
3,6
4,5
5
5,1
5,4
E
A
C
G
I
B
F
D
6
3,5
3,5
3,5
3,5
2
2
0
la condición de parada, es decir hasta que se encuentre un objeto nal, el cual se dene
de la siguiente manera:
Denición 11 (Objeto Final). Sean D1 y D2 dominios de interés ordenados, respectivamente, en base a los valores de sus pares y ambos accedidos de forma secuencial. Un
objeto nal es el primer objeto encontrado cuyos identicadores de un par en D1 y D2 sean
iguales en un acceso, o cuando el identicador de un par en D1 o D2 haya sido accedido
antes.
Considerando como referencia las tablas 5.4 y 5.5, se toma el primer objeto de cada
lista y se comparan sus identicadores; como D es distinto de E, entonces se obtienen
la distancia y frecuencia correspondientes a cada objeto, agregando los valores de D a
un superconjunto de distancias y los valores de E a un superconjunto de frecuencias,
posteriormente se recorre el siguiente objeto.
En la segunda iteración se comparan los objetos identicados por C y A, donde
ocurre el mismo caso que en la iteración anterior.
En la tercera iteración, se comparan los identicadores F y C, como C fue accedido
antes, entonces se cumple la condición de parada, es decir el objeto identicado por C es un
objeto nal, por tanto se obtienen la distancia y frecuencia de cada objeto, y se agregan los
valores al superconjunto de distancias y al superconjunto de frecuencias, respectivamente;
así naliza el paso 2.
Las tablas 5.6 y 5.7 ilustran, respectivamente, el superconjunto de distancias y el
37
superconjunto de frecuencias una vez encontrado el objeto nal, dichos superconjuntos
contienen a su vez objetos candidatos a ser Skyline Espacial Textual.
Playa Distancia Frecuencia
D
C
F
2,2
3,2
3,6
0
3,5
2
Tabla 5.6: Superconjunto de Distancias.
Playas Frecuencia Distancia
E
A
C
6
3,5
3,5
4,5
5,4
3,2
Tabla 5.7: Superconjunto de Frecuencias.
En los pasos 3 y 4 se verica si existen objetos con valores de distancia o frecuencia
repetidos. Considerando el paso anterior, los últimos objetos accedidos fueron F y C.
El paso 3 compara el valor de distancia del objeto F con respecto al valor de distancia
del objeto G, donde G corresponde a la siguiente iteración de la tabla 5.4. Como el
valor de distancia de F y G son iguales, entonces se obtienen la distancia y frecuencia
correspondiente a G, se agregan los valores al superconjunto de distancias, y se procede a
la próxima iteración. En la siguiente iteración, se comparan los valores de distancias de
los objetos F y E, pero como dichos valores son distintas, entonces naliza el paso 3.
El paso 4 es análogo al paso 3, pero se realizan las comparaciones en función de
la frecuencia, es decir se compara el valor de la frecuencia del objeto C, con respecto
al objeto que corresponde a la siguiente iteración de la tabla 5.5, es decir el objeto G.
Como el valor de la frecuencia de C y G son iguales, entonces se obtienen la frecuencia y
distancia que corresponden a G, se agregan los valores al superconjunto de frecuencias, y
se accede al siguiente objeto. Lo mismo ocurre al comparar el objeto C con I, pero cuando
se compara C con B, el paso 4 naliza dado que los valores de frecuencia para cada objeto
son distintos. Los pasos 3 y 4 son necesarios ya que los objetos repetidos también podrían
dominar a otros objetos, aplicándose así el teorema de dominancia del objeto nal. La
demostración de dicho teorema se encuentra en el apéndice A.
Teorema 1 (Dominancia del Objeto Final). Cualquier objeto que se encuentre en una
posición posterior al objeto nal es dominado por el objeto nal.
Las tablas 5.8 y 5.9 representan los objetos que componen el superconjunto de distancias y el superconjunto de frecuencias una vez hallado el objeto nal y sus valores
38
repetidos en cada lista.
Playas Frecuencia Distancia
Playa Distancia Frecuencia
D
C
F
G
2,2
3,2
3,6
3,6
E
A
C
G
I
0
3,5
2
3,5
Tabla 5.8: Superconjunto de distancias.
6
3,5
3,5
3,5
3,5
4,5
5,4
3,2
3,6
5,1
Tabla 5.9: Superconjunto de frecuencias.
El paso 5 toma los elementos del superconjunto de distancias representados en la
tabla 5.8 y chequea la dominancia entre objetos. Se procede a tomar el objeto D, el cual
es el primero de la tabla, y se compara con el siguiente objeto del superconjunto, es decir
C ; como D posee menor distancia que C y la frecuencia de D es menor que la de C,
entonces ambos objetos son incomparables entre sí, es decir ninguno domina a otro en
función de distancia y frecuencia.
En la siguiente iteración, se compara el objeto F con respecto a los objetos anteriores,
esto es D y C. Al comparar D con F nótese que son objetos incomparables, dado que D
es más cercano, pero F tiene mayor frecuencia, entonces se procede a comparar C con
F, donde C posee menor distancia y mayor frecuencia que F. Por tanto el objeto F es
dominado por C, descartándolo así como un posible objeto Skyline Espacial Textual.
En la última iteración, se compara G con D y C. Los objetos D y G son incomparables, pero al comparar C y G nótese que C posee menor distancia y ambos objetos poseen
la misma frecuencia, en consecuencia C domina a G, eliminando a G de la respuesta. La
tabla 5.10 representa los objetos Skyline Espacial Textual del superconjunto de distancias.
Playa Distancia Frecuencia
D
C
2,2
3,2
0
3,5
Tabla 5.10: Objetos Skyline Espacial Textual.
El paso 6 es análogo al paso 5, pero verica la dominancia entre los objetos del
superconjunto de frecuencias visto en la tabla 5.9. Este paso se inicia tomando el primer
39
objeto de la tabla y comparándolo con el siguiente objeto, es decir los objetos E y A;
como E posee mayor frecuencia y menor distancia que A, entonces E domina al objeto
A, descartándolo de la respuesta. Luego, compara el objeto E con el C, los cuales son
incomparables dado que ninguno es mejor que otro en frecuencia y en distancia.
En la siguiente iteración se compara G con los objetos E y C. Al comparar E con
G se concluye que son incomparables, pero al comparar C con G, ambos tienen la misma
frecuencia pero C posee menor distancia que G, es decir el objeto G es dominado por C,
por lo tanto G no es considerado para estar en la respuesta.
En la última iteración se compara I con E y C. Al comparar E con I se tiene que I es
dominado por E, por ende no hace falta comparar con C, dado que E domina a I. La tabla
5.11 representa los objetos Skyline Espacial Textual del superconjunto de frecuencias.
Playas Frecuencia Distancia
E
C
6
3,5
4,5
3,2
Tabla 5.11: Objetos Skyline Espacial Textual.
En el paso 7 se realiza una mezcla de los objetos obtenidos en el cálculo del Skyline
en los pasos 5 y 6, es decir se toman los objetos resultantes del Skyline del superconjunto
de distancias y del superconjunto de frecuencias y se produce un sólo conjunto compuesto
por los objetos D, C y E. La tabla 5.12 muestra los objetos Skyline Espacial Textual de
la solución.
Playa Distancia Frecuencia
D
C
E
2,2
3,2
4,5
0
3,5
6
Tabla 5.12: Objetos Skyline Espacial Textual de la solución.
El paso 8 devuelve los objetos Skyline Espacial Textual, que produce el algoritmo 1,
al evaluar la consulta Q.
40
5.2 Solución basada en S2DS
El algoritmo Sorted 2D Skyline (S2DS) [30] fue denido para computar el Skyline
sobre dos dimensiones y grandes cantidades de datos, haciendo uso de estructuras de datos
tipo lista. El algoritmo S2DS es presentado en el apéndice C de este trabajo de grado. La
segunda solución al problema de ECSET requiere los datos ordenados en base a distancia,
por tanto se propone el uso de una estructura de datos conocida como IR-Tree, que utiliza
índices para el manejo de los datos espaciales y textuales en una misma estructura.
La segunda solución emplea un algoritmo para el cómputo del Skyline basado en
Sorted 2D Skyline (S2DS) [30], conocido de ahora en adelante como SETS2DS, el cual
recorre el IR-Tree para calcular las funciones de distancia y frecuencia, devolviendo los
datos ordenados en base a distancia. Posteriormente, se recorren todos los datos para
chequear la dominancia entre objetos, comparando solamente con los últimos objetos que
son considerados potencialmente Skyline, reduciendo el número de comparaciones dado
que se evita comparar objetos de forma innecesaria.
El algoritmo que se plantea en la solución basaba en S2SD posee ventajas, como por
ejemplo, la reducción del número de chequeos de dominancia, dado que no compara cada
objeto con todos los Skyline, solamente lo hace con los últimos objetos potenciales.
En la próxima sección se construye la estructura de datos a utilizar y se enuncia el
algoritmo 2 que computa la solución basada en Sorted 2D Skyline (S2DS).
5.2.1
Estructuras de datos
En esta sección se construye una estructura de datos conocida como IR-Tree [33] para
el manejo de índices en la segunda solución, en función a los objetos de las tablas 5.1 y 5.2.
Un IR-Tree es básicamente un R-Tree [25] que combina los datos espaciales y textuales al
mismo tiempo, donde cada nodo es enriquecido con un apuntador a un Inverted File [43],
que contiene datos textuales de los objetos que comprime espacialmente. El IR-Tree [33]
41
fusiona ambas estructuras de índices para obtener un mejor rendimiento en comparación
con el manejo de las estructuras de forma independiente. El IR-Tree es una estructura
de datos propuesta en esta solución por sus bondades para el manejo indexado de datos
espaciales y textuales; también es adecuada para el recorrido de la estructura para devolver
los objetos más cercanos a una coordenada espacial, lo cual devuelve los datos ordenados
en base a distancia. De igual forma, podrían ser utilizadas otro tipo de estructuras de
datos.
Considerando en la gura 5.1 las imágenes (a) y (b) de la solución anterior como
parte de la construcción del índice, la gura 5.2 representa un posible IR-Tree, donde los
nodos hoja están representados por las regiones R1 ,R2 y R3 , y el nodo raíz es representado
por la región R4 . A su vez, cada nodo o región posee un apuntador a un Inverted File que
se compone de las palabras que describen a los objetos que comprimen la región; por cada
palabra se cuenta con una colección de pares, y cada par contiene el número de repeticiones
de la palabra y el identicador del objeto, como es ilustrado a través de la tabla 5.13.
Figura 5.2: Representación de un posible IR-Tree
Palabras Inverted File 1 Inverted File 2 Inverted File 3 Inverted File 4
windsurf
kitesurf
comida
deportes
surf
(A,4),(B,2),(I,2)
(A,3),(B,2),(I,2)
(A,3),(B,2),(I,3)
(A,5),(I,5)
(B,3),(I,5)
(C,5),(G,2)
(C,2),(G,2)
(C,3),(G,3)
(C,5),(G,5)
(C,2),(D,5),(G,1)
(E,6),(F,2)
(E,6),(F,2)
(E,3),(F,2)
(E,6),(F,0)
(E,1),(F,3)
Tabla 5.13: Representación de varios Inverted File.
(R1 ,4),(R2 ,5),(R3 ,6)
(R1 ,3),(R2 ,2),(R3 ,6)
(R1 ,3),(R2 ,3),(R3 ,3)
(R1 ,5),(R2 ,5),(R3 ,6)
(R1 ,5),(R2 ,5),(R3 ,3)
42
5.2.2
Algoritmo
Esta sección describe, mediante una serie de pasos, el algoritmo que computa la
segunda solución al problema de ECSET, basada en S2DS. En dicho algoritmo se considera
el uso de índices, dada la construcción de la estructura de datos mostrada en la sección
anterior.
Algoritmo 2 Algoritmo SETS2DS.
ENTRADA: IR: IR-Tree ; Q: consulta Skyline Espacial Textual.
SALIDA: Un conjunto de objetos Skyline Espacial Textual.
1: INICIALIZAR:
Ls ← ∅;
Lp ← ∅;
2:
MIENTRAS existan objetos en IR HACER
3:
Devolver Ls .
Lo ← proxIguales(IR, Q);
L ← skyline(Lo , Lp );
IF L <> ∅ THEN Ls ← Ls ∪ L; Lp ← L;
En el paso 1 se inicializan en vacío dos listas. La primera se denota como Ls , la cual
se utiliza para almacenar los valores de distancia y frecuencia de los objetos no dominados
o Skyline de la solución. La segunda lista se denota como Lp , la cual almacena los valores
de distancia y frecuencia de los últimos objetos Skyline computados o también llamados
objetos potenciales.
En el paso 2 se recorren todos los datos espaciales y textuales contenidos en la
estructura de datos IR, para obtener los objetos más cercanos y la frecuencia de palabras
claves con respecto a la consulta Q. La función proxIguales(IR, Q) devuelve los próximos
objetos más cercanos y con igual valor de distancia, más el valor de frecuencia de palabras
claves de cada objeto, con respecto a Q, dichos objetos son almacenados en la lista de
objetos Lo . La función puede devolver una lista de varios objetos o una lista compuesta
por un único objeto, en el caso que no existan objetos con valores de distancia repetidos.
La función skyline(Lo , Lp ) se emplea para el chequeo de dominancia de la lista de
objetos Lo con respecto a los objetos potenciales que se encuentran en Lp . La función
produce una lista L de objetos que son incomparables entre sí, es decir que ninguno de
43
los objetos contenidos en L es mejor que otro en sus valores de distancia y frecuencia. Si
L no es vacía entonces sus objetos forman parte de la solución y a su vez, los objetos de
L se convierten en los siguientes objetos potenciales.
Considerando los datos del ejemplo presentado al principio del capítulo, la tabla
5.14 corresponde a los valores de distancia y frecuencia por cada objeto, que pueden ser
obtenidos de la estructura de datos IR.
Playas Distancia Frecuencia
D
C
F
G
E
B
I
A
2,2
3,2
3,6
3,6
4,5
5
5,1
5,4
0
3,5
2
3,5
6
2
3,5
3,5
Tabla 5.14: Valores de distancias y frecuencias
Aplicando las funciones del paso 2 del algoritmo, en el primer acceso se tiene que
el objeto obtenido por la función proxIguales(IR, Q) es el objeto identicado por D,
dado que no existen más objetos con el mismo valor de distancia. Luego, como Lp es
vacía entonces D es el único objeto incomparable, por lo tanto D forma parte de Ls y se
convierte en el próximo objeto potencial de Lp .
En el siguiente acceso se toma el objeto C y se compara con los objetos que mantiene
Lp , es decir D. Como C y D son no dominados o incomparables entre sí, entonces se agrega
C a Ls , y ahora C pasa a Lp dado que es el último objeto potencial accedido.
En el siguiente acceso se toman los objetos F y G dado que poseen el mismo valor
de distancia. Luego, se evalúa la dominancia de los objetos F y G con el último objeto
potencial, es decir C, como C domina a F y G entonces Ls y Lp se mantienen iguales.
En el próximo acceso se compara el objeto E con C ; como ambos objetos son incomparables entonces se agrega E a Ls , y a su vez E se convierte en el próximo objeto de
44
Lp . Ahora Ls cuenta con los objetos D, C y E, y Lp cuenta con el objeto E.
En el siguiente acceso se comparan B con E, como E domina a B tanto Ls como Lp
se mantienen iguales.
De igual manera los objetos I y A en los últimos accesos son dominados por el objeto
E, por tanto las listas Ls y Lp mantienen sus valores.
La tabla 5.15 ilustra el recorrido del paso 2 del algoritmo, donde por cada acceso
muestra los objetos más cercanos con igual valor de distancia, la lista de objetos Skyline
y la lista de objetos potenciales.
Playa Lista Skyline Lista Potencial
D
C
F, G
E
B
I
A
{D}
{D, C}
{D, C}
{D, C, E}
{D, C, E}
{D, C, E}
{D, C, E}
{D}
{C}
{C}
{E}
{E}
{E}
{E}
Tabla 5.15: Traza del cálculo del Skyline Espacial Textual.
El paso 3 devuelve los elementos de la lista Skyline, obteniendo los objetos D, C y
E. La tabla 5.16 muestra los objetos Skyline Espacial Textual de la solución.
Playa Distancia Frecuencia
D
C
E
2,2
3,2
4,5
0
3,5
6
Tabla 5.16: Objetos Skyline Espacial Textual de la solución.
5.3 Solución híbrida
La tercera solución al problema de ECSET requiere del orden de los datos. En ese
sentido se plantea el uso de un IR-Tree y un Inverted File como estructuras de datos, para
45
indexar datos espaciales y textuales.
La tercera solución es híbrida dado que combina las bondades de las dos soluciones
anteriores basadas en los algoritmos Basic Distributed Skyline (BDS) y Sorted 2D Skyline
(S2DS) [7, 30] para el cómputo del Skyline Espacial Textual. La solución híbrida consiste
en un nuevo algoritmo, llamado SETHíbrido, el cual representa la solución propuesta en
este trabajo de grado. Dicho algoritmo construye un superconjunto en base al cálculo de las
funciones de distancia y frecuencia hasta que encuentre un objeto nal, y al mismo tiempo
verica la dominancia comparando solamente con los últimos objetos que son considerados
potencialmente Skyline, reduciendo el número de comparaciones dado que evita comparar
objetos de forma innecesaria.
El algoritmo que se propone en la solución híbrida posee ventajas en comparación a la
primera y segunda solución descritas en las secciones anteriores. Sobre la primera solución
se tiene una ventaja en cuanto al chequeo de dominancia, dado que la solución híbrida solo
compara con los últimos objetos Skyline encontrados y no con todos los objetos, evitando
así comparaciones innecesarias. La primera solución podría resultar costosa en función
del tiempo cuando el tamaño del Skyline es grande, dado que tendría que realizar más
comparaciones que la solución híbrida. Con respecto a la segunda solución, la solución
híbrida posee una ventaja dado que evita recorrer todos los datos, esto es debido a que
sólo construye un superconjunto hasta encontrar un objeto nal. La segunda solución
podría ser costosa en función del tiempo al contar con grandes cantidades de datos. En
las próximas secciones se mencionan las estructuras de datos a utilizar y se enuncia el
algoritmo 3 que computa la solución híbrida.
5.3.1
Estructuras de datos
Para la solución híbrida se propone el uso de dos estructuras de datos. La primera
es un IR-Tree [33], la misma estructura para manejo de índices descrita en la solución
anterior, que permitirá el manejo de los datos espaciales y textuales. Adicionalmente, el
recorrido del IR-Tree está en capacidad de devolver los datos espaciales y textuales en base
46
a los objetos más cercanos a una coordenada espacial, devolviendo los datos ordenados
en función de la distancia, como también puede recuperar datos textuales o espaciales
dado un objeto. La segunda estructura de datos es un Inverted File [43], el cual fue
descrita como una de las estructuras de datos de la primera solución, sin embargo dicha
estructura de datos será utilizada solamente para obtener el orden de los identicadores
de los objetos en base a la frecuencia de palabras, dado un conjunto de palabras claves.
La solución híbrida utiliza el orden de los datos para producir la condición de parada del
algoritmo.
5.3.2
Algoritmo
Esta sección describe, a través de una serie de pasos, el algoritmo que computa la
tercera solución al problema de ECSET. En dicho algoritmo se considera el uso de las
estructuras de datos IR-Tree e Inverted File para el manejo de índices.
El paso 1 inicializa en vacío una lista Skyline y una lista potencial tanto para distancia como para frecuencia. La lista Skyline es empleada para mantener los objetos no
dominados o Skyline. La lista potencial es utilizada para mantener los últimos objetos potenciales o Skyline encontrados. La lista Skyline y la lista potencial en base a distancia se
denotan Lsd y Lpd , respectivamente. De igual manera, la lista Skyline y la lista potencial
en base a frecuencia se denotan Lsf y Lpf , respectivamente.
En el paso 2 se recorren de forma parelela las dos estructuras de datos hasta que
se encuentre la condición de parada o nalice el recorrido de las estructuras IR e I. La
tabla 5.17 corresponde a los valores de los objetos más cercanos y la frecuencia de palabras
claves con respecto a la consulta Q, que pueden ser obtenidos de la estructura de datos
IR, dichos valores son recuperados de la estructura de datos ordenados por los valores
de distancia, y la tabla 5.18 muestra los identicadores de los objetos ordenados por los
valores de frecuencia, obtenidos de la estructura de datos I.
La función proxIguales(IR, Q) devuelve los próximos objetos más cercanos y con
47
Algoritmo 3 Algoritmo SETHíbrido.
ENTRADA: IR: IR-Tree ; I : Inverted File ; Q: consulta Skyline Espacial Textual.
SALIDA: S : conjunto de objetos Skyline Espacial Textual.
1: INICIALIZAR:
Lsd ← ∅; Lpd ← ∅;
Lsf ← ∅; Lpf ← ∅;
2:
3:
MIENTRAS no encuentre un objeto nal y existan objetos en IR o en I HACER
Lod ← proxIguales(IR, Q);
Ld ← skyline(Lod , Lpd );
IF Ld <> ∅ THEN Lsd ← Lsd ∪ Ld ; Lpd ← Ld ;
Lof ← proxIguales(I, Q, IR);
Lf ← skyline(Lof , Lpf )
IF Lf <> ∅ THEN Lsf ← Lsf ∪ Lf ; Lpf ← Lf ;
MIENTRAS existan objetos con distancias iguales al último objeto de Lod y existan
objetos en IR HACER
L0od ← proxIguales(IR, Q);
Ld ← skyline(L0od , Lpd );
IF Ld <> ∅ THEN Lsd ← Lsd ∪ Ld ; Lpd ← Ld ;
4:
MIENTRAS existan objetos con frecuencias iguales al último objeto de Lof y existan
objetos en I HACER
L0of ← proxIguales(I, Q, IR);
Lf ← skyline(L0of , Lpf )
IF Lf <> ∅ THEN Lsf ← Lsf ∪ Lf ; Lpf ← Lf ;
5:
6:
S ← mezclar(Lsd , Lsf );
Devolver S .
igual valor de distancia, más el valor de frecuencia de palabras claves de cada objeto,
con respecto a Q, dichos objetos son almacenados en la lista de objetos Lod . La función puede devolver una lista de varios objetos o una lista compuesta por un único objeto, en el caso que no existan objetos con valores de distancia repetidos. La función
proxIguales(I, Q, IR) es una variante de la función anterior, la cual produce los próximos
objetos con mejor valor de frecuencia y el valor de distancia de cada objeto, con respecto
a Q. Los valores de frecuencia son obtenidos en base al orden de los objetos de I, y son
almacenados en la lista de objetos Lof .
La función skyline(Lod , Lpd ) se emplea para el chequeo de dominancia en función
de los valores de distancia, es decir la lista de objetos Lod con respecto a los objetos
potenciales que se encuentran en Lpd . La función produce una lista Lp de objetos que
48
Playas Distancia Frecuencia
D
C
F
G
E
B
I
A
2,2
3,2
3,6
3,6
4,5
5
5,1
5,4
0
3,5
2
3,5
6
2
3,5
3,5
Tabla 5.17: Lista de Distancias y Frecuencias.
Playas
E
A
C
G
I
B
F
D
Tabla 5.18: Identicadores de Frecuencias.
son incomparables entre sí, es decir que ninguno de los objetos contenidos en Lp es mejor
que otro en sus valores de distancia y frecuencia. Si Lp no es vacía entonces sus objetos
forman parte de la solución y a su vez, los objetos de Lp se convierten en los siguientes
objetos potenciales. De igual forma la función skyline(Lof , Lpf ) se aplica para el chequeo
de dominancia en función de los valores de frecuencia, devolviendo una lista Lf compuesta
de objetos incomparables.
El paso 2 considera el acceso secuencial tanto en IR como en I hasta que se cumpla
la condición de parada, es decir hasta que se encuentre un objeto nal. Aplicando las
funciones del paso 2 del algoritmo y los valores de las tablas 5.17 y 5.18, en el primer
acceso se tiene que el objeto obtenido por la función proxIguales(IR, Q) es el objeto
identicado por D, dado que no existen más objetos con el mismo valor de distancia.
Luego, como Lpd es vacía entonces D es el único objeto incomparable, por lo tanto D
forma parte de Lsd y se convierte en el próximo objeto potencial de Lpd . Paralelamente, la
función proxIguales(I, Q, IR) devuelve el objeto E, ya que no existen otros objetos con
el mismo valor. Por otra parte, omo Lpf es vacía entonces E forma parte de Lsf y es el
próximo objeto potencial de Lpf .
En el siguiente acceso, proxIguales(IR, Q) devuelve C, luego la función
skyline(Lod , Lpd ) evalúa al objeto C con respecto a D, como son incomparables entonces
C forma parte de la solución y a su vez es el próximo objeto potencial. Por otro lado,
proxIguales(I, Q, IR) devuelve los objetos A y C, encontrando así un objeto nal, es decir
49
el objeto C que ya fue visto anteriormente. Luego, la función skyline(Lof , Lpf ) chequea
la dominancia de los objetos con respecto a los objetos de Lpf , esto es A y C con E, donde
A es dominado por E y
C es incomparable, por tanto C
es parte de la solución y C pasa
a ser el objeto potencial.
En vista que la condición de parada fue encontrada al acceder el tercer objeto en
base a frecuencia, entonces también se debe considerar el tercer objeto con respecto a los
valores de distancia, es decir el objeto F. Luego, skyline(Lod , Lpd ) evalúa a F con respecto
a los objetos de Lpd , al comparar F con C se tiene que F es dominado por C, por tanto
Lsd y Lpd se mantienen iguales.
Las tablas 5.19 y 5.20 muestran el recorrido de la lista Skyline y potencial para
distancia y frecuencia, hasta cumplir la condición de parada.
Id Lista Skyline Lista Potencial
D
C
F
{D}
{D, C}
{D, C}
{D}
{C}
{C}
Tabla 5.19: Traza en base a distancia.
Id
E
A, C
Lista Skyline Lista Potencial
{E}
{E,
C}
{E}
{C}
Tabla 5.20: Traza en base a frecuencia.
En los pasos 3 y 4 se verica si existen objetos con valores de distancia o frecuencia
repetidos. Considerando el paso anterior, los últimos objetos accedidos fueron F y C.
En el paso 3 proxIguales(IR, Q) devuelve el objeto G, donde G corresponde al
próximo objeto con igual valor de distancia a F. Luego, skyline(Lod , Lpd ) evalúa a G con
los objetos de Lpd , esto es G y C, donde G es dominado por C. De esta manera, las listas
Lsd y Lpd no poseen cambios.
El paso 4 es análogo al paso 3, la función proxIguales(I, Q, IR) devuelve los objetos
G e I, dichos objetos corresponden a los próximos objetos con igual frecuencia con el último
objeto visto, es decir el objeto C. Por otra parte, skyline(Lof , Lpf ) evalúa la dominancia
de los objetos G e I con C, donde el objeto C domina tanto a G como a I, por tanto las
listas Lsf y Lpf no poseen cambios.
Las tablas 5.21 y 5.22 ilustran la continuación del recorrido de las listas Skyline y
50
potencial para distancia y frecuencia.
Id Lista Skyline Lista Potencial
D
C
F
G
{D}
{D, C}
{D, C}
{D, C}
{D}
{C}
{C}
{C}
Id
E
A, C
G, I
Tabla 5.21: Traza en base a distancia.
Lista Skyline Lista Potencial
{E}
{E, C}
{E, C}
{E}
{C}
{C}
Tabla 5.22: Traza en base a frecuencia.
En el paso 5 se mezclan los objetos de la lista Skyline tanto para distancia como
frecuencia, obteniendo los objetos D, C y E. La tabla 5.23 muestra los objetos Skyline
Espacial Textual de la solución.
Playa Distancia Frecuencia
D
C
E
2,2
3,2
4,5
0
3,5
6
Tabla 5.23: Objetos Skyline Espacial Textual de la solución.
El paso 6 devuelve los objetos Skyline Espacial Textual que produce el algoritmo 3
al evaluar la consulta Q.
En base a la técnica aplicada en la solución híbrida se enuncian a continuación el
siguiente teorema:
Teorema 2. Sea O = {o1 , o2 , .., on } un conjunto de objetos pertenecientes a una base
de datos, donde cada objeto de O está caracterizado por un conjunto de atributos A =
{a1 , a2 , .., an }. Sea Sky el conjunto de los objetos Skyline denidos sobre dos atributos ai
y aj , ambos pertenecientes al conjunto A. Sean o un objeto perteneciente a O y α una
relación de orden sobre los valores del atributo ai . Si el objeto o0 que se encuentra en la
posición |Sky| no domina a o y o no es dominado por ningún objeto o00 perteneciente a O
con o.ai = o”.ai , entonces o es Skyline.
La demostración del teorema se encuentran en el apéndice A de este trabajo de
grado.
CAPÍTULO VI
ESTUDIO EXPERIMENTAL DE LAS SOLUCIONES AL
PROBLEMA DE
ECSET
Con el objetivo de estudiar las propiedades de los datos al evaluar consultas Skyline
Espacial Textual, en este capítulo se describe un estudio experimental de los tres algoritmos
que dan solución al problema presentado en este trabajo de grado. El estudio experimental
se enfoca en el análisis de los datos y su tiempo de evaluación. Se espera que el experimento
muestre las condiciones sobre las cuales los algoritmos posean un mejor rendimiento en
función del tiempo.
6.1 Conguración del Experimento
En esta sección se explican los aspectos importantes de las propiedades de los
datos y consultas utilizados en el estudio experimental realizado sobre las tres soluciones
planteadas al problema de evaluación de consultas Skyline Espacial Textual.
Conjunto de Datos
En este estudio experimental se cuenta con tres conjuntos de datos, donde las tuplas
de cada conjunto se componen de una coordenada espacial y una descripción textual.
El primer conjunto de datos emplea datos reales facilitados por la empresa telefónica
CANTV, donde se cuenta con la ubicación de elementos de redes e información textual
52
de la conguración de cada elemento de red. El segundo utiliza datos independientes,
es decir los datos son generados aleatoriamente siguiendo una distribución uniforme. Y
por último, en el tercero se usan datos correlacionados, esto es cuando los datos son
buenos tanto en ubicación como en número de repeticiones de palabras, con respecto a
una consulta espacial textual. Por cada conjunto de datos se cuenta con las siguientes
cantidades de tuplas: 10.000, 100.000 y 1.000.000.
Los datos para el conjunto independiente y correlacionado fueron generados a través
de un programa Java, considerando los siguientes aspectos: una variación aproximada del
tamaño del Skyline entre 1% y 10% con respecto a la cantidad de tuplas del conjunto
de datos, número de palabras comprendidas en el intervalo [100, 300] por cada objeto, y
palabras repetidas entre 10% y 20%.
Características del Ambiente de Experimentación
El estudio experimental fue realizado en un servidor SunFire V440 con el sistema
operativo SunOS 5.10, dos procesadores Sparcv9 de 1.281 MHZ, 16 GB de memoria y
cuatro discos Ultra320 SCSI de 73 GB.
6.2 Métricas
Para el análisis de rendimiento de las soluciones propuestas en este trabajo de grado,
se estudiaron métricas tales como: tiempo de evaluación, número de comparaciones realizadas para vericar la dominancia entre objetos, memoria consumida (E/S), número de
objetos accedidos y tamaño del Skyline.
6.3 Experimento I
En esta sección se describe el estudio experimental desarrollado para la evaluación de consultas Skyline Espacial Textual usando los algoritmos SETBDS, SETS2DS
53
y SETHíbrido, considerando los conjuntos de datos descritos al inicio del capítulo y las
métricas presentadas en la sección anterior.
6.3.1
Objetivo
El objetivo del estudio experimental es comprobar el desempeño de los algoritmos
SETHíbrido, SETBDS y SETS2DS al evaluar consultas Skyline Espacial Textual, con
respecto a las métricas descritas en este capítulo.
6.3.2
Hipótesis
Dado que:
1. El algoritmo SETBDS puede evitar recorrer todos los datos por su condición de
parada.
2. El algoritmo SETS2DS sólo compara un objeto con los objetos potenciales.
3. El algoritmo SETHíbrido puede evitar recorrer todos los datos y compara sólo con
los objetos potenciales.
Entonces, se presentan las siguientes hipótesis:
•
(H1) Utilizando el algoritmo SETHíbrido, el tiempo de evaluación de una consulta
Skyline Espacial Textual debe ser menor en comparación al tiempo de evaluación de
los algoritmos SETBDS y SETS2DS.
•
(H2) Utilizando el algoritmo SETHíbrido, el número de comparaciones entre objetos
al evaluar una consulta Skyline Espacial Textual debe ser menor que las comparaciones que realizan los algoritmos SETBDS y SETS2DS.
54
•
(H3) Utilizando el algoritmo SETHíbrido, la cantidad de memoria utilizada al evaluar una consulta Skyline Espacial Textual con respecto a la aplicación de los algoritmos SETBDS y SETS2DS debe ser menor.
•
(H4) Utilizando el algoritmo SETHíbrido, el número de objetos accedidos al evaluar
una consulta Skyline Espacial Textual debe ser igual al número de objetos accedidos
con el algoritmo SETBDS, pero debe ser menor con respecto al número de objetos
accedidos, dada la aplicación del algoritmo SETS2DS.
6.3.3
Metodología Utilizada
En primer lugar, por cada conjunto de datos fueron considerados dos archivos de
texto plano, uno para manejar las coordenadas espaciales de cada objeto y otro archivo
para el manejo del documento que describe a cada objeto, compuesto a su vez por palabras,
y por cada palabra se cuenta con el número de veces que la misma aparece en el documento.
En segundo lugar, se implementaron los algoritmos SETBDS, SETS2DS y
SETHíbrido a través de programas elaborados en el lenguaje de programación Java.
Adicionalmente, se consideraron las estructuras de datos: R-Tree, IR-Tree e Inverted
File [25, 33, 43] como estructuras propuestas para el manejo de índices de los datos espaciales y textuales, más no fueron consideradas como parte de la evaluación de cada
solución, sólo fueron utilizadas para optimizar el acceso los datos, y así evitar la revisión
exhaustiva de los mismos.
Para el caso de las estructuras de datos R-Tree e IR-Tree [25, 33] fueron estudiadas
las librerias Java Spatial Index (JSI) y Java framework for geospatial solutions (deegree),
entre otras denidas en [1, 2, 4, 5], seleccionando la librería de código abierto presentada
en [2], dada la facilidad para extender su implementación. En el caso de la estuctura de
datos para el manejo de datos textuales se contempla una implemantación a través del
lenguaje de programación Java que emplea una estructura de Hashing anidada, contando
por cada palabra con un par (clave, valor), donde la clave es una palabra y el valor es a
55
su vez una colección de (clave, valor), siendo la clave el identicador del documento y el
valor representa el número de repeticiones de una palabra.
La librería extendida para el uso de la estructura R-Tree [2] considera como entrada
coordenadas espaciales de la forma (X,Y) y emplea el método de acceso basado en el
área o región mínima Minimal Bounding Rectangle (MBR). Además, organiza la colección
de objetos espaciales en forma de árbol con una jerarquía de nodos, donde los nodos
hoja contienen apuntadores a los datos y los nodos intermedios contienen el área o región
mínima que contiene a las sub-hojas. Todos los nodos hoja aparecen al mismo nivel. Bajo
la misma idea del R-Tree se implementó la estructura IR-Tree, la diferencia es que cada
nodo es vinculado con un apuntador a un Inverted File, que posee los datos textuales de
los objetos comprimidos en el área mínima.
En tercer lugar, fueron ejecutadas sobre cada conjunto de datos: reales, independientes y correlacionados un total de treinta consultas Skyline Espacial Textual. Las consultas
fueron generadas mediante un programa en Java distribuidas de la siguiente manera:
• Diez consultas con una coordenada espacial y un conjunto compuesto por una pala-
bra clave.
• Diez consultas con una coordenada espacial y un conjunto que consta de dos palabras
claves.
• Y por último, diez consultas con una coordenada espacial y un conjunto que posee
tres palabras claves.
Por otra parte, el procedimiento utilizado para la recolección de métricas se implementó en el código de cada algoritmo, la impresión del valor total de cada variable,
redireccionando la salida a un archivo de texto (logs ) por cada conjunto de datos y consulta
aplicada.
56
6.3.4
Análisis de Resultados Obtenidos
En esta sección se realiza un análisis de los resultados experimentales, considerando
la evaluación de diez consultas Skyline Espacial Textual y las métricas descritas anteriormente.
A continuación se muestran los resultados del análisis de diez consultas. Las consultas empleadas están compuestas por una coordenada espacial y tres palabras claves que
describen su ubicación. Los resultados experimentales para 20 consultas restantes compuestas por una coordenada espacial, una y dos palabras claves se muestran en el apéndice
B, dado que poseen un comportamiento similar.
La gura 6.1 muestra de forma gráca los resultados del tiempo de evaluación expresado en segundos de las tres soluciones desarrolladas en este trabajo de grado, para los
datos reales, independientes y correlacionados.
(a) Datos Reales
(b) Datos Independientes
(c) Datos Correlacionados
Figura 6.1: Tiempo de Ejecución
57
Las grácas 6.1(a), 6.1(b) y 6.1(c) corresponden a los datos ilistrados en las tablas
6.1, 6.2 y 6.3 respectivamente. El eje Y de cada gráca representa el promedio del tiempo
de ejecución sobre la evaluación de diez consultas Skyline Espacial Textual, y el eje X
representa el tamaño del conjunto de datos.
En las grácas 6.1(a), 6.1(b) y 6.1(c) se puede observar que para el conjunto de datos
real el comportamiento es diferente en comparación con los otros conjuntos de datos,
donde la solución SETS2DS muestra un mayor consumo de tiempo con respecto a las
otras dos soluciones. En promedio, las soluciones SETBDS y SETHíbrido representan un
aproximado de 3,5% y 1,9% del consumo de tiempo en comparación con SETS2DS.
Adicionalmente, se puede observar que las soluciones SETBDS y SETHíbrido presentan menor consumo de tiempo. Esto se debe a que ambas soluciones emplean una
condición de parada, evitando así reccorrer todos los datos como es el caso de la solución
SETS2DS.
Por otra parte, en las grácas 6.1(b) y 6.1(c) el comportamiento para los conjuntos de
datos independiente y correlacionado es parecido. A diferencia de los resultados mostrados
en la gráca 6.1(a), la solución SETBDS muestra mayor consumo de tiempo en ambos
conjuntos de datos. Para el conjunto de datos independiente, en promedio se tiene que
SETS2DS y SETHíbrido representan un aproximado de 68,9% y 40,6% del consumo de
tiempo de SETBDS. Mientras que para el conjunto de datos correlacionado, las soluciones
SETS2DS y SETHíbrido representan un 62,8% y 34,1% respectivamente, con respecto al
tiempo requerido por SETBDS.
Para los datos independientes y correlacionados se puede observar que el consumo
de tiempo empleado por SETBDS es mayor con respecto a las otras soluciones, porque a
medida que incrementa el tamaño del Skyline entonces aumenta el número de comparaciones, haciendo que incremente el consumo de tiempo en su evaluación. En el caso de
la solución SETS2DS los tiempos son similares en los tres conjuntos de datos, dado que
independientemente del tamaño del Skyline esta solución recorre todos los datos.
Por otra parte, la solución SETHíbrido muestra el menor consumo de tiempo en la
58
evaluación sobre los tres conjuntos de datos, esto ocurre dado que SETHíbrido posee una
condición de parada, que evita recorrer todos los datos y sólo realiza las comparaciones
de dominancia que son necesarias, conrmando así la hipótesis planteada en (H1).
Conjunto de datos
SETBDS
SETS2DS
SETHíbrido
10.000
0,01497
0,07300
0,00746
100.000
0,15482
2,48300
0,09193
1.000.000
0,38527
13,25400
0,21420
Promedio
0,18502
5,27000
0,10453
Tabla 6.1: Tiempo de Evaluación Promedio para el Conjunto de Datos Reales.
Conjunto de datos
SETBDS
SETS2DS
SETHíbrido
10.000
0,19000
0,07500
0,00469
100.000
5,06500
2,60000
1,57810
1.000.000
16,38000
12,23000
7,20180
Promedio
7,21167
4,96833
2,92820
Tabla 6.2: Tiempo de Evaluación Promedio para el Conjunto de Datos Independientes.
Conjunto de datos
SETBDS
SETS2DS
SETHíbrido
10.000
0,23000
0,07000
0,00470
100.000
5,10000
2,54000
1,69020
1.000.000
23,10200
15,25600
8,00120
Promedio
9,47733
5,95533
3,23203
Tabla 6.3: Tiempo de Evaluación Promedio para el Conjunto de Datos Correlacionados.
La gura 6.2 está compuesta por tres grácas. Las grácas 6.2(a), 6.2(b) y 6.2(c)
corresponden a los conjuntos de datos reales, independientes y correlacionados mostrados
en las tablas 6.4, 6.5 y 6.6, respectivamente. El eje Y representa el número de comparaciones ejecutadas para vericar la dominancia entre objetos por cada una de las soluciones,
y el eje X corresponde al tamaño del conjunto de datos.
Para las tres grácas 6.2(a), 6.2(b) y 6.2(c) se puede notar que el número de comparaciones va incrementando a medida que el tamaño del Skyline aumenta. En el caso de
los datos reales, se tiene que en promedio la solución SETS2DS posee mayor número de
comparaciones entre objetos que las soluciones SETBDS y SETHíbrido, donde SETBDS
representa en promedio un aproximado de 79,7% en base al número de comparaciones que
59
(a) Datos Reales
(b) Datos Independientes
(c) Datos Correlacionados
Figura 6.2: Número de Comparaciones
ejecuta SETS2DS para este conjunto de datos, mientras que el número de comparaciones
que realiza SETHíbrido representa un 19,8% en comparación con SETS2DS.
Sin embargo, cuando el tamaño del Skyline se hace más grande se tiene que el número
de comparaciones para la solución SETBDS incrementa, convirtiéndose en la solución con
mayor número de comparaciones. En el caso de la solución SETS2DS se mantiene el mismo
número de comparaciones dado que esta solución recorre todos los datos, representando
en promedio un 0,072% con respecto a SETBDS. Para la solución SETHíbrido se tiene
que el número de comparaciones es menor que el de las otras soluciones, representando en
promedio un 0,015% con respecto a SETBDS.
Por otra parte, para los datos correlacionados la situación es parecida al de los datos
independientes. La solución SETBDS posee el mayor número de comparaciones, representando un 0,054% para la solución SETS2DS y un 0,016% para la solución SETHíbrido
60
sobre el total de comparaciones que ejecuta SETBDS.
Por lo tanto, para los tres conjuntos de datos se tiene que la solución SETHíbrido
ejecuta menos comparaciones entre objetos que las soluciones SETBDS y SETS2DS. Esto
ocurre dado que SETHíbrido emplea una condición de parada que permite recorrer menos
datos y compara solamente contra los últimos objetos no dominados que hayan sido encontrados, aanzando así la hipótesis (H2). También se puede observar que para SETS2DS
el número de comparaciones es constante, debido a que recorre todos los datos, sin embargo esto podría ser costoso en función de tiempo si se consideran grandes cantidades de
datos. Asimismo, la solución SETBDS podría ser costosa en función del tiempo, cuando
el tamaño del Skyline es grande, dado que tendría que ejecutar muchas comparaciones.
Conjunto de datos
SETBDS
SETS2DS
10.000
14705
9999
SETHíbrido
2458
100.000
276732
99999
34871
1.000.000
593245
999999
182373
Promedio
294894
369999
73234
Tabla 6.4: Número de Comparaciones Promedio para el Conjunto de Datos Reales.
Conjunto de datos
SETBDS
SETS2DS
10.000
279712
9999
SETHíbrido
2904
100.000
15666057
99999
45110
1.000.000
1517890319
999999
187308
Promedio
511278696
369999
78441
Tabla 6.5: Número de Comparaciones Promedio para el Conjunto de Datos Independientes.
Conjunto de datos
SETBDS
SETS2DS
10.000
68821
9999
SETHíbrido
2390
100.000
13002648
99999
34871
1.000.000
2032276510
999999
293009
Promedio
681782660
369999
110090
Tabla 6.6: Número de Comparaciones Promedio para el Conjunto de Datos Correlacionados.
La imagen 6.3 muestra las grácas grácas 6.3(a), 6.3(b) y 6.3(c) corresponden a los
conjuntos de datos reales, independientes y correlacionados ilustrados en las tablas 6.7,
6.8 y 6.9, respectivamente. El eje Y corresponde a la cantidad de memoria utilizada en la
61
evaluación de las tres soluciones empleadas en este trabajo de grado, y el eje X representa
el tamaño del conjunto de datos.
(a) Datos Reales
(b) Datos Independientes
(c) Datos Correlacionados
Figura 6.3: Cantidad de Memoria Utilizada
Para los datos reales representados a través de la gráca 6.3(a), se puede observar
que el comportamiento de las soluciones es distinto al que presentan las grácas 6.3(b)
y 6.3(c). En promedio la solución que presenta mayor uso de memoria es SETS2DS,
dado que dicha solución recorre todos los datos. Las soluciones SETBDS y SETHíbrido
presentan menor uso de memoria en comparación a SETS2DS, representando un 62,7%
y 27,4% respectivamente, esto ocurre debido a que el tamaño del Skyline es pequeño y
en consecuencia el número de comparaciones entre objetos también es pequeño para este
conjunto de datos. Adicionalmente, las soluciones SETBDS y SETHíbrido emplean una
condición de parada, lo que evita recorrer todos los datos y hace que los algoritmos sean
menos costosos en función del uso de memoria.
Por otra parte, los resultados de los datos independientes y correlacionados ilustrados
62
en las grácas 6.3(b) y 6.3(c) presentan un comportamiento similar. En el caso de los
datos independientes, se tiene que la solución SETBDS hace mayor uso de memoria en
comparación a las otras soluciones, contando en promedio con un 54,2% para SETS2DS
y un 33,5% para SETHíbrido sobre el uso promedio de SETBDS. De la misma forma para
el caso de los datos correlacionados, donde la solución SETBDS presenta el mayor uso de
memoria, mientras que las soluciones SETS2DS y SETHíbrido corresponden a un 57,9%
y un 34,4% respectivamente sobre el total de memoria utilizado por la solución SETBDS.
La razón del mayor uso de memoria se debe al incremento de comparaciones que ejecuta
SETBDS a medida que el tamaño del Skyline aumenta.
Para los tres conjuntos de datos, la solución SETHíbrido posee el menor uso de
memoria, donde este hecho conrma la hipótesis (H3). Seguido por SETS2DS, esta
solución puede resultar costosa en función del uso de la memoria y el tiempo cuando se
manejan grandes cantidades de datos. Por último, SETBDS puede producir un alto uso
de memoria y de tiempo cuando incrementa el tamaño del Skyline y la cantidad de datos.
Conjunto de datos
SETBDS
SETS2DS
SETHíbrido
10.000
321738
420138
229394
100.000
1623942
1592893
602884
1.000.000
2128343
4483238
945242
Promedio
1358008
2165423
592507
Tabla 6.7: Uso de Memoria Promedio para el Conjunto de Datos Reales.
Conjunto de datos
SETBDS
SETS2DS
SETHíbrido
10.000
1990746
530129
195938
100.000
3544987
1665701
1298324
1.000.000
5503958
3793201
2201923
Promedio
3679897
1996344
1232062
Tabla 6.8: Uso de Memoria Promedio para el Conjunto de Datos Independientes.
Conjunto de datos
SETBDS
SETS2DS
10.000
1838495
378411
SETHíbrido
201023
100.000
3122908
1583041
1004823
1.000.000
5837401
4294381
2504911
Promedio
3599601
2085278
1236919
Tabla 6.9: Uso de Memoria Promedio para el Conjunto de Datos Correlacionados.
63
En la gura 6.4 se ilustra las grácas 6.4(a), 6.4(b) y 6.4(c), que corresponden a
los conjuntos de datos reales, independientes y correlacionados presentados en las tablas
6.10, 6.11 y 6.12, respectivamente. El eje Y de las grácas muestran la cantidad promedio
de objetos accedidos para las soluciones SETBDS, SETS2DS y SETHíbrido, y el eje X
representa el tamaño del conjunto de datos.
En las tres grácas se puede observar que poseen un comportamiento similar para
los tres conjuntos de datos. En el caso de las soluciones SETBDS y SETHíbrido se
tiene el mismo número de objetos accedidos, dado que ambas soluciones utilizan la misma
condición de parada basada en el orden de los datos. Sin embargo, para el caso de la
solución SETS2DS se tiene que la cantidad de objetos accedidos es igual al tamaño del
conjunto de datos, dado que dicha solución recorre todos los datos. Para las soluciones
SETBDS y SETHíbrido la cantidad de objetos vistos corresponde en promedio a un 23,5%
sobre el total de los datos. De esta manera se conrma la hipótesis (H4).
(a) Datos Reales
(b) Datos Independientes
(c) Datos Correlacionados
Figura 6.4: Cantidad de Objetos Vistos
64
A continuación se muestran tres tablas, que representan la cantidad promedio de
objetos accedidos por cada conjunto de datos y por cada solución.
Conjunto de datos
SETBDS
SETS2DS
10.000
2459
10000
SETHíbrido
2459
100.000
34872
100000
34872
1.000.000
182374
1000000
182374
Promedio
73235
370000
73235
Tabla 6.10: Promedio de Objetos Accedidos para el Conjunto de Datos Reales.
Conjunto de datos
SETBDS
SETS2DS
10.000
2905
10000
SETHíbrido
2905
100.000
45111
100000
45111
1.000.000
187309
1000000
187309
Promedio
78442
370000
78442
Tabla 6.11: Promedio de Objetos Accedidos para el Conjunto de Datos Independientes.
Conjunto de datos
SETBDS
SETS2DS
10.000
2391
10000
SETHíbrido
2391
100.000
34872
100000
34872
1.000.000
293010
1000000
293010
Promedio
110091
370000
110091
Tabla 6.12: Promedio Objetos Accedidos para el Conjunto de Datos Correlacionados.
6.4 Tamaño del Skyline
En esta sección se ilustra mediante la gura 6.5 las grácas 6.5(a), 6.5(b) y 6.5(c),
que corresponden a los conjuntos de datos reales, independientes y correlacionados de la
tabla 6.13, respectivamente. El eje Y de las grácas representa el tamaño del Skyline, y
el eje X representa el tamaño del conjunto de datos.
Para cada conjunto de datos se puede notar que el tamaño del Skyline varía. En el
caso de los datos reales, el tamaño del Skyline representa en promedio un 0,16% sobre el
total de los datos, para el caso de los datos independientes un 4,6%, mientras que para los
datos correlacionados se tiene un 5,1%.
65
(a) Datos Reales
(b) Datos Independientes
(c) Datos Correlacionados
Figura 6.5: Tamaño del Skyline
Adicionalmente, se puede observar que a medida que se incrementa el tamaño del
Skyline se produce un impacto sobre las métricas: número de comparaciones, uso de
memoria y tiempo de ejecución. En este sentido, la solución más afectada es SETBDS dado
que dicha solución compara cada objeto Skyline con los objetos no dominados que ya han
sido encontrados, teniendo que realizar mayor número de comparaciones; en consecuencia
se incrementa el uso de la memoria y el tiempo de ejecución.
Por otra parte, la solución SETS2DS es ligeramente afectada en función de las métricas nombradas anteriormente, dado que esta solución recorre todos los datos independientemente del tamaño del Skyline, teniendo en promedio un comportamiento que tiende a
ser uniforme.
Por último, la solución SETHíbrido también presenta una variación a medida que
incrementa el tamaño del Skyline. Sin embargo, el impacto sobre el número de compara-
66
ciones, uso de memoria y tiempo de ejecución no es tan grande como en el caso de SETBDS,
dado que la solución evita comparar en forma innecesaria con todos los objetos no dominados, y solamente se compara con los últimos objetos no dominados; adicionalmente no
recorre todos los datos como lo hace la solución SETS2DS.
Conjunto de datos
Datos reales
Datos independientes
10.000
157
653
Datos correlacionados
365
100.000
696
3981
3125
1.000.000
910
45943
53042
Promedio
588
16859
18844
Tabla 6.13: Promedio del Tamaño del Skyline.
CAPÍTULO VII
CONCLUSIONES Y TRABAJO FUTURO
El aporte de este trabajo de grado se enfoca en la denición de un nuevo tipo de
consulta Skyline, la cual ha sido denominada en este trabajo Skyline Espacial Textual, y
en el desarrollo de tres soluciones, que permiten la evaluación de este tipo de consultas.
Dichas soluciones permiten obtener los objetos en base a su cercanía a la ubicación del
usuario y frecuencia de palabras clave que describen a los objetos.
Los algoritmos para la evaluación de consultas Skyline Espacial Textual presentados
en este trabajo de grado son algoritmos basados en índices. Las dos primeras soluciones
fueron adaptadas en base a algoritmos existentes, que computan el Skyline. Sin embargo,
para la tercera solución se propuso un nuevo algoritmo, que unica las bondades de las
propiedades empleadas en la primera y segunda solución, obteniendo como resultado una
solución híbrida.
La primera solución es una extensión del algoritmo Basic Distributed Skyline (BDS)
denido por Balke et al. en [7], compuesta por dos fases. Una fase para el cálculo de las
funciones de distancia y frecuencia de palabras claves sobre un subconjunto de los datos,
y otra fase para descartar los elementos dominados. Dicho algoritmo utiliza el orden de
los datos para la aplicación de una condición de parada, que permite computar el Skyline
en un subconjunto de los datos de entrada, sin recorrerlos todos.
La segunda solución es una extensión del algoritmo Sorted 2D Skyline (S2DS) [30],
el cual recorre los datos ordenados por distancia utilizando un R-Tree. Este algoritmo
68
aprovecha el orden de los datos para realizar el chequeo de dominancia, comparando únicamente con los últimos objetos que son considerados potencialmente Skyline, justamente
para evitar comparaciones innecesarias.
La tercera solución representa un nuevo algoritmo híbrido, que se basa en los algoritmos Basic Distributed Skyline (BDS) y Sorted 2D Skyline (S2DS), empleados en la
primera y segunda solución, respectivamente. Dicho algoritmo considera las bondades de
cada algoritmo y sus propiedades para producir una solución unicada, teniendo ventajas
sobre las dos primeras soluciones. La solución híbrida utiliza el orden de los datos para
aplicar una condición de parada que le permite recorrer solamente un subconjunto de los
datos de entrada y al mismo tiempo se verica la dominancia entre los objetos empleando
sólo los últimos objetos que son Skyline.
Finalmente, los resultados del estudio experimental muestran que la solución híbrida
posee el menor tiempo de ejecución en comparación a las otras soluciones, esto se debe
a que la solución no recorre exhaustivamente todos los datos y tampoco compara con
todos los objetos. Considerando lo anteriormente expuesto, se puede decir que la solución
híbrida posee un mejor comportamiento con respecto a las otras soluciones, en cuanto al
número de comparaciones y uso de memoria, cuando el tamaño del Skyline aumenta.
En este trabajo de grado se presentan tres soluciones al problema de evaluación de
consultas Skyline Espacial Textual. Sin embargo, podrían existir variaciones de ese tipo
de consultas que aún no cuentan con una solución, y que pueden ser extendidas a través
de trabajos futuros.
Desde el punto de vista textual, uno de los criterios bajo el cual está denida una
consulta Skyline Espacial Textual es una función de frecuencia, que permite obtener la
relevancia de un documento en base a palabras clave que aparecen en el mismo. Una
variante de este tipo de consultas podría implementar otro tipo de funciones, donde se
considere que un objeto en el espacio puede estar descrito en base a varios documentos y
no solamente en un documento.
Adicionalmente, en este trabajo de grado se considera que el documento que describe
69
a un objeto se encuentra en un repositorio centralizado y siempre está disponible. Otra
posibilidad para extender la función de frecuencia sería considerar varios documentos almacenados de forma distribuida, y tomar en cuenta parámetros que ayuden a determinar
la calidad de la fuente, como por ejemplo: disponibilidad, completitud de la información
y tiempo de respuesta de la fuente, entre otras.
En las consultas Skyline Espacial Textual la función de frecuencia computa el promedio de palabras claves que contiene un documento para producir un valor de relevancia, sin
embargo se podrían considerar otras técnicas de recuperación de información en función
de las características del documento, como por ejemplo: títulos, secciones y demás componentes de un documento. También, se podría tomar en cuenta técnicas de recuperación
de información basadas en paradigmas que devuelven un valor de score, tal como Top-k
[10, 11, 17, 28].
Por otra parte, desde el punto de vista espacial, el otro criterio que dene una
consulta Skyline Espacial Textual está compuesto por una función de distancia que produce
un valor de cercanía entre dos puntos. En este trabajo de grado fue considerada la distancia
Euclidiana. Sin embargo, dicha función podría ser extendida para evaluar la distancia entre
dos puntos considerando la forma de la vialidad en el espacio y no solamente la distancia
en línea recta. En ese mismo sentido, la función de distancia podría también considerar
multiples distancias. Adicionalmente, también podrían ser considerados otros operadores
espaciales como los descritos en el marco teórico.
En este trabajo de grado se describe una consulta Skyline Espacial Textual tomando
en cuenta la distancia entre dos puntos jos, otro trabajo futuro que podría extender dicha
consulta, sería la incorporación de la movilidad del usuario.
REFERENCIAS
[1] Data Structures
and Algorithms.
https://github.com/rweeks/util.
http:
//www.java2s.com/Open-Source/Java-Document/GIS/deegree/
org.deegree.io.rtree.htm.
[2] deegree
-
Java
Framework
For
Geospatial
[3] Isla de Margarita Nueva Esparta - Venezuela.
[4] Java
Spatial
Index
-
(JSI)
Project.
projects/jsi/.
[5] R-tree Portal.
Solutions.
http://maps.google.es.
http://sourceforge.net/
http://www.rtreeportal.org.
[6] R. BAEZA-YATES and B. RIBEIRO-NETO. Modern Information Retrieval. 1999.
[7] W-T. BALKE, U. GUNTZER, and J. ZHENG.
Ecient distributed
Proceedings of the International
Conference on Extending Database Technology (EDBT), pages 256273,
skylining for web information systems. In
2004.
[8] S. BORZONYI, D. KOSSMAN, and K. STOCKER. The skyline opera-
Proceedings of the International Conference on Data Engineering
(ICDE), pages 421430, 2001.
tor. In
[9] H. BREU, J. GIL, D. KIRKPATRICK, and M. WERMAN. Linear time
Euclidean distance transform algorithms. In
Pattern Analysis and Ma-
chine Intelligence, IEEE Transactions on, pages 529533, 2002.
[10] X. CAO, G. CONG, and C. S. JENSEN. Retrieving top-k prestige-based
71
relevant spatial web objects. In
VLDB, pages 373384, 2010.
[11] M. CAREY and D. KOSSMAN. On Saying Enough already! in SQL. In
Proceedings of the ACM SIGMOD Conference on Management of Data,
pages 219230, 1997.
[12] C. Y. CHAN, V. JAGADISH, K-L. TAN, A. K. H. TUNG, and
Proceedings of International
Conference on Extending Database Technology (EDBT), pages 478495,
Z. ZHANG. On high dimensional skylines. In
2006.
[13] S. CHAUDHURI, N. N. DALVI, and R KAUSHIK. Robust Cardinality
Proceedings of the International Conference on Data Engineering (ICDE), pages 6465, 2006.
and Cost Estimation for Skyline Operator. In
[14] L. CHEN and X. LIAN.
Distributed spatial skyline query processing
Proceedings of the 2009 International
Conference on Information Processing in Sensor Networks, pages 375
in wireless sensor networks.
In
376, 2009.
[15] L. CHEN and X. LIAN. Dynamic skyline queries in metric spaces. In
Proceedings of the 12th International Conference on Extending Database
Technology: Advances in Database Technology, 2009.
[16] J. CHOMICKI, P. GODFREY, J. GRYZ, and D. LIANG. Skyline with
Proocedings of the International Conference on Data Engineering (ICDE), pages 717719, 2003.
presorting. In
[17] G. CONG, C. S. JENSEN, and D. WU. Ecient Retrieval of the Top-k
Most Relevant Spatial Web Objects.
dowment, pages 337348, 2009.
In
Proceedings of the VLDB En-
[18] I. DE FELIPE, V. HRISTIDIS, and N. RISHE.
spatial databases. In
Keyword search on
ICDE, pages 656665, 2008.
[19] M. J. EGENHOFER. Spatial sql: A query and presentation language. In
IEEE Transactions on Knowledge and Data Engineering,
1994.
pages 8695,
72
[20] D. FUHRY, R. JIN, and D. ZHANG. Ecient skyline computation in
Proceedings of the 12th International Conference on
Extending Database Technology: Advances in Database Technology, pages
metric space.
In
10421051, 2009.
[21] V. GAEDE.
Multidimensional access methods.
Surveys, pages 170231, 1998.
In
ACM Computing
[22] P. GODFREY, R. SHIPLEY, and J. GRYZ. Maximal vector computation in large data sets. In
Proceedings of the Conference on Very Large
Data Bases (VLDB), pages 229240, 2005.
[23] D. A. GROSSMAN and O. FRIEDER. Information retrieval: Algorithms
and heuristics. In
Springer, Second Edition, pages 910, 2004.
[24] R. H. GUTING. An Introduction to Spatial Database Systems. In
Journal, pages 357399, 1994.
[25] A. GUTTMAN.
VLDB
A dynamic index structure for spatial searching.
In
SIGMOD, pages 4757, 1984.
[26] R. HARIHARAN, B. HORE, C. LI, and S. MEHROTRA.
Processing
spatial-keyword (SK) queries in geographic information retrieval (GIR)
systems. In
SSDBM, page 16, 2007.
[27] EGENHOFER M. J. and R. FRANZOSA. Point-set topological spatial
relations. In
International Journal of Geographic Information Systems,
pages 161174, 1991.
[28] R-J. JOÃO, V. AKRIVI, D. CHRISTOS, and N. KJETIL.
processing of top-k spatial preference queries. In
Endowment (PVLDB), pages 93104, 2010.
Ecient
Proceedings of the VLDB
[29] K. KODAMA, Y. IIJIMA, X. GUO, and Y. ISHIKAWA. Skyline queries
based on user locations and preferences for making location-based recommendations. In
GIS-LBSN, pages 916, 2009.
[30] H. KOHLER and J. YANG. Computing large skylines over few dimen-
73
Proceedings of 12th International
Asia-Pacic Web Conference (APWEB), pages 284290, 2010.
sions: The curse of anti-correlation. In
[31] D. KOSSMANN, F. RAMSAK, and S. ROST. Shooting stars in the sky:
An online algorithm for skyline queries. In
Proceedings of VLDB,
pages
275286, 2002.
[32] H. T. KUNG, F. LUCCIO, and F. P. PREPARATA.
maxima of a set of vectors. In
On nding the
Journal of ACM (JACM), pages 469476,
1975.
[33] Z. LI, C. K. LEE, B. ZHENG, W-C. LEE, D. L. LEE, and X WANG. Irtree: An ecient index for geographic document search. In
IEEE, pages
585599, 2011.
[34] H-X. LU, Y. LUO, and X. LIN. An optimal divide-conquer algorithm
for 2d skyline queries. In
Proceedings of ADBIS, pages 4660, 2003.
[35] H-X. LU, Y. LUO, and X. LIN.
processing algorithm. In
A scalable and i/o optimal skyline
Proceedings of WAIM, pages 218228, 2004.
[36] Lawrence Page, Sergey Brin, Rajeev Motwani, and Terry Winograd. The
pagerank citation ranking: Bringing order to the web. In
Library Technologies Project, 1998.
Stanford Digital
[37] C. H. PAPADIMITRIOU and M. YANNAKAKIS. Multiobjective query
Proceedings of ACM SIGMOD/SIGACT Conference on
Principles Of Database Systems (PODS), 2001.
optimization. In
[38] C. RAISSI, J. PEI, and T. KISTER.
Computing closed skycubes.
In
VLDB, pages 838847, 2010.
[39] M. SANDERSON and J. KOHLER. Analyzing geographic queries. In
SIGIR Workshop on Geographic Information Retrieval, page 2, 2004.
[40] M. SHARIFZADEH and C. SHAHABI. The spatial skyline queries. In
Proceedings of the 32nd international conference on Very large data bases
(VLDB), pages 751762, 2006.
74
[41] T. SKOPAL and J. LOKOC. Answering metric skyline queries by pmtree. In
DATESO'10, pages 2237, 2010.
[42] J. WEN, K. H. ANTHONY, E. MARTIN, and H. JIAWEI.
On e-
cient processing of subspace skyline queries on high dimensional data. In
SSDBM, page 12, 2007.
[43] J. ZOBEL and A. MOFFAT. Inverted les for text search engines. In
ACM, page 56, 2006.
APÉNDICES
75
APÉNDICE A
DEMOSTRACIONES
A.1 Teorema 1
Cualquier objeto que se encuentre en una posición posterior al objeto nal es dominado por el objeto nal.
Prueba: Sean dos objetos cualesquiera o y o0 , tal que o 6= o0 , o es el objeto nal y o0
es un objeto posterior a o en algún índice Si . Supóngase que el objeto nal o no domina
al objeto o0 . Como el objeto nal o no domina al objeto o0 , entonces o0 tiene al menos un
mejor valor en algún atributo Ai de la función multicriterio con respecto a o por denición
de dominancia. Sin embargo, esto es una contradicción pues el objeto o0 no puede contener
un mejor valor en Si que el objeto o ya que se encuentra después del objeto nal. Por lo
tanto, el objeto o0 es dominado por el objeto nal o.
A.2 Teorema 2
Sea O = {o1 , o2 , .., on } un conjunto de objetos pertenecientes a una base de datos,
donde cada objeto de O está caracterizado por un conjunto de atributos A = {a1 , a2 , .., an }.
Sea Sky el conjunto de los objetos Skyline denidos sobre dos atributos ai y aj , ambos
pertenecientes al conjunto A. Sean o un objeto perteneciente a O y α una relación de
orden sobre los valores del atributo ai . Si el objeto o0 que se encuentra en la posición |Sky|
no domina a o y o no es dominado por ningún objeto o00 perteneciente a O con o.ai = o00 .ai ,
entonces o es Skyline.
Prueba: Suponer que:
77
H1 : el objeto o0 que se encuentra en la posición |Sky| no domina a o.
H2 : o no es dominado por ningún objeto o00 perteneciente a O con o.ai = o00 .ai .
Además, aplicando el método de reducción al absurdo, supóngase:
H3 : o no es un objeto Skyline, por tanto, existe un objeto o000 que domina a o, donde
o000 6= o0 y o000 6= o00 .
Existen dos posibles casos, es decir, que el objeto o000 se encuentre en una posición
anterior a o, o que el objeto o000 se encuentre en una posición posterior a o.
Caso 1: El objeto o000 se encuentra en una posición posterior a o.
1 Dado que se tiene una relación de orden α, (H2 ) si existe un objeto o00 que no
domine a o, donde ambos poseen el mismo valor en ai , y (H3 ) se sabe que o000 y o00
son distintos, entonces por las hipótesis (H2 ) y (H3 ), se tiene que o000 .ai 6= o.ai .
2 Por hipótesis (H3 ), se tiene que o000 domina a o. Si esto es así, por denición de
Skyline se debe cumplir que o000 .ai α o.ai y o000 .aj α o.aj . Pero como o000 está en una
posición posterior a o, por lo tanto, por la relación de orden se tiene que o.ai α o000 .ai ,
lo cual es una contradicción. En consecuencia o000 no domina a o.
Caso2: El objeto o000 se encuentra en una posición anterior a o.
1 o000 ∈ Sky y por hipótesis o000 .ai 6= o.ai . Por hipótesis, o000 domina a o. Si esto es así,
o000 .ai α o.ai y o000 .aj α o.aj . Pero o0 es Skyline y está en una posición posterior a o000 .
En consecuencia, por denición de Skyline se tiene que o000 .ai α o0 .ai y o0 .aj α o000 .aj
(sino o0 hubiese sido dominado por o000 ).
2 Se sabe que o000 .aj α o.aj y o0 .aj α o000 .aj . Por transitividad, o0 .aj α o000 .aj α o.aj (o0 .aj
α o.aj ). Además o0 está en una posición anterior a o y por lo tanto, o0 .ai α o.ai . Sin
embargo, o0 .ai α o.ai y o0 .aj α o.aj . Por denición de Skyline, o' domina a o, lo que
contradice nuestra hipótesis de que o0 no domina a o.
APÉNDICE B
SOPORTE DE RESULTADOS EXPERIMENTALES
En este apéndice se muentran los resultados experimentales para las tres soluciones
presentadas en este trabajo de grado, considerando el estudio de las métricas: tiempo
de evaluación, número de comparaciones, memoria consumida (E/S), número de objetos
vistos y tamaño del Skyline, y los conjuntos de datos: reales, independientes y correlacionados. Dichos resultados experimentales complementan el capítulo del estudio experimental,
dado el análisis de las soluciones para consultas Skyline Espacial Textual compuestas por
una y dos palabras claves. Las tablas 2.1, 2.2 y 2.3 ilustran el tiempo de evaluación expresado en segundos para consultas de una palabra clave, y las tablas 2.4, 2.5 y 2.6 para
consultas de dos palabras clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
0,00832
0,07945
0,31759
0,13512
0,06200
2,02300
12,57300
4,88600
0,00322
0,04702
0,20430
0,08485
Tabla 2.1: Tiempo de Evaluación Promedio para el Conjunto de Datos Reales.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
0,17600
3,70600
17,97000
7,28400
0,07000
2,12000
12,75200
4,98067
0,00450
1,03300
7,48770
2,84173
Tabla 2.2: Tiempo de Evaluación Promedio para el Conjunto de Datos Independientes.
79
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
0,17800
4,01000
21,98000
8,72267
0,08400
2,23700
14,98000
5,76700
0,00481
1,25010
7,83880
3,03124
Tabla 2.3: Tiempo de Evaluación Promedio para el Conjunto de Datos Correlacionados.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
0,02851
0,10586
0,29274
0,14237
0,07900
2,24400
12,3200
4,88100
0,01023
0,06003
0,19500
0,08842
Tabla 2.4: Tiempo de Evaluación Promedio para el Conjunto de Datos Reales.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
0,19300
4,14000
20,92900
8,42067
0,08200
2,43000
14,01000
5,50733
0,00562
1,49820
8,11030
3,20471
Tabla 2.5: Tiempo de Evaluación Promedio para el Conjunto de Datos Independientes.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
0,35900
5,20300
21,82000
9,12733
0,13900
2,80000
14,10000
5,67967
0,00610
1,66830
7,73000
3,13480
Tabla 2.6: Tiempo de Evaluación Promedio para el Conjunto de Datos Correlacionados.
80
Las tablas 2.7, 2.8 y 2.9 muestran el número de comparaciones para cada solución,
empleando consultas de una palabra clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
9810
169078
526064
234984
9999
99999
999999
369999
2183
27831
172002
67339
Tabla 2.7: Número de Comparaciones Promedio para el Conjunto de Datos Reales.
Conjunto de datos
10.000
100.000
1.000.000
SETBDS SETS2DS SETHíbrido
279816
8625502
1886491509
Promedio 631798942
9999
99999
999999
369999
2283
30430
247366
93360
Tabla 2.8: Número de Comparaciones Promedio para el Conjunto de Datos Independientes.
Conjunto de datos
10.000
100.000
1.000.000
SETBDS SETS2DS SETHíbrido
166327
14746274
1633809712
Promedio 549574104
9999
99999
999999
369999
3020
41838
262911
102590
Tabla 2.9: Número de Comparaciones Promedio para el Conjunto de Datos Correlacionados.
81
Las tablas 2.10, 2.11 y 2.12 muestran el número de comparaciones para cada solución,
empleando consultas de dos palabras clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
30205
219324
493466
247665
9999
99999
999999
369999
2943
31745
178644
71111
Tabla 2.10: Número de Comparaciones Promedio para el Conjunto de Datos Reales.
Conjunto de datos
10.000
100.000
1.000.000
SETBDS SETS2DS SETHíbrido
299960
12579722
2286287767
Promedio 766389150
9999
99999
999999
369999
3010
34571
199831
79137
Tabla 2.11: Número de Comparaciones Promedio para el Conjunto de Datos Independientes.
Conjunto de datos
10.000
100.000
1.000.000
SETBDS SETS2DS SETHíbrido
505285
9847823
1565218201
Promedio 525190436
9999
99999
999999
369999
3783
33919
289429
109044
Tabla 2.12: Número de Comparaciones Promedio para el Conjunto de Datos Correlacionados.
82
Las tablas 2.13, 2.14 y 2.15 muestran el uso de memoria para cada solución, empleando consultas de una palabra clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
213345
1002738
2032851
1082978
301833
1102845
4374009
1926229
153802
582740
922800
553114
Tabla 2.13: Uso de Memoria Promedio para el Conjunto de Datos Reales.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
1974817
3338824
5698394
3670678
337329
1275628
4401293
2004750
190923
1022012
2228793
1147243
Tabla 2.14: Uso de Memoria Promedio para el Conjunto de Datos Independientes.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
2093028
3002395
4837265
3310896
452940
1303489
4039485
1931971
253745
1030084
2243002
1175610
Tabla 2.15: Uso de Memoria Promedio para el Conjunto de Datos Correlacionados.
83
Las tablas 2.16, 2.17 y 2.18 muestran el uso de memoria para cada solución, empleando consultas de dos palabras clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
656387
1374762
1798142
1276430
590243
1495904
3924576
2003574
301203
592307
842849
578786
Tabla 2.16: Uso de Memoria Promedio para el Conjunto de Datos Reales.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
2082849
3370424
5893023
3782099
598732
1397763
4670038
2222178
293902
1380085
2407528
1360505
Tabla 2.17: Uso de Memoria Promedio para el Conjunto de Datos Independientes.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
2894012
3402934
3823248
3373398
483201
1600285
3945902
2009796
279048
1103753
2100387
1161063
Tabla 2.18: Uso de Memoria Promedio para el Conjunto de Datos Correlacionados.
84
Las tablas 2.19, 2.20 y 2.21 muestran los objetos accedidos para cada solución, empleando consultas de una palabra clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
2184
27832
172003
67340
10000
100000
1000000
370000
2184
27832
172003
67340
Tabla 2.19: Promedio de Objetos Accedidos para el Conjunto de Datos Reales.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
2284
30431
247367
93361
10000
100000
1000000
370000
2284
30431
247367
93361
Tabla 2.20: Promedio de Objetos Accedidos para el Conjunto de Datos Independientes.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
3021
41839
262912
102591
10000
100000
1000000
370000
3021
41839
262912
102591
Tabla 2.21: Promedio de Objetos Accedidos para el Conjunto de Datos Correlacionados.
85
Las tablas 2.22, 2.23 y 2.24 muestran los objetos accedidos para cada solución, empleando consultas de dos palabras clave.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
2944
31746
178645
71112
10000
100000
1000000
370000
2944
31746
178645
71112
Tabla 2.22: Promedio de Objetos Accedidos para el Conjunto de Datos Reales.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
3011
34572
199832
79138
10000
100000
1000000
370000
3011
34572
199832
79138
Tabla 2.23: Promedio de Objetos Accedidos para el Conjunto de Datos Independientes.
Conjunto de datos SETBDS SETS2DS SETHíbrido
10.000
100.000
1.000.000
Promedio
3784
33920
289430
109045
10000
100000
1000000
370000
3784
33920
289430
109045
Tabla 2.24: Promedio de Objetos Accedidos para el Conjunto de Datos Correlacionados.
86
Las tablas 2.25, 2.26 y 2.27 muestran el tamaño del Skyline para las soluciones
SETBDS, SETS2DS y SETHíbrido, empleando consultas de una palabra clave.
Conjunto de datos Skyline
10.000
100.000
1.000.000
Promedio
124
532
842
499
Tabla 2.25: Promedio del Tamaño del Skyline para el Conjunto de Datos Reales.
Conjunto de datos Skyline
10.000
100.000
1.000.000
Promedio
665
2825
50005
17832
Tabla 2.26: Promedio del Tamaño del Skyline para el Conjunto de Datos Independientes.
Conjunto de datos Skyline
10.000
100.000
1.000.000
Promedio
572
3387
48873
17611
Tabla 2.27: Promedio del Tamaño del Skyline para el Conjunto de Datos Correlacionados.
87
Las tablas 2.28, 2.29 y 2.30 muestran el tamaño del Skyline para las soluciones
SETBDS, SETS2DS y SETHíbrido, empleando consultas de dos palabras clave.
Conjunto de datos Skyline
10.000
100.000
1.000.000
Promedio
234
613
794
547
Tabla 2.28: Promedio del Tamaño del Skyline para el Conjunto de Datos Reales.
Conjunto de datos Skyline
10.000
100.000
1.000.000
Promedio
704
3586
59005
21098
Tabla 2.29: Promedio del Tamaño del Skyline para el Conjunto de Datos Independientes.
Conjunto de datos Skyline
10.000
100.000
1.000.000
Promedio
1002
2965
45924
16630
Tabla 2.30: Promedio del Tamaño del Skyline para el Conjunto de Datos Correlacionados.
APÉNDICE C
ALGORITMOS PARA EL CÓMPUTO DEL
SKYLINE
Este apéndice muestra los algoritmos Sorted 2D Skyline (S2DS) y Basic Distributed
Skyline (BDS) para el cómputo del Skyline. Ambos algoritmos son ilustrados en pseudocódigo a través de una serie de pasos y adicionalmente, se consideran las notaciones descritas en la fuente.
C.2 Sorted 2D Skyline (S2DS)
Algoritmo 4 Algoritmo Sorted 2D Skyline (S2DS). Fuente: [30]
ENTRADA: List L1 of points in P , sorted by D1 .
SALIDA: skyline(P ) sorted by D1 .
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
skyline :=< >
potencial:=< L1 [1] >
for p = L1 [2] to L1 [L1 .length] do
if p.D1 = potential.D1 then
if p.D2 = potential.D2 then
potential := potential + < p >
else if p.D2 < potential.D2 then
potential :=< p >
else if p.D2 < potential.D2 then
skyline := skyline + potential
potential :=< p >
return skyline + potential
89
C.2 Basic Distributed Skyline (BDS)
Algoritmo 5 Algoritmo Basic Distributed Skyline (BDS). Fuente: [7]
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Initialize a data structute P := ∅ containing records with an identier and n real
values indexed by the identiers, initialize n lists K1 ,...,Kn := ∅ containing records
with an identier and a real value, and initialize n real values p1 ,...,pn := 1
Initialize counter i := 1
Get the next object onew by sorted access on list Si ;
If onew ∈ P , update its i-th real value with si (onew ), else create such a record in P
Append onew with si (onew ) to list Ki ;
Set pi := si (onew ) and i := (imodn) + 1;
If all scores si (onew )(1 ≤ j ≤ n) are known, proceed with step 8 else with step 3
Get the next object onew by sorted access on list S ;
for i = 1 to n do
while pi = si (onew ) do
do sorted access on list Si and handle the retrieved objects like in step 4 to 5
end while
end for
If more than one object is entirely known, compare pairwise and remove the dominated
objetcs from P
for i = 1 to n do
Do all necessary random access for the objects in Ki that are also in P , immediately
discard objects that are not in P ;
Take the objects of Ki and compare them pairwise to the objects in Ki . If an object
is dominated by another object, remove it from Ki and P
end for
return P as the set of all non-dominated objects

Documentos relacionados