• No se han encontrado resultados

Optimización basada en colonias de hormigas en dos etapas

N/A
N/A
Protected

Academic year: 2020

Share "Optimización basada en colonias de hormigas en dos etapas"

Copied!
71
0
0

Texto completo

(1)Universidad Central “Marta Abreu” de Las Villas Facultad de Matemática, Física y Computación. Trabajo para optar por el título de Máster en Ciencia de la Computación. Optimización Basada en Colonias de Hormigas en Dos Etapas Autor Lic. Amilkar Yudier Puris Cáceres Tutor Dr. Rafael Esteban Bello Pérez. Consultante Ricardo Grau Avalos. 2007.

(2) Agradecimiento. A mi madre que es lo más lindo que hay en la vida, a mi padre que me ha servido de guia. A mis abuelos, mis hermanos, mis padres de crianza, mi tutor Bello que siempre lo estuve y lo estaré molestando,a mi novia y sus padres,a mis compañeros de trabajo Lety, Yailen, Yanet, Marilyn, Falcon, Yudel, Donis y Morell por todo el trabajo que les hice pasar, y no por estar de último les agradezco menos, a mis hermanos de la calle, Raydel, Karel, Lucho y Gabriel..

(3) Agradecimiento.

(4) Resumen. Resumen La metaheurística “Optimización basada en colonias de hormigas” (Ant Colony Optimization, ACO) es uno de los nuevos paradigmas que permite la solución de problemas combinatorios del tipo NP-Hard. En este trabajo se presenta un nuevo modelo basado en el comportamiento de las hormigas nombrado “Optimización basada en colonias de hormigas en dos Etapas”( Two Steage Ant Colony Optimization, TS-ACO). La nueva estrategia de exploración que presenta este modelo propone hacer una división en dos del espacio de búsqueda, donde en la primera etapa solo una parte de las hormigas van a solucionar un subproblema de tamaño inferior al problema original, estas subsoluciones encontradas servirán de punto de partida para que en la segunda etapa las hormigas restantes de la colonia busquen soluciones al problema en general, haciéndose de esta forma más cooperativo el trabajo de estos agentes. El nuevo modelo muestra un mayor rendimiento en cuanto al tiempo de ejecución y la calidad de las soluciones encontradas. Para probar la nueva estrategia se escogieron los algoritmos Ant Colony System (ACS) y Ant System (AS) para darle solución a tres problemas de optimización combinatoria, el Viajante de Comercio (TSP), el problema de Secuenciación de Tareas (JSSP) y el problema de Cubrimiento de Conjuntos (SCP)..

(5) Resumen.

(6) Abstract. Abstract. The Ant Colony Optimization (ACO) meta-heuristic is one of the new paradigms that allow solving NP-Hard combinatorial problems. In this study, a new ant-behavior-based model named “Two Stage Ant Colony Optimization” (TS-ACO) is formally introduced. The fresh exploration strategy splits the search space into two parts. During the first stage, only a subset of the available ants is intended to solve a sub-problem of the original problem. The solutions found herein will serve as the starting point for the remaining ants of the colony to perform at the second stage, leading to a tighter cooperation between those agents. The proposed model exhibits a higher performance in terms of the execution time and the quality of the solutions yielded. In order to test our approach, the Ant Colony System (ACS) and Ant System (AS) algorithms were chosen as benchmarks for being applied to three well-known combinatorial optimization problems, namely the Traveling Salesman Problem (TSP), the Job Shop Scheduling Problem (JSSP) and the Set Covering Problem (SCP).. 6.

(7) Introducción. Introducción En el lenguaje coloquial, optimizar significa poco más que mejorar; 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. En un problema de optimización existen diferentes soluciones y un criterio para discriminar entre ellas. De forma más precisa, estos problemas se pueden expresar como encontrar el valor de unas variables de decisión para los que una determinada función objetivo alcanza su valor máximo o mínimo. El valor de las variables en ocasiones está sujeto a unas restricciones. Podemos encontrar una gran cantidad de problemas de optimización, tanto en la industria como en la ciencia. Desde los clásicos problemas de diseño de redes de telecomunicación u organización de la producción hasta los más actuales en ingeniería y re-ingeniería de software, existe una infinidad de problemas teóricos y prácticos que involucran a la optimización. Algunas clases de problemas de optimización son relativamente fáciles de resolver. Este es el caso, por ejemplo, de los problemas lineales, en los que tanto la función objetivo como las restricciones son expresiones lineales. Estos problemas pueden ser resueltos con el conocido método Simplex introducido en su forma original por Spendley; Hext y Himsworth en 1962; sin embargo, muchos tipos de problemas de optimización son muy difíciles de resolver. De hecho, la mayor parte de los que podemos encontrar en la práctica entran dentro de esta categoría. La idea intuitiva de problema ”difícil de resolver” queda reflejada en el término científico NP-hard [1] utilizado en el contexto de la complejidad algorítmica. Podemos decir que un problema de optimización difícil es aquel para el que no podemos garantizar el encontrar la mejor solución posible en un tiempo razonable. La existencia de una gran cantidad y variedad de problemas difíciles, que aparecen en la práctica y que necesitan ser resueltos de forma eficiente, impulsó el desarrollo de procedimientos eficientes 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. En [2] se recogen hasta 3 definiciones diferentes de algoritmo heurístico, entre las que destacamos 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 7.

(8) Introducción. heurístico (pudiendo llegar a ser tan grande en muchos casos, que sea inaplicable). Una clasificación usual de los problemas de optimización es en: Estocástica y Determinista. La diferencia radica en los valores que toman las variables en el proceso de optimización, en la estocástica son valores probabilísticos y en la determinista los valores pueden ser discretos o continuos, de ahí que la optimización determinista se clasifique en dos, Optimización Combinatoria o Discreta y Optimización Continua. En este trabajo consideraremos los llamados problemas de Optimización Combinatoria. En estos problemas el objetivo es encontrar el máximo (o el mínimo) de una determinada función sobre un conjunto finito de soluciones que denotaremos por 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. En los últimos años ha habido un crecimiento espectacular en el desarrollo de procedimientos heurísticos para resolver problemas de optimización. 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. Aunque hemos mencionado el caso de la resolución de un problema difícil, existen otras razones para utilizar métodos heurísticos, entre las que podemos 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. Existen dos posibilidades: - El método heurístico proporciona una buena solución inicial de partida. - El método heurístico participa en un paso intermedio del procedimiento, como por ejemplo las reglas de selección de la variable a entrar en la base en el método Simplex. Al abordar el estudio de los algoritmos heurísticos podemos comprobar que dependen en gran medida del problema concreto para el que se han diseñado. En otros métodos de resolución de propósito general, como pueden ser los algoritmos exactos de Ramificación y Acotación, existe un procedimiento conciso y preestablecido, independiente en gran medida del problema abordado. En los métodos heurísticos esto no es así. Las técnicas e ideas aplicadas a la resolución de un problema son específicas de éste y aunque, en general, pueden ser trasladadas a otros problemas, han de 8.

(9) Introducción. particularizarse en cada caso. Así pues, es necesario referirse a un problema concreto para estudiar con detalle los procedimientos heurísticos. En los últimos años han aparecido una serie de métodos bajo el nombre de meta-heurísticos con el propósito de obtener mejores resultados que los alcanzados por los heurísticos tradicionales. El término meta-heurístico fue introducido en [3] por Fred Glover. En este trabajo utilizaremos la acepción de heurísticos para referirnos a los métodos clásicos en contraposición a la de metaheurísticos que reservamos para los más recientes y complejos. En algunos textos podemos encontrar la expresión “heurísticos modernos” refiriéndose a los meta-heurísticos [4]. Los profesores Osman y Kelly en [5] introducen la siguiente definición: Los procedimientos meta-heurí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 meta-heurí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 meta-heurísticos se sitúan conceptualmente “por encima” de los heurísticos en el sentido que guían el diseño de éstos. Así, al enfrentarnos a un problema de optimización, podemos escoger 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 métodos los cuales han probado su eficiencia sobre una colección significativa de problemas; entre los que podemos destacar, la Búsqueda Tabú [6], el Recocido Simulado [7], GRASP [8], los Algoritmos Genéticos [9], Optimización Basada en Enjambre de Partículas [10] (Particle Swarm Optimization, PSO) y Optimización Basada en Colonias de Hormigas (Ant Colony Optimization, ACO) [11, 12], entre otros. Estas últimas dos meta-heurísticas caen en la categoría de algoritmos bioinspirados o de vida artificial y de 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. Específicamente en la meta-heurística ACO, la cooperación se realiza entre hormigas de una forma indirecta. Es creciente el interés científico en este nuevo modelo computacional ACO por su alta aplicabilidad para resolver diferentes problemas de optimización discreta. Este modelo se basa en usar el comportamiento de las colonias de hormigas naturales, las cuales minimizan el recorrido entre su nido y cualquier fuente de alimento. Esta meta-heurística desde su surgimiento ha representado una muy buena herramienta para solucionar problemas de optimización combinatoria, pero la 9.

(10) Introducción. inteligencia colectiva que es el arma principal de estos algoritmos hace que la calidad de las soluciones encontradas tenga una muy estrecha relación con la cantidad de agentes que estén interactuando en la colonia, esto a su vez trae grandes consecuencias para el tiempo que se emplea para alcanzar dichas soluciones. En otras palabras, la cantidad de hormigas que conforman la colonia y la cantidad de veces que estarán interactuando para solucionar un problema trae consigo que se encuentren buenas soluciones, pero su costo computacional en cuanto a tiempo de ejecución aumenta en gran medida. Por lo anteriormente expuesto, se deriva el problema científico a resolver que se manifiesta en que la meta-heurística ACO presenta deficiencias en cuanto al tiempo que emplea en converger a buenas soluciones de problemas combinatorios, ya que la calidad de las soluciones es directamente proporcional a la cantidad de agentes que interactúan en el modelo. Para contribuir a la solución del problema científico antes plateado, se formuló la hipótesis general de investigación siguiente: Con la modificación de la estrategia de exploración del espacio de búsqueda de la meta-heurística ACO es posible conseguir que los algoritmos converjan a buenas soluciones en un tiempo mucho menor que el empleado por el modelo original. Esta hipótesis quedará validada si se comprueba que: 1. La nueva estrategia de exploración del espacio de búsqueda es capaz de disminuir el costo computacional en cuanto a tiempo de encontrar buenas soluciones con respecto al modelo original. 2. Los cambios introducidos no hagan muy compleja la etapa de aplicabilidad del nuevo modelo. En conformidad con la hipótesis de investigación identificada, el objetivo general de la investigación consiste en desarrollar una nueva metodología de trabajo con la meta-heurística ACO, que ofrezca a los investigadores y desarrolladores en el campo de la optimización combinatoria una herramienta que posibilite un mejor rendimiento de los algoritmos basados en colonias de hormigas. Este objetivo general fue desglosado en los objetivos específicos siguientes: 1. Construir el marco teórico-referencial de la investigación derivado de la consulta de la literatura nacional e internacional actualizada, y otras fuentes de referencia sobre el temático objeto de estudio. 2. Realizar un análisis crítico sobre el estado actual del desarrollo de la meta-heurística ACO para solucionar problemas de optimización combinatoria. 10.

(11) Introducción. 3. Diseñar y proponer sobre bases científicas, una nueva metodología de trabajo con la metaheurística ACO que mejore la estrategia de exploración del espacio de búsqueda y garantice una mejor eficiencia en la solución de problemas de optimización. 4.. Validar la nueva metodología a partir de comparaciones experimentales y estadísticas con el modelo original en la solución de problemas de prueba.. La novedad científica principal que aporta esta investigación, radica en la concepción y definición de un nuevo modelo de trabajo con la meta-heurística ACO que sea capaz de garantizar una convergencia más temprana a buenas soluciones que el modelo original. El valor teórico de la investigación está directamente vinculado con su novedad científica. El valor metodológico se manifiesta a través del desarrollo del modelo y que es aplicable a cualquier algoritmo de la meta-heurística ACO. El valor práctico se relaciona con la introducción de un modelo que brinda la posibilidad de ser aplicado para la solución de problemas reales por el grupo de Inteligencia Artificial del Centro de Estudios de Informática. El valor social de la investigación radica en su dimensión interna, en la contribución al desarrollo de investigaciones en el área de la optimización, y en su dimensión externa, en dar a conocer un nuevo modelo que permita resolver problemas reales en distintas áreas de la vida. Para la presentación de esta investigación, esta Tesis de Maestría se estructuró de la forma siguiente. En la Introducción, se caracteriza la situación problémica y se fundamenta el problema científico a resolver, así como la estrategia general seguida para su solución como problema científico. El Capítulo 1, contiene el marco teórico-referencial que sustentó la investigación originaria. En el Capítulo 2, se resume y explica todo el nuevo modelo desarrollado. En el Capítulo 3, se pone a prueba el desempeño del nuevo modelo en la solución de problemas de experimentación, además de un análisis estadístico de los resultados, donde se muestran los casos de aplicación que evidencian la factibilidad y utilidad del empleo del modelo y el procedimiento desarrollado como vía para demostrar la hipótesis de investigación planteada. Un cuerpo de Conclusiones y Recomendaciones derivadas de la investigación realizada, la Bibliografía consultada y un grupo de Anexos como complemento de los resultados expuestos.. 11.

(12) Capítulo1. Capítulo 1 Problemas de Optimización Combinatoria, metaheurística ACO y algoritmos de Búsqueda Local La optimización combinatoria es una rama de la optimización en matemáticas aplicadas y en ciencias de la computación, relacionada a la investigación de operaciones, teoría de algoritmos y teoría de la complejidad computacional. También está relacionada con otros campos, como la inteligencia artificial e ingeniería de software. Existen muchos 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. El siguiente esquema trata de dar una categoría amplia, no excluyentes, en donde ubicar a los heurísticos más conocidos: 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: Consiste en 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: Consisten en construir 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. 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. 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. Si bien todos estos métodos han contribuido a ampliar nuestro conocimiento para la resolución de problemas reales, los métodos constructivos y los de búsqueda local constituyen la base de los procedimientos meta-heurísticos. Los modelos meta-heurí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 12.

(13) Capítulo 1. (usualmente grande) para estas instancias. Estos modelos logran esto reduciendo el tamaño efectivo del espacio, y explorando el espacio de búsqueda eficientemente.. 1.1 Problemas de Optimización Combinatoria Una característica recurrente en los problemas de optimización combinatoria es el hecho de que son muy fáciles de entender y de enunciar, pero generalmente son difíciles de resolver. Podría pensarse que la solución de 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 momento en el tamaño de este conjunto, que hace inviable cualquier intento de búsqueda exhaustiva en problemas de tamaño no muy restringidos. Un problema de optimización combinatoria puede definirse de forma más precisa de la siguiente manera: Una tupla P=(S, Ω, f) donde S: un conjunto finito de variables de decisión discretas Ω: restricciones entre las variables. f: una función objetivo La búsqueda en el espacio S se define como sigue: Xi, i=1,…,n, un conjunto de variables discretas con valores valor. , una solución. . Una instancia de una variable no es más que asignarle a Xi un es una asignación completa si todas las variables de decisión tienen. asignado un valor y si satisface todas las restricciones Ω es una solución factible. Existen una gran cantidad de problemas de optimización combinatoria por ejemplo, el Problema del Viajante de Comercio, el Problema de la Secuenciación de Tareas y el Problema de Cubrimiento de Conjuntos los cuales serán explicados en este epígrafe entre otros.. 1.1.1 Problema del Viajante de Comercio Este problema, también conocido como Travelling Salesman Problem (TSP), ha sido uno de los más estudiados en Investigación Operativa, por lo que merece una atención especial. Cuando la teoría de la Complejidad Algorítmica se desarrolló, el TSP fue uno de los primeros problemas en estudiarse, probando Karp en [13] que pertenece a la clase de los problemas difíciles (NP-hard). Desde los métodos de Ramificación y Acotación hasta los basados en la Combinatoria Poliédrica, pasando por 13.

(14) Capítulo 1. los procedimientos meta-heurísticos, todos han sido inicialmente probados en el TSP, convirtiéndose éste en una prueba obligada para validar cualquier técnica de resolución de problemas combinatorios. La librería TSPLIB [14] de dominio público contiene un conjunto de ejemplos del TSP con la mejor solución obtenida hasta la fecha y, en algunos casos, con la solución óptima. El Problema del Viajante puede enunciarse del siguiente modo: Un viajante de comercio ha de visitar n ciudades, comenzando y finalizando en su propia ciudad y no visitando más de una vez ninguna ciudad intermedia. Conociendo el costo de ir de cada ciudad a otra, determinar el recorrido de costo mínimo. Para enunciar el problema formalmente introducimos la siguiente terminología: Sea un grafo G = (V; A; C) donde V es el conjunto de vértices, A es el de aristas y C = (cij) es la matriz de costos. Donde cada elemento (i, j) de la matriz C representa un costo o distancia de la arista (i; j). - Un camino (o cadena) es una sucesión de aristas (a1; a2;…; ak) en donde el vértice final de cada arista coincide con el inicial de la siguiente. También puede representarse por la sucesión de vértices utilizados. - Un camino es simple o elemental si no utiliza el mismo vértice más de una vez. - Un ciclo es un camino (v1; v2;…; vk) en el que el vértice final vk coincide con el inicial v1. - Un ciclo es simple si lo es el camino que lo define. - Un subtour es un ciclo simple que no pasa por todos los vértices del grafo. - Un tour o ciclo hamiltoniano es un ciclo simple que pasa por todos los vértices del grafo. Pueden surgir otras restricciones debidas a la representación elegida. También existen muchas variantes del problema que introducen restricciones de todo tipo. Para el presente trabajo se contemplará únicamente la versión más habitual (matriz simétrica). El Problema del Viajante consiste en determinar un tour de costo mínimo. La Figura 1.1 Muestra una instancia del TSP. ⎛ 0 6 2 1 4 10 ⎞ ⎜ ⎟ ⎜6 0 3 4 3 1 ⎟ ⎜2 3 0 2 8 3 ⎟ ⎜ ⎟ ⎜1 4 2 0 5 6 ⎟ ⎜4 3 8 5 0 9 ⎟ ⎜ ⎟ ⎜10 1 3 6 9 0 ⎟ ⎝ ⎠ Figura1.1 Instancia del TSP simétrico de 6 ciudades. A continuación se presentan algunos de los trabajos publicados con la aplicación de diferentes técnicas para atacar este problema: - El trabajo de Johnson [15] presenta un estudio sobre la optimización local aplicada al problema del Viajante de Comercio. Trata dos métodos específicos, 2-opt y 3-opt . 14.

(15) Capítulo 1. -. -. -. El primer algoritmo Tabu Search implementado para TSP fue descrito por Glover (1986), además de otra variantes desarrolladas por Glover (1989), Knox y Glover (1989), Knox (1989, 1994), y métodos similares fueron estudiados por Troyon (1988) y Malek, Guyruswamy, y Pandya (1989). El TSP fue uno de los primeros problemas para el cual Simulated Annealing fue aplicado [15], sirve de ejemplo para Kirkpatrick et al. (1983) y Cerny (1985) y luego en [16, 17]. El uso de Genetic Algorithms como método de optimización se inició a principios de 1970 [15] y aplicado al TSP por Brady (1985) [18] también en el trabajo presentado por Mühlenbein, Gorges-Schleuter, y Krämer (1988) y más recientemente [19, 20] . La primera aplicación de Neural Networks al TSP [18] apareció en el trabajo de Hopfield and Tank (1985). Stützle et al. [21] presenta un interesante trabajo comparando métodos heurísticos inspirados en la naturaleza para resolver el TSP, donde se encuentran; ACO, Evolutionary Computation, etc.. 1.1.2 Secuenciación de Tareas Los problemas de Scheduling son una familia de problemas que aparecen con frecuencia en la realidad. Podemos encontrar problemas de esta familia en muchas áreas de la industria, la administración y la ciencia; problemas que van desde la organización de la producción hasta la planificación de multiprocesadores. Los problemas de Scheduling son en general NP-duros por lo que para resolverlos se han aplicado prácticamente todas las técnicas de Inteligencia Artificial, con mayor o menor éxito. Así, podemos encontrar en la literatura (véase, por ejemplo, el número de la revista Artificial Intelligence 1992) soluciones con técnicas heurísticas [22, 23], Programación Lógica [24, 25], Redes Neuronales [26], Aprendizaje Automático [27], Ramificación y Poda [28], Búsqueda Local [29], Búsqueda Tabú [30], Recocido Simulado [31] y Algoritmos Genéticos [3234], entre otros. Uno de los problemas de Scheduling más clásicos es el de secuenciación de tareas (Job Shop Scheduling, JSS). El problema JSS aparece con profusión en la literatura científica como ejemplo de prueba de muchas técnicas de resolución de problemas. Hay también disponibles un banco de numerosas instancias [35] de uso común entre los investigadores, lo que facilita el contraste de resultados experimentales. En [36], Jain y Meeran ofrecen una clasificación de las principales técnicas que han sido aplicadas para resolver el problema de secuenciación. Existen distintas variantes del problema de secuenciación de tareas (Job Shop Scheduling, JSS) dependiendo del criterio de optimización. En este trabajo consideramos el más clásico: el problema conocido en la literatura como J//Cmax. Se trata de planificar la ejecución de un conjunto de trabajos {J1,...,Jn} sobre un conjunto de máquinas {M1,...,Mm}. Cada trabajo Ji está compuesto por un conjunto de operaciones o tareas 15.

(16) Capítulo 1. {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 duij. Supondremos 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 conseguir un tiempo de inicio para cada una de las tareas de modo que se satisfagan todas las restricciones del problema y que además se minimice el tiempo de finalización de todas las tareas, es decir el makespan. * C max = min{C max } =. min. factible scheduling. {max{t ik + p ik } : ∀J i ∈ J, ∀M k ∈ M }. (1.1). Se trata de uno de los problemas de optimización combinatoria más difíciles de resolver. No sólo es del tipo NP-hard, sino que entre los que pertenecen a esta tipología, es de los más complejos. Para poder ser más claros listaremos las restricciones del JSSP clásico: ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾. No está permitido que dos operaciones del mismo trabajo se procesen simultáneamente. No hay prioridad entre operaciones de distintos trabajos. Ningún trabajo puede ser procesado más de una vez en la misma máquina. Cada trabajo es procesado hasta concluirse, aunque haya que esperar y retardarse entre las operaciones procesadas. Un trabajo puede iniciarse en cualquier momento siempre y cuando esté disponible la máquina y no se haya especificado un tiempo de inicio. Los trabajos tienen que esperar a que la máquina procesara la siguiente operación esté disponible para que este sea procesado. Ninguna máquina puede procesar más de un trabajo a la vez. Los tiempos de configuración y cambio de máquina son independientes del orden de procesamiento y este está incluido en los tiempos de procesamiento. Hay solo un tipo de máquina. Las máquinas pueden estar ociosas en cualquier momento del plan de trabajo. Las máquinas están disponibles en cualquier momento. Las restricciones tecnológicas están bien definidas y son previamente conocidas, además de que son inamovibles, en otras palabras, el orden en que deben de ser ejecutadas las operaciones de cada trabajo.. Tipos de planes de trabajo Los planes de trabajo generalmente se categorizan en las siguientes clases:. 16.

(17) Capítulo 1. -. -. Un plan de trabajo en que ninguna operación puede iniciarse sin cambiar el orden de procesamiento o sin que se viole alguna de las restricciones tecnológicas es llamado semi activo. Un plan de trabajo en que ninguna operación puede iniciarse sin que se retarde cualquier otra operación o sin que se viole alguna de las restricciones tecnológicas es llamado activo. Un plan de trabajo en que ninguna máquina está nunca ociosa si una operación está lista para ser procesada en esta es llamado sin retardo.. Figura 1.2 Jerarquía de tipos de Scheduling factibles. Esta figura muestra la jerarquía de las clases de planes de trabajo para las medidas de desempeño normal. El conjunto de los planes de trabajo sin retardo es un subconjunto de los planes de trabajo activos. Los planes de trabajo óptimos son un subconjunto de los planes de trabajo activos, pero estos no son un subconjunto de los planes de trabajo sin retardo. Por lo que para este problema se deben de construir planes activos, trayendo como consecuencia la reducción del espacio de búsqueda y garantizando que pueda ser encontrada la solución óptima. (2,10) 1. (1, 2) 2. (4,7) 3. (3, 5) 4. (1,12) 5. (4,6) 6. (3,5) 7. (2,2) 8. Tabla 1.1 Instancia de 2 trabajos y 4 máquinas del JSSP. En la tabla anterior se muestra un ejemplo para una instancia del JSSP simple con dos tareas a procesar en cuatro máquinas. La forma de los datos son (máquina, duración), los números en negritos representan los nodos del grafo generado para dicha instancia, en el próximo capítulo se explicará la forma de construcción.. 17.

(18) Capítulo 1. 1.1.3 Problema del Cubrimiento de Conjuntos Este problema, también conocido como Set Covering Problem (SCP) [37-39], se puede enunciar del siguiente modo: Sea un conjunto de 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 con subconjuntos Hi. Para formular el problema se define una variable xi que vale 1 si Hi está en la solución y 0 en otro caso. También se introduce una matriz A = {aij} en donde el aij vale 1 si el elemento j de S está en Hi y 0 en otro caso. MIN : c1x1 + c2x2 + … + cnxn s.a.: a1jx1 + a2jx2 + …+ anjxn ≥ 1, j = 1,…,m xi = 1, 0 i = 1,…, n Una instancia de este problema se puede representar de la siguiente forma:. Figura 1.3 Instancia del problema SCP de 5 elementos de S y 10 de H. Donde la tabla de la figura 1.3 muestra para cada elemento de H (columnas) cuales elementos de S (filas) cubre y Ci los costos asociados a cada elemento de H, se trata de encontrar el conjunto de columnas de costo mínimo que cubran todas las filas. Este problema tiene diferentes aplicaciones, entre las que podemos destacar la localización de servicios, tales como hospitales, bomberos y la asignación de tripulaciones a vuelos etc. El SCP es relativamente fácil de resolver con métodos de Ramificación y Acotación ya que la solución óptima del problema lineal coincide, en ocasiones, con la del entero o está bastante cerca de él. La dificultad del problema viene del número enorme de variables que suelen aparecer en problemas reales.. 1.2 Vida artificial y algoritmos de Búsqueda Local En la naturaleza, los seres vivos se enfrentan a problemas que deben resolver con éxito para desarrollarse, como obtener más luz del sol, o conseguir alimento para su subsistencia. La sapiencia 18.

(19) Capítulo 1. de la naturaleza para resolver estos problemas ha sido siempre admirada e imitada en muchos campos de la ciencia. Una de ellas, la computación, ha creado técnicas de Inteligencia Artificial con el objeto de plasmar en sistemas computacionales la esencia misma de la naturaleza observable. La Vida Artificial [40-42] o algoritmos bioinspirados es una disciplina que estudia la vida natural, recreando los fenómenos biológicos en ordenadores y otros medios artificiales. Complementa el estudio teórico de la biología pero en lugar de tomar organismos aislados y analizar su comportamiento, lo que se intenta es colocar juntos organismos que actúan como los seres vivos. Esta técnica se puede encontrar en aplicaciones prácticas como en el diseño de ordenadores (hardware y software), robots móviles, medicina, nanotecnología, etc. El presente trabajo trata sobre una de las más recientes técnicas de Inteligencia Artificial en el área de Vida Artificial, conocida como Optimización Basada en Colonias de Hormigas (Ant Colony Optimization, ACO) [11, 12], meta-heurística inspirada en el comportamiento (a nivel de especie) de una colonia 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. Se tratará el tema con profundidad en el epígrafe siguiente.. 1.2.1 Optimización Basada en Colonias de Hormigas Esta novedosa técnica cae en la categoría de meta-heurística [5, 43, 44] en la cual una colonia de hormigas artificiales coopera para encontrar buenas soluciones a diferentes problemas de optimización discreta. La cooperación es un componente clave de los algoritmos ACO. Se inspira en el comportamiento de las hormigas, animales casi ciegos pero con la habilidad de optimizar el camino hasta llegar a la fuente de su alimento y regresar al nido. Cae en la categoría de la llamada “Inteligencia Colectiva” (Swarm Intelligence) [45]. Un enjambre (swarm) puede ser definido como una colección estructurada de organismos (agentes) que interactúan. La inteligencia no está en los individuos sino en el colectivo. La base de la misma está en la interacción social directa o indirecta entre los individuos. La interacción directa ocurre cuando un individuo es capaz de comunicar de forma directa a los otros agentes del enjambre la información recopilada por él. La interacción indirecta se manifiesta cuando un individuo cambia el ambiente y el otro agente responde al nuevo ambiente. Ejemplos de inteligencia colectiva son las colonias de hormigas (ant colonies), las bandadas de pájaros (bird flocks) y colonias de peces (fish colonies), etc. Las colonias de hormigas, y más general las sociedades de insectos, son sistemas distribuidos, que a pesar de la simplicidad de sus individuos, presentan una organización social altamente estructurada. Uno de los patrones de comportamiento exhibido por las hormigas es su habilidad para encontrar el camino más corto, para lo cual coordinan su actividad mediante una comunicación indirecta lograda por modificación del medio ambiente usando una sustancia química llamada feromona. 19.

(20) Capítulo 1. El modelo ACO (Ant Colony Optimization) es un modelo computacional que ofrece las técnicas algorítmicas más exitosas y ampliamente reconocidas basadas en el comportamiento de las hormigas [46]. La idea básica del modelo ACO es usar una forma de comunicación indirecta artificial (artificial stigmergy) para coordinar sociedades de agentes artificiales para resolver problemas de optimización discretos. 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. Las diferencias de las hormigas artificiales con respecto a las hormigas naturales son: (i) Tienen alguna memoria; (ii) No son completamente ciegas; y, (iii) Viven en un ambiente donde el tiempo es discreto.. 1.2.2 Modo de funcionamiento y estructura genérica de la meta-heurí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 (que puede representarse en forma de grafo). Este movimiento se realiza siguiendo una regla de transición que está basada en la información local disponible en las componentes (nodos). Esta información local incluye la información heurística (dependiente del problema) y memorística (rastros de feromona) para guiar la búsqueda. Al moverse por el representativo del problema, las hormigas construyen incrementalmente soluciones. Opcionalmente, las hormigas pueden depositar feromona cada vez que crucen un arco (conexión) mientras que construyen 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 se evalúa ésta y puede depositar una cantidad de feromona que es 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 le asocia la feromona a los nodos del grafo, por lo que se utiliza como estructura de almacenamiento un vector de feromona. Estas dos variantes serán ejemplificadas en el capítulo siguiente. En lo adelante, para explicar el funcionamiento genérico de la meta-heurística ACO y el comportamiento de sus algoritmos se utilizará el término de 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: 20.

(21) Capítulo 1. •. 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, este 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 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 desarrolla las acciones del demonio están por ejemplo: 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 [47, 48]: Procedimiento meta-heurísticaACO; Actividades Programadas Construir Soluciones de las Hormigas Actualizar Feromonas 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. meta-heurísticaACO. nciclo= nciclo+1 Hasta que: criterio de parada. 21.

(22) Capítulo 1. Los criterios de parada de este proceso iterativo son, 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 o stagnation).. -. Se alcanza un tiempo límite o predeterminado de procesamiento.. En cualquier caso, la meta-heurística ACO no es lo suficientemente general como para cubrir la familia completa de algoritmos de hormigas, que pueden definirse (aunque no de manera muy precisa) como métodos aproximados para solucionar problemas combinatorios basados en características del comportamiento genérico de las hormigas naturales. Algunos ejemplos de algoritmos de hormigas que no están incluidos en la meta-heurística ACO son el Sistema de Hormiga Rápido (“Fast Ant System”) [49] y el Sistema de Hormiga Híbrido (“Hybrid Ant System”) [50]. El primero es un algoritmo de construcción que se basa en el modo de operación de una única hormiga y que no utiliza de manera explícita la evaporación de feromona. El segundo consiste en un procedimiento de búsqueda local que hace uso de la información de los rastros de feromona para generar soluciones vecinas. Observando las aplicaciones actuales de la ACO, podemos identificar algunas directivas sobre como atacar problemas utilizando esta metaheurística. Estas directivas se pueden resumir en las seis tareas de diseño que se enumeran a continuación: 1. Representar el problema como un conjunto de componentes y transiciones a través de un grafo1 que será recorrido por las hormigas para construir soluciones 2. Definir de manera apropiada el significado de los rastros de feromona. τ , esto es, el tipo de. decisión que inducen. Éste es un paso crucial en la implementación de un algoritmo de ACO y, a menudo, una buena definición de los rastros de feromona no es una tarea trivial. De hecho, normalmente implica tener un buen conocimiento del problema que se quiere solucionar. 3. Definir de manera apropiada la preferencia heurística de cada decisión que debe tomar una hormiga mientras construye una solución, es decir, definir la información heurística η rs. 1. Remítase al anexo 2 donde se especifica la teoría de grafo utilizada en este trabajo.. 22.

(23) Capítulo 1. asociada a cada componente o transición. Hay que remarcar que la información heurística es crucial para un buen rendimiento si no existen o no pueden ser aplicados algoritmos de búsqueda local. 4. Si es posible, implementar una búsqueda local eficiente para el problema que se desea solucionar, porque los resultados de muchas aplicaciones de la ACO a problemas de optimización combinatoria NP-completos demuestran que el mejor rendimiento se alcanza cuando se complementa con optimizaciones locales [51, 52]. 5. Escoger un algoritmo de ACO específico y aplicarlo al problema que hay que solucionar teniendo en cuenta las características propias de cada uno. 6. Refinar los parámetros del algoritmo de ACO. Un buen punto de partida para la especificación de los valores de los parámetros es usar configuraciones de parámetros que han demostrado ser buenas cuando se aplicaban en el algoritmo de ACO a problemas similares o a una gran variedad de problemas distintos. Otra posible alternativa para evitar el esfuerzo y tiempo necesarios para esta tarea es utilizar procedimientos automáticos de refinamiento de parámetros [53].. 1.2.3 Algoritmos de la meta-heurística ACO En la literatura se han propuesto diversos algoritmos que siguen la meta-heurística ACO. Entre los algoritmos de ACO disponibles para problemas de optimización combinatoria NP-duros, se encuentran el Sistema de Hormigas (Ant System (AS)) [54], el Sistema de Colonia de Hormigas (Ant Colony System (ACS)) [55], el Sistema de Hormigas Max-Min (, Max-Min Ant System) [56], el AS con Ordenación (Rank-Based Ant System) [57], el Sistema de la Mejor-Peor Hormiga (BestWorst Ant System) [58] entre otros. Muchos investigadores interesados por la originalidad y el rendimiento del modelo ACO, aplicaron la técnica con excelentes resultados a problemas tan diversos como: - El paradigma del viajante de comercio (Travelling Salesman Problem) [12, 59]; - El problema del ordenamiento secuencial (Sequential Ordering Problem)[60]; - El problema de ruteo de vehículos (Vehicle Routing Problem)[61]; - El problema de asignación cuadrática (Quadratic Assignment Problem) [62]; - Redes de telecomunicaciones (Telecommunications Networks) [63]. Esta técnica comienza a tener la madurez tecnológica adecuada para su utilización en problemas reales, como puede verse por la publicación del libro [64].. 23.

(24) Capítulo 1. En lo que sigue, presentaremos una pequeña descripción de los algoritmos AS y ACS ya que son los utilizados en nuestro trabajo. El Sistema de Hormigas (Ant System, AS) [54], desarrollado por Dorigo, Maniezzo y Colorni en 1991, fue el primer algoritmo de ACO. Inicialmente, se presentaron 3 variantes distintas: HormigaDensidad (Ant-Density), Hormiga-Cantidad (Ant-Quality) y Hormiga-Ciclo (Ant-Cycle), que se diferenciaban en la manera en que se actualizaban los rastros de feromona. En los dos primeros, las hormigas depositaban feromona mientras construían sus soluciones (es decir, aplicaban una actualización en línea paso a paso de feromona), con la diferencia de que la cantidad de feromona depositada en Hormiga-Densidad es constante, mientras que la depositada en Hormiga-Cantidad dependía directamente de la deseabilidad heurística de la transición η rs . Por último, en HormigaCiclo, la deposición de feromona se lleva a cabo una vez que la solución está completa (actualización en línea a posteriori de feromona). Esta última variante era la que obtenía mejores resultados y es por tanto la que se conoce como AS en la literatura y en el resto de este trabajo. El AS se caracteriza por el hecho de que la actualización de feromona se realiza una vez que todas las hormigas han completado sus soluciones, y se lleva a cabo como sigue: primero, todos los rastros de feromona se reducen en un factor constante, implementándose de esta manera la evaporación de feromona según la expresión 1.2, t ij ← (1 − p ) ∗ t ij , p ∈ (0,1]. (1.2). donde p se conoce como constante de evaporación y es la encargada de reducir los rastros de feromona para evitar el estancamiento de las soluciones y tij la cantidad de feromona asociada al arco (i, j). A continuación, cada hormiga de la colonia deposita una cantidad de feromona que es función de la calidad de su solución, según expresión 1.3,. tij ← tij + Δt k. ∀aij ∈ S k. (1.3). donde Δt k = f (C ( S k )) , es decir, que la cantidad de feromona a depositar en cada arco ( a ij ) que pertenece a la solución ( S k ) de la hormiga k depende totalmente de la calidad ( C ( S k ) ) de la solución encontrada por dicha hormiga. Inicialmente, el AS no usaba ninguna acción del demonio, pero es relativamente fácil, por ejemplo, añadir un procedimiento de búsqueda local para refinar las soluciones generadas por las hormigas, esto se verá más adelante. Las soluciones en el AS se construyen como sigue. En cada paso de construcción, una hormiga k escoge ir al siguiente nodo con una probabilidad que se calcula como:. 24.

(25) Capítulo 1. (τ ) * (η ) ∑ (τ ) * (η ) α. p = k ij. β. ij. ij. α. β. ij. si. j ∈ N ik. ij. (1.4). j∈N ik. donde N ik es el vecindario alcanzable por la hormiga k cuando se encuentra en el nodo i, los parámetros alfa ( α ) y beta ( β ) controlan el proceso de búsqueda. Para α =0 se tiene una búsqueda heurística estocástica clásica, mientras que para β = 0 solo el valor de la feromona tiene efecto. Un valor de α < 1 lleva a una rápida situación de convergencia (stagnation), Pijk es un vector de probabilidades de visitar cada uno de los nodos de la vecindad ( N ik ) por la hormiga k, τ ij el valor del elemento i, j en la matriz de feromona y η ij , se denomina función de visibilidad o función heurística que depende totalmente de las características del problema que se va a resolver. El Sistema de Colonias de Hormigas (Ant Colony System, ACS) [55] es uno de los primeros sucesores del AS que introduce tres modificaciones importantes con respecto a dicho algoritmo de ACO: 1. El ACS usa una regla de transición distinta y más agresiva, denominada regla proporcional pseudo-aleatoria. Sea k una hormiga situada en el nodo r, q0 ∈ [0,1] un parámetro y q un valor. aleatorio en [0,1], el siguiente nodo i se elige aleatoriamente mediante la siguiente distribución de probabilidad: si q ≤ q 0 ⎧⎪1, si j = max j∈N k {τ ij *ηijβ }⎫⎪ i P =⎨ ⎬ ⎪⎩0, otros casos ⎪⎭ k ij. (1.5). si no ( q > q 0 ):. (τ ) * (η ) ∑ (τ ) * (η ) α. p = k ij. β. ij. ij. α. ij. β. ij. si. j ∈ N ik. (1.6). j∈N ik. Como puede observarse, la regla tiene una doble intención: cuando q ≤ q0, explota el conocimiento disponible, eligiendo la mejor opción con respecto a la información heurística y los rastros de feromona. Sin embargo, si q > q0 se aplica una exploración controlada, tal como se hacía en el SH. En resumen, la regla establece un compromiso entre la exploración de nuevas conexiones y la explotación de la información disponible en ese momento. 2. Las hormigas aplican una actualización en línea paso a paso de los rastros de feromona que favorece la generación de soluciones distintas a las encontradas. 25.

(26) Capítulo 1. Cada vez que una hormiga viaja por una arista a ij , aplica la regla: t ij ← (1 − ϕ ) * t ij + t 0. (1.7). donde ϕ ∈ (0,1] es un segundo parámetro de decremento de feromona. Como puede verse, la regla de actualización en línea paso a paso incluye tanto la evaporación de feromona como la deposición de la misma. Ya que la cantidad de feromona depositada es muy pequeña (de hecho, t0 es el valor del rastro de feromona inicial y se escogiese de tal manera que, en la práctica, se corresponda con el límite menor de rastro de feromona, esto es, con la elección de las reglas de actualización de feromona del ACS ningún rastro de feromona puede caer por debajo de t0), la aplicación de esta regla hace que los rastros de feromona entre las conexiones recorridas por las hormigas disminuyan. Así, esto lleva a una técnica de exploración adicional del ACS ya que las conexiones atravesadas por un gran número de hormigas son cada vez menos atractivas para el resto de hormigas que las recorren en la iteración actual, lo que ayuda claramente a que no todas las hormigas sigan el mismo camino. 3. Sólo el demonio (y no las hormigas individualmente) actualiza la feromona, es decir, se realiza una actualización de feromona fuera de línea de los rastros. Para llevarla a cabo, el ACS sólo considera una hormiga concreta, la que generó la mejor solución global, Smejor-global (aunque en algunos trabajos iníciales se consideraba también una actualización basada en la mejor hormiga de la iteración [65], en ACO casi siempre se aplica la actualización por medio de la mejor global). La actualización de la feromona se hace evaporando primero los rastros de feromona en todas las conexiones utilizadas por la mejor hormiga global (es importante recalcar que, en el ACS, la evaporación de feromona sólo se aplica a las conexiones de la solución, que es también la usada para depositar feromona) tal como sigue: t ij ← (1 − p ) * t ij. ∀a ij ∈ S mejor − global. (1.8). A continuación el demonio deposita feromona a los arcos que pertenecen a la mejor solución encontrada hasta el momento usando la regla: t ij ← t ij + Δt ∀a ij ∈ S mejor − global. (1.9). Donde Δt = f (C ( S mejor − global )) , es decir la cantidad de feromona esta en dependencia de la calidad de la mejor solución encontrada hasta el momento C ( S mejor − global ) . En general, las soluciones obtenidas con los métodos constructivos y de vida artificial como es el caso de la meta-heurística ACO suelen ser de una calidad moderada, por lo que es razonable aplicarle diversos algoritmos basados en la búsqueda local para mejorarlas.. 26.

(27) Capítulo 1. 1.2.4 Búsqueda Local Los procedimientos de búsqueda local, también llamados de mejora, se basan en explorar el entorno o vecindad (neighborhood search, VNS) [66, 67] de una solución. Utilizan una operación básica llamada movimiento que, aplicada sobre los diferentes elementos de una solución, proporciona las soluciones de su entorno. Formalmente: Definición: Sea X el conjunto de soluciones del problema combinatorio. Cada solución x tiene un conjunto de soluciones asociadas. , que denominaremos entorno de x.. Definición: Dada una solución x, cada solución de su entorno,. , puede obtenerse. directamente a partir de x mediante una operación llamada movimiento. Un procedimiento de búsqueda local parte de una solución inicial x0, calcula su entorno N(x0) y escoge una nueva solución x1 en él. Dicho de otro modo, realiza el movimiento m1 que aplicado a x0 da como resultado x1. Este proceso se aplica reiteradamente, describiendo una trayectoria en el espacio de soluciones. Un procedimiento de búsqueda local queda determinado al especificar un entorno y el criterio de selección de una solución dentro del entorno. La definición de entorno/movimiento, depende en gran medida de la estructura del problema a resolver, así como de la función objetivo. También se pueden definir diferentes criterios para seleccionar una nueva solución del entorno. Uno de los criterios más simples consiste en tomar la solución con mejor evaluación de la función objetivo, siempre que la nueva solución sea mejor que la actual. Este criterio, conocido como Greedy, permite ir mejorando la solución actual mientras se pueda. El algoritmo se detiene cuando la solución no puede ser mejorada. A la solución encontrada se le denomina óptimo local respecto al entorno definido. El óptimo local alcanzado no puede mejorarse mediante el movimiento definido. Sin embargo, el método empleado no permite garantizar, de ningún modo, que sea el óptimo global del problema. Más aún, dada la “miopía” de la búsqueda local, es de esperar que en problemas de cierta dificultad, en general no lo sea. Pese a la miopía de los métodos de búsqueda local simples, suelen ser muy rápidos y proporcionan soluciones que, en promedio, están relativamente cerca del óptimo global del problema. Además, dichos métodos suelen ser el punto de partida en el diseño de algoritmos meta-heurísticos más complejos. Existen distintos algoritmos de búsqueda local basados en el intercambio de vecindad entre los que se encuentran: el Algoritmo de Lin y Kernighan [68-71], el Algoritmo de 2-intercambio, de 3intercambio [72] y mas general el Algoritmo de k-intercambio [73], en este epígrafe veremos con 27.

(28) Capítulo 1. mas detalles el Algoritmo de 2-intercambio. Estos algoritmos son muy dependientes del problema que resuelven, por lo que utilizaremos el TSP para describirlos. El algoritmo 2-intercambio (2-opt) [74] fue propuesto por primera vez por Croes (1958) [75], aunque los movimientos básicos ya fueron sugeridos por Flood (1956) [76]. Este método elimina dos arcos, rompiendo el tour en dos caminos diferentes, que luego son reconectados de otra manera posible. El trabajo de Johnson et al.[77] presenta un estudio sobre la optimización local aplicada al problema del viajante de comercio. Entre los métodos que trata, el 2-opt intenta mejorar un tour específico realizando simples movimientos para convertir un tour en otro, esto es, dado un tour factible, el algoritmo realiza repetidas operaciones de una clase, hasta reducir la longitud de tour actual o hasta que se consiga un tour para el cual ya no exista operaciones posibles que la mejoren. Alternativamente, se puede ver esto como un proceso de búsqueda en la vecindad (neighborhood search), donde cada tour tiene una vecindad asociada de tours adyacentes, esto significa que pueden ser encontrados con un solo movimiento y esto se realiza hasta encontrar uno mejor o hasta que ya no existan mejores. Su comportamiento general se presenta como: Algoritmo 2-opt Inicialización Considerar un ciclo Hamiltoniano inicial move=1 Mientras (move=1) move=0. Etiquetar todos los vértices como no explorados. Mientras( Queden vértices por explorar) Seleccionar un vértice i no explorado. Examinar todos los movimientos 2-opt que incluyan la arista de i a su sucesor en el ciclo. Si alguno de los movimientos examinados reduce la longitud del ciclo, realizar el mejor de todos y hacer move = 1. En otro caso etiquetar i como explorado.. Como se puede apreciar este algoritmo parte de una solución factible por lo que puede ser aplicado conjuntamente con algún algoritmo heurístico que le facilite la solución factible inicial. Estudios realizados sobre el efecto de combinar la búsqueda local con la meta-heurística ACO se presentan en [65, 78, 79].. 28.

(29) Capítulo 1. En nuestro trabajo realizamos un estudio de la aplicación de la búsqueda local a las soluciones encontradas por el algoritmo ACS aplicado al TSP, así como, analizaremos el comportamiento del nuevo modelo con búsqueda local.. 1.3 Conclusiones parciales A partir de la revisión bibliográfica desarrollada para presentar este capítulo se pueden extraer las conclusiones siguientes: Los problemas de optimización combinatoria caen regularmente en la categoría de problemas en la que se tienen algoritmos para resolverlos pero cuando su dimensión crece estos se vuelven inaplicables computacionalmente; de modo que la aplicación de los métodos heurísticos representa una buena alternativa. Los algoritmos bioinspirados y en particular la meta-heurística ACO es un modelo muy poderoso para dar solución a esta clase de problemas ya que propone formas muy precisas de emplear la cooperación entre agentes para la solución de problemas de optimización combinatoria. La cooperación causa fundamental del éxito del modelo ACO trae consigo que la calidad de las soluciones este estrechamente relacionada con la cantidad de agentes que se comuniquen, pero esto a su vez provoca un elevado costo computacional; es decir, a mayor cantidad de cooperación (lograda mediante el incremento de la cantidad de agentes cooperando o aumentando la cantidad de tiempo en que cooperan) mejores soluciones, pero mayor tiempo de ejecución. De modo que resulta conveniente explorar modificaciones al modelo ACO que enfrenten esta contradicción.. 29.

(30) Capítulo 2. Capítulo 2 Nuevo modelo ACO en dos etapas para resolver Problemas de Optimización Combinatoria En este capítulo se presenta una nueva estrategia de trabajo con la meta-heurística ACO llamada Optimización Basada en Colonias de Hormigas en Dos Etapas (Two Stages Ant Colony Optimization, TS-ACO), la cual propone modificar la estrategia de búsqueda desarrollada por el modelo ACO, esta modificación se basa en dividir el proceso de búsqueda de dos etapas, siendo la primera la encargada de determinar un conjunto de posibles estados iniciales para una segunda etapa que se encargará de dar soluciones concretas al problema en general.. 2.1 Optimización basada en Colonias de Hormigas en dos Etapas En los procesos de búsqueda heurística la determinación del estado inicial desde donde comenzar la misma, ha sido una problemática de interés, pues se ha mostrado que tiene un efecto importante en la solución final. El propósito es poder acercar lo más posible el estado inicial al estado final u objetivo. Por supuesto, es necesario considerar un balance adecuado entre el costo computacional de lograr ese acercamiento y el costo total, no sea que la suma del costo de aproximar el estado inicial al final, más el costo de encontrar la solución desde ese estado inicial “mejorado”, sea mayor que el costo de buscar la solución desde un estado inicial original, además es necesario que en el proceso de acercamiento no se pierda la posibilidad de explorar buenas soluciones. De modo que el propósito es el siguiente. Sea Ei un estado inicial generado aleatoriamente, u obtenido por cualquier otro método sin un costo computacional significativo, Ei* un estado inicial generado por algún método M que lo acerca al estado final con un costo CM(Ei*) , y sea CCABH(x) el costo computacional de encontrar una solución desde el estado x usando el algoritmo ABH (Algoritmo de Búsqueda Heurística). Entonces el objetivo es que CM(Ei*)+ CCABH(Ei*) < CCABH(Ei). La nueva forma de trabajo con la meta-heurística ACO, TS-ACO, propone como nueva estrategia de búsqueda hacer una división en dos de la exploración y del espacio de búsqueda, de modo que en la primera etapa se encuentren soluciones preliminares (soluciones parciales) que sirven de estado inicial para el proceso de búsqueda desarrollado en la segunda etapa. Para realizar esta división, primero se determinaron los factores que influyen en el tamaño de la exploración y del espacio de búsqueda, se detectó que el número de hormigas (m), la cantidad de ciclos (nc) y la longitud de alguna solución factible del problema (nn), son los parámetros que definen estos dos factores. Para establecer el tamaño de cada etapa se le introduce al modelo un factor de proporcionalidad (r), el 30.

(31) Capítulo 2. cual indica cuanto abarca cada etapa dentro del proceso de búsqueda completo. Este valor está en el intervalo (0,1), 0< r <1. Por ejemplo, si r=0.3, esto significa que la primera etapa cubrirá con el 30% del tamaño de la exploración, el 30% del espacio de búsqueda completo. En otras palabras, el 30% de la cantidad total de hormigas de la colonia construirá soluciones de longitud igual al 30% del tamaño de la solución real, en el 30% de los ciclos. Después que se termine el proceso de búsqueda de la primera etapa, solo una cantidad de las mejores soluciones parciales encontradas en la primera etapa denotadas por (cs) servirán de punto de partida de las hormigas restantes (m-0.3* m) para la segunda etapa, con el objetivo de completar las soluciones con la exploración del espacio de búsqueda restante, para lo cual se completa con elementos restantes para los (nn-0.3* nn) nodos del grafo que no han sido explorados, en una cantidad de ciclos (nc-0.3* nc). La cantidad de soluciones parciales que pasan de la primera etapa a la segunda son un subconjunto de la cantidad de soluciones encontradas en esta etapa, donde cs ≤ (r * m ) . Más genéricamente los parámetros de la primera etapa se calculan como sigue: m1 = r * m nc1 = r * nc nn1 = r * nn. (2.1). m 2 = m − m1 nc 2 = nc − nc1 nn 2 = nn − nn1. (2.2). Y para la segunda etapa se calculan como:. Es bueno aclarar que, para poder explicar más claramente el nuevo modelo se asumió que la variable número de ciclos (nc) representa la condición de parada, en el caso de que se utilice otro criterio, como por ejemplo un tiempo máximo de ejecución, puede fácilmente ponerse en dependencia del factor r, para que la primera etapa sea cubierta en un tiempo y la segunda en otro, como se verá en el capítulo 3 en la fase de solución del SCP. El estado intermedio introducido por la nueva estrategia funciona como estado de entrega de las mejores subsoluciones de la primera etapa para el proceso de búsqueda en la etapa posterior, además, en este estado también se entrega la matriz de feromona utilizada en la primera etapa, de forma tal que la información acumulada por el proceso de búsqueda sea utilizada para guiar la misma en el resto del proceso, más claramente, la feromona es la misma para las dos etapas.. 31.

(32) Capítulo 2. Modelo general de TS-ACO. Dados los parámetros del Modelo (factor (r), porciento de soluciones a usar (%cs), etc.) P1: Etapa 1. P1.1: Calcular los parámetros que definen la dimensión de la primera etapa según expresión 2.1 P1.2: Aplicar cualquier algoritmo de la meta-heurística ACO P1.3: EI ← las %cs mejores soluciones parciales encontradas en la primera etapa P2: Etapa 2. P2.1: Calcular los parámetros para el proceso de búsqueda en la segunda etapa según expresión 2.2 P2.2: Aplicar algoritmo de ACO utilizando como estados iniciales para las hormigas en cada ciclo, soluciones parciales seleccionadas aleatoriamente del conjunto EI P3: Fin del proceso.. Como se puede apreciar, la elección del factor r debe tener una alta incidencia en el desempeño del algoritmo. Un valor alto de r, es decir, cercano al valor 1, hace que el estado intermedio Ei* se acerque más al estado objetivo, de modo que el valor de CACO(Ei*) debe aumentar y el de CCACO(Ei*) disminuir. Pero, además de este balance entre los costos de CACO(Ei*) y CCACO(Ei*), está la problemática de cuanto se explora el espacio de búsqueda; mientras mayor sea el valor de r el proceso de búsqueda en la segunda etapa disminuye por varias razones: (i) existen menos hormigas trabajando, (ii) la cantidad de ciclos decrece, (iii) y aunque la cantidad de posibles estados iniciales para la segunda etapa debe crecer cuando crezca r, ya esa cantidad está acotada por el resultado de la etapa previa. De modo que resulta clave estudiar cual debe ser el valor del factor de proporcionalidad r que logre el mejor balance entre las búsquedas en ambas etapas. Este valor debe permitir: 1. Disminuir el valor de CACO(Ei*)+CCACO(Ei*), es decir, el costo computacional del proceso de búsqueda completo. 2. Obtener buenas soluciones finales. En aras de mostrar graficamente como se disminuye el tiempo de ejecución en la estrategia de búsqueda del nuevo modelo, presentamos la siguiente figura.. 32.

(33) Capítulo 2. Figura 2.1 Explicación gráfica para el tiempo de ejecución de los dos modelos. Para probar que con el nuevo modelo se encuentran buenas soluciones a problemas de optimización combinatoria se presenta un estudio experimental en el capítulo 3.. 2.2 Aplicación de los algoritmos ACS y TS-ACS al TSP Para resolver el TSP utilizando ACS [12, 49, 80] y TS-ACS, se construye inicialmente un grafo no dirigido G=(N, A), donde el conjunto de nodos es igual a la cantidad de ciudades que presenta la instancia a resolver, los arcos representan distancias entre cada una de las ciudades, ver figuras 1.1 y 2.2, para este problema es importante el orden en que son visitadas las ciudades, es decir, es un problema de secuenciación, por lo que en este caso se tiene una matriz de feromona, que es lo mismo que asociar la feromona a los arcos del grafo, esta matriz se inicializa mediante algunos de los criterios presentados en el capítulo anterior.. 33.

Figure

Figura 1.2 Jerarquía de tipos de Scheduling factibles
Figura 1.3 Instancia del problema SCP de 5 elementos de S y 10 de H
Figura 2.1 Explicación gráfica para el tiempo de ejecución de los dos  modelos
Figura 2.2 Grafo generado para la instancia del TSP de la figura 1.1,  marcado en negrita el tour óptimo desde la ciudad 1
+7

Referencias

Documento similar

Polígon industrial Torrent d'en Puig. Polígonindustrial de Can

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

A partir de aquí se procederá sistemáticamente a un análisis racional de su esencia, lo cual se efectúa desde la filosofía crítica kantiana —que tiende a la separa- ción-

Sabemos que, normalmente, las ​cookies deben ser almacenadas y enviadas de vuelta al servidor sin modificar; sin embargo existe la posibilidad de que un atacante

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

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

Lo anterior se debió, según este autor, no sólo a factores externos, como las presiones internacionales hacia el gobierno mexicano ante la firma del Tra- tado de Libre Comercio