Fragmentación vertical de bases de datos usando optimización basada en mallas dinámicas
Texto completo
(2) “No somos unos intrusos en el campo de la ciencia...somos hombres obligados por las circunstancias a la búsqueda de soluciones.” Fidel Castro Ruz.
(3) AGRADECIMIENTOS. Agradezco a todos los que invirtieron parte de sus días para contribuir al desarrollo de este trabajo: A mis tutores Dr. Abel Rodríguez Morffi y Dr. Rafael E. Bello, por recibirme en la puerta del camino y guiarme hasta el final del sendero. A la Dra. Gladys María Casas, la Dra. María Matilde García y el Dr. Vicente Fructuoso Molina, por tenderme la mano en momentos de urgencia. Al colectivo de profesores de la Maestría en Ciencias de la Computación de la UCLV. A la Dirección de la Facultad 1 de la Universidad de las Ciencias Informáticas, por su apoyo incondicional. A mis padres, mi hermana y mi familia, por ser mi sostén y ejemplo en esta batalla diaria que es la vida. A mi novia Yandielys Reyes, por todo el amor, comprensión, paciencia y esmero que me hicieron soportar estos arduos días de trabajo. A mi familia de Santa Clara, Teresa, Niurka, Leidy y Durán, que me acogieron como a un hijo más. A mi Revolución, a Fidel y a Raúl..
(4) DEDICATORIA A mis padres y mi novia, quienes me han brindado amor incondicional y siempre me han impulsado a superarme profesionalmente ofreciéndome aliento constante para lograrlo. Al resto de mis familiares y amigos, que me apoyan siempre y ayudan a conseguir mis anhelos..
(5) RESUMEN La fragmentación vertical, es el proceso mediante el cual una relación es descompuesta en agrupaciones de datos en función de conjuntos disjuntos de sus atributos. Estos conglomerados de atributos, deben ser generados de manera apropiada para su futura ubicación sobre una plataforma distribuida. La partición vertical reviste gran importancia porque defiende el principio de que aquellos datos que comúnmente son accedidos juntos deberían residir en el mismo fragmento. En los últimos años, la aplicación de meta-heurísticas poblacionales a este problema ha incrementado su énfasis y centrado las principales investigaciones. La crítica a estas se enfoca en su escaso nivel de intensificación en el proceso de búsqueda (convergencia más lenta). Por ello, el objetivo de esta investigación es desarrollar un nuevo método de fragmentación vertical de base de datos, utilizando la metaheurística Optimización basada en Mallas Dinámicas para lograr niveles de convergencia rápidos..
(6) ABSTRACT Vertical Fragmentation is the process in which a relation is divided into data clusters given disjoint sets of their attributes. Those attribute clusters should be generated in an appropriated way for their future incorporation into a distributed platform. Vertical partitioning have a tremendous importance because it supports the principle that data pieces that are commonly accesed together should be included in the same fragment. In the last years, the application of populationbased metaheuristics for solving this problem have increased its emphasis and also centered the comunity research. The main critics to the aforementioned metaheuristics are related to their low level of intensification in the search process (Slow Convergence).Therefore, the main objective of this investigation is to develop a new method for vertical partitioning of databases, using the Dynamic Mesh Optimization metaheuristics for achieving fast convergence levels..
(7) TABLA DE CONTENIDOS. INTRODUCCIÓN .................................................................................................................. 1 CAPÍTULO I: FUNDAMENTACIÓN TEÓRICA ................................................................ 7 1.1. Aspectos generales y conceptos básicos .................................................................. 7. 1.2. El problema de la fragmentación............................................................................ 11. ¿Por qué se debe fragmentar? ....................................................................................... 12 Grado de fragmentación ............................................................................................... 12 Reglas de corrección de la fragmentación .................................................................... 13 Esquema de fragmentación........................................................................................... 13 Fragmentación vertical ................................................................................................. 13 Complejidad del problema de fragmentación vertical .................................................. 14 1.3. Trabajos previos ..................................................................................................... 16. Primeros algoritmos...................................................................................................... 17 Algoritmos recientes ..................................................................................................... 25 1.4. Conclusiones parciales ........................................................................................... 29. CAPíTULO II: PROPUESTA DE SOLUCIÓN. ................................................................. 30 2.1. Descripción general de la meta-heurística DMO ................................................... 30. Fomento de la diversidad .............................................................................................. 33 2.2. Potencialidades de DMO para resolver el problema de la fragmentación vertical 35. 2.3. Modelación de DMO para el problema de la fragmentación vertical .................... 37. Representación de los nodos ........................................................................................ 37 Generación de la malla inicial en cada iteración .......................................................... 41 Generación de nodos en dirección a los extremos locales ........................................... 42 Generación de nodos en dirección al extremo global ................................................... 43 Generación de nodos a partir de los nodos más externos de la malla .......................... 43 Contracción de la malla y operador de limpieza adaptativo ......................................... 44 2.4. Conclusiones parciales ........................................................................................... 44. CAPíTULO III: EVALUACIÓN Y EXPERIMENTACIÓN. ............................................. 46 3.1. Análisis de los resultados obtenidos en el proceso de fragmentación vertical con DMO. ...................................................................................................................... 46. Caso 1 ........................................................................................................................... 46.
(8) Caso 2 ........................................................................................................................... 48 Caso 3 ........................................................................................................................... 49 Caso 4 ........................................................................................................................... 49 Caso 5 ........................................................................................................................... 51 Caso 6 ........................................................................................................................... 53 Caso 7 ........................................................................................................................... 54 3.2. Hibridando DMO con una búsqueda local ............................................................. 55. Descripción de DMO hibridado con una búsqueda local (DMOH) ............................. 56 3.3. Comparación con otros métodos de fragmentación vertical recientes ................... 61. 3.4. Conclusiones parciales. .......................................................................................... 62. CONCLUSIONES ................................................................................................................ 64 RECOMENDACIÓN ........................................................................................................... 65 REFERENCIAS BIBLIOGRÁFICA ................................................................................... 66 ANEXOS .............................................................................................................................. 70.
(9) INTRODUCCIÓN El vertiginoso. desarrollo. de. las Tecnologías de. la. Información. y las. Comunicaciones (TIC), en los últimos años, han propiciado el crecimiento y expansión de organizaciones gubernamentales y no gubernamentales, de empresas públicas y privadas y demás instituciones. Este progreso acelerado de las tecnologías y la dispersión geográfica de las sucursales empresariales han inclinado la balanza hacia el desarrollo y uso de Sistemas de Bases de Datos Distribuidas (SBDD). Una Base de Datos Distribuida (BDD) es una colección de múltiples Bases de Datos (BD), lógicamente interrelacionadas, distribuidas sobre una red de computadoras [1]. El diseño de BDD incluye, además de los problemas de diseño clásicos de bases de datos centralizadas, el problema del diseño de la distribución, cuyo propósito es mejorar el rendimiento global del sistema. El diseño de la distribución, a su vez, está compuesto por la fragmentación y la asignación de los fragmentos a los diversos sitios de la red. La fragmentación es el proceso mediante el cual una relación global es descompuesta en fragmentos horizontales y/o verticales. Un fragmento vertical consiste en un agrupamiento de datos en función de atributos o conjuntos de ellos, mientras que la fragmentación horizontal atiende a dicho agrupamiento en función de tuplas o conjuntos de tuplas. La asignación, por su parte, se refiere al problema de ubicar los fragmentos, ya sean verticales u horizontales de manera que el acceso a la información se haga de la “mejor” manera posible. Típicamente, los criterios que determinan si la fragmentación y la asignación son óptimas se establecen de manera independiente. Por ello, es frecuente que se trate de optimizar en dos pasos. En el primero se busca la “mejor” fragmentación o partición y, en el segundo, se busca la “mejor” ubicación de los fragmentos obtenidos en el paso anterior [2].. Introducción. Página 1.
(10) Comparando las formas de fragmentación, la partición vertical es más complicada que la partición horizontal, debido al incremento del número de posibles alternativas [3]. Para ilustrar la magnitud del problema de la fragmentación vertical, y no subestimarlo, hay que valorar las siguientes estadísticas. Por ejemplo, el número de subconjuntos disjuntos que se pueden tener en una relación con 10 atributos es de 115975 [2], esto es, el número de fragmentos verticales posibles; el número de posibles soluciones crece exponencialmente con el número de atributos. Como se señala en [1] [4] [5], un objeto con m atributos puede ser particionado de B(m) diferentes formas, donde B(m) es el m-ésimo número de Bell, para m suficientemente grandes, B(m) se aproxima a mm; para m=15 este es aproximadamente igual a 109, para m=30 este es aproximadamente igual a 1023. Por lo tanto, es importante contar con una estrategia que reduzca de manera eficiente el número de cálculos. Aunque diferentes, dos enfoques secuenciales que conducen a agrupamientos jerárquicos parecen haber adquirido un interés particular entre los taxónomos. Una de las estrategias es el algoritmo propuesto por Ward (1963). Su idea es aglomerar los puntos (atributos) o los grupos resultantes, reduciendo su número en uno en cada etapa de un procedimiento de fusión secuencial, hasta que todos los puntos estén en un único grupo o clúster. Un algoritmo complementario ha sido propuesto por Edwards y Cavalli-Sforza (1965). La esencia de su método es la partición consecutiva de un conjunto de puntos en dos subconjuntos: primero un conjunto inicial se divide en dos grupos, cada uno de ellos se subdivide en dos grupos más pequeños por separado, y así sucesivamente, hasta que se alcancen los puntos individuales [6]. Hoffer y Severance [7] miden la afinidad entre cada par de atributos construyendo una Matriz de Afinidad de Atributos (MAA) que sirve de base para agrupar los atributos usando el Algoritmo de Energía de Enlace (BEA, acrónimo del inglés Bond Energy Algorithm) desarrollado en [8]. Este trabajo sirvió de motivación para la mayoría de las investigaciones siguientes sobre fragmentación vertical. Los. Introducción. Página 2.
(11) trabajos presentados por S. Navathe, S. Ceri, G. Wiederhold y J. Dou en [4], Cornell y Yu [9], Ceri [10], Öszu y Valduriez [1] desarrollan algunos algoritmos que son muy conocidos por la sociedad de investigadores. Muthuraj y otros autores [11] presentan un trabajo donde se argumenta que los primeros algoritmos para la fragmentación vertical son ad hoc, por eso se propone una función objetivo (FO) llamada Evaluador de Particiones para determinar la calidad de las particiones generadas por varios algoritmos [12]. Se critica la medida de afinidad entre atributos, pues debido a que solo se involucra un par de atributos, esta medida no refleja la cercanía o afinidad cuando se implican más de dos atributos. Algunos de estos primeros procedimientos propuestos presentan problemas, ya que sugieren reglas de decisión no automáticas, por lo que no eliminan la influencia de la subjetividad humana al requerir el juicio del investigador. Otra deficiencia es su incapacidad de operar cuando el agrupamiento óptimo resulta ser uno de los casos extremos, k=1 (los n elementos deben pertenecer a un único clúster). En los últimos años, la aplicación de meta-heurísticas poblacionales al problema de la fragmentación vertical ha incrementado su énfasis y centrado las principales investigaciones, con resultados muy alentadores. Las meta-heurísticas basadas en población son aquellas que emplean un conjunto de soluciones (población) en cada iteración del algoritmo, en lugar de utilizar una única. solución. como. las. meta-heurísticas. de. trayectoria. simple.. Estas. proporcionan, de forma intrínseca, un mecanismo de exploración paralelo del espacio de soluciones. Dentro de esta clasificación se destacan los Algoritmos Evolutivos (Evolutionary Algorithms EA) [13] [14] y los algoritmos basados en Inteligencia Colectiva (Swarm Intelligence SI) [15] [16]. Estas meta-heurísticas poblacionales son de las más estudiadas y comparten como característica fundamental que han sido inspiradas en algún proceso natural. Los EA fueron inspirados por la teoría de la evolución de Darwin [17]. Un ejemplo clásico de este tipo de algoritmos son los Algoritmos Genéticos (Genetic Algorithms GA) [18]. Por. Introducción. Página 3.
(12) otra parte, los SI se inspiran en ejemplos biológicos de comportamiento colectivo (enjambre) como es el caso de las colonias de insectos, las bandadas de aves y los cardúmenes de peces. Dentro de estos algoritmos se encuentra la Optimización Basada en Enjambre de Partículas (Particle Swarm Optimization PSO) [19], y Optimización Basada en Colonia de Hormigas (Ant Colony Optimization ACO) [20] [21]. Por solo citar algunos ejemplos que corroboran la aplicación de algunas de estas meta-heurísticas al problema de la fragmentación vertical, en 2006, J. Du, R. Alhajj y K. Barker [5] proponen una solución usando Algoritmos Genéticos. Más tarde, en 2011, B. Benmessahel y M. Touahria [3] lo tratan usando la Optimización Basada en Enjambre de Partículas. Y más recientemente, en 2012, M. Goli y Rouhani, presentan un nuevo algoritmo de fragmentación vertical basado en Colonia de Hormigas [22]. Estudios revelan que no existe la mejor de las meta-heurísticas para solucionar cualquier problema complejo [21]. Al abordar el estudio de los algoritmos heurísticos [23] se puede comprobar que estos dependen en gran medida del problema concreto para el que fueron diseñados, de manera que no se puede asegurar que existe un método heurístico que sea capaz de obtener los mejores resultados para cualquier problema de optimización, resultado conocido como Teorema “No Free Lunch” [24]. Esta idea deja una puerta abierta para continuar con investigaciones en esta área, y pretender aplicar nuevas meta-heurísticas poblacionales al problema de la fragmentación vertical en busca de buenos resultados. Adicionalmente, estos últimos algoritmos para la fragmentación vertical no están exentos de problemas. A la propuesta basada en colonias de hormigas se le critica la cantidad de memoria necesaria para representar el espacio de búsqueda y para que cada hormiga y atributo recuerde información importante. Y a todos se les critica su escaso nivel de intensificación en el proceso de búsqueda (convergencia más lenta).. Introducción. Página 4.
(13) Por tal motivo se identifica el problema científico siguiente: ¿Cómo obtener resultados competitivos durante el proceso de fragmentación vertical de BD relacionales con una convergencia más rápida? Este problema se desglosa en las siguientes preguntas de investigación: ¿Cuáles son los principales conceptos, elementos y métodos para la fragmentación vertical de BD? ¿Qué meta-heurística poblacional, de las que aún no han sido aplicadas al problema de la fragmentación vertical de BD, tiene potencialidades y parece ser prometedora para resolver el problema y obtener resultados competitivos? ¿Cómo implementar otro método para realizar la fragmentación vertical de BD? Para darle solución al problema científico se planteó el siguiente objetivo general de investigación que consiste en: desarrollar un nuevo método de fragmentación vertical de BD, utilizando la meta-heurística Optimización basada en Mallas Dinámicas (DMO). Para lograr este objetivo general se plantean los siguientes objetivos específicos: 1. Elaborar el marco teórico con los principales aspectos relacionados con el diseño de BDD, particularizando en el proceso y los métodos de fragmentación vertical. 2. Proponer un nuevo método basado en la meta-heurística poblacional Optimización basada en Mallas Dinámicas para tratar el problema de la fragmentación vertical de BD. 3. Implementar el nuevo método de fragmentación vertical de BD. 4. Evaluar el método propuesto verificando la obtención de resultados competitivos y el nivel de convergencia. Después de haber construido el marco teórico se formuló la siguiente hipótesis de investigación como respuestas a las preguntas de investigación:. Introducción. Página 5.
(14) Aplicar la meta-heurística poblacional conocida como “Optimización basada en mallas dinámicas” al problema de la fragmentación vertical de bases de datos permite obtener resultados competitivos con niveles de convergencias más rápidos.. Aportes de la tesis El valor metodológico de la investigación radica en la sistematización en el diseño de distribución de BD teniendo en cuenta los más recientes métodos y algoritmos desarrollados. El valor práctico se relaciona con la descripción e implementación computacional de dos métodos de fragmentación vertical basados en DMO, uno de ellos hibridado con una búsqueda local, que obtienen soluciones competitivas con una convergencia rápida, por lo que pueden ser aplicados en escenarios reales.. Organización de la tesis: La tesis está organizada en tres capítulos. En el Capítulo 1 se definen los principales conceptos asociados al objeto de la investigación y se relacionan los principales trabajos y algoritmos previos para la fragmentación vertical. En el Capítulo 2 se describe la solución propuesta y en el Capítulo 3 se presenta el proceso de evaluación de la misma. Posteriormente se dan las conclusiones y recomendaciones para el trabajo futuro.. Introducción. Página 6.
(15) CAPÍTULO I: FUNDAMENTACIÓN TEÓRICA En este capítulo se profundiza en el marco teórico; se definen los principales conceptos asociados al objeto de la investigación, algunos enfoques con los que se ha enfrentado el problema de distribución de las bases de datos y el problema de la fragmentación. Además, se relacionan los principales trabajos previos y algoritmos para la fragmentación vertical de bases de datos distribuidas. 1.1 Aspectos generales y conceptos básicos A menudo, las organizaciones tienen sedes, ramales, divisiones o sucursales en diferentes localidades dispersas. Para una localidad, L, pudiera existir un conjunto de datos que use frecuentemente y quizás exclusivamente. Además L puede usar datos que se utilicen con más frecuencia en otra localidad L´ [25]. En muchas organizaciones geográficamente distribuidas las vías centralizadas no representan una alternativa factible, y la migración hacia SBDD resulta natural. Muchos autores recalcan el principio de que un sistema distribuido proporciona los puentes necesarios para conectar las islas de información de la empresa, en otras palabras, permite que la estructura de la base de datos refleje la estructura de la empresa, con lo cual se incrementa la localidad de los datos y se reduce drásticamente el tráfico en la red [26]. El software con que se implementa un sistema así se denomina Sistema de Gestión de Bases de Datos Distribuidas (SGBDD) [27]. En la literatura se pueden encontrar muchas definiciones sobre qué es una base de datos distribuida. A continuación se recogen algunas, aunque todas coinciden, en su esencia, con uno de los conceptos más completos y aceptados, dado por Özsu y Valduriez en 1999, la que se asume en este trabajo. Según estos autores una base de datos distribuida es una colección de múltiples bases de datos, lógicamente interrelacionadas, distribuidas sobre una red de computadoras [1].. Capítulo I. Fundamentación teórica. Página 7.
(16) Una base de datos distribuida es un conjunto de bases de datos parcialmente independientes que (idealmente) comparten un esquema común y coordinan el procesamiento de transacciones que acceden a datos remotos. Los procesadores se comunican entre sí a través de una red de comunicación que gestiona el encaminamiento y las estrategias de conexión [28]. Una base de datos distribuida es una base de datos segmentada ubicada en distintas localizaciones unidas todas ellas a través de una red [25]. Las ventajas del desarrollo de bases de datos distribuidas pueden describirse con las siguientes propiedades: Fiabilidad y disponibilidad: La fiabilidad se refiere a la habilidad para tolerar fallos y disponibilidad a la probabilidad de que el sistema pueda utilizarse durante periodos de tiempo deseados. Mejorar la fiabilidad y la disponibilidad son ventajas potenciales de las bases de datos distribuidas [29]. Cuando los datos y el software están distribuidos en varios sitios, un sitio puede fallar mientras que los demás siguen operando. Solo los datos y el software del sitio que falló estarán inaccesibles. Esto mejora tanto la fiabilidad como la disponibilidad [27]. Autonomía local: Cada ubicación es capaz de mantener un grado de control sobre los datos que se almacenan localmente. En un sistema centralizado, el administrador de bases de datos de la ubicación central controla la base de datos. En un sistema distribuido, existe un administrador de bases de datos global responsable de todo el sistema. Una parte de estas responsabilidades se delegan al administrador de bases de datos local de cada sitio [28]. Capacidad de expansión: Es más fácil acomodar bases de datos de tamaño creciente en un ambiente distribuido agregando nuevas sucursales o almacenes relativamente autónomos con un grado mínimo de impacto en el sistema existente [29]. Mejor rendimiento: Cada sitio tiene un menor número de transacciones en ejecución que si todas las transacciones se enviaran a una sola base de datos centralizada. En el caso de transacciones que impliquen accesos a más. Capítulo I. Fundamentación teórica. Página 8.
(17) de un sitio, el procesamiento en los diferentes sitios puede efectuarse en paralelo, reduciéndose así el tiempo de respuesta [27]. Razones económicas: Es mucho menos costoso instalar un sistema de varias computadoras pequeñas con el poder equivalente de una sola máquina grande debido a los avances en las estaciones de trabajo y en las computadoras personales [29]. La principal desventaja de las bases de datos distribuidas es la complejidad añadida que es necesaria para garantizar la coordinación apropiada entre los sitios. Esta complejidad tiene varias facetas: mayor costo de desarrollo de software, mayor probabilidad de errores y mayor sobrecarga de procesamiento [28]. Se han identificado dos estrategias principales para diseñar bases de datos distribuidas, la propuesta descendente y ascendente. Tanto Ceri y Pelagati como Özsu y Valduriez afirmaron que el diseño descendente es adecuado para sistemas que inician desde cero. Pero cuando la base de datos distribuida se desarrolla como la reunión de bases de datos existentes, no es fácil seguir la propuesta descendente. La propuesta ascendente, que inicia con esquemas conceptuales locales individuales, es más adecuada para este ambiente [29]. El diseño de bases de datos distribuidas incluye, además de los problemas de diseño clásicos de bases de datos centralizadas, el problema del diseño de la distribución, cuyo propósito es mejorar el rendimiento global del sistema. El diseño de la distribución, a su vez, está compuesto por la fragmentación y la asignación de los fragmentos a los diversos sitios de la red. La fragmentación es el proceso mediante el cual una relación global es descompuesta en fragmentos horizontales y/o verticales. Un fragmento vertical atiende al agrupamiento de datos en función de atributos o conjuntos de ellos, mientras que la fragmentación horizontal atiende a dicho agrupamiento en función de tuplas o conjuntos de tuplas. La asignación o localización, por su parte, se refiere al problema de ubicar los fragmentos, ya sean verticales u horizontales, de manera que el acceso a la información se haga de la “mejor” manera posible. Típicamente, los criterios que determinan si la. Capítulo I. Fundamentación teórica. Página 9.
(18) fragmentación y la asignación son óptimas se establecen de manera independiente. Por ello, es frecuente que se trate de optimizar en dos pasos. En el primero se busca la “mejor” fragmentación y, en el segundo, se busca la “mejor” ubicación de los fragmentos obtenidos en el paso anterior [2]. Además de los dos tipos de fragmentación básicos anteriormente mencionados, existe la fragmentación híbrida o mixta, que consiste en aplicar simultáneamente la fragmentación horizontal y vertical en una relación. En la figura 1 se muestra un esquema general de la metodología de diseño de BDD donde se pueden observar los problemas que se añaden debidos a la distribución de los datos.. Figura 1 Metodología de diseño de bases de datos distribuidas [30] Capítulo I. Fundamentación teórica. Página 10.
(19) Como puede verse la fragmentación y la localización son tratadas de manera independiente. Esto se debe a dos razones: primero, para manejar mejor la complejidad del diseño y segundo, porque es relevante desde el punto de vista conceptual ya que la fragmentación trata los criterios lógicos que motivan la división de una relación global mientras que la distribución tiene que ver con la ubicación física de los datos en los diferentes sitios de la red [31]. La presente investigación se centra en el problema de la fragmentación únicamente, como una etapa previa a la localización, aunque, como puede observarse en la figura 2 existen varias alternativas para enfrentar el problema de distribución.. Figura 2 Alternativas de fragmentación y localización [30] [31] 1.2 El problema de la fragmentación Anteriormente se indicó que las relaciones en un esquema de base de datos se descomponen usualmente en fragmentos más pequeños, pero no se ofreció ninguna justificación al respecto. Capítulo I. Fundamentación teórica. Página 11.
(20) ¿Por qué se debe fragmentar? Antes de decidir cómo distribuir los datos, se deben determinar las unidades lógicas de la base de datos que se van a distribuir. Las unidades lógicas más simples son las relaciones mismas; es decir, cada relación completa se almacenará en un sitio específico [27]. Pero una relación no es una unidad de distribución adecuada por varias razones. Primero, las vistas de las aplicaciones usualmente son subconjuntos de relaciones. Por lo tanto, la localidad de los accesos de las aplicaciones no se define sobre relaciones completas sino sobre sus subconjuntos. Por lo tanto, es natural considerar subconjuntos de relaciones (fragmentos) como unidades de distribución. Segundo, si las aplicaciones que tienen vistas definidas en una relación dada se ubican en diferentes sitios, pueden seguirse dos alternativas con la relación completa como unidad de distribución. La relación no se replica y se almacena en un sólo sitio, o se replica en todos o algunos de los sitios donde residen las aplicaciones. La primera resulta en un innecesario alto volumen de accesos a datos remotos. La segunda, por otro lado, tiene replicación innecesaria, esto causa problemas en la ejecución de actualizaciones y puede no ser deseable si el almacenamiento es limitado. Finalmente, la descomposición de una relación en fragmentos, cada uno tratado como una unidad, permite que varias transacciones se ejecuten concurrentemente. Además, la fragmentación de relaciones normalmente resulta en la ejecución paralela de una consulta dividiéndola en un conjunto de subconsultas que operan sobre los fragmentos. Por lo tanto, la fragmentación normalmente incrementa el nivel de concurrencia y, por lo tanto, el rendimiento del sistema [29]. Grado de fragmentación El grado de fragmentación va de un extremo que es no fragmentar, a otro extremo, que es fragmentar hasta el nivel de tuplas individuales en el caso de la fragmentación horizontal, o hasta el nivel de atributos individuales en el caso de fragmentación. vertical.. Tener. muy. pocas. o. demasiadas. unidades. de. fragmentación puede tener efectos adversos. Es necesario encontrar un nivel Capítulo I. Fundamentación teórica. Página 12.
(21) apropiado de fragmentación que sea un término medio entre los dos extremos. Tal nivel sólo puede ser definido con respecto a las consultas que deben ser ejecutadas sobre la base de datos, pero requiere decidir cómo hacerlo. Reglas de corrección de la fragmentación Para garantizar que durante la fragmentación la base de datos no experimente cambios semánticos, se deben cumplir las siguientes reglas: Completitud: Si una instancia de una relación R se descompone en fragmentos FR={fr1, fr2, ..., frn}, cada elemento de datos que puede encontrarse en R también puede encontrarse en uno o más fragmentos fri. Esta propiedad es importante en la fragmentación, ya que asegura que los datos en una relación global se mapean a fragmentos sin ninguna pérdida [32]. En el caso de la fragmentación horizontal, el “elemento” se refiere a la tupla, mientras que en el caso de la fragmentación vertical, se refiere a un atributo. Reconstrucción: La reconstrucción por su parte implica que la relación global pueda ser reconstruida a partir de sus fragmentos. Esquema de fragmentación Un esquema de fragmentación de una relación es una definición de un conjunto de fragmentos que incluye todos los atributos y tuplas de la relación y satisface la condición de reconstrucción de la relación completa a partir de los fragmentos. Fragmentación vertical La fragmentación vertical de una relación R produce los fragmentos fr1, fr2, ..., frn, cada uno de los cuales contiene un subconjunto de los atributos de R, así como la clave primaria de R. Estas nuevas relaciones son llamadas fragmentos verticales. Una de las características que necesita lograrse por medio de la fragmentación vertical, también llamada partición de atributos, es maximizar la accesibilidad local, esto es, cada sitio debe ser capaz de procesar las consultas localmente con acceso mínimo a los datos localizados en sitios remotos. Si cada aplicación accediera a un subconjunto diferente y disjunto de atributos, el diseño de la fragmentación vertical sería obvio; sin embargo, en la práctica, lo más Capítulo I. Fundamentación teórica. Página 13.
(22) común es que las aplicaciones accedan a conjuntos de atributos diferentes y solapados [12]. Este trabajo se concentra en el problema de la fragmentación o partición vertical y se usarán indistintamente estos términos para referirse a conjuntos de atributos disjuntos, en otras palabras, a conglomerados sin solapamiento. Esta disyunción se define sólo en los atributos que no son clave primaria de la relación, ya que estos se repiten en cada uno de los fragmentos para garantizar la condición de reconstrucción y mantener la integridad semántica de los datos. Así, dada una restricción de este tipo, si los atributos claves están en un fragmento y los demás atributos implicados en otro, cualquier actualización que genere un chequeo de integridad implicará un acople entre los dos fragmentos y comunicación entre sitios, en caso de estar situados en estaciones diferentes. Otro aspecto a considerar es el relativo a los conjuntos de atributos que forman los fragmentos. En sentido general, se recomienda que sean disjuntos para así reducir la complejidad del SGBDD el cual no tendría que encargarse de controlar la consistencia de los atributos replicados, sin embargo, también pueden ser solapados, lo que beneficia fundamentalmente a las aplicaciones de lectura que tienen más posibilidades de usar un solo fragmento. Esto es particularmente útil cuando existen atributos descriptivos que se usan por muchas aplicaciones [31]. Aunque la presente investigación se basa en el contexto de las BDD relacionales, la fragmentación vertical es aplicable a otros ámbitos como son: las bases de datos centralizadas con jerarquía de memoria, BDD orientadas a objetos, bases de datos deductivas distribuidas, bases de datos multimedia, entre otras. Comparando las formas básicas de fragmentación, la partición vertical es más complicada que la partición horizontal, debido al incremento del número de posibles alternativas [3]. Complejidad del problema de fragmentación vertical Para ilustrar la magnitud del problema de la fragmentación vertical, y no subestimarlo, hay que valorar las siguientes estadísticas.. Capítulo I. Fundamentación teórica. Página 14.
(23) Por ejemplo, el número de subconjuntos disjuntos que se pueden tener en una relación con 10 atributos es de 115975 [2], esto es, el número de fragmentos verticales posibles; el número de posibles soluciones crece exponencialmente con el número de atributos. Como se señala en [1] [4] [5] [33], un objeto con m atributos puede ser particionado de B(m) diferentes formas, donde B(m) es el m-ésimo número de Bell, para m suficientemente grandes, B(m) se aproxima a mm; para m=15 este es aproximadamente igual a 109, para m=30 este es aproximadamente igual a 1023. Estos valores indican que es inútil intentar obtener soluciones óptimas para el problema de fragmentación vertical; por lo que es necesario recurrir a heurísticas [29]. Por tanto, es importante contar con una estrategia que reduzca de manera eficiente el número de cálculos. Aunque diferentes, dos enfoques secuenciales que conducen a agrupamientos jerárquicos parecen haber adquirido un interés particular entre los taxónomos. Una de las estrategias es el algoritmo propuesto por Ward (1963). Su idea es aglomerar los puntos o los grupos resultantes, reduciendo su número en uno en cada etapa de un procedimiento de fusión secuencial, hasta que todos los puntos estén en un único clúster. Un algoritmo contrario ha sido propuesto por Edwards y Cavalli-Sforza (1965). La esencia de su método es la partición consecutiva de un conjunto de puntos en dos subconjuntos: primero se divide en dos grupos un conjunto inicial, cada uno de ellos se subdivide en dos grupos más pequeños por separado, y así sucesivamente, hasta que se alcancen los puntos individuales [6]. En la literatura, estas dos alternativas son conocidas como: agrupamiento y particionamiento. Esta última se considera la más apropiada pues la solución óptima debe estar más cerca de la relación original y no de fragmentos compuestos por cada atributo independiente [12].. Capítulo I. Fundamentación teórica. Página 15.
(24) 1.3 Trabajos previos Los algoritmos de fragmentación vertical contienen dos partes esenciales: el método de optimización y la función objetivo. Por una parte, es más factible la búsqueda por métodos heurísticos que mediante una búsqueda exhaustiva. Por otro lado, la partición de base de datos tiene por objeto mejorar el procesamiento de transacciones en la base de datos. La función objetivo evalúa si se logra ese objetivo. Casi todos los algoritmos anteriores tienen estos dos elementos discernibles. Sin embargo, el método desarrollado por Navathe y Ra (1989) es una excepción, ya que no tiene una función objetivo explícita [3] [5] [34]. Para la fragmentación vertical se requiere información sobre la base de datos e información sobre las aplicaciones [35]. Todos los algoritmos previos para fragmentación vertical invariablemente utilizan la Matriz de Uso de Atributos (MUA) como entrada [36]. Esta matriz relaciona las transacciones con los atributos de la relación a fragmentar y contendrá un cero en una de sus celdas si el atributo Ai no es utilizado en la Transacción Tj o la frecuencia de acceso de la transacción en caso contrario. La frecuencia de acceso de cada transacción se refiere al número de veces que la transacción se solicita en un intervalo de tiempo definido. En la tabla I, se puede apreciar un ejemplo clásico recogido en la literatura, que considera 8 transacciones y 10 atributos que producen la MUA representada. Tabla I. Ejemplo de Matriz de Uso de Atributos de dimensión 10x8.. T1 T2 T3 T4 T5 T6 T7 T8. A1 25 0 0 0 25 25 0 0. A2 0 50 0 35 25 0 0 0. A3 0 50 0 0 25 0 25 15. A4 0 0 25 0 0 0 0 15. A5 25 0 0 0 25 25 0 0. A6 0 0 25 0 0 0 0 15. A7 25 0 0 35 25 0 0 0. A8 0 50 0 35 25 0 0 0. A9 0 50 0 0 25 0 25 15. A10 0 0 25 0 0 0 0 15. En los inicios fueron muy populares las propuestas basadas en afinidad entre atributos. Hoffer y Severance en [7] proponen el concepto de afinidad entre pares de atributos. Por definición una medida de afinidad es una expresión matemática Capítulo I. Fundamentación teórica. Página 16.
(25) que permite resumir en un número el grado de relación entre dos entidades, sobre la base de la semejanza o la desigualdad entre la cualidad o la cantidad de sus atributos, o ambas [37]. La afinidad fue definida por la siguiente ecuación matemática:. ∑. ij. donde: acc(tk): frecuencia de acceso de la transacción tk, ref(tk,Ai): valor de la MUA que relaciona a la transacción tk con el atributo Ai y Affij: valor de afinidad entre los atributos Ai y Aj. Aplicando este concepto a la MUA presentada en la tabla I se obtiene la Matriz de Afinidad entre Atributos (MAA). A continuación, en la tabla II, se muestra la MAA correspondiente al ejemplo utilizado. Tabla II: Ejemplo de Matriz de Afinidad entre Atributos de dimensión 10x10. Affij A1 A2 A3 A4 A5 A6 A7 A8 A9 A10. A1 75 25 25 0 75 0 50 25 25 0. A2 25 110 75 0 25 0 60 110 75 0. A3 25 75 115 15 25 15 25 75 115 15. A4 0 0 15 40 0 40 0 0 15 40. A5 75 25 25 0 75 0 50 25 25 0. A6 0 0 15 40 0 40 0 0 15 40. A7 50 60 25 0 50 0 85 60 25 0. A8 25 110 75 0 25 0 60 110 75 0. A9 25 75 115 15 25 15 25 75 115 15. A10 0 0 15 40 0 40 0 0 15 40. Primeros algoritmos Hoffer y Severance sobre la base de los elementos antes mencionados agrupan los atributos en clústeres usando el Algoritmo de Energía de Enlace (BEA, acrónimo del inglés Bond Energy Algorithm) desarrollado en [8]. Este algoritmo se considera apropiado ya que está diseñado específicamente para determinar grupos de elementos similares y no una ordenación lineal de estos, el agrupamiento final no depende del orden en que los elementos fueron Capítulo I. Fundamentación teórica. Página 17.
(26) presentados al algoritmo, y la complejidad del algoritmo es razonable, del orden de O(n) donde n es el número de atributos. Se puede decir que la simetría de la MAA permite la permutación en parejas de filas y columnas, lo que reduce su complejidad. Este trabajo sirvió de motivación para la mayoría de los trabajos siguientes sobre fragmentación vertical [12]. El algoritmo a partir de la MAA, permuta sus filas y columnas y genera una Matriz de Afinidad Clusterizada (MAC). La permutación se realiza maximizando la siguiente medida de afinidad global (AM): n. n. . AM aff i , j aff i , j 1 aff i , j 1 aff i 1, j aff i 1, j. . i 1 j 1. donde:. aff 0, j aff i ,0 aff n1, j aff i ,n1 0 Este último conjunto de condiciones tiene en cuenta el caso cuando se va a colocar un atributo fuera de los límites de los ya colocados. La función de maximización considera sólo la vecindad más cercana a una posición, lo que resulta en una agrupación que tiende a unir los atributos de mayor y menor afinidad entre ellos. La generación de la MAC se hace en tres pasos: Inicialización: Toma arbitrariamente dos de las columnas de la MAA y la sitúa en la MAC. Iteración: Toma cada una de las restantes n-i columnas (donde i es el número de columnas ya situadas en la MAC) e intenta colocarlas en las restantes i+1 posiciones de la MAC. Se escoge aquella ubicación que haga la mayor contribución a la medida de afinidad global. Se continúa este paso hasta que no queden columnas por localizar. Ordenamiento de filas: Una vez determinado el orden de las columnas debe cambiarse el orden de las filas para que estas últimas se correspondan con las primeras. Donde:. Capítulo I. Fundamentación teórica. Página 18.
(27) cont i k j 2 bond i k 2 bond k j 2 bond i j es la contribución neta a la medida de afinidad global de situar el atributo k entre los atributos i y j, siendo: n. bond i j aff z , i aff z , j z 1. Después de determinada la MAC, se deja a juicio del diseñador la selección de los fragmentos, identificando en ella los grupos de atributos con valores similares de afinidad. Sin embargo, no siempre es sencilla esta identificación, sobre todo cuando se ejecutan muchas transacciones sobre una misma relación y estas usan diferentes grupos de atributos [31]. Lisbeth Rodríguez en [29] señala también este elemento como el principal problema de este algoritmo. Por tal motivo, Navathe, Ceri, Wiederhold, y. Dou en 1984 [4] presentan el. Algoritmo de Partición Binaria Recursivo (RBPA, acrónimo del inglés Recursive Binary Partition Algorithm) como una extensión del trabajo de Hoffer y Severance para automatizar el proceso de selección de los fragmentos verticales proponiendo algunas funciones objetivos empíricas. La metodología empleada es de particionamiento en lugar de agrupamiento por las ventajas ya mencionadas. El diseño de la fragmentación consta de dos fases. 1ra fase: El algoritmo parte de la MAC para dividir un objeto en dos subconjuntos disjuntos. Se asume que un punto x se fija a lo largo de la diagonal principal de la MAC como se muestra en la figura 3. El punto x define dos bloques: U (upper) y L (lower). Cada bloque define un fragmento vertical formado por los atributos en ese bloque. Se consideran un total de n-1 posibles localizaciones del punto x a lo largo de la diagonal principal, donde n es el tamaño de la matriz. Una fragmentación no solapada se obtiene seleccionando un punto x que maximice la siguiente función objetivo z: max z = CL* CU – CI2 Capítulo I. Fundamentación teórica. Página 19.
(28) Donde: CL y CU: cuentan el número total de accesos de las transacciones que necesitan un solo fragmento y CI: el número total de accesos de las transacciones que necesitan ambos fragmentos.. Figura 3 Localización del punto divisor 2da fase: En el segundo paso los fragmentos se refinan tomando en cuenta factores de costo, que reflejan el ambiente físico de almacenamiento de los fragmentos. El costo total del particionamiento vertical puede ser estimado en términos de los siguientes factores de costo: C1: Costo de acceder a atributos irrelevantes dentro de un fragmento (por bytes). C2: Costo de acceder a fragmentos en lectura y escritura (por accesos). C3: Costo de almacenamiento (por bytes). C4: Costos de transmisión (por bytes). En este caso, la función objetivo a considerar es: min z . wc. 1i 4. Capítulo I. Fundamentación teórica. i. i. Página 20.
(29) Este algoritmo puede ser clasificado como “goloso” ya que en cada iteración se selecciona el sitio más conveniente para la replicación. Las dos fases no son excluyentes sino que se complementan [31]. Su complejidad es del orden de O(n2 log n), donde n es el número de atributos. La desventaja de este trabajo es que para realizar una fragmentación vertical n-aria era necesario utilizar de manera recursiva el algoritmo de fragmentación vertical binaria [29]. Además, los algoritmos hasta aquí descritos asumen que siempre habrán n-1 posibilidades de fragmentar una relación R, ignorando el hecho de que la relación toda como un solo fragmento podría ser la solución óptima, en algunos casos [38]. Cornell y Yu en 1987 [9] optimizaron el trabajo de Ceri y Pernici [10] desarrollando un algoritmo para la fragmentación vertical que obtiene una partición binaria óptima para BD relacionales usando información de factores físicos para disminuir el número de accesos a disco. Posteriormente en 1990 [39], adoptan el mismo enfoque del Algoritmo de Partición Binaria Recursivo, pero sustituyen a las funciones objetivas empíricas con una construida sobre un modelo de base de datos [5] [34]. Navathe y Ra [40], en 1989, proponen el Algoritmo de Partición Vertical Basado en Grafo, también conocido como GPA (acrónimo del inglés Graphical Partitioning Algorithm) [36]. Se utiliza de igual manera la MAA, pero a diferencias de las demás soluciones revisadas hasta el momento, en este se modela la misma información con un grafo completo llamado grafo de afinidad, en el cual los nodos representan los atributos y los vértices la afinidad entre ellos. Entonces, formando un árbol linealmente conectado, el algoritmo genera todos los fragmentos en una iteración considerando los ciclos como fragmentos. La principal ventaja de este algoritmo es que genera todos los fragmentos en una iteración en un tiempo del orden de O(n2), otra de sus ventajas es que no requiere una función objetivo para realizar la fragmentación vertical [29]. Sin embargo, muchos autores han criticado el uso de la MAA. Sharma Chakravarthy, Jaykumar Muthuraj, Ravi Varadarajan y Shamkant B. Navathe en. Capítulo I. Fundamentación teórica. Página 21.
(30) [30] aseguran que, debido a que solo un par de atributos se involucran, esta medida no refleja la cercanía o afinidad cuando más de dos atributos se encuentran implicados. En este trabajo se comparte el enfoque de Jun Du, Ken Barker y Reda Alhajj, quienes fundamentan en [36] las limitaciones de la medida de afinidad como una medida de afinidad local [41]. Muthuraj y otros autores [11] presentan un trabajo donde se argumenta que estos primeros algoritmos para la fragmentación vertical son ad hoc, por eso se propone una función objetivo llamada Evaluador de Particiones para determinar la calidad de las particiones generadas por varios algoritmos [12]. Algunos de estos primeros procedimientos propuestos presentan problemas, ya que sugieren reglas de decisión no automáticas, por lo que no eliminan la influencia de la subjetividad humana, pues requieren el juicio del investigador. Otra deficiencia es su incapacidad de operar cuando el agrupamiento óptimo resulta ser uno de los casos extremos, k=1 (los n elementos deben pertenecer a un único clúster). Posteriormente comienzan a cobrar fuerza las propuestas basadas en costos o basadas en transacciones. Hammer and Niamir [33], en 1979, consideran el problema de la partición vertical como un problema de optimización y lo tratan con la heurística Escalador de Colinas (del inglés Hillclimbing) [36]. Ellos asignan cada atributo a un fragmento distinto, y en cada paso, se consideran todos los posibles agrupamientos de esas particiones y se elige el agrupamiento que tenga el menor costo como el agrupamiento candidato para la siguiente iteración; posteriormente, se intentan mover atributos en los fragmentos; esto se realiza hasta que no se obtiene ningún beneficio. Esta propuesta utiliza la estrategia de agrupamiento y se basa en el uso de un evaluador de particiones que realiza un análisis de costo del procesamiento de transacciones para cada fragmento [29]. Chu y Ieong [42] en 1993, proponen un algoritmo de fragmentación binaria basado en transacciones con una función objetivo para minimizar el número total de accesos a disco [29]. Aseguran que los atributos en una transacción deben ser. Capítulo I. Fundamentación teórica. Página 22.
(31) considerados como una unidad en el proceso de partición vertical debido a que una transacción es semánticamente más rica que un atributo [36]. Muchos algoritmos usan criterios diferentes para arribar a un esquema de fragmentación, por tanto la función objetivo de uno no es adecuada para evaluar los resultado de los otros. Hasta el momento, una función objetivo general que pudiera evaluar la "calidad " de las particiones, obtenidas como el resultado de un algoritmo, ha estado ausente. En 1993, Chakravarthy [11] presenta un método formal para evaluar los resultados de los algoritmos de partición vertical mediante una función objetivo llamada Evaluador de Particiones (PE, acrónimo del inglés Partition Evaluator) [22]. Como en este caso se pretende obtener una función objetivo general la entrada no es la MAA sino la MUA, que es la matriz de entrada más comúnmente usada en estos algoritmos. El Evaluador de Particiones es un modelo que permite determinar el costo asociado con un esquema de fragmentación particular sobre una relación y puede ser usado para comparar los resultados de diferentes algoritmos. A continuación se listan notaciones y definiciones que se usan en lo sucesivo. n:. número total de atributos en la relación a fragmentar.. T:. número total de transacciones consideradas.. q t: frecuencia de activación de transacción para t= 1, 2, …, T. M: número total de fragmentos de la partición. n i: número de atributos del fragmento i. niktr: número total de atributos del fragmento k accedidos remotamente con respecto al fragmento i por la transacción t. ftji: frecuencia de la transacción t accediendo al atributo j en el fragmento i. Nótese que su valor es 0 o qt. Aij: Vector Atributo para el atributo j en el fragmento i (j-ésima columna de la matriz de uso correspondiente al fragmento i). Sit: conjunto de atributos contenidos en el fragmento i que accede la transacción t. Este es vacío si t no necesita el fragmento i.. Capítulo I. Fundamentación teórica. Página 23.
(32) |Sit|: número de atributos en el fragmento i que accede la transacción t. Ritk: conjunto de atributos relevantes en el fragmento k accedidos remotamente con respecto al fragmento i por la transacción t. |Ritk|: número de atributos relevantes en el fragmento k accedidos remotamente con respecto al fragmento i por la transacción t.. Los dos componentes de que consta el Evaluador de Particiones son [11] [30] [31]: 1. Costos de acceso a atributos locales irrelevantes: Se calcula el costo del procesamiento local de las transacciones debido al acceso a atributos irrelevantes de los fragmentos de datos, asumiendo que todos los fragmentos de datos requeridos por una transacción están disponibles localmente. Este criterio asigna un factor de penalización cada vez que un atributo irrelevante es accedido dentro de un fragmento. En esta componente se usa el criterio del cuadrado del error, usado en clusterización de datos. El vector medio se define como: Vi . 1 ni. ni. A j 1. 0iM. ij. Este valor medio representa un patrón de acceso promedio de las transacciones sobre todos los atributos del fragmento i. Para cada Vector Atributo Aij se define (Aij - Vi) como el vector diferencia del atributo j en el fragmento i. El cuadrado del error para el fragmento Pi es la suma de los cuadrados de la longitud de los vectores diferencias de todos los atributos en el fragmento i y está dado por: ni. ei2 ( Ai j Vi ) T ( Ai j Vi ). 0iM. j 1. El cuadrado del error para el esquema de fragmentación completo que contiene M fragmentos está dado por: M. E. Capítulo I. Fundamentación teórica. 2 M. ei2 i 1. Página 24.
(33) A menor valor de E2M, menor será el costo por el acceso a los atributos irrelevantes. 2. Costo de acceso a atributos remotos relevantes: Se calcula el costo del procesamiento remoto debido a atributos relevantes de fragmentos de datos que son accedidos remotamente por las transacciones. Dado un conjunto de particiones, para cada transacción que se ejecuta en una partición, se calcula la razón del número de atributos remotos a ser accedidos con respecto al número total de atributos en cada una de las particiones remotas. Esto es sumado para todas las particiones y todas las transacciones obteniéndose la siguiente ecuación, que es el segundo término: T Ri t k E R2 Mi1 qt2 Ri t k r ni t k t 1. . es un operador que puede representar un promedio, un máximo o un mínimo sobre todas las i. Por último:. PE EM2 E R2 . Algoritmos recientes Las funciones objetivo basadas en costos deben combinarse con diversas estrategias de búsqueda para que sean prácticas a la hora de encontrar un esquema de fragmentación óptimo o bien cercano a este. En los últimos años, la aplicación de meta-heurísticas poblacionales al problema de la fragmentación vertical ha incrementado su énfasis y centrado las principales investigaciones, con resultados muy alentadores. Las meta-heurísticas basadas en población son aquellas que emplean un conjunto de soluciones (población) en cada iteración del algoritmo, en lugar de utilizar una única. solución. como. las. meta-heurísticas. de. trayectoria. simple.. Estas. proporcionan de forma intrínseca un mecanismo de exploración paralelo del espacio de soluciones. Dentro de esta clasificación se destacan los Algoritmos Evolutivos (Evolutionary Algorithms EA) [13] [14] y los algoritmos basados en Capítulo I. Fundamentación teórica. Página 25.
(34) Inteligencia Colectiva (Swarm Intelligence SI) [15] [16]. Estas meta-heurísticas poblacionales son de las más estudiadas y comparten como característica fundamental que han sido inspiradas en algún proceso natural. Los EA, fueron inspirados por la teoría de la evolución de Darwin [17]. Un ejemplo clásico de este tipo de algoritmos son los Algoritmos Genéticos (Genetic Algorithms GA) [18]. Por otra parte, los SI toman su inspiración en ejemplos biológicos de comportamiento colectivo (enjambre) como es el caso de las colonias de insectos, las bandadas de aves y los cardúmenes de peces. Dentro de estos algoritmos se encuentran; la Optimización Basada en Enjambre de Partículas (Particle Swarm Optimization PSO) [19], y Optimización Basada en Colonia de Hormigas (Ant Colony Optimization ACO) [20] [21]. En 2006, Du y Barker [5], proponen el algoritmo GRGS-GA (acrónimo del inglés Group-Oriented Restricted Growth String based Genetic Algorithm), con el cual tratan la fragmentación vertical como un problema de optimización y recurren a los algoritmos genéticos para resolverlo. A continuación se muestra el seudocódigo de este algoritmo: (1) Construir cromosomas para generar una población inicial (2) Generar una solución para cada uno de los cromosomas mediante el uso de la heurística de mapeo (3) Evaluar las soluciones generadas (4) Número_De_Generaciones = 0 (5) REPETIR (6) Usar selección por torneo para elegir los cromosomas para generar la siguiente población (7) Realizar cruzamiento y mutación de este conjunto de cromosomas (8) Generar una solución para cada uno de los cromosomas mediante el uso de la heurística de mapeo (9) Evaluar las soluciones generadas actuales (10) Número_De_Generaciones = Número_De_Generaciones + 1 (11) HASTA Número_De_Generaciones= Max_Número_De_Generaciones (12) Imprimir la solución óptima En este trabajo se propone un nuevo enfoque llamado Cadena de Crecimiento Restringido Orientada a Grupo (Group Oriented Restricted Growth String) para codificar los cromosomas, basado en las Cadenas de Crecimiento Restringido Capítulo I. Fundamentación teórica. Página 26.
(35) desarrollas por Ruskey [43] en 1993. Esto les permite mantener la característica de excluir a los cromosomas redundantes del proceso e incorporar una adaptación de los operadores de cruce y mutación para orientarlos al contexto de grupos y sean menos destructivos de los esquemas. La estructura de cada cromosoma se define como sigue: 1 F1. 2 F2. … …. i Fi. i+1 Fi+1. … …. n-1 Fn-1. n Fn. Cada celda representa un atributo, mientras que su contenido (Fi) muestra el número del fragmento al que pertenece cada atributo, donde: Fi+1 ≤ (max(F1, F2, . . . Fi ) + 1), 0 < i < n, F1 = 1 En este algoritmo se usa el Evaluador de Particiones de Chakravarthy para determinar la calidad de los cromosomas. En 2011, Bilal Benmessahel y Mohamed Touahria [3] proponen el algoritmo ICPSO (acrónimo del inglés Improved Combinatorial Particle Swarm Optimization) como una mejora del algoritmo CPSO [44] que padece del inconveniente de la codificación redundante. En este trabajo se usa la Cadena de Crecimiento Restringido [43] para excluir las partículas redundantes del proceso. En tal sentido, una partícula se representa de manera análoga a un cromosoma del algoritmo GRGS-GA. ICPSO mantiene una población de partículas, donde cada partícula representa una solución potencial para el problema de optimización. Cada partícula recuerda la mejor posición visitada hasta el momento (Pi) y la mejor posición de la mejor partícula del enjambre (G). En dependencia de esto, en cada generación t la partícula i ajusta su velocidad Vtij y su posición Xtij para cada dimensión j, garantizando que esta vuele a través de soluciones potenciales hacia P i y G, sin dejar de explorar nuevas áreas. La denominada masa de inercia (w) se emplea para controlar el impacto de la historia anterior de las velocidades en la actual. En consecuencia, este parámetro regula el equilibrio entre las capacidades globales y locales de exploración de los enjambres. Una gran masa de inercia facilita la exploración global, mientras que una pequeña tiende a facilitar la exploración local. Un valor adecuado para la masa de inercia, por lo general, proporciona Capítulo I. Fundamentación teórica. Página 27.
(36) equilibrio entre la capacidad de exploración global y local y, por consiguiente resulta en una reducción del número de iteraciones necesarias para localizar la solución óptima. En 2012, Mehdi Goli y Seyed Mohammad Taghi Rouhani Rankoohi [22] proponen el algoritmo HACA (acrónimo del inglés Hybrid Ant Clustering Algorithm) que utiliza la optimización basada en colonias de hormigas para resolver el problema de la fragmentación vertical extendiendo el trabajo de Lumer y Faieta [45], quienes en 1994 presentaron el algoritmo LFAC (acrónimo del inglés Lumer and Faieta Ant Clustering). Cada atributo Ai es definido como un vector con tantas componentes como transacciones se analicen, quedando estructurado como en el siguiente ejemplo: Ai. T1 T2 T3 0.8 0.6 0. T4 0. Donde el valor de cada componente se refiere a la prioridad de acceso de la transacción Tk al atributo Ai, que se interpreta como una fracción entre la medida de necesidad (frecuencia de acceso) de la transacción Tk y la medida de necesidad de todas las transacciones. En este algoritmo, las hormigas realizan una caminata al azar por un arreglo bidimensional, en el que los atributos se han distribuido de forma aleatoria, por lo que una posición en el arreglo está ocupada, a lo sumo, por un atributo. De hecho, las dimensiones del arreglo son tales que su número de posiciones excede el número de atributos y el número de atributos supera al número de hormigas. En cada paso, una hormiga puede recoger o soltar un atributo en su posición actual, ya que es posible que haya un atributo en esa posición o la hormiga esté cargando uno, respectivamente. La probabilidad de recoger o soltar un atributo depende de la densidad y la similitud con otros atributos en la vecindad. Con el fin de encontrar atributos similares para asignar a un clúster, se utiliza una medida de similitud promedio entre el atributo candidato y los otros atributos en su vecindad. Para facilitar el aumento, tanto en la calidad de respuesta como la velocidad del algoritmo, se considera una memoria corta de ocho bits para cada hormiga, de modo que cada hormiga puede recordar los últimos ocho atributos Capítulo I. Fundamentación teórica. Página 28.
(37) que ha dejado. También se considera una memoria de dos bits llamadas CFN y OFN por cada atributo, donde la primera muestra el número del fragmento en el que se encuentra el atributo en la iteración actual y la segunda muestra el número del fragmento óptimo desde el principio. El Evaluador de Particiones de Chakravarthy se utiliza para evaluar la solución generada en cada iteración. Todos estos algoritmos recientes han mostrado muy buenos resultados, sin embargo, se les critica su escaso nivel de intensificación en el proceso de búsqueda (convergencia más lenta). Adicionalmente, en el caso del algoritmo HACA, se critica la cantidad de memoria necesaria para representar el espacio de búsqueda (arreglo bidimensional), para que cada hormiga recuerde los últimos 8 atributos que ha dejado y para que cada atributo tenga constancia del fragmento actual y óptimo al que pertenece.. 1.4 Conclusiones parciales El diseño de bases de datos distribuidas involucra, entre otros, dos problemas complejos como son la fragmentación y la localización, por eso es común que se atiendan de manera independiente. La fragmentación vertical es mucho más compleja que la fragmentación horizontal debido al incremento del número de posibles alternativas; en consecuencia, es habitual que se utilicen estrategias heurísticas para enfrentarla. En un principio abundaron los algoritmos basados en afinidad, pero luego de que se desarrollara el Evaluador de Particiones de Chakravarthy comenzaron a tomar mucho más fuerza los algoritmos basados en costo y se ha ido tendiendo a utilizar este criterio (PE) como medida para comparar los resultados de las diferentes propuestas. Las recientes aplicaciones de meta-heurísticas poblacionales al problema de la fragmentación vertical, con buenos resultados, dejan espacio para nuevas investigaciones a la vez que demuestran que es un tema de interés actual.. Capítulo I. Fundamentación teórica. Página 29.
(38) CAPÍTULO II: PROPUESTA DE SOLUCIÓN. En este capítulo se hace una descripción general de la meta-heurística poblacional Optimización basada en Mallas Dinámicas. Se valoran características y novedades que sugieren inclinarse a defenderla como una meta-heurística prometedora para tratar el problema de la fragmentación vertical de base de datos. Además, se realiza la modelación particular de DMO para resolver el problema de la fragmentación vertical de bases de datos para explorar el método considerando la hipótesis esperada. 2.1 Descripción general de la meta-heurística DMO La Optimización Basada en Mallas Dinámicas (DMO, acrónimo del inglés Dynamic Mesh Optimization) es una meta-heurística poblacional con características evolutivas donde un conjunto de nodos que representan soluciones potenciales a un problema de optimización, forman una malla (población) que dinámicamente crece y se desplaza por el espacio de búsqueda (evoluciona). Para ello, se realiza un proceso de expansión en cada ciclo, donde se generan nuevos nodos en dirección a los extremos locales (nodos de la malla con mejor calidad en distintas vecindades) y el extremo global (nodo obtenido de mejor calidad en todo el proceso desarrollado); así como a partir de los nodos fronteras de la malla. Luego se realiza un proceso de contracción de la malla, donde los mejores nodos resultantes en cada iteración se seleccionan como malla inicial para la iteración siguiente. La formulación general de la meta-heurística abarca tanto los problemas de optimización continuos como los discretos. La esencia del método DMO es crear una malla de puntos en el espacio m dimensional donde se realiza el proceso de optimización de una función FO(x1, x2,…, xm), la cual se mueve mediante un proceso de expansión hacia otras regiones del espacio de búsqueda. Dicha malla se hace más “fina” en aquellas zonas que parecen ser más promisorias. Es dinámica en el sentido que la malla cambia su tamaño (cantidad de nodos) y configuración durante el proceso de búsqueda. Los nodos se representan como vectores de la forma n(x1, x2,…, xm) [21] [46] [47]. Capítulo II. Propuesta de solución. Página 30.
(39) El proceso de generación de nodos en cada ciclo comprende los pasos siguientes: Generación de la malla inicial. Generación de nodos en dirección a los extremos locales (nl). Generación de nodos en dirección al extremo global (ng). Generación de nodos a partir de las fronteras de la malla (nf). El método incluye los parámetros: Cantidad de nodos de la malla inicial (Ni). Cantidad máxima de nodos de la malla en cada ciclo (N), donde 3·Ni ≤ N. Tamaño de la vecindad (k). Condición de parada (M). A continuación se presenta una descripción más detallada de cada uno de los pasos de DMO en el proceso de generación de nuevos nodos (expansión): 1. Generación de la malla inicial en cada iteración: La malla inicial consta de Ni nodos, los cuales en la primera iteración se generan de forma aleatoria o por otro método que garantice obtener soluciones diversas. En las restantes iteraciones del método se realiza un proceso de contracción de la malla, que se basa en una selección de los nodos con mejor calidad entre los nodos (N nodos) existentes al final de cada iteración. 2. Generación de nodos en dirección a los extremos locales: El primer tipo de exploración que se realiza en DMO se lleva a cabo en las vecindades de cada uno de los nodos de la malla inicial para lo cual, se buscan los vecinos más cercanos de cada nodo n a través de una función de distancia o semejanza, en dependencia del dominio de cada dimensión. Luego, se selecciona cuál de los vecinos tiene mejor calidad (evaluación de la FO) que el nodo actual, denotándose ese mejor nodo por nl. Si ninguno de los vecinos es mejor, entonces este se considera un extremo local y no se generan nodos a partir de él en este paso. En otro caso, se genera un nodo n* que estará situado entre el nodo n y el extremo local nl.. Capítulo II. Propuesta de solución. Página 31.
(40) La cercanía del nuevo nodo al actual o al extremo local depende de un factor r, calculado en base a los valores que alcanza la FO en cada uno de los nodos involucrados. Luego se calculan los valores de las componentes del nuevo nodo usando la ecuación: n* (i) = f ( n(i), nl(i), r ) Donde i representa el i-ésimo componente de cada nodo. La función f depende totalmente del dominio de cada una de las dimensiones del problema, por lo que se puede presentar como una función de selección de valores para casos discretos o como una aproximación para casos continuos. Mientras mayor sea la diferencia entre los valores de FO en los nodos involucrados, mayor será la cercanía o semejanza de n* a nl; esto lo garantiza el factor r. Este paso se encarga de realizar una intensificación de la búsqueda en la vecindad de cada nodo. 3. Generación de nodos en dirección hacia el extremo global: Este paso tiene como propósito realizar una exploración global hacia el nodo que mejor calidad ha tenido hasta el momento (extremo global, ng) para lo cual se generan nuevos nodos a partir de cada nodo de la malla inicial en dirección a este, utilizando la siguiente ecuación: n* (i) = g ( n(i), ng(i), r ) Al igual que en el paso anterior, g es una función que está totalmente relacionada con el dominio de cada dimensión y garantiza que mientras mayor sea la diferencia entre la calidad de cada nodo involucrado, determinado por r, mayor será la cercanía del nuevo nodo al extremo global. Este paso es el encargado de acelerar la convergencia del método. 4. Generación de nodos a partir de los nodos más externos de la malla: Este proceso de generación de nuevos nodos tiene lugar con el objetivo de explorar el espacio de búsqueda en dirección a las fronteras de cada dimensión. Para ello se seleccionan los nodos cuyas posiciones se encuentran en los extremos de la malla. Capítulo II. Propuesta de solución. Página 32.
Figure
Documento similar
b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación
Primeros ecos de la Revolución griega en España: Alberto Lista y el filohelenismo liberal conservador español 369 Dimitris Miguel Morfakidis Motos.. Palabras de clausura
"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería
Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en
(1886-1887) encajarían bien en una antología de textos históricos. Sólo que para él la literatura es la que debe influir en la historia y no a la inversa, pues la verdad litera- ria
Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied
Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa