Aplicación de algoritmo AntNet al problema de secuenciación en múltiples máquinas
Texto completo
(2) Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de Las Villas como parte de la culminación de los estudios de la especialidad de Ciencia de la Computación, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. ______________ Firma del autor. Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. _______________. _______________________. Firma del tutor. Firma del jefe del Laboratorio.
(3)
(4) Resumen Los problemas de Optimización Combinatoria ocupan diversos campos como la economía, el comercio, la ingeniería, la industria o la medicina. Los problemas de secuenciación, como ejemplo de estos, consisten en la localización o asignación de recursos en el tiempo a un conjunto de tareas o actividades; dentro de ellos, aparece el problema de secuenciación en múltiples máquinas, caracterizado como la actividad de asignar un número de trabajos que son llevados a cabo por un número de máquinas, con un rendimiento cuya efectividad en costo o tiempo son cumplidos. En los últimos años ha habido un crecimiento en el desarrollo de procedimientos heurísticos para resolver problemas de optimización. Este es el caso de la metaheurística ACO (Ant Colony Optimization) que se inspira en el comportamiento que rige a las hormigas de diversas especies para encontrar los caminos más cortos entre las fuentes de comida y el hormiguero. El tipo de problemas que pueden ser resueltos por esta vía pertenecen al grupo de problemas de camino mínimo de optimización combinatoria, que pueden representarse en forma de grafo ponderado y que ha demostrado ser capaz de obtener buenos resultados para varios de los problemas a los que ha sido aplicada. En este trabajo se presenta una alternativa de solución al problema MMS utilizando AntNet, un algoritmo aproximado o heurístico perteneciente a ACO, diseñado inicialmente para resolver problemas de enrutamiento en las redes de telecomunicación. En esta propuesta de solución se realizan adaptaciones al algoritmo para ajustarlo a las características del problema MMS, tanto en la representación de la solución como en el procedimiento de búsqueda del valor óptimo y se obtienen resultados comparables con otra variante de solución encontrada en la literatura, así como con variantes propias del algoritmo obtenidas por la variación de algunos parámetros..
(5) Abstract Combinatorial Optimization problems are present in different fields like economy, commerce, engineering, industry or medicine. Scheduling problems, for example, consist in the allocation in time of resources to jobs or activities, one of the scheduling problems is the Multi Machine Scheduling (MMS), and this is characterized as the activity of assigning a number of jobs to machines such that certain performance demands like cost and time effectiveness are fulfilled. In recent years there has been a growth in the development of heuristic procedures to solve optimization problems. This is the case of the ACO metaheuristic (Ant Colony Optimization), which takes inspiration from the behavior of some ant species to find the shortest path between the food and the nest. The kind of problems that can be solved using this way belongs to the group of problems of minimum path of combinatorial optimization. It is worthwhile to note that ACO algorithms are appropriate for discrete optimization problems that can be characterized as a graph. This metaheuristic has demonstrated that is able to obtain good results for several problems to which it has been applied. In this work an alternative of solution to the MMS problem using AntNet is presented. AntNet is an approximate or heuristic algorithm of the Ant Colony Optimization metaheuristic, it was initially designed to solve routing problems in telecommunication networks. In this solution proposal, some adaptations to the algorithm were introduced in order to approach it to the MMS problem characteristics, these adaptations can be observed in the representation of the solution, as well as in the search procedure of the optimal value. Comparable results with another variant of solution found in the literature are obtained. The results are also comparables with own variants of the algorithm obtained by the variation of some of parameters that take part in the different formulas..
(6) Tabla de contenidos Introducción............................................................................................... 1 Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO. ...................... 6 1.1 Introducción.................................................................................................................................. 6 1.2 Optimización Combinatoria .......................................................................................................... 6 1.3 Problemas de secuenciación de tareas (scheduling) ................................................................... 8 1.4 Descripción del problema de secuenciación en múltiples máquinas (Multi Machine Scheduling MMS).................................................................................................................................................. 9 1.4.1 Definición matemática ......................................................................................................... 11 1.4.2 Ejemplo................................................................................................................................ 12 1.5 Métodos para solucionar problemas de Optimización Combinatoria ......................................... 14 1.6 Optimización basada en colonias de hormigas .......................................................................... 16 1.6.1 Representación del Problema ............................................................................................. 17 1.6.2 Comportamiento de las hormigas........................................................................................ 18 1.6.3 Modo de funcionamiento y estructura genérica de la Metaheurística ACO ........................ 18 1.6.4 Algoritmos de la Metaheurística ACO ................................................................................. 21 1.7 Consideraciones finales ............................................................................................................. 22 Capítulo II: AntNet y su aplicación al MMS. ........................................................... 23. 2.1 Introducción................................................................................................................................ 23 2.2 AntNet ........................................................................................................................................ 23 2.2.1. Principales características del AntNet .......................................................................... 24. 2.2.2. Descripción del algoritmo AntNet ................................................................................. 26. 2.2.3. Descripción de la forma de actualización del modelo de tráfico Mk y las tablas de. enrutamiento Tk ............................................................................................................................ 29 2.2.4. Pseudocódigo del AntNet ............................................................................................. 34. 2.3 Aplicación del algoritmo AntNet a la solución del problema MMS ............................................. 35 2.3.1 Representación gráfica del problema MMS ........................................................................ 35 2.3.2 Representación de la secuenciación de tareas................................................................... 37 2.3.3 Ejemplo de representación gráfica de la solución del problema MMS................................ 38 2.3.4 Adaptación del algoritmo AntNet al problema MMS............................................................ 44 2.4 Conclusiones parciales .............................................................................................................. 48 Capítulo III: Análisis de los resultados ................................................................ 49 3.1 Introducción................................................................................................................................ 49 3.2 Definición de la forma de representación de instancias del MMS.............................................. 49 3.3 Resultados Experimentales........................................................................................................ 50.
(7) 3.4 Técnicas estadísticas para el análisis de los resultados ............................................................ 54 3.4.1 Análisis estadístico de los resultados obtenidos utilizando el parámetro α . ...................... 57 3.5 Conclusiones parciales .............................................................................................................. 59. ............................................................................................ 61 Recomendaciones ....................................................................................... 62 Bibliografía ............................................................................................... 63 Anexo 1 ................................................................................................... 66 Anexo 2 ................................................................................................... 68 Conclusiones.
(8) Lista de Figuras: Figura 1: Representación gráfica de un problema MMS........................................................................ 9 Figura 2: Representación gráfica del ejemplo del problema MMS....................................................... 13 Figura 3: Estructura de un nodo de la red............................................................................................ 26 Figura 4: Representación de la solución (máquinas y pasos de producción) ...................................... 35 Figura 5: Representación de la solución (con tiempos de procesamiento).......................................... 36 Figura 6: Representación de la solución (con nodos M in y M out ) ...................................................... 36 Figura 7: Representación de la solución (con caminos de producción)............................................... 37 Figura 8: Representación de la secuenciación de tareas .................................................................... 38 Figura 9: Representación de la secuenciación orientada a los trabajos .............................................. 38 Figura 10: Máquinas que intervienen en el proceso de producción..................................................... 39 Figura 11: Máquinas con el tiempo de producción asociado ............................................................... 40 Figura 12: Nodos ficticios con valor 0 .................................................................................................. 40 Figura 13: Proceso de producción con arcos y tiempos asociados ..................................................... 42 Figura 14: Representación de la secuenciación de tareas del ejemplo ............................................... 43 Figura 15: Representación de la solución del ejemplo......................................................................... 43 Figura 16: Estructura de un nodo del grafo que representa el problema MMS ................................... 44 Figura 17: Funcionamiento de AntNet (movimiento de las hormigas) ................................................. 45 Figura 18: Archivo texto con los datos del problema MMS .................................................................. 49 Figura 19: Comparación de soluciones para 50 trabajos..................................................................... 51 Figura 20: Comparación de soluciones para 500 trabajos................................................................... 52 Figura 21: Resultados de AntNet ......................................................................................................... 53 Figura 22: Resultados de AntNet hasta 50 trabajos............................................................................. 54 Figura 23: Resultados de AntNet con más de 50 trabajos................................................................... 54.
(9) Lista de Tablas: Tabla 1: Datos de los tiempos de un ejemplo del problema MMS ....................................................... 13 Tabla 2: Tiempos de producción de las máquinas............................................................................... 39 Tabla 3: Paso de producción 1............................................................................................................ 41 Tabla 4: Paso de producción 2............................................................................................................. 41 Tabla 5: Paso de producción 3............................................................................................................. 41 Tabla 6: Paso de producción 4............................................................................................................. 41 Tabla 7: Resultados de la aplicación del algoritmo para 50 y 500 hormigas utilizando SMAL ............ 51 Tabla 8: Resultados obtenidos por AntNet modificando el número de trabajos .................................. 52 Tabla 9: Resultados del Test de Friedman .......................................................................................... 55 Tabla 10: Resultados del Test de Wilcoxon ......................................................................................... 55 Tabla 11: División en grupos de los resultados obtenidos ................................................................... 56 Tabla 12: Resultados de Test de Wilcoxon para el Grupo 1 (10-50 trabajos) ..................................... 56 Tabla 13: Resultados del Test de Wilcoxon para el Grupo 2 (100-550) .............................................. 57 Tabla 14: Resultados de AntNet con refuerzo igual a cero para distintos valores de α ..................... 57 Tabla 15: Resultados del Test de Wilcoxon para AntNet ( r =0) con distintos valores de α ............... 58 Tabla 16: Resultados de AntNet con refuerzo constante para distintos valores de α ........................ 58 Tabla 17: Resultados del Test de Wilcoxon para AntNet ( r const.) con distintos valores de α ......... 58 Tabla 18: Resultados de AntNet con refuerzo calculable para distintos valores de α ........................ 59 Tabla 19: Resultados del Test de Wilcoxon para AntNet ( r calc.) con distintos valores de α ............ 59.
(10) Introducción La Optimización es la acción y el efecto de buscar la mejor manera de realizar una actividad. Un problema de optimización trata entonces de tomar una decisión óptima para maximizar (ganancias, velocidad, eficiencia) o minimizar (costos, tiempo, riesgo, error) un criterio determinado, teniendo en cuenta ciertas restricciones. En términos matemáticos, un problema de optimización involucra un conjunto de variables de decisión y una función objetivo que representa o mide la calidad de las decisiones en un cierto dominio X. La Optimización Combinatoria, por su parte, es la rama de la Optimización que afronta los problemas con un dominio X finito, conocidos como problemas combinatorios. Existen problemas complejos de Optimización Combinatoria en diversos campos como la economía, el comercio, la ingeniería, la industria o la medicina. Un ejemplo de esto son los problemas de secuenciación de tareas (scheduling), que consisten en la asignación óptima de recursos en el tiempo a un conjunto de tareas o actividades. Los problemas de Optimización Combinatoria tienen como característica recurrente que son fáciles de entender y de enunciar, pero generalmente son difíciles de resolver, entendiéndose como problema de optimización difícil 1 aquel para el cual no se puede garantizar encontrar la mejor solución posible en un tiempo razonable (Garey and Jonson, 1979). A diario aparecen nuevos problemas de este tipo, lo que ha dado lugar a que se hayan realizado diversas propuestas de algoritmos para tratar de solucionarlos. Las técnicas existentes se pueden clasificar básicamente en algoritmos exactos o aproximados. Los algoritmos exactos intentan encontrar una solución óptima y demostrar que la solución obtenida es de hecho la óptima global; estos algoritmos incluyen técnicas como: procesos de vuelta atrás (backtracking), ramificación y poda (branch and bound) y programación dinámica (Papadimitriou and Steiglitz, 1982) (Brassard and Bratley, 1996). Debido a que los algoritmos exactos muestran un rendimiento pobre para algunos problemas, se han desarrollado múltiples tipos de algoritmos aproximados que proporcionan soluciones de alta calidad (aunque no necesariamente óptimas) para estos problemas combinatorios en un tiempo computacional breve. Estos métodos, en los que la rapidez del proceso es tan importante como la calidad de la solución obtenida, se denominan también heurísticos. El término heurística proviene de la palabra griega heuriskein, que significa hallar, inventar. Es la técnica de la indagación y el descubrimiento, y en algunas ciencias es considerada la manera de buscar la solución de un problema mediante métodos empíricos. 1. También conocidos como problemas NP-hard, lo que significa que se pueden resolver por un algoritmo no determinista en. un tiempo polinomial.. 1.
(11) Introducción. El concepto de heurística ofrecido por Feigenbaum y Feldman (Feigenbaum and Feldman, 1963) es el siguiente: "Una heurística es un tipo de estrategia que limita en forma drástica la búsqueda de soluciones. La heurística no garantiza soluciones óptimas; de hecho, no garantiza el que haya una solución; todo lo que se puede decir para que una heurística sea útil es que ofrece soluciones que son suficientemente buenas la mayoría de las veces.” En esencia, una heurística puede definirse como un conjunto de reglas que evalúan la posibilidad de que una búsqueda marche en la dirección correcta. Generalmente los métodos de búsqueda heurística se basan en maximizar o minimizar algunos aspectos del problema. En (Díaz et al., 1996) se recogen más de dos definiciones diferentes de algoritmo heurístico, entre las que se ha querido destacar la siguiente: “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.” En contraposición a los métodos exactos que proporcionan una solución óptima del problema, los métodos heurísticos se limitan a proporcionar una buena solución no necesariamente óptima. Lógicamente, el tiempo invertido por un método exacto para encontrar la solución óptima de un problema difícil, si es que existe tal método, es de un orden de magnitud muy superior al del heurístico (pudiendo llegar a ser tan grande en muchos casos, que sea inaplicable). Aunque solamente se ha mencionado la problemática de la resolución de un problema difícil, existen otras razones para utilizar métodos heurísticos, entre las que se pueden destacar: •. El problema es de una naturaleza tal que no se conoce ningún método exacto para su resolución.. •. Aunque existe un método exacto para resolver el problema, su uso es computacionalmente muy costoso.. •. El método heurístico es más flexible que un método exacto, permitiendo, por ejemplo, la incorporación de condiciones de difícil modelación.. •. El método heurístico se utiliza como parte de un procedimiento global que garantiza el óptimo de un problema; existiendo dos posibilidades: o. proporcionar una buena solución inicial de partida.. o. participar en un paso intermedio del procedimiento.. 2.
(12) Introducción. En los últimos años ha habido un crecimiento en el desarrollo de procedimientos heurísticos para 2. resolver problemas de optimización . En estos métodos, las técnicas e ideas aplicadas a la resolución de un problema son específicas del mismo y aunque, en general, pueden ser trasladadas a otros problemas, han de particularizarse en cada caso. Así pues, es necesario referirse a un problema concreto para estudiar con detalle los procedimientos heurísticos. Se han desarrollado una serie de métodos bajo el nombre de metaheurísticos con el propósito de obtener mejores resultados que los alcanzados por los heurísticos tradicionales; este término fue introducido en (Glover, 1986). En algunos textos se puede encontrar la expresión “heurísticos modernos” refiriéndose a los metaheurísticos (Reeves, 1995). Los profesores Osman y Kelly en (Osman and Kelly, 1996) introducen la siguiente definición: “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.” Los procedimientos metaheurísticos se sitúan conceptualmente “por encima” de los heurísticos en el sentido que guían el diseño de éstos. Así, al resolver un problema de optimización, puede escogerse cualquiera de estos métodos para diseñar un algoritmo específico que lo resuelva aproximadamente. En estos momentos existe un gran desarrollo y crecimiento de estos procedimientos, que han probado su eficiencia sobre una colección significativa de problemas entre los que se destacan: la Búsqueda Tabú (Glover, 1977), el Recocido Simulado (Kirkpatrick et al., 1983), los Algoritmos Genéticos (Goldberg, 1989), la Optimización Basada en Enjambre de Partículas (Particle Swarm Optimization, PSO) (Kennedy and Eberhart, 1995) y la Optimización Basada en Colonias de Hormigas (Ant Colony Optimization, ACO) (Dorigo and Gambardella, 1997), entre otros. Estas dos últimas metaheurísticas caen en la categoría de algoritmos bioinspirados o de vida artificial e inteligencia colectiva, ya que la potencialidad de estos modelos para resolver problemas está dada por la cooperación entre individuos de una forma directa o indirecta. La metaheurística ACO se inspira en el comportamiento que rige a las hormigas de diversas especies para encontrar los caminos más cortos entre las fuentes de comida y el hormiguero. El tipo de problemas que pueden ser resueltos por esta vía pertenecen al grupo de problemas de camino mínimo de optimización combinatoria, que pueden representarse en forma de grafo ponderado G=(N,A), donde A es el conjunto de aristas que conectan al conjunto de componentes N.. 2. Este hecho queda claramente reflejado en el gran número de artículos publicados en revistas especializadas. En 1995 se. edita el primer número de la revista Journal of Heuristics dedicada íntegramente a la difusión de los procedimientos heurísticos.. 3.
(13) Introducción. En la literatura se han propuesto diversos algoritmos que siguen la metaheurística ACO. Por ejemplo: Sistema de Hormigas (Ant System, AS) (Dorigo, 1992), Sistema de Colonias de Hormigas (Ant Colony System, ACS) (Dorigo and Gambardella, 1997), Sistema de Hormigas Max-Min (Max-Min Ant System) (Stützle and Hoos, 2000), Sistema de Hormigas con ordenamiento (Rank-Based Ant System) (Bullnheimer et al., 1999), Hormigas Multitipo (Multi Type Ants) (Vrancx, 2004) y el Sistema de la Mejor-Peor Hormiga (Best-Worst Ant System) (Cordón et al., 2000), cada uno con sus características particulares. AntNet es otra de las extensiones de AS. Es un algoritmo diseñado para resolver el problema de enrutamiento en las redes de comunicación (Dorigo, 1998). Los algoritmos de ACO se han aplicado a un gran número de problemas de optimización combinatoria difíciles, obteniéndose buenos resultados. El primer problema que fue tratado por un algoritmo de ACO fue el Problema del Viajero Vendedor (Travelling Salesman Problem, TSP), por ser este una instancia bien conocida de un problema difícil, que además incluye de manera inmediata un problema de camino mínimo, haciendo por tanto que su adaptación al comportamiento real de las hormigas para resolverlo fuese una tarea casi inmediata. Desde entonces, diversos autores (Castro, 2006) (Peter Korosec et al., 2004) (Enríquez, 2007), han usado la metaheurística ACO para solucionar múltiples problemas de optimización combinatoria como: la asignación cuadrática, la secuenciación de tareas, el enrutamiento de redes, la supersecuencia común más corta, la asignación generalizada, la cobertura de conjuntos, varios problemas de la mochila y de satisfacción de restricciones, entre otros. Actualmente, ACO es capaz de obtener los mejores resultados para varios de los problemas a los que ha sido aplicada, y para otros ha alcanzado resultados buenos y cercanos a los mejores, lo cual es significativo debido a que la mayoría de esos problemas han atraído una buena cantidad de esfuerzo e investigación. Lo anteriormente planteado se puede considerar un argumento importante para resolver el problema de secuenciación en múltiples máquinas, conocido como Multi Machine Scheduling (MMS), que puede ser caracterizado brevemente como la actividad de asignar un número de trabajos que son llevados a cabo por un número de máquinas, con un rendimiento cuya efectividad en costo o tiempo son cumplidos. Aparece la siguiente interrogante que es considerada el problema del MMS: Dado el número de productos a ser confeccionados, ¿qué camino de producción debe seguir cada uno de los productos para que el tiempo de producción total sea mínimo? Se analiza en este trabajo la factibilidad de aplicar el AntNet, uno de los algoritmos que pertenecen a la familia de los algoritmos de ACO al problema propuesto anteriormente constituyendo el objetivo fundamental:. Adaptar el algoritmo AntNet para solucionar el problema de secuenciación en múltiples máquinas. Este objetivo general fue desglosado en los objetivos específicos siguientes:. 4.
(14) Introducción. 1. Construir el marco teórico-referencial del trabajo de investigación derivado de la consulta de la literatura relacionada con la temática de estudio. 2. Proponer una adaptación del algoritmo AntNet para resolver el problema MMS. 3. Realizar la implementación computacional del algoritmo AntNet para solucionar el problema planteado. 4. Evaluar los resultados obtenidos a partir de comparaciones con la solución al problema aportada por el paradigma Multi Agent Learnig (MAL). 5. Establecer comparaciones estadísticas entre los resultados que brindan las variantes de AntNet implementadas. El estudio del AntNet y la factibilidad de su aplicación para encontrar una solución al problema MMS, adquiere un significado relevante en la vida práctica. La secuenciación de trabajos juega un papel particularmente importante en el contexto de la industria. Además de esta perspectiva industrial, esta caracterización tiene otras interpretaciones; trabajos y máquinas pueden entenderse como programas y computadoras, clases y profesores, misiones militares y soldados, o pacientes y equipamiento de hospital. La realización de la investigación presenta motivaciones de carácter teórico y práctico. Desde una perspectiva teórica, se ofrece una adaptación del algoritmo AntNet a la solución del problema MMS en la que se destaca la forma de representación del problema y los ajustes realizados para modelar las características del problema. En el orden práctico se realiza la implementación computacional de esta solución y se establecen comparaciones con los resultados obtenidos. El presente informe incluye, además de esta introducción, tres capítulos, conclusiones, recomendaciones, bibliografía y anexos. En el Capítulo I aparecen algunas consideraciones de carácter teórico sobre la Optimización Combinatoria y algunos problemas de este tipo. Se destacan los problemas de secuenciación de tareas (scheduling), en particular el problema MMS. Se expone la definición del MMS así como la forma de representar la solución de este problema. El Capítulo II dedica su espacio al tratamiento de los aspectos generales relacionados con la metaheurística basada en colonias de hormigas. Se explica el funcionamiento del algoritmo AntNet y las adaptaciones para solucionar el problema MMS. En el Capítulo III se ofrecen las valoraciones acerca de los resultados obtenidos por la aplicación del algoritmo AntNet con diferentes parámetros, así como la comparación con otros métodos que solucionan el problema MMS, en este caso el Multi Agent Learning.. 5.
(15) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO. 1.1 Introducción Optimizar significa mejorar, perfeccionar; sin embargo, en el contexto científico la optimización es el proceso de tratar de encontrar la mejor solución posible para un determinado problema. El capítulo inicial de este trabajo aborda aspectos esenciales de la teoría de la Optimización Combinatoria, que trata a los problemas que tienen la meta de maximizar o minimizar un objetivo sobre un conjunto finito de soluciones. Reconociendo que el problema de secuenciación de tareas en múltiples máquinas (Multi Machine Scheduling, en lo adelante MMS) se encuentra dentro de esta categoría, se investiga acerca de su definición y se ofrece un ejemplo general de este problema. También se profundiza en la metaheurística ACO como una forma eficiente de resolver este tipo de problemas y se propone el algoritmo AntNet como variante de solución al problema planteado.. 1.2 Optimización Combinatoria Los orígenes históricos de la Optimización Combinatoria se deben a problemas en Economía relativos a la planificación y administración de operaciones y el uso eficiente de recursos. Posteriormente se han abordado más aplicaciones técnicas, modelándose como problemas combinatorios, tales como secuenciación de máquinas y planificación de producción. Actualmente los problemas combinatorios se presentan en diseño de campañas de ventas, estudios de códigos genéticos, clasificación de plantas y animales, diseño de nuevas moléculas, asignación controlada de ondas de radios, modelación de redes de comunicación, posicionamiento de satélites, tamaño de flotas de camiones y planificación del transporte, entre otras aplicaciones. Los problemas combinatorios pueden ser vistos como problemas triviales, ya que se asume como válida la técnica general de la enumeración total; esto es, el examen exhaustivo de todas y cada una de las posibles soluciones. Es fácil decir “elegir el mejor de este número finito de posibilidades”, pero los problemas combinatorios no son triviales, sino que suponen grandes retos (González, 1996). La Optimización Combinatoria busca, para cada uno de sus problemas, una mejor alternativa práctica de solución frente a la, normalmente no factible, técnica general de enumeración total. Un problema de Optimización Combinatoria queda definido por un conjunto de instancias del problema y una prescripción de maximizar o minimizar (Mailing, 2003). Si se define f como la función objetivo y S el conjunto de soluciones, el problema puede quedar expresado como:. 6.
(16) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. max{ f ( x ) : x ∈ S } = − min{− f ( x ) : x ∈ S } Una instancia de un problema de Optimización Combinatoria es un par. (S, f ). donde S es el. conjunto de soluciones factibles y f : S → R es la función de costo. El problema reside en encontrar. (). * una solución óptima global, esto es, un i * ∈ S , f i * ≤ f (i )∀i ∈ S . Además, si un f = f (i ) entonces. S * = {i ∈ S : f (i ) = f * } denota el conjunto de soluciones óptimas. Una instancia generalmente no está dada explícitamente, esto es, expuesta llanamente como una lista de soluciones con sus costos respectivos. Usualmente se presenta una representación compacta de los datos, formada por un algoritmo de tiempo polinomial para verificar si una solución pertenece a. S y calcular su costo (Garey and Jonson, 1979). Estos problemas tienen como objetivo encontrar el máximo (o el mínimo) de la función objetivo sobre el conjunto finito de soluciones S . No se exige ninguna condición o propiedad sobre la función objetivo o la definición del conjunto S . Es importante notar que dada la finitud de S , las variables han de ser discretas, restringiendo su dominio a una serie finita de valores. Habitualmente, el número de elementos de S es muy elevado, haciendo impracticable la evaluación de todas sus soluciones para determinar el óptimo. Los problemas de Optimización Combinatoria cubren un amplio espectro. Una muestra de los que se han encontrado en la literatura (Martí, 2000) se presenta a continuación: •. Problema de la Mochila: Se tienen n objetos donde cada objeto j tiene un peso wi y un valor v j . El problema consiste en seleccionar los objetos a incluir en una mochila sin exceder el peso máximo W , de modo que el valor total de los mismos sea máximo.. •. Problema del Viajante de Comercio (Traveling Salesman Problem): Un viajante de comercio ha de visitar n ciudades, comenzando y finalizando en su propia ciudad. Conociendo el costo de ir de cada ciudad a otra, se debe determinar el recorrido de costo mínimo.. •. Problema del Cubrimiento de Conjuntos (Set Covering): Sea un conjunto de objetos. S = {1,2,..., m} y una clase H de subconjuntos de S , H = {H 1 , H 2 ,..., H n } donde cada H i tiene un costo ci asociado. El problema consiste en cubrir con costo mínimo todos los elementos de S con subconjuntos H i . •. Problema del Empaquetado de Conjuntos (Set Packing): Como en el problema anterior, se tienen los conjuntos S y H , pero ahora cada H i tiene un valor asociado. El objetivo es 7.
(17) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. empaquetar tantos elementos de S como sea posible, de forma que el beneficio obtenido sea máximo y no haya solapamientos (ningún elemento de S puede aparecer más de una vez). •. Problema de la Partición de Conjuntos (Set Partitioning): En este problema, al igual que en los dos anteriores, se tienen los conjuntos S y H . Cada elemento de S tiene que aparecer exactamente en uno de H , por lo tanto la solución representa una partición del conjunto S . La función objetivo puede ser maximizar o minimizar, según la aplicación.. •. Problema de secuenciación de tareas (Scheduling): Consiste en la localización o asignación de recursos en el tiempo a un conjunto de tareas o actividades; por ejemplo el proceso de confección de n productos utilizando m máquinas con el objetivo de minimizar el tiempo de producción.. 1.3 Problemas de secuenciación de tareas (scheduling) Dentro de los problemas de Optimización Combinatoria se encuentran los problemas de secuenciación de tareas (scheduling) que se formalizan inicialmente en el área de las manufacturas. Las primeras publicaciones aparecieron en la “Naval Research Logistics Quartely”, revista de la marina de guerra de los Estados Unidos a principios de los años cincuenta y estuvieron a cargo de W.E Smith, S.M Jonhson y J.R Jackson. Durante los años sesenta se trabajó en programación dinámica y programación en enteros para la formulación de problemas de este tipo. En los años setenta, la labor investigativa estuvo centrada en la complejidad de los problemas. Ya en los ochenta comienzan a tomar disímiles direcciones; se abordan tanto en las universidades como en la industria, con un incremento en la atención a los problemas desde un punto de vista estocástico. En la década pasada, con el desarrollo alcanzado por la computación, se han podido aplicar los diferentes modelos de planificación con eficacia dando grandes dividendos en las industrias y en los servicios. Actualmente es una rama de la planificación (planning), que está siendo desarrollada por especialistas en ciencias de la computación, matemática aplicada e ingenieros industriales. Los problemas de secuenciación de tareas son importantes en diversas ramas del mundo real. Se pueden aplicar en las fábricas para llevar a cabo la producción, en los hospitales para atender a los pacientes, en los aeropuertos para despachar los vuelos, en las escuelas para distribuir las actividades de los alumnos y profesores, en un taller para decidir qué equipo es reparado primero o bien la secuencia de la reparación, en ejercicios militares para distribuir misiones y soldados. La alta aplicabilidad que tiene este tipo de problemas ha motivado un gran interés por estos. En todos los casos es necesario ejecutar un número de tareas con la utilización de un número de recursos dados. En la literatura se abordan estos problemas desde dos perspectivas distintas:. 8.
(18) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. •. las tareas juegan el rol fundamental, se comportan como entidades inteligentes que conocen el tiempo necesario para su ejecución y la forma en la que se ejecutan, dejando a los recursos sólo como el medio que les facilita su terminación. Ejemplo: Uno de los problemas que más ha sido estudiado es el Job Shop Scheduling. En éste, los trabajos conocen el orden de las máquinas que van a visitar y el tiempo que se van a demorar en cada una, mientras que las máquinas son entidades pasivas (Mailing, 2003).. •. los recursos son los que deciden cómo y cuándo van a ser utilizados y las tareas se limitan a ejecutarse según las decisiones de los recursos. Un ejemplo de esta forma de problemas es el que se desarrolla en el epígrafe posterior.. 1.4 Descripción del problema de secuenciación en múltiples máquinas (Multi Machine Scheduling - MMS) El problema MMS puede ser caracterizado como la actividad de asignar un número de trabajos a un número de máquinas, donde la efectividad en tiempo es maximizada (Brauer and Weib, 2006). Esta actividad compleja es considerada un problema difícil de resolver, incluso para muchos escenarios donde el número de trabajos o de máquinas es conocido y fijado con anterioridad; asumiendo además que este escenario es una idealización del mundo real donde no existen problemas como roturas de máquinas, cancelación de trabajos, el arribo tardío de los materiales o las condiciones impuestas por el mercado. Gráficamente, el problema MMS se describe como muestra la Figura 1. En este caso, se desea producir una cierta cantidad de productos. Para ello se dispone de un conjunto de máquinas organizadas en varios niveles de producción. Un paso de producción consiste en utilizar una de las máquinas pertenecientes a un nivel de producción, durante un período de tiempo.. Figura 1: Representación gráfica de un problema MMS 9.
(19) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. Un producto se considera terminado cuando ha pasado por una máquina de cada uno de los niveles de producción. Se denomina camino de producción a la secuencia de pasos de producción necesarios para terminar el producto. Dados, un conjunto de máquinas y un conjunto de piezas de material que se necesitan procesar para obtener los productos deseados, una planificación es una asignación que fija los caminos de producción a seguir para cada producto. El problema consiste en encontrar cierta planificación que minimice el tiempo producción. Se listan a continuación las restricciones del MMS: •. Las máquinas que pertenecen al primer paso de producción procesan continuamente las piezas de material.. •. El proceso de producción es unidireccional.. •. Los pasos de producción están organizados de forma ascendente, esto es, ningún producto puede realizar el paso de producción i sin antes haber realizado el i-1.. •. Un producto se considera terminado sólo cuando ha pasado por todos los niveles de producción.. •. Las máquinas que ejecutan el paso de producción i (i+1) se llaman antecesoras (sucesoras) de las máquinas que ejecutan el paso de producción i+1(i).. •. Cada máquina puede procesar solamente una pieza de material a la vez.. •. Se asume que cada máquina es capaz de ejecutar uno de los niveles de producción y que en cada nivel de producción hay al menos una máquina.. •. En cada nivel de producción existe una misma cantidad de máquinas.. •. Asociada a cada máquina responsable del nivel de producción 2 ó superior se encuentra una cola de espera, en la que es puesto el material que llega si la máquina está ocupada.. •. En cuanto la máquina completa su paso de producción y pasa el material procesado a una máquina sucesora, chequea su cola de espera.. •. El material que es puesto en la cola es procesado de la forma “el primero que llega es el primero en ser procesado” (FIFO).. •. La ejecución de un paso de producción se trata como una unidad atómica que no puede ser interrumpida, es decir, una vez que una máquina ha comenzado a procesar una pieza de material, no puede ser interrumpida.. •. Cada máquina tiene asociado el tiempo que demora en terminar un paso de producción y el tiempo que demora en enviar el material procesado a cada una de sus máquinas sucesoras. Estos tiempos son independientes de los materiales a procesar, una misma máquina procesa con igual tiempo todas las piezas de material que lleguen a ella.. 10.
(20) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. •. Para cada máquina se calcula el tiempo de espera en la cola de forma aproximada, como el número de piezas de material que están esperando multiplicado por el tiempo de procesamiento de dicha máquina.. •. Cada máquina conoce en todo momento: o. El tiempo que demora en enviar la pieza a sus sucesoras.. o. El tiempo de procesamiento de sus sucesoras.. o. El tiempo de espera en la cola de sus sucesoras.. Con estas características las máquinas tienen una visión limitada de su ambiente y del estado del proceso de manufactura.. 1.4.1 Definición matemática La descripción del problema de planificación en múltiples máquinas presentada en el epígrafe anterior, puede formalizarse matemáticamente como sigue: Se tiene una cantidad m de máquinas y n de productos a confeccionar. Se define que existen r pasos de producción y se denota como M al conjunto de máquinas que intervienen en la producción. {. }. teniendo en cuenta que M i = M i ,1 , M i , 2 ,..., M i ,mi ⊆ M es el subconjunto de máquinas capaces de ejecutar el paso de producción i que cumple con las restricciones:. •. M i I M j = Φ∀i ≠ j. •. M = M 1 U M 2 U ... U M r. Las máquinas contenidas en M i ( M i +1 ) son llamadas predecesoras (sucesoras) de las máquinas contenidas en M i +1 ( M i ). Cada elemento en M 1 × M 2 × ... × M r constituye una forma de hacer productos y es llamado camino de producción. Para cada producto el proceso de confección consiste en r pasos de producción, donde cada paso individual es organizado de forma que el paso i. tiene que ser ejecutado antes del paso. i + 1, ∀i ∈ {1,..., r − 1} . Un producto se completa sólo cuando ha pasado por los r pasos de producción correspondientes a cada uno de los r niveles de producción. En el proceso de producción descrito existen dos tiempos elementales que deben ser tomados en consideración: el tiempo pi , j que requiere la máquina M i , j para completar su paso de producción, y el tiempo. d i ,j +j 1,l que demora una máquina M i , j en pasar el material procesado a su máquina. sucesora M i +1, j . Estos tiempos son fijos durante todo el proceso de producción.. 11.
(21) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. Existen diferencias entre los tiempos de procesamiento de las máquinas que pertenecen a un mismo paso de producción ( pi , j ≠ pi ,k ∀j ≠ k ). También hay diferencias en el tiempo que demoran las máquinas de un paso de producción en enviar las piezas de material procesado a una misma máquina sucesora ( d i ,j +j 1,l ≠ d i ,jk+1,l ∀j ≠ k ). El tiempo que una pieza de material tiene que esperar en cola hasta que su procesamiento comience es aproximadamente wi , j = ti , j * xi , j , donde xi , j es el número de piezas que hay en la cola de la máquina M i , j . Asociado al camino de producción de cada producto existe un tiempo t i que es el tiempo que demora la terminación de este producto. Para una cantidad n de productos, puede obtenerse el tiempo de producción total T , como la sumatoria de los t i de cada producto, lo que constituye el objetivo a minimizar:. ⎧n ⎫ min{T } = ⎨∑ ti ⎬ ⎩ i =1 ⎭ Entonces, dado el número de productos a confeccionar, ¿qué camino de producción debe seguir cada producto tal que el tiempo de producción sea mínimo?. 1.4.2 Ejemplo Se tiene un escenario donde se presentan cinco niveles de producción ( r = 5 ) con un total de 20 máquinas, 4 en cada nivel. La Tabla 1 representa los tiempos que intervienen en el proceso de producción. Como la tabla indica, hay diferencias entre los tiempos de procesamiento de las máquinas que pertenecen a un mismo nivel de producción ( pi , j ≠ pi ,k ∀j ≠ k ). Por ejemplo, las máquinas M 1,1 , M 1, 2 , M 1,3 , M 1, 4 requieren 10, 24, 32 y 39 unidades de tiempo respectivamente, para completar el primer nivel de producción. También hay diferencias en el tiempo que demoran las máquinas de un nivel de producción en enviar las piezas de material procesado a una misma máquina sucesora ( d i ,j +j 1,l ≠ d i ,jk+1,l ∀j ≠ k ). En este caso, el envío desde las máquinas M 1,1 , M 1, 2 , M 1,3 y. M 1, 4 a la máquina M 2,1 toma 16, 9, 18 y 29 unidades de tiempo respectivamente.. 12.
(22) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. Tabla 1: Datos de los tiempos de un ejemplo del problema MMS. i. 1. 2. 3. 4. 5. j 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4. d i ,j +j 1,l. pi , j 10 24 32 39 20 40 37 29 19 32 22 7 1 30 15 14 33 15 23 6. l =1. l=2. l =3. l=4. 16 9 18 29 37 17 40 6 24 6 31 7 25 22 24 27 -. 8 12 29 12 35 21 27 15 17 35 15 17 20 38 28 22 -. 33 8 21 3 25 5 12 10 6 17 24 28 17 6 2 30 -. 33 24 14 32 30 14 28 18 10 9 40 32 24 34 36 5 -. De esta forma, el proceso de producción puede representarse como aparece en la Figura 2 siguiente:. Figura 2: Representación gráfica del ejemplo del problema MMS. 13.
(23) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. 1.5 Métodos para solucionar problemas de Optimización Combinatoria Existen dos formas fundamentales de encontrar soluciones para los problemas de Optimización Combinatoria: los métodos exactos y los métodos aproximados o heurísticos 3. Los métodos exactos son capaces de encontrar la solución óptima a los problemas. Entre estos se encuentran los algoritmos de vuelta atrás (backtracking) (Aranda, 2000), ramificación y poda (branch and bound) y programación dinámica (Goic, 1998). La principal desventaja de los métodos exactos es que al explorar todos los caminos posibles, el costo computacional en tiempo y espacio es elevado. Los algoritmos aproximados son la única forma factible de obtener soluciones cercanas a las óptimas con un costo computacional relativamente bajo (Marco Dorigo and Stutzle, 2000). Existen métodos heurísticos de naturaleza muy diferente, por lo que es complicado dar una clasificación completa. Además, muchos de ellos han sido diseñados para un problema específico sin posibilidad de generalización o aplicación a otros problemas similares. La siguiente clasificación trata de dar una categoría amplia, no excluyente, donde ubicar a los heurísticos más conocidos (Martí, 2000): •. Métodos de Descomposición: El problema original se descompone en subproblemas más sencillos de resolver, teniendo en cuenta (aunque sea de manera general), que todos pertenecen al mismo problema.. •. Métodos Inductivos: La idea de estos métodos es generalizar de versiones pequeñas o más sencillas al caso completo. Propiedades o técnicas identificadas en estos casos más fáciles de analizar pueden ser aplicadas al problema completo.. •. Métodos de Reducción: Procuran identificar propiedades que se cumplen mayoritariamente por las buenas soluciones e introducirlas como restricciones del problema. El objeto es restringir el espacio de soluciones, simplificando el problema. El riesgo obvio es dejar fuera las soluciones óptimas del problema original.. •. Métodos Constructivos: Construyen literalmente paso a paso una solución del problema. Usualmente son métodos deterministas y suelen estar basados en la mejor elección en cada iteración. En el caso más simple, los componentes de la solución son adicionados de forma aleatoria; pero mejores resultados se obtienen si se tiene en cuenta un estimado heurístico del beneficio de adicionar componentes a la solución. La desventaja de tomar las mejores decisiones en cada paso sin la posibilidad de volver atrás, es que sólo puede ser generado un número limitado de soluciones. Las decisiones voraces en los pasos iniciales restringen fuertemente las posibilidades disponibles en los pasos posteriores, determinando pobres. 3. Otra forma puede ser con los métodos aproximados que obtenemos cuando detenemos métodos exactos como. ramificación y poda antes de que terminen.. 14.
(24) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. movimientos en las fases finales del proceso de construcción. Estos métodos han sido muy utilizados en problemas clásicos como el del viajante de comercio. •. Métodos de Búsqueda Local: A diferencia de los métodos anteriores, los procedimientos de búsqueda o mejora local comienzan con una solución del problema y la mejoran progresivamente, buscándola en un vecindario de la solución actual. El procedimiento realiza en cada paso un movimiento de una solución a otra con mejor valor. El método finaliza cuando, para una solución, no existe ninguna solución accesible que la mejore. La selección de un vecindario apropiado es crucial para el rendimiento de la búsqueda local.. Los métodos constructivos y los de búsqueda local constituyen la base de los procedimientos metaheurísticos. Las metaheurísticas son estrategias inteligentes para diseñar o mejorar procedimientos heurísticos muy generales con un alto rendimiento (Julio Brito Santana et al., 2004). Los modelos metaheurísticos son una herramienta muy estudiada en la actualidad para resolver instancias de problemas que se creen difíciles en general, explorando el espacio de soluciones (usualmente grande) para estas instancias. Estos modelos logran esto reduciendo el tamaño efectivo del espacio y explorando el espacio de búsqueda eficientemente. Los tipos de metaheurísticas se establecen en función del tipo de procedimientos heurísticos a los que hace referencia. Una clasificación de estas estrategias es la siguiente (Julio Brito Santana et al., 2004): •. Las metaheurísticas de relajación: se refieren a procedimientos de resolución de problemas que utilizan relajaciones del modelo original (es decir, modificaciones del modelo que lo hacen más fácil de resolver), cuya solución facilita la solución del problema original. Ejemplo: Métodos de relajación lagrangiana.. •. Las metaheurísticas constructivas: se orientan a los procedimientos que tratan de la obtención de una solución a partir del análisis y selección paulatina de las componentes que la forman. Ejemplo: Estrategia voraz o greedy.. •. Las metaheurísticas de búsqueda: guían los procedimientos que usan transformaciones o movimientos para recorrer el espacio de soluciones alternativas y explorar las estructuras de entorno asociadas. Ejemplo: Algoritmos escaladores (hill-climbing).. •. Las metaheurísticas evolutivas: enfocadas a los procedimientos basados en conjuntos de soluciones que evolucionan sobre el espacio de soluciones. Ejemplo: Algoritmos genéticos.. La Vida Artificial (Jiménez, 1999) (Paolo, 2000) o algoritmos bioinspirados constituye una disciplina que estudia la vida natural, recreando los fenómenos biológicos en computadoras y otros medios 15.
(25) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. artificiales. Complementa el estudio teórico de la biología, pero en lugar de tomar organismos aislados y analizar su comportamiento, lo que intenta es colocar juntos, organismos que actúan como los seres vivos. Esta técnica se puede encontrar en aplicaciones prácticas como el diseño de computadoras, robots móviles, medicina, nanotecnología, entre otras. Una de las más recientes técnicas de Inteligencia Artificial en el área de Vida Artificial es la llamada Optimización Basada en Colonias de Hormigas (Ant Colony Optimization, ACO) (Dorigo M. and LM. Gambardella, 1997), metaheurística inspirada en el comportamiento (a nivel de especie) de colonias de hormigas que optimizan el camino para llegar desde el nido hasta su fuente de alimento, utilizando para éste fin, comunicación indirecta por medio de una sustancia química denominada feromona y su capacidad para adaptarse a cambios de ambiente. La interpretación de ACO como una extensión de heurística constructiva es apelable por diferentes razones. La componente estocástica de ACO obliga a las hormigas a construir una amplia variedad de soluciones diferentes por lo que explora más soluciones que las heurísticas greedy. Al mismo tiempo, el uso de la información heurística disponible en muchos problemas, puede guiar a las hormigas a través de las soluciones más prometedoras. La experiencia de la búsqueda de las hormigas puede ser usada como un aprendizaje con refuerzo para la construcción de la solución en futuras iteraciones del algoritmo. Adicionalmente, el uso de la colonia de hormigas o agentes puede permitir el aumento de la robustez del algoritmo y en muchas aplicaciones ACO, la interacción colectiva de una población de agentes es necesaria para resolver eficientemente el problema. Esta metaheurística desde su surgimiento ha constituido una buena herramienta para solucionar problemas de Optimización Combinatoria, ofreciendo las técnicas algorítmicas más exitosas y ampliamente reconocidas basadas en el comportamiento de las hormigas, siendo la cooperación un componente clave en sus algoritmos.. 1.6 Optimización basada en colonias de hormigas La fuente inspiradora de ACO es el rastro de feromona y el comportamiento de las hormigas reales que la usan como medio de comunicación. En analogía al ejemplo biológico, ACO está basada en la comunicación indirecta de una colonia de agentes simples llamados hormigas artificiales, mediante rastros artificiales de feromona. Los rastros de feromona en ACO sirven como una información numérica distribuida que usan las hormigas para construir probabilísticamente las soluciones al problema que se está resolviendo y que las mismas adaptan durante la ejecución del algoritmo para reflejar su experiencia en la búsqueda. Las aplicaciones de ACO pertenecen a dos clases importantes de problemas (Marco Dorigo and Stutzle, 2000): 16.
(26) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. •. Optimización Combinatoria Estática, en la que no cambia el costo ni la topología. Por ejemplo: el problema del TSP.. •. Optimización Combinatoria Dinámica donde la topología y el costo pueden cambiar. Por ejemplo: el problema de enrutamiento en redes de computadoras.. Una hormiga artificial en ACO, es un procedimiento constructivo estocástico que construye incrementalmente una solución. Agregando oportunamente componentes a la solución parcial en construcción se tiene en cuenta: •. Información heurística de la instancia del problema a resolver, si está disponible.. •. Rastros de feromona artificial que cambian dinámicamente como reflejo de la experiencia de la búsqueda adquirida por el agente.. 1.6.1 Representación del Problema Se considera la siguiente, como la representación del problema de Optimización Combinatoria a solucionar por un algoritmo ACO. Se tiene el problema de minimización (S , f , Ω ) donde S es el conjunto de soluciones posibles, f es la función objetivo que asigna a cada solución s ∈ S un valor de la función objetivo de costo f (s, t ) y. Ω es el conjunto de restricciones. El objetivo es encontrar una solución óptima global s opt ∈ S que es la función de costo mínimo que satisface las restricciones de Ω donde: •. C = {c1 , c 2 ,..., c nc } es el conjunto finito de componentes y L el conjunto de conexiones entre los componentes de C .. •. (. ). Los estados del problema son definidos en términos de secuencias X = ci , c j ,..., c h ,... sobre los componentes de C . El conjunto de todas las posibles secuencias es denotado por X . La longitud de una secuencia x , es decir, el número de componentes de x es denotada por x .. •. El conjunto finito de restricciones Ω se define como el conjunto de estados factibles X ' ⊆ X .. •. Un conjunto S * de soluciones factibles está dado con S * ⊆ X ' y S * ⊆ S .. •. Un costo f (s, t ) está asociado a cada solución posible s ∈ S .. •. En algunos casos, un estimado del costo J ( xi , t ) puede estar asociado a estados ( s i ≤ xi se puede obtener adicionando un componente de solución al estado. xi i, entonces. J ( xi , t ) ≤ J (x j , t ) , note que J (s, t ) ≡ f (s, t ) ). Dada esta representación, las hormigas artificiales construyen soluciones mediante el movimiento en el grafo de construcción G = (C , L ) donde los vértices son los componentes C y L las conexiones.. 17.
(27) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. Las restricciones del problema Ω son implementadas por la política constructiva seguida por las hormigas.. 1.6.2 Comportamiento de las hormigas Las hormigas pueden ser caracterizadas como procedimientos constructivos estocásticos que construyen las soluciones moviéndose en un grafo G = (C , L ) . Las hormigas no se mueven arbitrariamente en la red, sino siguiendo una política de construcción en función de las restricciones del problema Ω . En general, las hormigas tratan de construir soluciones factibles pero si es. (. ). necesario generan soluciones no factibles. Componentes y conexiones ci ∈ C , lij ∈ C pueden tener asociados un rastro de feromona τ ( τ i a los componentes, τ ij a las conexiones) codificado en la memoria de la hormiga sobre todo el proceso de búsqueda y actualizado por ella misma, y un valor heurístico η (η i ,η ij ) representando a priori la información sobre la definición de la instancia del problema o alguna información proveída por otra fuente diferente de hormigas. En muchos casos η es el costo, o el estimado del costo, del trayecto al estado actual. Estos valores son usados por las reglas heurísticas de las hormigas para tomar decisiones probabilísticas de cómo moverse en el grafo. Cada hormiga tiene las siguientes propiedades: •. Explora el grafo G para buscar soluciones factibles s de mínimo costo (soluciones tal que f s = min s f (s, t ) ).. •. Tiene una memoria M k que se utiliza para almacenar alguna información sobre el camino seguido. La memoria puede ser usada para:. •. o. Construir las soluciones factibles.. o. Evaluar la solución encontrada.. o. Volver sobre el camino hacia atrás para depositar feromonas.. Puede asignársele un estado inicial s sk y una o más condiciones de terminación e k . Usualmente el estado inicial es una secuencia de un componente o una secuencia vacía.. 1.6.3 Modo de funcionamiento y estructura genérica de la Metaheurística ACO El modo de operación básico de un algoritmo de ACO es como sigue: las m hormigas (artificiales) de la colonia se mueven, concurrentemente y de manera asíncrona, a través de los estados adyacentes del problema. Este movimiento se realiza siguiendo una regla de transición que está basada en la. 18.
(28) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. información local disponible, es decir, cada arista del grafo, que representa los posibles pasos que la hormiga puede dar, tiene asociados dos tipos de información que guían el movimiento de la hormiga: •. Información heurística: que mide la preferencia heurística de moverse desde el nodo r hasta el nodo s , o sea, de recorrer la arista ars . Se denota por η rs . Las hormigas no modifican esta información durante la ejecución del algoritmo.. •. Información de los rastros de feromona artificiales: que mide la “deseabilidad aprendida” del movimiento de r hasta s . Imita a la feromona real que depositan las hormigas naturales. Esta información se modifica durante la ejecución del algoritmo dependiendo de las soluciones encontradas por las hormigas. Se denota por τ rs .. Al moverse por el grafo representativo del problema, las hormigas construyen soluciones incrementalmente. Opcionalmente, las hormigas pueden depositar feromona cada vez que crucen un arco en el proceso de construcción de la solución (actualización en línea paso a paso de los rastros de feromona). Una vez que cada hormiga ha generado una solución, ésta se evalúa y puede depositar una cantidad de feromona que está en función de la calidad de su solución (actualización en línea de los rastros de feromona). Esta información guiará la búsqueda de las otras hormigas de la colonia en el futuro. Es bueno aclarar que la estructura que almacena la feromona está en dependencia del tipo del problema a resolver. Para problemas de secuenciación o asignación, la feromona es asociada a los arcos del grafo representativo, por lo que se habla de una matriz de feromona como se presenta en la mayoría de los problemas. Para problemas donde el orden de los elementos de la solución no es importante se asocia la feromona a los nodos del grafo, por lo que se utiliza como estructura de almacenamiento un vector de feromona. En lo adelante, para explicar el funcionamiento de la metaheurística ACO y el comportamiento de sus algoritmos se utilizará el término “matriz de feromona”, sin que se refiera a un tipo de problema en específico. Los valores iniciales de feromona pueden ser de la siguiente forma: •. Inicialización aleatoria: donde cada elemento de la matriz es un elemento escogido aleatoriamente con distribución uniforme en el intervalo (0,1).. •. Con un valor constante: cada elemento de la matriz es inicializado con el mismo valor, éste valor debe de estar en el intervalo (0,1).. •. Inicialización dependiendo de una solución ( S ) calculada por algún otro algoritmo con menor costo computacional; donde cada elemento de la matriz es inicializado con el valor 1 S .. Además, el modo de operación genérico de un algoritmo de ACO incluye dos procedimientos adicionales: la evaporación de los rastros de feromona y las acciones del demonio. La evaporación de feromona la lleva a cabo el entorno y se usa como un mecanismo que evita el estancamiento en la 19.
(29) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. búsqueda y permite que las hormigas busquen y exploren nuevas regiones del espacio. Las acciones del demonio son acciones opcionales (que no tienen un contrapunto natural) para implementar tareas desde una perspectiva global que no pueden llevar a cabo las hormigas por la perspectiva local que ofrecen. Entre las capacidades adicionales que desarrollan las acciones del demonio se encuentran: observar la calidad de todas las soluciones generadas y depositar una nueva cantidad de feromona adicional sólo en las transiciones/componentes asociadas a algunas soluciones, o aplicar un procedimiento de búsqueda local a las soluciones generadas por las hormigas antes de actualizar los rastros de feromona. En ambos casos, el demonio reemplaza la actualización en línea a posteriori de feromona y el proceso pasa a llamarse actualización fuera de línea de rastros de feromona. La estructura de un algoritmo de ACO genérico es como sigue (M. Dorigo and Stützle, 1999): Procedimiento Metaheurística ACO; Actividades Programadas Construir Soluciones de las Hormigas Actualizar Feromona Evaporación de la feromona Acciones del Demonio (opcional) Fin de las Actividades Fijas Fin del procedimiento Este procedimiento se anida en el siguiente procedimiento iterativo: P1: Inicializar los valores de feromona Nciclo = 1 P2: Repetir Procedimiento Metaheurística ACO Nciclo = Nciclo + 1 Hasta que: criterio de parada Los criterios de parada de este proceso iterativo pueden ser, entre otros: •. Se alcanza un número máximo de ciclos.. •. Se alcanza una solución con la calidad deseada.. •. Convergencia a la misma solución (estancamiento).. •. Se alcanza un tiempo límite de procesamiento. 20.
(30) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. 1.6.4 Algoritmos de la Metaheurística ACO En la literatura se han propuesto diversos algoritmos que siguen la metaheurística ACO. Entre los algoritmos ACO disponibles para problemas de Optimización Combinatoria difíciles, se encuentra el Ant System (AS), que es una técnica innovadora basada en agentes simples llamados hormigas(Dorigo, 1992). Tres variantes de este algoritmo: Ant-density, Ant-quantity y Ant-cycle surgen posteriormente (M. Dorigo, 1996). Estas se diferencian en el momento y la manera de actualizar una matriz que representa la feromona de los sistemas biológicos. La última variante, Ant-cycle, ha presentado mejores resultados y por tanto las siguientes investigaciones se han centrado en ella. Dorigo y Gambardella trabajaron en varias versiones extendidas del algoritmo AS (M. Dorigo and L. M. Gambardella, 1997). Ant-Q es un híbrido entre AS y Q-learning, un conocido algoritmo de aprendizaje con realimentación positiva (Marco Dorigo and Gambardella, 1998). En Ant Colony System (ACS) (M. Dorigo and Stützle, 1999) se presentaron mejoras del AS en tres aspectos principales: el procedimiento que realizan las hormigas para la elección del siguiente movimiento (ofrece un balance entre la exploración de nuevos caminos y la explotación del conocimiento acumulado acerca del problema), la actualización global (modifica la matriz de feromonas sólo con el mejor camino encontrado hasta el momento) y la regla de actualización local (permite a todas las hormigas actualizar la matriz de feromonas al terminar su viaje). Otra variante de AS, conocida como Max-Min Ant System (MMAS), permite actualizar la matriz de feromonas sólo a la hormiga con el mejor camino (T. Stützle and H. Hoos, 2000). Esto acelera la convergencia, pero puede llevar a estancamientos en. soluciones sub-óptimas. A fin de evitar. convergencias prematuras, se ha propuesto situar un límite máximo y otro mínimo dentro de los cuales puede variar la cantidad de feromona. La aplicación de una búsqueda local mejora notoriamente los resultados experimentales. Un gran número de investigadores, interesados por la originalidad y el rendimiento del modelo ACO, han aplicado la metaheurística con excelentes resultados a problemas tan diversos como: •. El paradigma del Viajante de Comercio (Travelling Salesman Problem) (M. Dorigo, 1996).. •. El problema del ordenamiento secuencial (Sequential Ordering Problem) (Gambardella and Dorigo, 2000).. •. El problema de enrutamiento de vehículos (Vehicle Routing Problem) (Gambardella et al., 1999a);. •. El problema de asignación cuadrática (Quadratic Assignment Problem) (Gambardella et al., 1999b);. •. Redes de telecomunicaciones (Telecommunications Networks) (Caro, 2004).. AntNet (Gianni Di Caro and Dorigo, 1998) es un algoritmo de la metaheuristca ACO diseñado para resolver el problema de enrutamiento en las redes de telecomunicación. Dado un grafo que 21.
(31) Capítulo I: Problemas de Optimización Combinatoria. Metaheurística ACO.. representa la red de telecomunicación, el problema que resuelve AntNet es determinar al camino de costo mínimo entre cada par de nodos. Este problema puede ser resuelto eficientemente por algoritmos sencillos y conocidos como Dijsktra, pero se complica cuando los costos de los caminos son variables estocásticas dependientes del tiempo, éste es el caso del enrutamiento en las redes de telecomunicación. Dado que las condiciones del problema MMS se asemejan a las del enrutamiento en las redes de telecomunicación, pues las colas de los trabajos, y por tanto, los costos en tiempo entre uno y otro nodo se modifican constantemente, AntNet ha sido en este trabajo el algoritmo elegido para resolver este problema.. 1.7 Consideraciones finales •. Los problemas de Optimización Combinatoria son diversos y ocupan múltiples esferas de la vida real. Su forma de solución exhaustiva es muy costosa, por lo que encontrar una vía óptima de solución es un problema latente para los que investigan en esta temática.. •. La aplicación de las metaheurísticas basadas en colonias de hormigas ha reportado buenos resultados en la solución de problemas de Optimización Combinatoria.. •. El problema MMS, como tipo de problema de Optimización Combinatoria no queda exento de los comentarios anteriores, por lo que el planteamiento de una posible forma de solucionar este problema utilizando el algoritmo AntNet, perteneciente a la metaheuristica ACO, constituye el punto de partida en el capítulo que sigue.. 22.
Figure
Documento similar
Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y
[r]
Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de
Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa
The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,
o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la
GARCÍA AGUILAR, Mónica - PhD in Italian Philology from the University of Granada, currently Professor of Italian Philology in the Department of Romance, Italian,
Estudio de la censura de libros italianos en la España de los siglos XVI y XVII y su incidencia en Andalucía”, es Catedrática de Filología Italiana de