Integración de técnicas de visualización a algoritmos de optimización de la metaheurística colonia de hormigas
90
0
0
Texto completo
(2) DEDICATORIA. A mi mamá y a mi papá. A Daniel. A Adria. A mi abuela..
(3) AGRADECIMIENTOS. A Dios, por su inmensa generosidad. A mis padres, por su amor, su ejemplo y todos los sacrificios en pos de mi formación profesional. A mi papá, también por su ayuda en la metodología investigativa. A Daniel, mi novio, por compartir sus conocimientos, aportar valiosas ideas, y por su apoyo espiritual. A mi tutor, por guiarme y brindarme su experiencia. A mi hermana, por acompañarme siempre y por la revisión literaria del informe. A mi abuela, por sus oraciones y preocupación constante. A Juliett y Valentín, por su amistad y por la impresión de este trabajo. A los profesores y compañeros con los que he compartido estos cinco años..
(4) Resumen. RESUMEN. La búsqueda guiada por el usuario contribuye a la solución de problemas de optimización; para los algoritmos de la metaheurística de Optimización mediante Colonias de Hormigas no se conocen mecanismos adecuados que lo logren. El presente trabajo propone un modelo de integración de técnicas de visualización en estos algoritmos de Optimización que permite al usuario interactuar con los algoritmos en tiempo real y guiar la búsqueda. Se implementó un prototipo de software acorde al modelo, para resolver Problemas del Viajero Vendedor con el algoritmo Sistema Colonia de Hormigas, a través del cual se realizó un análisis experimental y los resultados demostraron la eficiencia del nuevo modelo encontrando mejores soluciones en menor tiempo..
(5) Abstract. ABSTRACT The human guided searching contributes to solution of optimization problems. For algorithms from Ant Colony Optimization metaheuristic, do not appropriate mechanisms are known. Current work proposes a model for the integration in real time of visualization techniques in algorithms of Ant Colony Optimization. It was implemented a software prototype according to the model in order to solve the Traveller Salesman Problem. This software was used to do experimental analysis and results shows the efficiency of proposed model, finding better solutions in better time..
(6) Índice. ÍNDICE. INTRODUCCIÓN ............................................................................................................... 1 1.. METAHEURÍSTICA COLONIA DE HORMIGAS Y VISUALIZACIÓN DE ALGORITMOS. 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 Asignación Cuadrática .............................................................. 6. 1.1.3. Problema de Cubrimiento de Conjuntos ......................................................... 7. 1.1.4. Problema de Secuenciación de Tareas ........................................................... 7. 1.2. Metaheurística de Optimización mediante Colonias de Hormigas .................... 9. 1.2.1. Algoritmo Sistema de Hormigas ................................................................... 13. 1.2.2. Algoritmo Sistema Colonia de Hormigas...................................................... 14. 1.2.3. Algoritmo Sistema de Hormigas MAX-MIN .................................................. 15. 1.3. Visualización ..................................................................................................... 16. 1.3.1 1.4. Visualización de Grafos ................................................................................ 19 Visualización de Algoritmos de Búsqueda: su utilización en la solución de. Problemas de Optimización Combinatoria ................................................................... 19 1.5 2.. Conclusiones Parciales ..................................................................................... 22. MODELO DE INTEGRACIÓN DE TÉCNICAS DE VISUALIZACIÓN A ALGORITMOS DE LA METAHEURÍSTICA ACO .................................................. 23 2.1. Contribuciones de la Visualización en ACO ..................................................... 23. 2.2. Interacciones que pueden implementarse en algoritmos de ACO .................... 24. 2.3. Esquema general del modelo ............................................................................ 37. 2.4. Consideraciones sobre la extensión del modelo a los algoritmos de la. metaheurística de Optimización mediante Enjambres de Partículas ........................... 39 2.5 3.. Conclusiones Parciales ..................................................................................... 41. PROTOTIPO DE SOFTWARE ACOVis. ESTUDIO EXPERIMENTAL Y ANÁLISIS DE LOS RESULTADOS ........................................................................................... 43.
(7) Índice. 3.1. Generalidades ................................................................................................... 43. 3.1.1. Alcance del prototipo .................................................................................... 43. 3.1.2. Plataforma de desarrollo .............................................................................. 45. 3.2. Análisis y Diseño de la Herramienta ................................................................ 46. 3.2.1. Casos de Uso ................................................................................................. 47. 3.2.2. Diagrama de Clases ...................................................................................... 51. 3.2.3. Diagramas de Interacción ............................................................................. 53. 3.3. Funcionamiento de ACOVis 1.0 ........................................................................ 55. 3.3.1. Requerimientos .............................................................................................. 56. 3.3.2. Ficheros de entrada *.TSP ............................................................................ 56. 3.3.3. Interfaz principal de la aplicación ................................................................ 56. 3.3.3.1. Visualización del Recorrido de las Hormigas....................................... 57. 3.3.3.2. Visualización de la Matriz de Feromonas ............................................. 58. 3.3.3.3. Visualización de las Soluciones ............................................................ 58. 3.3.3.4. Intercambiar Paneles ............................................................................ 59. 3.3.3.5. Resultados Numéricos del Algoritmo .................................................... 59. 3.3.3.6. Mejores y Peores Trayectorias ............................................................. 59. 3.3.3.7. Clonar y Eliminar Hormigas................................................................. 60. 3.3.3.8. Modificar Matriz de Feromonas ........................................................... 60. 3.3.3.9. Filtrar Matriz de Feromonas ................................................................ 62. 3.3.3.10. Filtrar Soluciones encontradas ......................................................... 62. 3.3.3.11. Variar velocidad del algoritmo ......................................................... 63. 3.3.3.12. Mostrar con mayor detalle una región seleccionada........................ 63. 3.3.4. Opciones de Menú ......................................................................................... 64. 3.3.4.1. Archivo .................................................................................................. 64. 3.3.4.2. Parámetros ............................................................................................ 66. 3.3.4.3. Visualizaciones ...................................................................................... 66. 3.3.4.4. Ayuda ..................................................................................................... 67. 3.4 3.4.1. Análisis Experimental usando ACOVis ............................................................. 68 Estudio Experimental .................................................................................... 68.
(8) Índice. 3.4.2 3.5. Análisis de los Resultados ............................................................................. 69 Conclusiones Parciales ..................................................................................... 70. CONCLUSIONES GENERALES....................................................................................... 72 RECOMENDACIONES ..................................................................................................... 74 REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 75 ANEXOS ............................................................................................................................ 80 Anexo 1: Estructura de un fichero TSP para ACOVis. ................................................. 80 Anexo 2: Resultados de la Prueba de los rangos con signo de Wilcoxon. ................... 81. ÍNDICE DE FIGURAS Figura 2.1: Visualización del recorrido de una hormiga. ................................................ 25 Figura 2.2: Visualización Mejor y Peor trayectoria......................................................... 26 Figura 2.3: Visualización de la matriz de feromona. ....................................................... 27 Figura 2.4: Filtrar el grafo que representa la matriz de feromona. ................................. 28 Figura 2.5: Visualización de las soluciones. .................................................................... 30 Figura 2.6: Fijar recorrido global. ................................................................................... 33 Figura 2.7: Dibujar parte de la trayectoria. ..................................................................... 33 Figura 2.8: Cambiar una subtrayectoria. ......................................................................... 35 Figura 2.9: Fijar o eliminar un arco del recorrido. ......................................................... 36 Figura 2.10: Modelo de Integración de técnicas de Visualización a algoritmos de ACO. .................................................................................................................................. 38 Figura 3.1: Diagramas de UML. ...................................................................................... 47 Figura 3.2: Diagrama de Casos de Uso. .......................................................................... 48 Figura 3.3: Diagrama de Clases....................................................................................... 52 Figura 3.4: Diagrama de Secuencia para el Caso de Uso: “Clonar o eliminar hormigas”. ............................................................................................................... 54 Figura 3.5: Diagrama de Secuencia para el Caso de Uso: “Modificar feromona”. ....... 55 Figura 3.6: Interfaz principal de ACOVis 1.0. ................................................................. 57 Figura 3.7: Componentes de la Interfaz principal de ACOVis 1.0. .................................. 58.
(9) Índice. Figura 3.8: Ventana Mejor/Peor Hormiga. ...................................................................... 60 Figura 3.9: Popup Menú Clonar o Eliminar Hormigas. .................................................. 60 Figura 3.10: Matriz de feromona en el panel principal. Filtrado según cantidad de feromona. ................................................................................................................. 61 Figura 3.11: Modificar feromona. .................................................................................... 62 Figura 3.12: Soluciones en el panel principal. Filtrado según calidad de los caminos... 63 Figura 3.13: Opción Archivo de la Barra de Menú. ......................................................... 64 Figura 3.14: Ventana de diálogo para Cargar problemas TSP. ...................................... 65 Figura 3.15: Ventana de diálogo para Salvar resultados. ............................................... 65 Figura 3.16: Opción Parámetros de la Barra de Menú. .................................................. 66 Figura 3.17: Opción Visualizar de la Barra de Menú. ..................................................... 67 Figura 3.18: Ventana de Ayuda ACOVis 1.0. ................................................................... 67. ÍNDICE DE TABLAS Tabla 3.1: Descripción de los Casos de Uso. ................................................................... 50 Tabla 3.2: Resultados Experimentales. ............................................................................. 69.
(10) Introducción. INTRODUCCIÓN. En los Problemas de Optimización Combinatoria es una característica frecuente el hecho de que son fáciles de entender y de enunciar, pero generalmente difíciles de resolver. Podría pensarse que la solución a un problema de optimización combinatoria se restringe únicamente a buscar de manera exhaustiva el valor máximo o mínimo en un conjunto finito de posibilidades y que usando una computadora veloz el problema carecería de interés matemático, sin pensar por un instante en el tamaño de este conjunto que hace inviable cualquier intento de búsqueda exhaustiva en problemas de tamaño no muy restringidos.. 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 a su intratabilidad, para resolverlos se han diseñado una gran cantidad de métodos aproximados, los cuales encuentran buenas soluciones en tiempos razonables.. Uno de estos métodos es la metaheurística de Optimización mediante Colonias de Hormigas (ACO). Esta metaheurística tiene su fuente de inspiración en el comportamiento de las hormigas reales que minimizan el recorrido entre su colonia y cualquier fuente de abastecimiento, y se basa fundamentalmente en la comunicación indirecta que se produce entre las mismas a través de los rastros de una sustancia llamada feromona, que van dejando a su paso (Alonso et al., 2003).. Desde su surgimiento, los algoritmos de ACO han probado su efectividad en la solución de problemas de optimización combinatoria, pero la inteligencia colectiva que es el arma. 1.
(11) Introducción. principal de estos, hace que la calidad de las soluciones encontradas sea directamente proporcional a la cantidad de agentes (hormigas) que estén interactuando en la colonia. Esto aparejado a la existencia de varios problemas caracterizados por el gran tamaño de sus instancias reales, hace que la ejecución de los algoritmos de ACO sea muy costosa por el tiempo que demoran en alcanzar una solución suficientemente buena, o quizás óptima.. 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. 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.. De lo anteriormente expuesto se deriva el Problema Científico a resolver:. No se conocen mecanismos adecuados para interactuar con los algoritmos de la metaheurística de Optimización mediante Colonias de Hormigas en tiempo real que mejoren su eficiencia.. Para contribuir a la solución del problema científico antes plateado, se desarrolló una Investigación de Tipo Exploratoria, cuya Hipótesis General es la siguiente:. La integración de técnicas de visualización en los algoritmos de la metaheurística de Optimización mediante Colonias de Hormigas, que permitan al usuario guiar la búsqueda de las soluciones, es un mecanismo adecuado de interacción que mejora la eficiencia de los mismos.. Se formularon además varias Preguntas de Investigación: . ¿Cuáles tipos de interacciones pueden implementarse en algoritmos de ACO que. 2.
(12) Introducción. permitan al usuario guiar la búsqueda de la solución? . ¿Cómo podrían integrarse técnicas de visualización en los algoritmos de la metaheurística ACO?. . ¿Qué beneficios presupone la integración de técnicas de visualización en algoritmos de optimización?. Teniendo en cuenta la problemática referida y acorde con la hipótesis general y las preguntas de investigación nos trazamos los objetivos:. Objetivo General. Valorar la efectividad de integrar Técnicas de Visualización en algoritmos de la metaheurística de Optimización mediante Colonias de Hormigas, para mejorar su eficiencia, a partir de la interacción en tiempo real del usuario con el algoritmo.. Objetivos Específicos. . Identificar los tipos de interacciones que el usuario puede realizar con la visualización de los algoritmos de optimización mediante colonias de hormigas y sus ventajas.. . Proponer un modelo de integración de técnicas de visualización para los algoritmos de la metaheurística ACO.. . Implementar computacionalmente un prototipo de software acorde al modelo propuesto.. . Evaluar los beneficios del modelo propuesto, a través de comparaciones experimentales con la herramienta implementada.. Este proyecto se enmarca en las investigaciones que lleva a cabo el Laboratorio de Computación Gráfica del Centro de Estudios Informáticos de la Universidad Central de Las Villas y es además interés del Laboratorio de Inteligencia Artificial del mismo. 3.
(13) Introducción. centro. Dada la existencia de una gran cantidad y variedad de problemas NP-completos, que aparecen en la práctica, se presenta la necesidad imperiosa de resolverlos de forma eficiente. La suposición fundamental de que el proceso visual induce a apreciaciones intuitivas de las características más destacadas de la información (Taylor, 1991), unido a la aceptación de las técnicas de visualización como una vía para la extracción de información relevante, sugirieron los beneficios de integrar técnicas de visualización a los algoritmos de optimización para contribuir a la solución de dichos problemas, además de permitir comprender mejor el comportamiento de los algoritmos y contribuir al análisis y diseño de nuevos y mejores.. El presente informe de la 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 de una breve descripción de herramientas que integran técnicas de visualización a algoritmos de búsqueda para resolver problemas de optimización. El Capítulo 2 propone varias formas de interacción del usuario con los algoritmos de optimización mediante colonias de hormigas, sus ventajas, y un modelo general de integración de técnicas de visualización, además de algunas consideraciones sobre su extensión a otra metaheurística. El Capítulo 3 está dedicado a describir los procesos de análisis y diseño y el funcionamiento de la herramienta implementada acorde al modelo sugerido y a validar este 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.
(14) Capítulo 1. 1.. METAHEURÍSTICA COLONIA DE HORMIGAS Y VISUALIZACIÓN DE ALGORITMOS PARA RESOLVER PROBLEMAS DE OPTIMIZACIÓN COMBINATORIA. En el presente capítulo se abordan los Problemas de Optimización Combinatoria: Viajero Vendedor, Asignación Cuadrática, Cubrimiento de Conjuntos y Secuenciación de Tareas. Se describe la metaheurística de Optimización basada en Colonias de Hormigas y tres de sus variantes algorítmicas: Sistema de Hormigas, Sistema Colonia de Hormigas y Sistema de Hormigas MAX-MIN. Se tratan las generalidades de la Visualización y específicamente la visualización de grafos, considerada para integrar con los algoritmos anteriormente mencionados. Además nos referimos a herramientas que integran técnicas de visualización a algoritmos de búsqueda para resolver Problemas de Optimización.. 1.1. Problemas de Optimización Combinatoria. 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 (Garey and Jonson, 1979). A continuación se explican algunos ejemplos de problemas de la clase NP-completos.. 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 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).. 5.
(15) Capítulo 1. 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 and Stützle, 2001).. 1.1.2. Problema de Asignación Cuadrática. En el Problema de Asignación Cuadrática o Quadratic Assignment Problem (QAP) se tienen un conjunto J=V de trabajos y otro conjunto I={1,2,..,m} de personas para realizarlos. El costo de asignar la persona i al trabajo j viene dado por cij. Además se tiene una disponibilidad bi de recursos de la persona i (como por ejemplo horas de trabajo) y una cantidad aij de recursos de la persona i necesarias para realizar el trabajo j. Se pretende asignar las personas a los trabajos con el mínimo costo. Para la formalización del modelo se introducen las variables xij que valen 1 si la persona i se asigna al trabajo j y 0 en otro caso.. 6.
(16) Capítulo 1. (Martí, 2003).. 1.1.3. Problema de Cubrimiento de Conjuntos. El Problema del Cubrimiento de Conjuntos o Set Covering Problem (SCP), puede enunciarse del siguiente modo: sea un conjunto de m objetos (filas) S={1,2,…,m} y una clase H (columnas) de subconjuntos de S, H = {H1, H2 …, Hn} donde cada Hi tiene un costo ci asociado. El problema consiste en cubrir con costo mínimo todos los elementos de S de subconjuntos Hi. Para formularlo se define una variable xi dicotómica, que toma valor 1 si Hi pertenece a la solución y 0 en caso contrario, la matriz A = {aij}, cuyo elemento aij vale 1 si j S está en Hi y 0 en caso contrario, aij. min c1x1 + c2x2 + … + cnxn s.a: a1jx1 + a2jx2 + …+ anjxn ≥ 1. j = 1,…,m. xi = 1, 0. i = 1,…, n. 1.1.4. (Beasley, 1987).. Problema de Secuenciación de Tareas. El Problema clásico de Secuenciación de Tareas o Job Shop Scheduling (JSS), trata de planificar la ejecución de un conjunto de n trabajos {J1,...,Jn} en un conjunto de m máquinas {M1,...,Mm}. Cada trabajo Ji incluye un conjunto de tareas u operaciones {oi1,...,oim} que deben ser ejecutadas secuencialmente. Cada operación oij requiere el uso exclusivo e ininterrumpido de una de las máquinas durante su tiempo de procesamiento. 7.
(17) Capítulo 1. duij. Supongamos además que para cada trabajo hay un tiempo mínimo de inicio (tik) y un tiempo máximo de terminación (pik) entre los cuales deben ser planificadas todas sus tareas. El objetivo es hallar un tiempo de inicio para cada trabajo de modo que se satisfagan todas las restricciones del problema y que además se minimice el tiempo de culminación.. min{max{t ik pik } : J i J, M k M }. (Coffman, 1976).. La existencia de una gran cantidad y variedad de problemas de este tipo que necesitan ser resueltos de forma eficiente, impulsó el desarrollo de procedimientos para encontrar buenas soluciones, aunque no fueran óptimas. 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 (Martí, 2003, Osman and Kelly, 1996).. 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 and Sakallah, 1999), Algoritmos Genéticos (Yamada and Nakano, 1992), Optimización basada en Enjambre de Partículas o Particle Swarm Optimization (PSO) (Adly and Abd-El-Hafiz, 2004, Eberhart and Kennedy, 1995) y Optimización basada en Colonias de Hormigas (Stützlet and Dorigo, 1999, Gambardella and Dorigo, 1997), con esta última incluida en. 8.
(18) Capítulo 1. la categoría de los algoritmos bioinspirados o de vida artificial e inteligencia colectiva (Rasmussen and Raven, 2003), trataremos en el presente trabajo.. 1.2. Metaheurística de Optimización mediante Colonias de Hormigas. La metaheurística Optimización mediante Colonias de Hormigas o Ant Colony Optimization (ACO) (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 and Almirón, 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. 9.
(19) Capítulo 1. 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 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 and Almirón, 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 and Stützle, 2001). La estructura de un algoritmo genérico de la metaheurística ACO es la siguiente (Dorigo and Di Caro, 1999): 1 2. procedimiento metaheurística_ACO() inicialización_de_parámetros. 10.
(20) Capítulo 1. 3 4. mientras (criterio_de_terminación_no_satisfecho) 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 12 13. para cada arco visitado depositar_feromona_en_el_arco_visitado() fin para fin si. 14. liberar_recursos_hormiga(id_Hormiga). 15. fin Procedimiento. 11.
(21) Capítulo 1. 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.. En. los. procedimientos. calcular_probabilidades_de_transición 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 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. 12.
(22) Capítulo 1. actualización_feromona_en_línea_a_posteriori (Dorigo and Di Caro, 1999,. Alonso et al., 2003).. Se han propuesto varios algoritmos de la metaheurística ACO, entre los más citados por la literatura que se encuentran: Sistema de Hormigas o Ant System (AS) (Dorigo et al., 1996), Sistema de Colonia de Hormigas o Ant Colony System (ACS) (Gambardella and Dorigo, 1997) y Sistema de Hormigas Max-Min o Max-Min Ant System (MMAS) (Stützle and Hoos, 2000).. 1.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. * * . p k ij. . ij. ij. . ij. . si. j N ik. ij. jN ik. 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 / dij , 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).. 13.
(23) Capítulo 1. 1.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 q0 0,1 y el valor aleatorio. q 0,1 y calcula Pijk. como sigue:. . 1, si j max jNik ij *ij P 0, otros casos. si q q0. k ij. * * . si q q0. p k ij. . (1.1). . ij. ij. . ij. . . si. j N ik. ij. jN 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. (1.2). 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. (1.3). f (C (Smejor global)). donde. aij es el arco que une los nodos i y j y C ( Smejor global ) es la calidad de la mejor. solución encontrada hasta el momento (Gambardella and Dorigo, 1997).. 14.
(24) Capítulo 1. 1.2.3. Algoritmo Sistema de Hormigas MAX-MIN. En el algoritmo MMAS 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 t 1 ij t ijbest , donde ijbest 1 / f (s best ) y f ( s best ) denota el costo de cualquiera de las mejores iteraciones ( s ib ) o la mejor solución global ( s gb ) , 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 (t ) max , entonces ij (t ) max , si ij (t ) min , entonces. ij (t ) 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 and Hoos, 2000).. Estos algoritmos se han aplicado a diversos problemas de optimización combinatoria como: TSP (Gambardella and Dorigo, 1997, Dorigo et al., 1996), QAP (Stützlet and Dorigo, 1999, Colorni, 1999, Demirel and Toksari, 2006), SCP (Silva and Ramalho, 2001), JSS (van der Zwaan and Marques, 1999).. Las aplicaciones de los algoritmos ACO caen dentro de dos importantes clases de problemas: estáticos y dinámicos. Los problemas de optimización combinatoria estáticos son aquellos cuya topología y costo no cambian mientras el problema está siendo solucionado. Este es el caso, por ejemplo, del TSP clásico, en el cual la localización de 15.
(25) Capítulo 1. las ciudades y las distancias entre ellas se mantienen constantes durante el tiempo de corrida del algoritmo. A diferencia, en problemas dinámicos, la topología y el costo pueden cambiar mientras las soluciones son construidas (Dorigo and Stützle, 2001).. 1.3. Visualización. La Visualización, desde una perspectiva computacional, 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 and Kibasky, 1994).. 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).. 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 and Hansen, 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. 16.
(26) Capítulo 1. 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 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).. 17.
(27) Capítulo 1. 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.. 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 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).. 18.
(28) Capítulo 1. 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 and Señas, 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.4. Visualización de Algoritmos de Búsqueda: su utilización en la solución de Problemas de Optimización Combinatoria. 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.. 19.
(29) Capítulo 1. 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 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 and Lenstra, 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. 20.
(30) Capítulo 1. 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. Otro 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 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).. 21.
(31) Capítulo 1. 1.5. Conclusiones Parciales. 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 polinómica que lo resuelva, por lo que pertenecen a la clase de problemas NP-Completos.. 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 bastante eficiente en la solución de 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, que fue originalmente aplicado al TSP, 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, pueden mejorar 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; y estudios investigativos sobre el tema como: Human-Guided Enhancement of a Stochastic Local Search: Visualization and Adjustment of 3D Pheromone y los realizados por Mitsubishi Research Lab.. 22.
(32) Capítulo 2. 2.. MODELO DE INTEGRACIÓN DE TÉCNICAS DE VISUALIZACIÓN A ALGORITMOS DE LA METAHEURÍSTICA ACO. Este capítulo está dedicado a exponer las principales contribuciones que brinda la Visualización para la solución de Problemas de Optimización a través de algoritmos de la metaheurística ACO; propone diversas formas de visualización de dichos algoritmos e interacciones que el usuario pudiera tener con las mismas para guiar la búsqueda. Presenta un modelo general de integración de técnicas de visualización en los algoritmos de ACO y consideraciones para su extensión a otra metaheurística de optimización basada en inteligencia colectiva: Enjambre de Partículas.. 2.1. Contribuciones de la Visualización en ACO. 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. Como se ejemplificó anteriormente (Ver epígrafe 1.4), la visualización de los algoritmos contribuye a obtener buenas soluciones en un tiempo aceptable.. 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. 23.
(33) Capítulo 2. 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.. 2.2. Interacciones que pueden implementarse en algoritmos de ACO. 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. La información con la que trabajan los algoritmos de ACO puede ser visualizada y así pueden implementarse un conjunto de interacciones. A continuación proponemos algunas variantes: . Visualizar en cada instante de la ejecución del algoritmo el recorrido de cada una de las hormigas (Ver Figura 2.1).. Nos permite observar la trayectoria que siguen las hormigas para la construcción de su solución y el costo acumulado en cada momento; analizar preferencias de las hormigas por seguir determinadas trayectorias, lo que es proporcional a la elevada cantidad de feromona en los arcos que la componen, si esto conviene o no, se modificaría entonces la matriz de feromonas.. 24.
(34) Capítulo 2. Figura 2.1: Visualización del recorrido de una hormiga. . Mostrar las mejores/peores trayectorias de las hormigas cada cierto tiempo (Ver Figura 2.2).. Posibilita el análisis de las mejores y peores trayectorias o subsoluciones de las hormigas. De este análisis pueden concluirse por ejemplo, la necesidad de adicionar o eliminar feromona para favorecer la intensificación o ampliar la exploración respectivamente, según convenga; por otra parte puede decidirse eliminar las hormiga con peores soluciones y clonar las que presenten soluciones más tentativas.. Para esta visualización es necesario realizar gran cantidad de cálculos debido a que, esencialmente, cada subsolución es comparada con todas las demás a fin de determinar las mejores y peores. Por lo anterior, es conveniente mostrar estos resultados solo a determinados intervalos de tiempo. Se pueden utilizar varios. 25.
(35) Capítulo 2. criterios para decidir en que momento mostrar las mejores y peores trayectorias, entre ellos: a intervalos de tiempo que pueden ser modificados por el usuario, al visitarse un determinado porciento de los nodos o cuando el usuario invoque esta funcionalidad explícitamente.. Figura 2.2: Visualización Mejor y Peor trayectoria. . Clonar o eliminar una o varias hormigas.. Esa interacción está asociada a las dos visualizaciones anteriores. Al clonar una hormiga, usualmente una con buena trayectoria, se elevan las posibilidades de obtener al final una mejor solución y al eliminar las hormigas que siguen una mala trayectoria se ahorraría tiempo explorando malas soluciones. . Visualizar e interactuar con la matriz de feromonas adicionando o eliminando un valor a la huella de feromona en determinados arcos.. Adicionar feromona en el arco que une los nodos i y j significa elevar la probabilidad de que una hormiga estando en el nodo i se decida por la opción de ir. 26.
(36) Capítulo 2. al nodo j, de igual manera cuando se elimina feromona en un arco restringe en mayor medida la elección de optar por dicho arco. Esta posibilidad es de vital importancia, pues la construcción de las soluciones de las hormigas y en general la solución del problema a optimizar, depende directamente de la matriz de huellas de feromona y de esta forma la construcción de las soluciones puede ser guiada por el usuario.. En la Figura 2.3 se muestra un ejemplo de visualización de una matriz de feromonas, donde los arcos son dibujados en tonalidades del color gris y representan el rastro de feromona en ellos. A mayor claridad del arco, menor cantidad de feromona y viceversa.. Figura 2.3: Visualización de la matriz de feromona. . Filtrar el grafo donde se muestran los niveles de feromona mostrando solo los arcos cuya huella de feromona se encuentra en un determinado rango (Ver Figura 2.4). 27.
(37) Capítulo 2. Esta interacción es importante ya que muestra con mayor claridad los arcos cuyos niveles de feromona se encuentran en un rango seleccionado. En otro caso se mostrarían todos los arcos (n2 - n), lo que dificultaría su análisis. Cuando visualizamos los arcos con mayor cantidad de feromona podemos detectar alguno que no debiera aparecer en la solución y tomar la decisión de disminuirle el nivel de feromona, similar ocurre para arcos promisorios con bajos niveles de feromona a los que se les aumentarían.. Figura 2.4: Filtrar el grafo que representa la matriz de feromona. . 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.. Es útil si se desea comenzar la construcción de la solución en algún nodo específico o nodo de una región específica, por alguna restricción o ventaja en el problema.. 28.
(38) Capítulo 2. . Brindar información sobre nodos y arcos.. Incluye el número del nodo que lo identifica en la trayectoria y el peso de los arcos, que ayudarían a justificar numéricamente decisiones tomadas; por ejemplo, saber la distancia real entre los nodos en el problema TSP es de mucha ayuda si se quiere favorecer algún camino, y más cuando para representar dicha distancia se utiliza alguna escala. Esta información puede mostrarse desde un inicio y estáticamente o de forma dinámica, por ejemplo, al mover o dar clic con el mouse encima del nodo o arco. . Mostrar con mayor detalle una región seleccionada.. Es muy ventajoso si el número de nodos del grafo es grande y se desea observar mejor el comportamiento de las hormigas en una región determinada o modificar parámetros a los que no se tiene fácil acceso visual. . Visualizar las soluciones y filtrar según su calidad.. Nos permite comparar las soluciones terminadas con las que están construyendo las hormigas y por medio de un análisis tratar de mejorar las demás. El filtrado de las soluciones según su calidad contribuye a dicho análisis permitiendo reconocer comportamientos o patrones relacionados con la calidad.. Una forma de representar las soluciones podemos observarla en la siguiente figura. Esta brinda mucha información visual, pues las soluciones encontradas se muestran en diferentes colores, donde los valores más cercanos al rojo serían las peores soluciones, mientras que las mejores estarían próximas al azul.. 29.
(39) Capítulo 2. Figura 2.5: Visualización de las soluciones. . Variar la velocidad de corrida del algoritmo.. Posibilita observar con mayor detenimiento los datos o como varían las trayectorias de las hormigas en los instantes que se necesite, también permite tener mejor control del estado del algoritmo cuando se desea modificar algún parámetro sin que los demás cambien bruscamente. . Detener el algoritmo.. De esta forma pueden analizarse los parámetros involucrados en el algoritmo sin que sean modificados durante el tiempo que consuma dicho análisis. Así puede hacerse una valoración más precisa de la situación y tomar las mejores decisiones para que el algoritmo pueda continuar su ejecución de una forma más eficiente, lo que en ocasiones compensaría el tiempo que estuvo detenido.. 30.
(40) Capítulo 2. Por otra parte, si el problema a resolver tuviera dimensiones muy grandes sería conveniente salvar el estado del algoritmo, pues para encontrar una buena solución pudiera demorar horas. . Cambiar la cantidad de hormigas en cualquier momento de la ejecución del algoritmo.. Cada hormiga en ejecución significa un intento por encontrar una buena solución, pero a su vez implica un mayor consumo de recursos de cómputo. Ambos indicadores deben balancearse apropiadamente dependiendo de las condiciones disponibles.. Además de lograrse la variación de la cantidad de hormigas por medio de la clonación y eliminación que explicamos anteriormente, aquí nos referimos a la modificación de esta cantidad eliminando o incrementando un lote de hormigas. La selección de estas hormigas, en el caso de la eliminación, puede hacerse de forma aleatoria o eliminando las menos promisorias, es decir, aquellas con peor solución parcial construida hasta el momento. En el caso de la adición de nuevas hormigas, pueden seguirse determinados criterios, entre ellos: que las nuevas hormigas comiencen a construir su camino desde el inicio, clonar siempre las mejores, clonar las k mejores; o incluso clonar k veces la más promisoria, luego clonar k - 1 veces la segunda más promisoria, y así sucesivamente hasta obtener la cantidad de hormigas deseadas. . Variar el tiempo de ejecución del algoritmo.. Según las dimensiones del problema y la disponibilidad de tiempo para encontrar una buena solución, puede ejecutarse el algoritmo el mayor tiempo posible o deseable. Un mayor tiempo de ejecución se traduce en un mayor número de iteraciones y paulatinamente en la obtención de mejores soluciones.. 31.
(41) Capítulo 2. . Modificar la feromona inicial y la constante de evaporación.. De trabajos publicados se conocen algunos valores recomendados para estos parámetros (Gambardella and Dorigo, 1997, Alonso et al., 2003). El investigador está libre de experimentar modificando estos valores para sus problemas específicos con el objetivo de encontrar los más apropiados, lo cual brinda una conveniente flexibilidad al algoritmo. . Modificar otros parámetros específicos del algoritmo, por ejemplo, y , q0 para ACS, para MMAS min y max .. De forma análoga al caso anterior, la posibilidad de variar estos parámetros brinda flexibilidad al algoritmo, y en la práctica permite afinar la metaheurística para problemas específicos. . Fijar un recorrido global al que debe acercarse la solución del problema a la vez que optimice la función objetivo.. Existen dos razones fundamentales que justifican esta interacción: una es que intuitivamente identifiquemos lo que puede ser un buen recorrido, ya sea total o parcial; y la segunda, la posibilidad de que hayan determinados riesgos en zonas específicas, lo cual condicionaría en cierta medida la trayectoria elegida.. En la figura a continuación, el recorrido en color amarillo sería el que el usuario fijaría, mientras que la trayectoria de la hormiga (dibujada en color verde) debe acercarse a dicho recorrido.. 32.
(42) Capítulo 2. Figura 2.6: Fijar recorrido global.. Figura 2.7: Dibujar parte de la trayectoria.. 33.
(43) Capítulo 2. . Dibujar una parte de la trayectoria.. Detener el algoritmo y permitir al usuario dibujar una parte de la trayectoria de cualquier hormiga cuando entienda que es factible, puede acelerar la obtención de una buena solución. Por ejemplo, la Figura 2.7 presenta con líneas verdes continuas la construcción de la trayectoria de una hormiga y para el usuario pudiera ser evidente el completamiento de dicha trayectoria con el camino representado en líneas discontinuas. . Cambiar una subtrayectoria modificando las conexiones entre los nodos que la componen.. En ocasiones durante la construcción de un camino puede suceder que parte de la trayectoria, es decir, determinada secuencia de arcos del mismo, formen un polígono que no sea convexo. Un polígono es convexo, si y solo si, para cada par de puntos del polígono, el segmento que los une es interior.. El caso particular de cuatro puntos que forman una subtrayectoria y a la vez definen un polígono no convexo es ilustrativo de un problema que puede también presentarse en subtrayectorias de mayor longitud: nos referimos a la elección de una subtrayectoria no óptima. Como puede observarse en la Figura 2.8, aplicando la desigualdad triangular se prueba que:. |P1P2| + |P2P3| + |P3P4| > |P1P3| + |P3P2| + |P2P4| Ya que en el triángulo P1P3O se tiene que |P1P3|< |P1O| + |OP3| Y en el triángulo P2P4O se tiene que |P2P4|< |P2O| + |OP4| Y además, |P1P2| = |P1O| + |OP2| y |P3P4| = |P3O| + |OP4|. 34.
(44) Capítulo 2. Figura 2.8: Cambiar una subtrayectoria. Para el usuario es muy fácil detectar casos como el que hemos ilustrado, a partir de los arcos que se intersectan. Con esta interacción se pretende que el usuario cambie la trayectoria incluyendo los mismos nodos pero en orden diferente, o sea, variando los arcos que los unen, para obtener una mejora del costo en la sección analizada. Esto podría implementarse por medio del marcado sucesivo de los nodos involucrados en la subtrayectoria, respetando el primero y el último, el orden del marcado determinará los arcos que se incluirán en el camino.. Es importante destacar que casos como el expuesto, aunque muy evidentes, no son los únicos en los cuales el usuario puede utilizar esta interacción, sino que siempre que esté seguro que una subtrayectoria con un conjunto de nodos tiene mayor costo que otra en la que se involucren todos esos nodos, puede hacer uso de esta interacción. . Fijar o eliminar un arco del recorrido.. Puede suponerse en determinados casos que un arco específico debe pertenecer a la solución (Figura 2.9, arco en azul) y fijarse el mismo por medio de la interacción. Esto implica que en el momento en que uno de los vértices del arco. 35.
Figure
+7
Documento similar