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