• No se han encontrado resultados

Búsqueda guiada por el usuario mediante la visualización en optimización por colonias de hormigas

N/A
N/A
Protected

Academic year: 2020

Share "Búsqueda guiada por el usuario mediante la visualización en optimización por colonias de hormigas"

Copied!
97
0
0

Texto completo

(1)Universidad Central “Marta Abreu” de Las Villas Facultad Matemática, Física y Computación Licenciatura en Ciencias de la Computación. Búsqueda Guiada por el Usuario mediante la Visualización en Optimización por Colonias de Hormigas. AUTOR: Reinaldo Arsenio Lorenzo Trujillo TUTORA: Lic. Evelyn Menéndez Alonso. 2009 “Año del 50 Aniversario del Triunfo de la Revolución”.

(2) DEDICATORIA A mis abuelos. A Elida y Alvarito..

(3) AGRADECIMIENTOS A mi abuelo Arsenio, faro que me ha dado sostén, y una luz a seguir. A mi abuela Liduvina, no hay un corazón más grande. A Elida y Alvarito, son lo más preciado. A Oleida, por ser ejemplo a seguir en estos años universitarios. A Bishosan, el mejor amigo, aún estando del otro lado del mundo. A la memoria de Yosley, inseparable amigo que ya no está. A Alexander, Carlos, Nestor, Yimmy y Ernesto. A mis amistades todas, sin las cuales el mundo sería demasiado gris. A Evelyn, excelente tutora que me dio toda su ayuda en esta tesis..

(4) Resumen. RESUMEN Mediante la integración de Técnicas de Visualización a los algoritmos de Optimización por Colonias de Hormigas (ACO) en la herramienta ACOVis 1.0, se abrieron nuevas posibilidades para el análisis del comportamiento de estos y la mejora en tiempo y calidad de las soluciones a Problemas de Optimización Combinatorios (POC). Aún así no se conocen mecanismos adecuados para interactuar en tiempo de ejecución con algoritmos de ACO en la solución a otros Problemas de Optimización Combinatoria distintos del Viajero Vendedor (TSP) y existe la necesidad de implementar las interacciones propuestas para ACOVis que posibiliten mejorar la eficiencia en la búsqueda de la solución a través de la búsqueda guiada por el usuario. En el presente trabajo proponemos formas de visualización e interacciones con los algoritmos de ACO para solucionar Problemas de Secuenciación de Tareas (JSP). Implementamos para ACOVis un módulo para la solución de JSP y agregamos las interacciones propuestas para TSP. Se realizó un análisis experimental, utilizando la herramienta ACOVis 2.0, y los resultados demostraron la eficiencia de la búsqueda guiada por el usuario, tanto en la solución de problemas TSP como JSP, encontrando mejores soluciones y en menor tiempo.. Palabras Claves: Búsqueda Guiada por el Usuario, Visualización, Optimización por Colonia de Hormigas..

(5) Abstract. ABSTRACT By the integration of visualization techniques with Ant Colony Optimization (ACO) in the tool ACOVis 1.0, new opportunities were open to analysis of behavior of such algorithms and the enhancement in required time and quality of Combinatorial Optimization Problems (POC). There are not known suitable mechanisms to the visualization of POC, except for the Traveler Salesmen Problem (TSP) and is necessary the implementation of interactions proposed to ACOVis in order to improve the efficiency in finding the solution by human-guided searching. In present work we propose new ways of visualizations and interactions with ACO algorithms to solve Job Scheduling Problem (JSP). We implemented a new module to ACOVis to the solution of JSP and added proposed interactions to ACOVis. An experimental analysis was performed using the tool ACOVis 2.0, and the results show the efficiency of human guided searching, in the solution of TSP and JSP problems, finding best solutions in better time.. Keywords: Human-Guided Searching, Visualization, Ant Colony Optimization..

(6) Índice. ÍNDICE INTRODUCCIÓN................................................................................................................... 1 1. VISUALIZACIÓN Y BÚSQUEDA GUIADA POR EL USUARIO APLICADA A LA METAHEURÍSTICA COLONIA DE HORMIGAS PARA RESOLVER PROBLEMAS DE OPTIMIZACIÓN COMBINATORIA. ..................................................................................... 5 1.1 Problemas de Optimización Combinatoria ..................................................................... 5 1.1.1 Problema del Viajero Vendedor ................................................................................ 5 1.1.2 Problema de Secuenciación de Tareas ...................................................................... 6 1.1.3 Métodos disponibles para resolver Problemas de Optimización Combinatoria ....... 8 1.2 Metaheurística de Optimización basada en Colonias de Hormigas ................................ 9 1.2.1 Estructura genérica de un algoritmo de ACO ......................................................... 10 1.2.2 Variantes algorítmicas de ACO ............................................................................... 13 1.2.2.1 Algoritmo Sistema de Hormigas........................................................................ 14 1.2.2.2 Algoritmo Sistema Colonia de Hormigas.......................................................... 14 1.2.2.3 Algoritmo Sistema de Hormigas MAX-MIN...................................................... 15 1.2.3 Pasos a seguir para resolver un problema mediante ACO...................................... 16 1.2.4 Aplicaciones de los algoritmos ACO ....................................................................... 17 1.3 Visualización ................................................................................................................. 18 1.3.1 Visualización de Grafos ........................................................................................... 21 1.3.2 Visualización de algoritmos de ACO en tiempo de ejecución ................................. 21 1.4 Integración de técnicas de Visualización a los algoritmos de Optimización................. 22 1.4.1 Visualización de Algoritmos de Búsqueda aplicados a la solución de Problemas de Optimización Combinatoria. Herramienta ACOVis......................................................... 23 1.4.2 Interacciones existentes y propuestas en ACOVis ................................................... 25 1.5 Conclusiones Parciales .................................................................................................. 27 2. APLICACIÓN DEL MODELO DE INTEGRACIÓN DE TÉCNICAS DE VISUALIZACIÓN CON ALGORITMOS DE ACO, A JSP ................................................... 29 2.1 Esquema general del modelo de Visualización en ACO ................................................ 29 2.2 Aplicación del Modelo en la solución de problemas de Secuenciación de Tareas ........ 32.

(7) Índice. 2.3 Nuevas propuestas de visualización e interacciones del usuario con el algoritmo ....... 33 2.3.1. Visualizaciones e interacciones para JSP........................................................... 33. 2.3.2. Nuevas visualizaciones e interacciones implementadas para el TSP ................. 41. 2.4 Consideraciones sobre la extensión del modelo a los algoritmos de la metaheurística de Optimización mediante Mallas Dinámicas. ......................................................................... 45 2.5 Conclusiones Parciales .................................................................................................. 46 3. HERRAMIENTA DE SOFTWARE ACOVIS 2.0. ESTUDIO EXPERIMENTAL Y ANÁLISIS DE LOS RESULTADOS...................................................................................... 48 3.1. Generalidades de la Herramienta ACOVis 2.0.......................................................... 48. 3.1.1 Algoritmo en Pseudocódigo ACS-JSP ..................................................................... 49 3.1.2 Plataforma de desarrollo ......................................................................................... 50 3.2. Análisis y Diseño de la Herramienta ........................................................................ 51. 3.2.1 Casos de Uso............................................................................................................ 52 3.2.1.2 Descripción de los Casos de Uso ..................................................................... 55 3.2.2 Diagrama de Clases................................................................................................. 57 3.3. Funcionamiento de ACOVis 2.0................................................................................. 58. 3.3.1. Interfaz inicial ..................................................................................................... 58. 3.3.2. Funcionamiento del módulo ACOVis 2.0 para TSP ........................................... 58. 3.3.2.1 Interfaz principal de la aplicación .................................................................... 59 3.3.2.2 Visualización del Recorrido de las Hormigas................................................... 60 3.3.2.3 Visualización de la Matriz de Feromonas......................................................... 60 3.3.2.4 Visualización de las mejores Soluciones Globales............................................ 60 3.3.2.5 Intercambiar Paneles ........................................................................................ 60 3.3.2.6 Resultados Numéricos del Algoritmo ................................................................ 61 3.3.2.7 Clonar y Eliminar Hormiga Visible .................................................................. 61 3.3.2.8 Modificar feromonas y observar valores de feromona y distancia para un arco determinado................................................................................................................... 61 3.3.2.9 Filtrar Matriz de Feromonas............................................................................. 62 3.3.2.10 Filtrar Soluciones encontradas ....................................................................... 62 3.3.2.11 Variar velocidad del algoritmo ...................................................................... 63 3.3.2.12 Mostrar con mayor detalle una región seleccionada ...................................... 63.

(8) Índice. 3.3.2.13 Opciones de Menú ........................................................................................... 63 3.3.2.14 Principales Interacciones. ............................................................................... 65 3.3.3 Funcionaminto del módulo ACOVis 2.0 para JSP .................................................. 69 3.3.3.1 Ficheros de entrada *.JSP................................................................................. 69 3.3.3.2 Interfaz principal de la aplicación ................................................................... 70 3.3.3.3 Visualización del Recorrido de las Hormigas................................................... 71 3.3.3.4 Visualización de la Matriz de Feromonas......................................................... 72 3.3.3.5 Visualización de las Soluciones......................................................................... 72 3.3.3.6 Intercambiar Paneles ........................................................................................ 72 3.3.3.7 Resultados Numéricos del Algoritmo ................................................................ 72 3.3.3.8 Clonar y Eliminar Hormigas............................................................................. 72 3.3.3.9 Pausar y reanudar ejecución............................................................................. 73 3.3.3.10 Modificar feromonas en un arco determinado. ............................................... 73 3.3.3.11 Filtrar Matriz de Feromonas........................................................................... 74 3.3.3.12 Mostrar k-mejores soluciones encontradas..................................................... 75 3.3.3.13 Variar velocidad del algoritmo ....................................................................... 76 3.3.3.14 Clonar k-Mejores Hormigas............................................................................ 76 3.3.3.15 Aumentar Exploración..................................................................................... 77 3.3.3.16 Opciones de Menú .......................................................................................... 77 3.4. Análisis Experimental usando ACOVis 2.0................................................................ 79. 3.4.1. Estudio Experimental .......................................................................................... 79. 3.4.1.1 Pruebas para Problemas de Secuenciación de Tareas ..................................... 79 3.4.1.2 Pruebas para Problemas del Viajero Vendedor............................................... 80 3.4.2. Análisis de los Resultados................................................................................... 81. 3.4.2.1 Analísis de los Resultados Problemas de Secuenciación de Tareas ................. 81 3.4.2.2 Analísis de los Resultados Problemas del Viajero Vendedor............................ 82 3.5. Conclusiones Parciales.............................................................................................. 82. CONCLUSIONES................................................................................................................. 83 RECOMENDACIONES........................................................................................................ 84 REFERENCIAS BIBLIOGRÁFICAS .................................................................................... 85.

(9) Introducción. INTRODUCCIÓN Para dar solución a los Problemas de Optimización Combinatoria (POC) se utilizan diversos algoritmos, algunos de los cuales son exactos y otros aproximados; en estos problemas podría pensarse que se solucionan fácilmente buscando de manera exhaustiva el valor óptimo en el conjunto finito de todas las posibles soluciones, lo cual daría el resultado exacto; pero en la práctica, dado el gran tamaño de este conjunto, se hace inviable computacionalmente cualquier intento de búsqueda exhaustiva en problemas incluso de dimensión moderada. Estos problemas, incluidos en la clase NP-completos, son de gran interés científico y tecnológico dada su aplicabilidad cotidiana. Abarcan diferentes áreas del conocimiento incluyendo las Matemáticas, Ciencias de la Computación, Investigación Operativa, Genética, Ingeniería y Electrónica. Involucran a la optimización desde los clásicos problemas de diseño de redes de telecomunicación, programación de rutas, asignación de frecuencias, planificación de máquinas u organización de la producción hasta los más actuales de ingeniería y re-ingeniería de software (Pantrigo, 2005) Debido al alto costo computacional de los algoritmos exactos, para resolver los POC se han diseñado una amplia variedad de métodos aproximados que aplican técnicas de inteligencia artificial y logran encontrar soluciones suficientemente buenas. Uno de estos métodos es la metaheurística Optimización Basada en Colonias de Hormigas (Ant Colony Optimization, ACO) que cae en la categoría de algoritmos bioinspirados o de vida artificial y de inteligencia colectiva; esta metaheurística, desde su surgimiento, ha probado gran efectividad sobre una colección significativa de problemas, se inspira en el comportamiento de las colonias de hormigas naturales que minimizan el recorrido desde su nido hacia sus fuentes de alimento, su potencialidad está dada por. la. cooperación entre individuos (hormigas) de una forma indirecta a través de los rastros de una sustancia llamada feromona, que van depositando durante su recorrido (Alonso et al., 2003) .. 1.

(10) Introducción. Se conoce que obtener información e interactuar con un algoritmo en tiempo de ejecución, con sus parámetros, componentes y/o estrategias es una variante poderosa para mejorar su eficiencia. (Menéndez, 2008a). Más aún en algoritmos de la metaheurística ACO, caracterizados por un conjunto de parámetros que influencian, en buena medida, la búsqueda, sus niveles de intensificación y exploración. Está demostrado que la integración de técnicas de Visualización a Algoritmos de Optimización permite, a través de la búsqueda guiada por el usuario, obtener mejores soluciones y en menor tiempo. La herramienta ACOVis posibilita al usuario la obtención de información, tanto visual como numérica, del comportamiento del algoritmo Sistema Colonia de Hormigas (ACS) de ACO, pero solo en la solución de problemas del Viajero Vendedor (TSP). Además se han propuesto otras interacciones del usuario con el algoritmo para guiar la búsqueda las cuales se recomienda implementar en el software ACOVis para mejorar la eficiencia de la solución de POC (Menéndez, 2008a). De lo anteriormente expuesto se deriva el Problema Científico a resolver: No se conocen mecanismos adecuados para interactuar en tiempo de ejecución con algoritmos de ACO en la solución a otros Problemas de Optimización Combinatoria distintos del TSP que mejoren su eficiencia y existe la necesidad de implementar las interacciones con los algoritmos de ACO propuestas para ACOVis que posibiliten mejorar la eficiencia en la búsqueda de la solución a Problemas de Optimización Combinatoria a través de la búsqueda guiada por el usuario. Para contribuir a la solución del problema científico antes plateado, se desarrolló una Investigación de Tipo Exploratoria, cuyas Hipótesis son las siguientes: •. Mediante la incorporación de una mayor cantidad de interacciones visuales con los algoritmos de la metaheurística de Optimización por Colonias de Hormigas, el usuario puede lograr guiar de mejor forma el proceso de búsqueda.. 2.

(11) Introducción. •. La integración de técnicas de visualización es un mecanismo adecuado de interacción con los algoritmos de optimización en tiempo de ejecución que mejora su eficiencia en la solución a otros problemas distintos del TSP.. Objetivo General Extender la herramienta de Visualización ACOVis para que permita solucionar otros Problemas de Optimización Combinatoria y utilizar nuevas interacciones del usuario con el algoritmo en tiempo real, para mejorar su eficiencia en la solución de estos problemas.. Objetivos Específicos •. Aplicar el modelo de visualización propuesto para los algoritmos de ACO a Problemas de Secuenciación de Tareas.. •. Incorporar a la herramienta ACOVis un nuevo módulo para solucionar problemas de Secuenciación de Tareas.. •. Implementar sobre ACOVis otras funcionalidades y formas de interacción que permitan al usuario guiar la búsqueda en el TSP.. •. Evaluar los beneficios de las nuevas funcionalidades e interacciones implementadas, a través de un análisis experimental con la herramienta ACOVis 2.0.. Preguntas de Investigación •. ¿Cómo podrían visualizarse adecuadamente los problemas de Secuenciación de Tareas?. •. ¿De qué forma extender la herramienta ACOVis para que permita solucionar problemas de Secuenciación de Tareas?. •. ¿Cómo implementar nuevas interacciones en la herramienta ACOVis?. •. ¿Qué beneficios presupone la integración de nuevas técnicas de visualización en ACOVis para la solución de Problemas de Optimización? 3.

(12) Introducción. Justificación de la Investigación Este proyecto se enmarca en las investigaciones que se realizan en el Laboratorio de Computación Gráfica del Centro de Estudios Informáticos de la Universidad Central de Las Villas y es de interés además para el Laboratorio de Inteligencia Artificial del mismo centro. Se decidió realizar el presente trabajo dado que estaba propuesto extender la herramienta ACOVis para resolver otros POC distintos del TSP y agregarle mayor número de interacciones visuales que permitan al usuario guiar la búsqueda y obtener mejores resultados en menor tiempo (Menéndez, 2008a) El presente informe de investigación consta de tres capítulos. El primer capítulo aborda los aspectos teóricos relacionados con la Visualización, los Problemas de Optimización Combinatoria y la metaheurística ACO, además se realiza una descripción de herramientas que integran técnicas de visualización a algoritmos de búsqueda para resolver problemas de optimización, especialmente la herramienta ACOVis. En el Capítulo 2 se expone el modelo existente de integración de técnicas de visualización a algoritmos de optimización mediante colonias de hormigas, se analiza la forma de aplicar este modelo al problema de secuenciación de tareas, se exponen las interacciones que estaban propuestas y otras nuevas, finalmente se brindan consideraciones sobre la extensión de este modelo a la metaheurística Mallas Dinámicas. El Capítulo 3 está dedicado a describir los procesos de análisis, diseño y funcionamiento de la herramienta implementada acorde al modelo existente y a las propuestas de interacciones visuales, por último, en este capítulo se validar los resultados obtenidos a través de un estudio experimental. Posteriormente se presentan las Conclusiones y Recomendaciones de la investigación y la Bibliografía consultada para la misma.. 4.

(13) Capítulo 1. 1. VISUALIZACIÓN Y BÚSQUEDA GUIADA POR EL USUARIO APLICADA A LA METAHEURÍSTICA COLONIA DE HORMIGAS PARA RESOLVER PROBLEMAS DE OPTIMIZACIÓN COMBINATORIA. En el presente capítulo se describen los Problemas de Optimización Combinatoria: Viajero Vendedor y Secuenciación de Tareas. Se aborda de forma general la metaheurística de Optimización basada en Colonias de Hormigas, y tres de sus variantes algorítmicas: Sistema de Hormigas y Sistema Colonia de Hormigas y Sistema de Hormigas Max-Min. Se tratan las generalidades sobre el campo de la Visualización y específicamente la visualización de grafos, considerada para integrar con los algoritmos anteriormente mencionados. Nos referimos a herramientas que integran técnicas de visualización a algoritmos de búsqueda para resolver Problemas de Optimización y en específico a la herramienta ACOVis, de la cual se exponen las generalidades y se enumeran las interacciones que fueron propuestas.. 1.1 Problemas de Optimización Combinatoria Un Problema de Optimización Combinatoria se puede definir como la mejora de una función objetivo f : S → ℜ sujeta a una serie de restricciones. Para la mayoría de estos problemas, que tienen gran interés tanto práctico como científico, no se conoce un algoritmo exacto con complejidad polinomial que lo resuelva, por lo que pertenecen a la clase de problemas NP-Completos (Garey et al., 1979). A continuación se explican dos ejemplos de este tipo de problemas.. 1.1.1 Problema del Viajero Vendedor El Problema del Viajero Vendedor también conocido como Travelling Salesman Problem (TSP), consiste en que un viajero debe visitar un conjunto de ciudades, comenzando por una elegida arbitrariamente como origen, teniendo que regresar a ella 5.

(14) Capítulo 1. luego de haber visitado todas las demás sin pasar dos veces por ninguna ciudad intermedia. El objetivo es determinar el recorrido de costo mínimo (Reinelt, 1994). Más formalmente, dado un grafo pesado completo G = (N,A), donde N es el conjunto de nodos que representan las ciudades y A el conjunto de todos los arcos que conectan completamente los nodos de N. A cada arco se le asigna un valor d ij , el cual es la distancia del arco (i, j) ∈ A. Se desea encontrar el circuito Hamiltoniano de longitud mínima. Un circuito Hamiltoniano es un camino cerrado o ciclo en el que cada nodo de N aparece exactamente una vez. De acuerdo al comportamiento de las distancias entre las ciudades el TSP se divide en dos categorías: simétrico y asimétrico. Para el TSP simétrico, la distancia entre las ciudades es independiente de la dirección del arco, o sea, d ij = d ji , para todos los pares de nodos. Tomando n como la cantidad de ciudades (|N|=n), existen (n-1)! / 2 circuitos Hamiltonianos. El TSP asimétrico es más general, para al menos un par de nodos i, j, d ij ≠ d ji (Dorigo et al., 2001). El problema tiene considerables aplicaciones prácticas además de las más evidentes que recaen en áreas de logística de transporte; por ejemplo, en robótica, permite resolver problemas de fabricación para minimizar el número de desplazamientos al realizar una serie de perforaciones en una plancha o en un circuito impreso. También puede ser utilizado en control y operativa optimizada de semáforos, etc.. 1.1.2 Problema de Secuenciación de Tareas El Problema de Secuenciación de Tareas o Job-Shop Scheduling Problem (JSSP o JSP), consiste en planificar la ejecución de un conjunto de n trabajos J = { j1 , j2 , ... jn } en un conjunto de m máquinas M ={m1, m2 , ...mm} . Cada trabajo Ji consiste en una cadena. de. tareas. u. operaciones. {oi1 , oi 2 ,...oim }. que. deben. ser. ejecutadas. secuencialmente.. 6.

(15) Capítulo 1. Una máquina solo puede procesar una operación a la vez y cada operación tiene un tiempo de procesamiento: {τ i1 ,τ i 2 ,...τ imi } , período en el cual debe ser procesado ininterrumpidamente en una máquina dada. Entre las operaciones de un mismo trabajo existe una relación de precedencia, no así entre operaciones de trabajos diferentes. Si le llamamos O al conjunto de todas las operaciones, podemos definir A como una relación binaria que representa la precedencia entre las operaciones del conjunto. Si. (v, w) ∈ A entonces la operación v tiene que ejecutarse antes de la operación w. Una secuencia de asignación es una función S : O → IN ∪ { 0 } que para cada operación v define un tiempo de inicio S (v) y es factible si cumple: ∀v ∈ O : S (v ) ≥ 0 ∀v, w ∈ O, (v, w) ∈ A : S (v) + τ (v) ≤ S ( w) ∀v, w ∈ O, v ≠ w, M (v ) = M ( w) : S (v) + τ (v) ≤ S ( w) or S ( w) + τ ( w) ≤ S (v). El tiempo de terminación (costo) de una secuencia de asignación determinada es: cos to ( S ) = max v ∈ O ( S (v ) + τ (v ) ). El objetivo es encontrar una secuencia de asignación de las operaciones a las máquinas en intervalos de tiempo hallados, de forma que se minimice el tiempo en que se terminan de procesar todas las operaciones. O sea: min (costo(S)).. (Coffman, 1976). Job Shop Scheduling es un problema de optimización catalogado como NP duro (Papadimitriou, 1994), de forma que no hay hasta el momento algoritmos determinísticos que lo resuelvan en forma eficiente (polinomial). Problemas de solo 10 trabajos y 10 máquinas han podido resolverse solo después de un período de 25 años (Schutten, 1998).. 7.

(16) Capítulo 1. 1.1.3 Métodos disponibles para resolver Problemas de Optimización Combinatoria La existencia de una gran cantidad y diversidad de problemas de optimización combinatoria que necesitan ser resueltos de forma eficiente, impulsó el desarrollo de procedimientos para encontrar soluciones, que. aunque no fueran óptimas fueran. suficientemente buenas. Estos métodos, en los que la rapidez del proceso es tan importante como la calidad de la solución obtenida, se denominan heurísticos o aproximados. Un método heurístico es un procedimiento para resolver un problema de optimización bien definido mediante una aproximación intuitiva, en la que la estructura del problema se utiliza de forma inteligente para obtener una buena solución (Díaz et al., 1996). Posteriormente, con el propósito de obtener mejores resultados que los alcanzados por los heurísticos tradicionales surgen los denominados procedimientos metaheurísticos. Los procedimientos metaheurísticos son una clase de métodos aproximados que están diseñados para resolver problemas difíciles de optimización combinatoria, en los que los heurísticos clásicos no son efectivos. Los metaheurísticos proporcionan un marco general para crear nuevos algoritmos híbridos combinando diferentes conceptos derivados de la inteligencia artificial, la evolución biológica y los mecanismos estadísticos (Osman et al., 1996, Martí, 2003). Se han desarrollado varias metaheurísticas que han probado su efectividad en la solución de problemas de optimización, entre ellas se encuentran: Búsqueda Tabú (Glover, 1989), Recocido Simulado (Kirkpatrick et al., 1983), GRASP (Marques-Silva et al., 1999), Algoritmos Genéticos (Yamada et al., 1992) Optimización basada en Enjambre de Partículas o Particle Swarm Optimization (PSO) (Kennedy et al., 1995, Adly et al., 2004), Optimización basada en Mallas Dinámicas o Dynamic Mesh Optimization (DMO) (Puris et al., 2009) y Optimización basada en Colonias de Hormigas(Gambardella et al., 1997, Stützlet et al., 1999) con esta última incluida en la categoría de los algoritmos bioinspirados o de vida artificial e inteligencia colectiva (Rasmussen et al., 2003).. 8.

(17) Capítulo 1. 1.2 Metaheurística de Optimización basada en Colonias de Hormigas La metaheurística Optimización mediante Colonias de Hormigas o Ant Colony Optimization (Dorigo et al., 1996), propuesta para resolver problemas complejos de optimización combinatoria, tiene su fuente de inspiración en el comportamiento de colonias de hormigas reales. Las hormigas son capaces de seguir la ruta más corta en su camino de ida y vuelta entre la colonia y una fuente de abastecimiento. Al desplazarse cada una va dejando un rastro de una sustancia química llamada feromona a lo largo del camino seguido, "transmitiéndose información" entre ellas de esta forma (Barcos et al., 2002). Las feromonas forman un sistema indirecto de comunicación química entre animales de una misma especie, que transmiten información acerca del estado fisiológico, reproductivo y social, así como la edad, el sexo y el parentesco del animal emisor, las cuales son recibidas en el sistema olfativo del animal receptor, quien interpreta esas señales, jugando un papel importante en la organización y la supervivencia de muchas especies (Barán et al., 2000). Al iniciar la búsqueda de alimento, una hormiga aislada se mueve a ciegas, es decir, sin ninguna señal que pueda guiarla, pero las que le siguen deciden con buena probabilidad seguir el camino con mayor cantidad de feromona. Considere la Figura 1.1 en donde se observa cómo las hormigas establecen el camino más corto. En la figura (a) las hormigas llegan a un punto donde tienen que decidir por uno de los caminos que se les presenta, lo que resuelven de manera aleatoria. En consecuencia, la mitad de las hormigas se dirigirán hacia un extremo y la otra mitad hacia el otro extremo, como ilustra la figura (b). Ya que las hormigas se mueven aproximadamente a una velocidad constante, las que eligieron el camino más corto alcanzarán el otro extremo más rápido que las que tomaron el camino más largo, quedando depositada mayor cantidad de feromona por unidad de longitud, como ilustra la figura (c). La mayor densidad de feromonas depositadas en el trayecto más corto hace que éste sea más deseable para las siguientes hormigas y por lo tanto, la mayoría elige transitar por él. Considerando que la evaporación de la sustancia química hace que los caminos menos transitados sean cada 9.

(18) Capítulo 1. vez menos deseables y la realimentación positiva en el camino, con más feromona, resulta claro que al cabo de un tiempo casi todas las hormigas transiten por el camino más corto, como se ilustra en la figura (d) (Barán et al., 2000). Figura 1.1: Comportamiento de las hormigas reales.. En analogía con el ejemplo biológico, ACO se basa en la comunicación indirecta de una colonia de agentes simples, llamados hormigas (artificiales), por medio de la huella de feromona (artificial). La huella de feromona en ACO sirve como información numérica distribuida, que las hormigas usan para la construcción probabilística de soluciones del problema a resolver y la adaptan durante la ejecución del algoritmo para reflejar su experiencia de búsqueda (Dorigo et al., 2001).. 1.2.1 Estructura genérica de un algoritmo de ACO La estructura de un algoritmo genérico de la metaheurística ACO es la siguiente (Dorigo et al., 1999): 1. procedimiento metaheurística_ACO(). 2. inicialización_de_parámetros. 3. mientras (criterio_de_terminación_no_satisfecho). 10.

(19) Capítulo 1. 4. programación_de_actividades. 5. generación_de_hormigas_y_actividad(). 6. evaporación_de_feromona(). 7. acciones_del_demonio() {opcional}. 8 9. fin programación_de_actividades fin mientras. 10 fin procedimiento. 1 2 3 4. procedimiento generación_de_hormigas_y_actividad() repetir en paralelo desde k=1 hasta número_hormigas nueva_hormiga(k) fin repetir en paralelo. 5. fin procedimiento. 1. procedimiento nueva_hormiga(id_hormiga). 2. inicializa_hormiga(id_hormiga). 3. L = actualiza_memoria_hormiga(). 4. mientras (estado_actual. ≠ estado_objetivo). 5. P = calcular_probabilidades_de_transición(A,L,W). 6. siguiente_estado = aplicar_política_decisión(P,W). 7. mover_al_siguiente_estado(siguiente_estado) si (actualización_feromona_en_línea_paso_a_paso). 8. depositar_feromona_en_el_arco_vistado() fin si. 9 10. L = actualizar_estado_interno() fin mientras si (actualización_feromona_en_línea_a_posteriori). 11. para cada arco visitado. 11.

(20) Capítulo 1. 12. depositar_feromona_en_el_arco_visitado(). 13. fin para fin si. 14. liberar_recursos_hormiga(id_Hormiga). 15. fin Procedimiento. Las hormigas de la colonia se mueven, concurrentemente y de manera asíncrona, a través de los estados adyacentes de un problema, que puede representarse en forma de grafo con pesos. Este movimiento se realiza siguiendo una regla de transición basada en la información local disponible en las componentes o nodos. Esta información incluye una heurística y una memorística (rastros de feromona) para guiar la búsqueda. La inicialización_de_parámetros depende del algoritmo específico, generalmente. deben tenerse en cuenta parámetros como: el rastro inicial de feromona asociado a cada transición o arco, el número de hormigas en la colonia, los pesos que definen la proporción en la que afectarán la información heurística y memorística en la regla de transición. probabilística.. En. programación_de_actividades. se. controla. la. planificación de tres componentes: la generación y puesta en funcionamiento de las hormigas artificiales; la evaporación de feromona, que se usa como un mecanismo para evitar el estancamiento en la búsqueda y permitir que la hormigas busquen y exploren nuevas regiones del espacio; y las acciones del demonio, utilizadas para implementar tareas desde una perspectiva global que no pueden llevar a cabo las hormigas, por ejemplo, observar la calidad de todas las soluciones generadas y depositar una nueva cantidad de feromona adicional en las transiciones asociadas a algunas soluciones. El procedimiento actualiza_memoria_hormiga() se encarga de especificar el estado inicial desde el que la hormiga comienza su camino y además almacenar la componente correspondiente en la memoria de la hormiga L. La decisión sobre cuál será el nodo inicial. depende. del. algoritmo. específico.. calcular_probabilidades_de_transición. En. los. procedimientos. y aplicar_política_decisión. se. tienen en consideración el estado actual de la hormiga y el conjunto de arcos del grafo (A), los valores actuales de la feromona visibles en dicho nodo y las restricciones del. 12.

(21) Capítulo 1. problema (W) para establecer el proceso de transición probabilístico hacia otros estados válidos. La actualización_feromona_en_línea_paso_a_paso es el procedimiento donde se actualiza el rastro de feromona asociado a un arco, cuando la hormiga se mueve entre los nodos que este conecta. Una vez que la hormiga ha construido la solución puede reconstruir el camino recorrido y actualizar los rastros de feromona de los. arcos. visitados. mediante. el. procedimiento. llamado. actualización_feromona_en_línea_a_posteriori (Dorigo et al., 1999, Alonso et. al., 2003). La estructura genérica de cualquier algoritmo de ACO en resumen se basa en que se ejecutan varios ciclos del algoritmo, y en cada ciclo todas las hormigas buscan una solución válida, la cual van construyendo incrementalmente partiendo de un estado inicial y aplicando la regla de transición que tiene en cuenta tanto información heurística como memorística para hallar el próximo estado, quedando guardada la mejor solución hallada y modificándose la matriz de feromona de una forma u otra para lograr la comunicación entre las hormigas.. 1.2.2 Variantes algorítmicas de ACO En la literatura se han propuesto diversos algoritmos que siguen la metaheurística ACO. Entre los disponibles para problemas de optimización combinatoria NP-duros, se encuentran el Sistema de Hormigas (Ant System, AS) (Dorigo et al., 1996), el Sistema de Colonia de Hormigas (Ant Colony System, ACS) (Gambardella et al., 1997), el Sistema de Hormigas Max-Min ( Max-Min Ant System, MMAS) (Stützle et al., 2000), el Sistema de Hormigas con Ordenación (Rank-Based Ant System) (Bullnheimer et al., 1999b) , el Sistema de la Mejor-Peor Hormiga (Best-Worst Ant System) (Cordón et al., 2002), entre otros. En cuanto a la efectividad de una u otra variante, en algunos problemas se logran mejores resultados empleando determinada variante o variantes, solo experimentalmente se encuentra que variante es más efectiva para solucionar un problema específico.. 13.

(22) Capítulo 1. 1.2.2.1 Algoritmo Sistema de Hormigas En el algoritmo AS se construyen las soluciones de la siguiente forma: para cada hormiga k en cada paso de construcción se escoge ir del nodo i al siguiente nodo j, ∀j , con una probabilidad Pijk. (τ ) * (η ) ∑ (τ ) * (η ) α. pijk =. β. ij. ij. α. β. ij. si. j ∈ N ik. ij. j∈Nik. donde: N ik es el vecindario alcanzable por la hormiga k cuando se encuentra en el nodo i; α es el factor de escalado de feromona y β el de visibilidad, ambos se usan para afinar el proceso de búsqueda; τ ij el valor de feromona en el arco que une los nodos i y j; η ij se denomina función de visibilidad, que depende totalmente de las características del problema que se va a resolver, por ejemplo para el TSP es 1 / d ij , donde d ij es la distancia entre las ciudades i y j. Luego se comparan para todas las hormigas sus soluciones encontradas con la mejor hasta el momento y se modifica esta si alguna de las encontradas la mejora. En la actualización de la huella de feromona se evapora una proporción constante de feromona en cada arco y luego cada hormiga una vez que la solución está completa deposita una cantidad de feromona en dependencia de la calidad de su solución, o sea, actualización en línea a posteriori (Dorigo et al., 1996, White et al., 2003).. 1.2.2.2 Algoritmo Sistema Colonia de Hormigas] El algoritmo ACS se diferencia del AS en la regla de transición denominada regla proporcional pseudo-aleatoria, que utiliza el parámetro q 0 ∈ [0,1] y el valor aleatorio. q ∈ [0,1]. si q ≤ q 0. y calcula. Pijk. como sigue:. {. ⎧⎪1, si j = max j∈N k τ ij *ηijβ i P =⎨ ⎪⎩0, otros casos k ij. }⎫⎪ ⎬ ⎪⎭ 14.

(23) Capítulo 1. si q > q 0. p = k ij. τ ij * (η ij )β. ∑τ * (η ). β. ij. si. j ∈ N ik. ij. j∈N ik. También existen diferencias en cuanto a la actualización de los rastros de feromona, pues en ACS las hormigas depositan feromona mientras construyen sus soluciones, es decir, actualización en línea paso a paso, que incluye además la evaporación de feromona. Cada vez que una hormiga viaja por un nodo aplica la regla: t ij ← (1 − ϕ ) * t ij + t 0. donde ϕ ∈ (0,1] es un parámetro de decremento de feromona. Por otra parte el demonio actualiza la feromona, o sea, se realiza una actualización de feromona fuera de la línea de los rastros, para esto el algoritmo sólo considera la hormiga que generó la mejor solución global, Smejor-global. Esta actualización se hace evaporando primero los rastros de feromona en todas las conexiones utilizadas por la mejor hormiga global y luego depositando feromona en las mismas mediante la regla:. τ ij ← τ ij + Δτ. ∀aij ∈ smejor − global. Δτ = f (C ( S mejor − global )). donde aij es el arco que une los nodos i y j y C ( S mejor − global ) es la calidad de la mejor solución encontrada hasta el momento (Gambardella et al., 1997).. 1.2.2.3 Algoritmo Sistema de Hormigas MAX-MIN En el algoritmo Sistema de Hormigas MAX-MIN la probabilidad de ir de un nodo a otro es igual que en el algoritmo AS. Para explotar la mejor solución durante una iteración o durante la corrida del algoritmo, después de cada iteración, solamente una simple hormiga adiciona feromona, esta puede ser una de las que encuentren la mejor solución de una iteración o la mejor solución global. La regla de modificación de la huella de feromona está dada por:. τ ij ← ρτ ij + Δτ ijmejor , 15.

(24) Capítulo 1. donde Δτ ijmejor = 1 / f ( s mejor ) y f ( s mejor ) denota el costo de cualquiera de las mejores iteraciones ( s im ) o la mejor solución global ( s mg ) , ρ es un parámetro entre 0 y 1 que indica la persistencia de la feromona (1- ρ modela la evaporación). Para evitar el estancamiento de la búsqueda, MMAS impone explícitamente el rango posible del valor de la huella de feromona en cada componente de la solución o arco, esta debe estar limitada para el intervalo [τ min ,τ max ] . Después de cada iteración debe asegurarse que se respeten estos límites, si τ ij > τ max , entonces τ ij = τ max , si τ ij < τ min , entonces τ ij = τ min , además τ min >0 si η ij < ∞ para todas las componentes de la solución. Adicionalmente se propone la inicialización de la huella feromona en τ max , consiguiendo una alta exploración de la solución al comienzo del algoritmo (Stützle et al., 2000).. 1.2.3 Pasos a seguir para resolver un problema mediante ACO Observando las aplicaciones actuales de la ACO, podemos identificar algunas directivas sobre como atacar problemas utilizando esta metaheurística. Estas directivas se pueden resumir en las seis tareas de diseño que se enumeran a continuación (Alonso et al., 2003): 1. Representar el problema como un conjunto de componentes y transiciones o a través de un grafo de construcción que será recorrido por las hormigas para construir soluciones. 2. Definir de manera apropiada el significado de los rastros de feromona. τ rs , esto es,. el tipo de decisión que inducen. Este es un paso crucial en la implementación de un algoritmo de ACO y, a menudo, una buena definición de los rastros de feromona no es una tarea trivial. De hecho, normalmente implica tener un buen conocimiento del problema que se quiere solucionar. 3. Definir de manera apropiada la preferencia heurística de cada decisión que debe tomar una hormiga mientras que construye una solución, es decir, definir la información heurística η rs asociada a cada componente o transición. Hay que 16.

(25) Capítulo 1. remarcar que la información heurística es crucial para un buen rendimiento si no existen o no pueden ser aplicados algoritmos de búsqueda local. 4. Si es posible, implementar una búsqueda local eficiente para el problema que se desea solucionar, porque los resultados de muchas aplicaciones de la ACO a problemas de optimización combinatoria NP-completos demuestran que el mejor rendimiento se alcanza cuando se complementa con optimizaciones locales (Dorigo et al., 1999). 5. Escoger un algoritmo de ACO específico y aplicarlo al problema que hay que solucionar teniendo en cuenta las características propias de cada uno. 6. Refinar los parámetros del algoritmo de ACO. Un buen punto de partida para la especificación de los valores de los parámetros es usar configuraciones de parámetros que han demostrado ser buenas cuando se aplicaban en el algoritmo de ACO a problemas similares o a una gran variedad de problemas distintos. Otra posible alternativa para evitar el esfuerzo y tiempo necesarios para esta tarea es utilizar procedimientos automáticos de refinamiento de parámetros.. 1.2.4 Aplicaciones de los algoritmos ACO Las aplicaciones a de ACO se distribuyen dentro de dos clases fundamentales de problemas. La primera clase está compuesta por los problemas de optimización combinatoria NP-duros y estáticos, por ejemplo, el TSP clásico, en el cual la localización de las ciudades y las distancias entre ellas se mantienen constantes durante el tiempo de corrida del algoritmo. La segunda clase de aplicaciones se compone de problemas dinámicos de caminos mínimos, donde la topología y el costo pueden cambiar mientras las soluciones son construidas (Dorigo et al., 2001). Esta última clase incluye aplicaciones de ACO al enrutamiento en redes de comunicaciones. El primer problema que fue atacado por un algoritmo de ACO fue el TSP (Dorigo et al., 1991), posteriormente Asignación Cuadrática (Quadratic Assignment Problem QAP) (Dorigo et al., 1996, Maniezzo et al., 1994) y el Problema de la Secuenciación de Tareas JSP (Colorni et al., 1994). Luego se aplicó esta metaheurística al Enrutamiento 17.

(26) Capítulo 1. en Redes (Schoonderwoerd et al., 1996), problemas clásicos de Enrutamiento de Vehículos (Bullnheimer et al., 1999a), Ordenación Secuencial (Gambardella et al., 2000), Problemas de Secuenciación (Flow Shop Scheduling, FSS) (Stützle, 1998) y de Coloreado de Grafos (Costa et al., 1997). También han demostrado efectividad los algoritmos de ACO en la solución de problemas de la mochila y de satisfacción de restricciones. Recientemente se han usado en aprendizaje automatizado (Machine Learning). (Parpinelli et al., 2001), reglas difusas (Casillas et al., 2000) y redes. bayesianas (Campos et al., 2002), demostrando resultados satisfactorios.. 1.3 Visualización La Visualización esta enfocada a la creación de imágenes que brinden información subyacente sobre datos y procesos. Su objetivo fundamental es la elaboración de una representación visual para ayudar a explicar fenómenos complejos. La Visualización impulsa el desarrollo de muchos métodos científicos existentes, pues sirve de soporte para una mejor comprensión y análisis de los mismos a través de métodos visuales. (Johnson et al., 2005) Desde una perspectiva computacional la visualización es la transformación de datos a una representación que puede ser percibida por los sentidos; sus resultados son visuales, auditivos, táctiles o una combinación de estos (Foley et al., 1994). La rama de la Visualización puede dividirse en tres campos fundamentales: Visualización Científica, Visualización de Software y Visualización de Información (Suárez, 2003). La Visualización Científica permite generar y manipular una representación gráfica de un conjunto de datos y las técnicas de visualización científica son aceptadas como una vía para la extracción de información relevante de un conjunto de datos de gran tamaño. Esto se debe a que el cerebro humano es capaz de analizar con mayor facilidad una simple imagen que resume una gran cantidad de información (Andrews, 2005).. 18.

(27) Capítulo 1. Los algoritmos de Visualización Científica transforman un conjunto de datos en otro y también sus dimensiones. Estas transformaciones pueden categorizarse de acuerdo a su estructura, considerando los efectos que tienen las trasformaciones en la topología y geometría del conjunto de los datos, y de acuerdo al tipo del conjunto de datos con que opera el algoritmo en: escalares, vectoriales, tensoriales y modelados, estos últimos capturan todos los algoritmos que no se ajustan a ninguna de las categorías anteriores ni combinaciones entre estas (Johnson et al., 2005). La Visualización Científica se usa para tres tipos de análisis: exploratorio, confirmativo y presentación. En el análisis exploratorio, dado un conjunto de datos sin hipótesis acerca de ellos y mediante un proceso de búsqueda interactiva de información, generalmente casual, la visualización sugiere hipótesis sobre los datos. En el análisis confirmativo, la visualización verifica o niega hipótesis dadas acerca de los datos. En la presentación, los datos representan un hecho conocido a priori y el resultado es una visualización de alta calidad que presenta el hecho (Salgado, 2003). Las dos áreas fundamentales de estudio de la Visualización Científica son la Visualización de Volúmenes y la Visualización de Flujos. La Visualización de Volúmenes se refiere generalmente a campos escalares. Se extiende desde el examen de datos científicos a la reconstrucción de datos dispersos y a la representación de objetos geométricos sin una descripción matemática de la superficie. Permite el examen del interior de un volumen utilizando técnicas como las del slicling y la transparencia. La Visualización de Flujos se utiliza fundamentalmente para la visualización de sistemas dinámicos, es decir, aquellos sistemas en los que hay involucrados datos que evolucionan en el tiempo. El comportamiento cualitativo de dichos sistemas puede comprenderse adecuadamente a partir de la estructura de la evolución temporal de sus trayectorias. Estos contienen implícitamente una gran cantidad de datos que no es directa ni fácilmente observable (Suárez, 2003). La Visualización de Software comprende la visualización de algoritmos y de programas computacionales. La primera consiste en visualizar abstracciones de alto nivel que describen el software, mientras que la segunda se refiere al código real del programa y a 19.

(28) Capítulo 1. sus estructuras de datos. Ambas pueden darse en forma estática o dinámica. La estática está representada generalmente por medio de organigramas, mientras que la dinámica se denomina animación de algoritmos. La visualización estática de código puede incluir algún tipo de mejoramiento de la impresión, la representación dinámica del programa puede destacar las líneas de código cuando están siendo ejecutadas. Por ejemplo, en el área de la visualización de la programación lógica, el principal objetivo es la representación gráfica adecuada tanto de las reglas de inferencia como del flujo entre ellas (Suárez, 2003). Las representaciones visuales de programas son muy útiles, facilitan la comunicación entre el desarrollador y los expertos en un área específica del conocimiento, además pueden utilizarse para apoyar el aprendizaje y entendimiento de los algoritmos. Las ramas fundamentales donde se utiliza son: en la Ingeniería de Software, en el Análisis de Programas y en Debugging. La Visualización de Información consiste en el uso interactivo de representaciones visuales, auditivas y sensoriales en general de datos abstractos, con el objetivo de aumentar el conocimiento. Es el proceso de interiorización del conocimiento mediante la percepción de información, interviene en el paso de los datos a información y la posibilidad de la construcción del conocimiento al revelar patrones que subyacen de los datos (Card et al., 1999). Esta área ha ampliado su espectro debido al desarrollo de la visualización en tiempo real. Algunas de las subáreas fundamentales de la Visualización de Información son: Visualización de Arquitecturas de Software, Data Mining Visual y Visualización de Grafos, que será la que utilizaremos (Suárez, 2003). La Visualización de Arquitecturas de Software proporciona sistemas interactivos que permiten extraer y visualizar datos sobre dichas arquitecturas, de forma que complementen la documentación existente acerca del software (Suárez, 2003). Data Mining Visual se refiere a la integración del acceso a las bases de datos con minería de datos y visualización. Pretende ayudar tanto en el descubrimiento del conocimiento como en la toma de decisiones cuando se presentan grandes volúmenes de datos. Incluye mecanismos interactivos de respuesta rápida basados en técnicas de 20.

(29) Capítulo 1. browsing, filtros, facilidades para la construcción de consultas dinámicas y algoritmos de clustering guiados con técnicas de visualización interactivas, para encontrar comportamientos y tendencias en los datos (Suárez, 2003). La Visualización de Grafos soluciona el problema de visualizar información estructural o relacional construyendo representaciones de grafos o redes que son los modelos subyacentes en una gran cantidad de datos abstractos (Suárez, 2003).. 1.3.1 Visualización de Grafos Los grafos son estructuras abstractas utilizadas para representar información que pueda ser modelada como objetos y conexiones entre los mismos. Permiten expresar de una forma visualmente muy sencilla y efectiva las relaciones que se dan entre elementos de diversa índole (Dürsteler, 2004), y resultan especialmente útiles en la representación visual de estructuras de datos en red y jerárquicas. Usualmente se representa un grafo para visualizarlo como un conjunto de vértices y las aristas que los unen. Los vértices pueden ser símbolos tales como cajas o puntos, y las aristas curvas abiertas de Jordan. Sin embargo, esos estándares varían según la aplicación, pues un grafo tiene infinidad de formas de ser dibujado. La utilidad de una representación dada depende de su legibilidad (Martig et al., 2000). Las aplicaciones del dibujado de grafos incluyen árboles genealógicos, cartografía, visualización de enlaces a hipertextos, etc. Los intereses típicos de los algoritmos de dibujado de grafos son: el área necesitada para dibujar un grafo, los tipos de arcos (líneas rectas o curvas), el número de arcos que se cruzan, la separación de los vértices y los arcos y la preservación de propiedades como simetría y distancia.. 1.3.2 Visualización de algoritmos de ACO en tiempo de ejecución La metaheurística ACO es una de las técnicas más efectivas en la solución de problemas de optimización combinatoria, por su robustez y flexibilidad, pero la calidad y el tiempo para encontrar una buena solución dependen principalmente de la dimensión del problema. 21.

(30) Capítulo 1. La integración de técnicas de visualización en algoritmos presupone la visualización, durante la ejecución del algoritmo, de la información que se maneja. Esta información es presentada al usuario para que interactúe con ella y pueda modificarla a su conveniencia. (Menéndez, 2008b) Entre las bondades de la visualización podemos mencionar que permite describir el comportamiento de los algoritmos en cada instante de su ejecución, el estado de cada variable, el espacio de búsqueda, para así dar un tratamiento más directo al algoritmo y poder buscar comportamientos deseados o localizar regiones de interés, e interactuar con la información brindada con el fin de encontrar soluciones cada vez más cercanas a las óptimas y más rápidamente. Todo esto basándonos en la capacidad del cerebro humano para analizar con facilidad las imágenes visuales con gran cantidad de información (Andrews, 2005). La visualización también contribuye al equilibrio entre intensificación y diversificación, pues el usuario puede guiar la búsqueda según convenga. Nos referimos a la intensificación como la forma de dirigir el proceso de búsqueda más exhaustivo en una vecindad dada y a la diversificación como la capacidad de visitar adecuadamente diversas vecindades lejanas. Este equilibrio es de fundamental importancia ya que en la mayoría de los problemas de optimización las estrategias intensificación y diversificación se contraponen, en otras palabras, una metaheurística cuanto más tiempo dedique a intensificar la búsqueda en una región dada, menos tiempo podrá dedicar a diversificarla en regiones aún inexploradas, y viceversa (Pantrigo, 2005). Por ejemplo, con la modificación en tiempo de ejecución del algoritmo de la cantidad de feromona en los arcos que posean valores mayores se consigue incrementar la exploración.. 1.4 Integración de técnicas de Visualización a los algoritmos de Optimización Mediante la incorporación de Técnicas de Visualización se abrieron nuevas posibilidades para analizar. visualmente el comportamiento de diversos algoritmos. aplicados a POC. Con el objetivo de mejorar el comportamiento de estos algoritmos se 22.

(31) Capítulo 1. han diseñado numerosas herramientas que le permiten al usuario visualizarlo y en algunos casos interactuar con sus datos y componentes u observar su comportamiento para en el futuro construir mejores algoritmos o refinar los parámetros de estos con el propósito de obtener mejores soluciones.. 1.4.1 Visualización de Algoritmos de Búsqueda aplicados a la solución de Problemas de Optimización Combinatoria. Herramienta ACOVis Un sistema interactivo brinda la posibilidad al usuario de tener el control externo sobre la información que se visualiza y le permite modificar el algoritmo cuya conducta está siendo observada, o bien los valores de los datos o parámetros que están siendo procesados (Menéndez, 2008a). La visualización de las trayectorias de la búsqueda generalmente no es fácil, sobre todo en problemas donde el espacio de búsqueda es grande y los datos tienen varias dimensiones, por lo que no existen muchas propuestas. En 1996 Michael Shilman como parte de un proyecto del Instituto de Ingeniería Eléctrica y Ciencias de la Computación EECS (Electrical Engineering and Computer Sciences) de Bekerley, California, dio uno de los primeros pasos con la construcción de la herramienta de visualización SVT (Search Visualization Toolkit) (Shilman, 1996), para ayudar en el desarrollo de algoritmos de búsqueda. SVT mostraba la animación del algoritmo y permitía al usuario interactuar con algunos parámetros de la representación gráfica del proceso de búsqueda, aunque solo incluía los algoritmos recocido simulado y corte mínimo o mincut (Karger, 1993). La herramienta V-MDF (Visualizer for Metaheuristics Development Framework) (Lau et al., 2005), se propone capturar una vista ilustrativa de la trayectoria de búsqueda y reportar algunas anomalías del comportamiento del algoritmo al usuario. Mediante la inspección de estas anomalías el operador puede determinar con exactitud los problemas encontrados durante la búsqueda y luego aplicar remedios a la estrategia, como por ejemplo: afinar parámetros, ajustar configuraciones u obtener mejores reglas adaptativas. V-MDF puede ser útil a los diseñadores de metaheurísticas, ya que fue 23.

(32) Capítulo 1. construido con el propósito de mejorar las estrategias de búsqueda, aunque inicialmente solo integra la técnica de Visualización Distancia Radar a la Búsqueda Tabú, pero permite ser extendido. En posterior trabajo, desarrolladores de la Universidad Nacional de Singapore, crean un modelo y proponen la herramienta VIZ (Local Search Analysis Suite), que incluye: la visualización genérica mediante una abstracción a dos dimensiones de las trayectorias de búsqueda; algoritmos empleando metaheurísticas con Búsqueda Local (Aarts et al., 2003) como: Búsqueda Tabú, Recocido Simulado, ACO, PSO; y problemas de optimización específicos como: TSP y QAP. VIZ está diseñado para analizar una o varias ejecuciones de una o varias búsquedas locales después de ser completadas y no en tiempo real. Almacena ficheros log creados durante la ejecución de la visualización de la búsqueda que guardan información de esta y pueden ser analizados. Una característica interesante de VIZ es que permite aprendizaje vía comparación visual (Halim et al., 2006b, Halim et al., 2006a). Otro enfoque de visualización en algoritmos de búsqueda lo encontramos en una herramienta de software llamada Trazador (Calvo, 2007), empleada para extraer los datos de algoritmos genéticos y bioinspirados y luego visualizarlos con varias posibilidades en un formato XML, aunque no permite la interacción del usuario con el algoritmo en tiempo real. Esta aplicación visualiza soluciones, evoluciones, gráficos de evolución, incluso se pueden obtener representaciones de la solución muy útiles, por ejemplo, si analizamos el TSP con determinado formato XML podemos conseguir que genere la representación espacial de la solución del mismo. La aplicación también visualiza gráficas de evolución multiobjetivo, entre otras. Un trabajo de 2007: “Human-Guided Enhancement of a Stochastic Local Search: Visualization and Adjustment of 3D Pheromone” (Sreevalsan-Nair et al., 2007), describe la interacción del usuario con un algoritmo de optimización mediante una interfaz de visualización. El algoritmo ACS se aplica al problema de encontrar caminos 3D entre dos puntos en un espacio rectangular que contiene impedimentos esféricos. El experimento consistió en parar el algoritmo después de que las primeras 500 hormigas 24.

(33) Capítulo 1. realizaran su actividad, permitir al usuario modificar la huella de feromona en cada camino y continuar dicho algoritmo con 500 hormigas más; luego volver a correr el algoritmo con 1000 hormigas sin pararlo. Se demostró que los caminos encontrados con la interacción del usuario fueron de mejor calidad. Mitsubishi Research Lab también investiga sobre el tema, que ellos llaman “human guide search” y han desarrollado herramientas de visualización para la optimización de problemas de planificación y enrutamiento (Lesh et al., 2002). Finalmente la herramienta ACOVis (Menéndez, 2008a), le permite al usuario guiar la búsqueda para encontrar una buena solución al problema de optimización TSP mediante la interacción con la visualización del algoritmo ACS. El usuario puede obtener información, tanto visual como numérica, del comportamiento del algoritmo ACS en la solución de TSP e influenciar con la variación de los parámetros las soluciones halladas. Se demostró que las soluciones encontradas con la interacción del usuario fueron de una mejor calidad, aunque quedaron varias interacciones propuestas y recomendaciones de extender la herramienta a otros POC.. 1.4.2 Interacciones existentes y propuestas en ACOVis La información con la que trabajan los algoritmos de ACO puede ser visualizada y así pueden implementarse un conjunto de interacciones (Menéndez, 2008b). En la herramienta ACOVis se encuentran implementadas un conjunto de interacciones y se proponen otras, ambas se enumeran a continuación: Variantes Implementadas: •. Visualizar en cada instante de la ejecución del algoritmo el recorrido de cada una de las hormigas.. •. Clonar o eliminar una o varias hormigas.. •. Visualizar e interactuar con la matriz de feromonas adicionando o eliminando un valor a la huella de feromona en determinados arcos.. 25.

(34) Capítulo 1. •. Mostrar las mejores/peores trayectorias de las hormigas cada cierto tiempo.. •. Filtrar el grafo donde se muestran los niveles de feromona mostrando solo los arcos cuya huella de feromona se encuentra en un determinado rango.. •. Brindar información sobre nodos y arcos.. •. Mostrar con mayor detalle una región seleccionada.. •. Visualizar las soluciones y filtrar según su calidad.. •. Variar la velocidad de corrida del algoritmo.. •. Cambiar la cantidad de hormigas en cualquier momento de la ejecución del algoritmo.. •. Variar el tiempo de ejecución del algoritmo.. •. Modificar parámetros del algoritmo, por ejemplo, la feromona inicial y la constante de evaporación.. •. Mostrar resultados numéricos del estado del algoritmo.. Variantes Propuestas para Implementar: •. Fijar o eliminar un arco del recorrido.. •. Detener y reanudar el algoritmo.. •. Dibujar una parte de la trayectoria.. •. Cambiar una subtrayectoria modificando las conexiones entre los nodos que la componen.. •. Fijar un nodo inicial o una región de donde obtener el nodo inicial con el que las hormigas comienzan la construcción de su solución.. •. Fijar un recorrido global al que debe acercarse la solución del problema a la vez que optimice la función objetivo.. 26.

(35) Capítulo 1. •. Salvar el estado del algoritmo en un momento determinado y reanudar en el futuro a partir de los datos y parámetros que existían cuando fue salvado.. 1.5 Conclusiones Parciales Existen diversos Problemas de Optimización Combinatoria en campos como la economía, el comercio, la ingeniería, la industria y la medicina. A menudo estos problemas son muy difíciles de resolver en la práctica, pues muchos de ellos pertenecen a la clase de problemas NP-completos, lo que significa que no existe un algoritmo conocido que los resuelva en tiempo polinomial. Existen diversos algoritmos aproximados para solucionar POC, entre ellos los algoritmos heurísticos constituyen una alternativa para encontrar soluciones de buena calidad en tiempos de ejecución razonables a problemas NP-Completos. Las metaheurísticas son estrategias inteligentes para diseñar o mejorar procedimientos heurísticos muy generales con un alto rendimiento. La metaheurística ACO es eficiente en la solución de diversos Problemas de Optimización y se basa en la comunicación indirecta que se produce por medio de rastros de feromona artificial entre un conjunto de agentes denominados hormigas artificiales. La feromona artificial sirve como información numérica distribuida que utilizan los agentes para tomar probabilísticamente una decisión que les permita construir una solución a un problema dado. Presenta varios algoritmos entre ellos: AS y ACS y MMAS. La integración de técnicas de Visualización a los algoritmos de la metaheurística ACO, específicamente de Visualización de Grafos y la interacción del usuario con el algoritmo en tiempo real mejoran la calidad de las soluciones de problemas de optimización ya que el proceso visual induce a apreciaciones intuitivas de las características más destacadas de la información. Existen varias herramientas creadas con este enfoque y propósitos, entre ellas: STV, V-MDF, VIZ, Trazador, ACOVis; y estudios investigativos sobre el tema como: Human-Guided Enhancement of a. 27.

(36) Capítulo 1. Stochastic Local Search: Visualization and Adjustment of 3D Pheromone y los realizados por Mitsubishi Research Lab. La herramienta ACOVis, sirve de base a la actual investigación y en ella se integran gran número de interacciones que permiten al usuario guiar la búsqueda. Estaba propuesto incrementar su funcionamiento mediante la incorporación de nuevas interacciones del usuario con el algoritmo, las cuales fueron propuestas, así como su extensión a otros POC distintos al TSP.. 28.

(37) Capitulo 2. 2.. APLICACIÓN DEL MODELO DE INTEGRACIÓN DE. TÉCNICAS DE VISUALIZACIÓN CON ALGORITMOS DE ACO, A JSP En este capítulo se analiza el modelo general existente de integración de técnicas de visualización a algoritmos de la metaheurística de Optimización mediante Colonia de Hormigas. Se proponen nuevas interacciones del usuario con los algoritmos de ACO para guiar la búsqueda en el TSP y el JSP. Finalmente se explican algunas consideraciones para la extensión del modelo a otra metaheurística de optimización: Mallas Dinámicas.. 2.1 Esquema general del modelo de Visualización en ACO Existe un modelo general de integración y aplicación de técnicas de visualización a algoritmos de la metaheurística ACO (Menéndez, 2008b) el cual será analizado en este epígrafe y el esquema general se puede observar en la Figura 2.1. El funcionamiento de este modelo es como sigue. El algoritmo comienza con la inicialización de los parámetros que pudieran ser: cantidad de hormigas, feromona inicial, constante de evaporación, factor de escalado de visibilidad ( β ), entre otros. Se visualizan los nodos que conforman el grafo del problema mostrándose por ejemplo su número, con esta visualización el usuario pude interactuar (representado en la figura por un rectángulo con esquinas circulares) seleccionando el nodo inicial en que deben comenzar las hormigas a construir su solución o una región de donde obtener dicho nodo inicial. Luego de la creación de las hormigas, estas comienzan su actividad en forma paralela y asíncrona. Para cada una de ellas se visualiza en tiempo real la construcción de su solución dibujando los arcos entre los estados en que van moviéndose. De la visualización de las trayectorias, donde se pueden observar las peores y mejores trayectorias, se pueden clonar o eliminar hormigas. Cuando se clona una hormiga, la nueva hormiga creada recibe la trayectoria recorrida por la hormiga clonada.. 29.

(38) Capitulo 2. A partir de la visualización de las trayectorias se desprenden las interacciones que tienen que ver directamente con la decisión de escoger el siguiente nodo que formará parte del recorrido, entre ellas: fijar un recorrido global al cual debe acercarse la solución del problema a la vez que optimice la función objetivo, dibujar una parte de la trayectoria, fijar o excluir un arco del recorrido. Cuando las hormigas depositan feromona, lo mismo para algoritmos con actualización en línea paso a paso, que para los que actualizan la feromona a posteriori, debe actualizarse también la visualización de la matriz de feromonas (recurso representado en la figura por un círculo) para que el usuario pueda interactuar en tiempo real con esta visualización y modificar la matriz. El grafo de feromonas puede mostrarse con los arcos en diferentes colores, ilustrando la cantidad de feromona en cada arco. El usuario en cualquier momento puede filtrar este grafo para escoger los arcos que tengan determinada cantidad de feromona. Después de cada iteración del algoritmo pueden visualizarse, también con diferentes colores, las soluciones encontradas conforme a una escala preestablecida. El usuario puede igualmente filtrar la visualización que se le presenta, de acuerdo a la calidad de las soluciones. Además pueden mostrarse los resultados numéricos del algoritmo y variarse los parámetros de este en cualquier instante de la corrida.. 30.

(39) Capitulo 2. Figura 2.1: Modelo de Integración de técnicas de Visualización a algoritmos de ACO.. 31.

Figure

Figura 1.1: Comportamiento de las hormigas reales.
Figura 2.1: Modelo de Integración de técnicas de Visualización a algoritmos de ACO.
Figura 2.2: Visualización del recorrido de una hormiga.
Figura 2.3: Visualización de la matriz de feromona.
+7

Referencias

Documento similar

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

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

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

diabetes, chronic respiratory disease and cancer) targeted in the Global Action Plan on NCDs as well as other noncommunicable conditions of particular concern in the European

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de