optimización basada en optimizaciÓn basada en colonia de hormigas

12
OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS: GENERALIDADES Y ESTUDIO DEL ALGORITMO SISTEMA HORMIGA Y APLICACIÓN A UN JOB SHOP ANT COLONY OPTIMIZATION: GENERALITIES AND STUDY OF ANT SYSTEM ALGORITHM AND A JOB SHOP APLICATION ANDRÉS ATEHORTÚA Estudiante Especialización Gestión Empresarial, [email protected] Tópicos Avanzados en producción y logística, profesor Elkin Rodríguez, Última versión: 16-09-2012 Universidad Nacional de Colombia RESUMEN: Este artículo trata acerca de los Algoritmos basados en colonia de hormigas, los cuales son unos modelos Metaheurísticos basados en el comportamiento autoorganizativo que algunas especies de hormigas presentan en la naturaleza para encontrar los caminos más cortos entre el nido y las fuentes de alimento. Inicialmente, se mencionan las características de las hormigas en la naturaleza que fundamentan este tipo de modelos, para así pasar, a partir de éstas características, a describir la Metaheurística de Optimización basada en colonia de Hormigas explicando el modo de operación general de éstos. Luego de ésto, se procede a estudiar el algoritmo Sistema de Hormigas, el cual fue el primer algoritmo de optimización de colonia de hormigas desarrollado por M. Dorigo, V. Maniezzo, A. Colorni en 1991, y el cual ha servido de base para muchos otros modelos, y cuyo entendimiento permitirá al lector tener una introducción para comprender la filosofía y funcionamiento de la mayoría de algoritmos basados en colonia de hormigas. Ya teniendo claro el funcionamiento de la metaheurística se estudia la aplicación de esta en un problema particular, en este caso un problema Job-Shop; para lo cual se introduce en qué consiste el problema de Job Shop, y se estudia cómo fue abordado con colonia de hormigas en este trabajo. Finalmente se mencionan las conclusiones a las que se ha llegado producto de la revisión bibliográfica y del análisis del funcionamiento de este tipo de algoritmos. PALABRAS CLAVE: Optimización basada en colonia de hormigas, Sistemas de hormigas, Job- Shop, Feromona, Metaheurísticas. ABSTRACT: This article is about the algorithms based on ant colony, which are Metaheuristics models based in self-organizing behavior that some species of ants found in nature to find the shortest paths between the nest and food sources. Initially referred to the characteristics of ants in nature that underlie this type of model, and later, from these characteristics, we pass to describe the optimization metaheuristics based on ant colony, explaining how is their overall operation. After this, we proceed to study the Ant System algorithm, which was the first algorithm of ant colony optimization developed by M. Dorigo, V. Maniezzo, A. Colorni in 1991, which was the basis for many other models, and whose understanding will enable the reader to have an introduction to understand the philosophy and operation of most algorithms based on ant colony. Already having clear the operation of the metaheuristic, we studied this algorithm in a particular problem, in this case Job-Shop problem, which is introduced to what the job shop problema is, and considers how it was dealt with colony ant in this work. Finally, product of the literature review and analysis of the performance of such algorithms, we mention the conclusions that have been found. KEY WORDS: Ant Colony Optimization , Ant system, Pheromone, Metaheuristics, Job Shop.

Upload: oscar-sanchez

Post on 16-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

Este artículo trata acerca de los Algoritmos basados en colonia de hormigas, loscuales son unos modelos Metaheurísticos basados en el comportamiento autoorganizativo quealgunas especies de hormigas presentan en la naturaleza para encontrar los caminos más cortosentre el nido y las fuentes de alimento. Inicialmente, se mencionan las características de lashormigas en la naturaleza que fundamentan este tipo de modelos, para así pasar, a partir de éstascaracterísticas, a describir la Metaheurística de Optimización basada en colonia de Hormigasexplicando el modo de operación general de éstos. Luego de ésto, se procede a estudiar elalgoritmo Sistema de Hormigas, el cual fue el primer algoritmo de optimización de colonia dehormigas desarrollado por M. Dorigo, V. Maniezzo, A. Colorni en 1991, y el cual ha servido debase para muchos otros modelos, y cuyo entendimiento permitirá al lector tener una introducciónpara comprender la filosofía y funcionamiento de la mayoría de algoritmos basados en colonia dehormigas. Ya teniendo claro el funcionamiento de la metaheurística se estudia la aplicación de estaen un problema particular, en este caso un problema Job-Shop; para lo cual se introduce en quéconsiste el problema de Job Shop, y se estudia cómo fue abordado con colonia de hormigas en estetrabajo. Finalmente se mencionan las conclusiones a las que se ha llegado producto de la revisiónbibliográfica y del análisis del funcionamiento de este tipo de algoritmos.

TRANSCRIPT

Page 1: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS : GENERALIDADES Y ESTUDIO DEL ALGORITMO SISTEMA

HORMIGA Y APLICACIÓN A UN JOB SHOP

ANT COLONY OPTIMIZATION : GENERALITIES AND STUDY OF ANT SYSTEM ALGORITHM AND A JOB SHOP APLICATION

ANDRÉS ATEHORTÚA

Estudiante Especialización Gestión Empresarial, [email protected]

Tópicos Avanzados en producción y logística, profesor Elkin Rodríguez, Última versión: 16-09-2012

Universidad Nacional de Colombia

RESUMEN: Este artículo trata acerca de los Algoritmos basados en colonia de hormigas, los cuales son unos modelos Metaheurísticos basados en el comportamiento autoorganizativo que algunas especies de hormigas presentan en la naturaleza para encontrar los caminos más cortos entre el nido y las fuentes de alimento. Inicialmente, se mencionan las características de las hormigas en la naturaleza que fundamentan este tipo de modelos, para así pasar, a partir de éstas características, a describir la Metaheurística de Optimización basada en colonia de Hormigas explicando el modo de operación general de éstos. Luego de ésto, se procede a estudiar el algoritmo Sistema de Hormigas, el cual fue el primer algoritmo de optimización de colonia de hormigas desarrollado por M. Dorigo, V. Maniezzo, A. Colorni en 1991, y el cual ha servido de base para muchos otros modelos, y cuyo entendimiento permitirá al lector tener una introducción para comprender la filosofía y funcionamiento de la mayoría de algoritmos basados en colonia de hormigas. Ya teniendo claro el funcionamiento de la metaheurística se estudia la aplicación de esta en un problema particular, en este caso un problema Job-Shop; para lo cual se introduce en qué consiste el problema de Job Shop, y se estudia cómo fue abordado con colonia de hormigas en este trabajo. Finalmente se mencionan las conclusiones a las que se ha llegado producto de la revisión bibliográfica y del análisis del funcionamiento de este tipo de algoritmos. PALABRAS CLAVE : Optimización basada en colonia de hormigas, Sistemas de hormigas, Job-Shop, Feromona, Metaheurísticas. ABSTRACT: This article is about the algorithms based on ant colony, which are Metaheuristics models based in self-organizing behavior that some species of ants found in nature to find the shortest paths between the nest and food sources. Initially referred to the characteristics of ants in nature that underlie this type of model, and later, from these characteristics, we pass to describe the optimization metaheuristics based on ant colony, explaining how is their overall operation. After this, we proceed to study the Ant System algorithm, which was the first algorithm of ant colony optimization developed by M. Dorigo, V. Maniezzo, A. Colorni in 1991, which was the basis for many other models, and whose understanding will enable the reader to have an introduction to understand the philosophy and operation of most algorithms based on ant colony. Already having clear the operation of the metaheuristic, we studied this algorithm in a particular problem, in this case Job-Shop problem, which is introduced to what the job shop problema is, and considers how it was dealt with colony ant in this work. Finally, product of the literature review and analysis of the performance of such algorithms, we mention the conclusions that have been found. KEY WORDS: Ant Colony Optimization , Ant system, Pheromone, Metaheuristics, Job Shop.

Page 2: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

1. INTRODUCCIÓN Existen problemas de optimización combinatoria complejos en diversos campos como la economía, el comercio, la ingeniería, la industria o la medicina. Sin embargo, a menudo estos problemas son muy difíciles de resolver en la práctica. El estudio de esta dificultad inherente para resolver dichos problemas ha llevado a la comunidad científica a formular un sin número de modelos, que aún siguen intentando, cada día más, aproximarse a soluciones más optimas de una forma más eficaz, logrando resultados satisfactorios en tiempos de ejecución cada vez menores. Debido a que ante problemas de gran tamaño y de características combinatorias, los modelos exactos, e incluso los heurísticos, son ineficaces; las técnicas metaheurísticas aparecen como alternativas muy razonables para abordarlos, donde diferentes experimentos ya han logrado demostrar las bondades de éstos modelos. Las metaheurísticas incorporan conceptos de muchos y diversos campos como la genética, la biología, la inteligencia artificial, las matemáticas, la física y la neurología, entre otras. Algunos ejemplos de metaheurísticas son: Enfriamiento simulado, búsqueda tabú, búsqueda local iterativa (“iterated local search”), algoritmos de búsqueda local con vecindario variable (“variable neighborhood search”), GRASP (“greedy randomized adaptative search procedures”) y algoritmos evolutivos. Una metaheurística relativamente reciente es la Optimización basada en Colonias de Hormigas (OCH) (“Ant Colony Optimization”, ACO en inglés), la cual 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. De hecho, desde el trabajo inicial de Dorigo, Maniezzo y Colorni en el Sistema de Hormigas (SH) (“Ant System”, AS en inglés), la ACO se está convirtiendo en un campo de investigación importante: un gran número de autores han desarrollado modelos cada vez más sofisticados para solucionar de manera satisfactoria un gran número de problemas de optimización combinatoria. Igualmente se ha incrementado el número de desarrollos teóricos sobre los algoritmos que se proponen.

Con este artículo se pretende hacer una revisión bibliográfica sobre las generalidades de los algoritmos ACO, su estructura básica y se hará énfasis en el algoritmo AS, el cual como ya se menciono, fue el primer algoritmo de optimización de colonia de hormigas, desarrollado por M. Dorigo, V. Maniezzo, A. Colorni en 1991, y el cual ha servido de base para muchos otros modelos, y cuyo entendimiento permitirá al lector tener una introducción para comprender la filosofía y funcionamiento de la mayoría de algoritmos basados en colonia de hormigas. [3][4]. Además, se trabajará el problema de programación Job Shop (JSSP por sus siglas en inglés, Job Shop Scheduling Problem), haciendo una pequeña introducción a las características de estos tipos de problemas, para luego pasar a estudiar cómo fue abordado con ACO. 2. GENERALIDADES DE LA OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS 2.1 Las hormigas naturales Las hormigas son insectos sociales que viven en colonias y que, debido a su colaboración mutua, son capaces de mostrar comportamientos complejos y realizar tareas difíciles desde el punto de vista de una hormiga individual. Un aspecto interesante del comportamiento de muchas especies de hormigas es su habilidad para encontrar los caminos más cortos entre su hormiguero y las fuentes de alimento. Este hecho es especialmente interesante si se tiene en cuenta que muchas de las especies de hormigas son casi ciegas, lo que evita el uso de pistas visuales. Mientras que se mueven entre el hormiguero y la fuente de alimento, algunas especies de

Page 3: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

2

hormigas depositan una sustancia química denominada feromona (una sustancia que puede “olerse”). Si no se encuentra ningún rastro de feromona, las hormigas se mueven de manera básicamente aleatoria, pero cuando existe feromona depositada, tienen mayor tendencia a seguir el rastro. De hecho, los experimentos realizados por biólogos han demostrado que las hormigas prefieren de manera probabilística los caminos marcados con una concentración superior de feromona [1]. En la práctica, la elección entre distintos caminos toma lugar cuando varios caminos se cruzan. Entonces, las hormigas eligen el camino a seguir con una decisión probabilística sesgada por la cantidad de feromona: cuanto más fuerte es el rastro de feromona, mayor es la probabilidad de elegirlo. Puesto que las hormigas depositan feromona en el camino que siguen, este comportamiento lleva a un proceso de autorefuerzo que concluye con la formación de rastros señalados por una concentración de Feromona elevada. Este comportamiento permite además a las hormigas encontrar los caminos más cortos entre su hormiguero y la fuente del alimento. 2.2 De las hormigas naturales a la Metaheurística de Optimización basada en colonia de Hormigas Los algoritmos de OCH se inspiran directamente en el comportamiento de las colonias reales de hormigas para solucionar problemas de optimización combinatoria. Se basan en una colonia de hormigas artificiales, esto es, unos agentes computacionales simples que trabajan de manera cooperativa y se comunican mediante rastros de feromona artificiales. Los algoritmos de OCH son esencialmente algoritmos constructivos: en cada iteración del algoritmo, cada hormiga construye una solución al problema recorriendo un grafo de construcción. Cada arista del grafo, que representa los posibles pasos que la hormiga puede dar, tiene asociada dos tipos de información que guían el movimiento de la hormiga [1]: 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 nota 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 a 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 nota por trs. 2.3 Modo de operación de un algoritmo 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 con pesos). 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 y memorística (rastros de feromona) para guiar la búsqueda. Al moverse por el grafo de construcción, 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 a posteriori de los rastros de feromona). Esta información guiará la búsqueda de las otras hormigas de la colonia en el futuro. 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

Page 4: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

3

desde una perspectiva global que no pueden llevar a cabo las hormigas por la perspectiva local que ofrecen. Ejemplos son observar la calidad de todas las soluciones generadas y depositar una nueva cantidad de feromona adicional sólo en las 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. Hay que notar que el primer paso para implementar un algoritmo ACO, incluye la inicialización de los valores de los parámetros que se tienen en consideración en el algoritmo. Entre otros, se deben fijar el rastro inicial de feromona asociado a cada transición, to, que es un valor positivo pequeño y que normalmente es el mismo para todas las conexiones, el número de hormigas en la colonia, m, y los pesos que definen la proporción en la que afectarán la información heurística y memorística en la regla de transición probabilística Como se ha comentado antes, varias componentes son o bien opcionales, como las acciones del demonio, o bien dependientes estrictamente del algoritmo de OCH especifico, por ejemplo cuándo y cómo se deposita la feromona. Generalmente, la actualización en línea paso a paso de los rastros de feromona y la actualización en línea a posteriori de los rastros de feromona son mutuamente excluyentes y no suelen estar presentes a la vez ni faltar ambas al mismo tiempo (si las dos faltan, el demonio suele actualizar los rastros de feromona). En este sentido, la selección de los parámetros iniciales y la configuración de los componentes del algoritmo pueden ser determinantes para el rendimiento del método, y es por esto que un buen algoritmo nunca se desprende de un buen conocimiento del problema. 3. ANT SYSTEM En la literatura se han propuesto diversos algoritmos que siguen la metaheurísticas ACO. Entre los algoritmos de ACO disponibles para problemas de optimización combinatoria NP-duros, se encuentran el Sistema de Hormigas (SH o Ant System (AS))

[6], el Sistema de Colonia de Hormigas (SCH o Ant Colony System (ACS)) [5], el Sistema de Hormigas Max-Min (SHMM, Max-Min Ant System) [9], el Sistema de la Mejor-Peor Hormiga (SMPH o Best-Worst Ant System) [3, 2]. En este trabajo se hará hincapié en el algoritmo Ant System, ya que a pesar de que los otros modelos presentan mejores resultados, la mayoría de éstos son modificaciones del algoritmo AS, por lo cual, desde el punto de vista de dar un entendimiento del funcionamiento de los algoritmos ACO, entender el modelo base es primordial. Tal y como se ha mencionado, fue el primer algoritmo de optimización de colonia de hormigas, Este algoritmo se realizo para la resolución del problema del viajante de comercio, problema de optimización combinatoria más tradicional y estudiado, buscando la ruta más corta para viajar a un conjunto de ciudades. El algoritmo trata de simular el comportamiento de las hormigas naturales. Este debe de ser capaz de admitir las tareas que realiza la hormiga y simular el comportamiento del conjunto. Se realizaron tres variantes del algoritmo según la forma de realizar el depósito de feromona en el medio. • Densidad: Se realizaba el depósito de feromona durante el transcurso del recorrido (actualización en línea paso a paso de feromona). La cantidad de feromona depositada era siempre constante. • Cantidad: Se realizaba el depósito de feromona durante el transcurso del recorrido (actualización en línea paso a paso de feromona). La cantidad de feromona depositada estaba relacionada a la deseabilidad heurística del tramo. • Ciclo: El depósito de feromona se realiza una vez finalizada una solución

Page 5: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

4

(actualización en línea a posteriori de feromona). Esta última variante es la que mejor resultados proporcionó y la que se conoce por Ant System (AS) ó Sistema de Hormigas (SH). 3.1 Estructura del algoritmo 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. A continuación cada hormiga de la colonia deposita una cantidad de feromona que es función de la calidad de su solución. Inicialmente, el SH no usaba ninguna acción en un segundo plano, pero es relativamente fácil, por ejemplo, añadir un procedimiento de búsqueda local para refinar las soluciones generadas por las hormigas. A grandes rasgos el algoritmo presenta el siguiente desarrollo:

Figura 1: Algoritmo AS

En palabras, el algoritmo es una ejecución continua hasta cumplir una condición de parada, ésta condición puede ser establecida de muchas maneras según el objetivo y la disponibilidad de recursos, ejemplos pueden ser un número de iteraciones especificada, hasta cuando no se note mejoría en la variable objetivo después de cierto número de iteraciones, etc. En cada ciclo se crea una hormiga que va cambiando de estado o nodo, de acuerdo a una probabilidad resultante de una función heurística y de la cantidad de feromona detectada en ese recorrido concreto (“Mover Hormiga”). Se puede decir, que la hormiga es un elemento simple, que se desplaza basándose en información local, tanto heurística, como la aportada por los elementos de la colonia (feromona). Las ciudades no se pueden repetir, por lo que cada hormiga tiene que tener una lista denominada tabú de las ciudades ya visitadas. Una vez determinada la probabilidad de las diferentes posibles rutas a tomar, la hormiga decide en función a estos valores ("Elección del movimiento"). Una vez elegido el nodo a visitar, se añade este a la lista de nodos visitados (lista tabú), repitiendo este proceso hasta finalizar la visita a todos los nodos. Una vez terminado un ciclo, se procede a realizar la evaporación de feromona depositada en los arcos de la red y la deposición de feromona sobre la solución obtenida ("Actualización de Feromona"). El ciclo se repite hasta la condición de fin establecida para el algoritmo. Las hormigas utilizan el depósito de feromonas para recordar su comportamiento, es decir, acumular el conocimiento que van adquiriendo del problema a resolver. En un primer momento, todos los arcos presentan la misma probabilidad y para ello se considera oportuno introducir un pequeño valor de feromona, cantidad que hace posible que caminos sin explorar también tengan probabilidad de ser recorridos. 3.1.1 Elección del movimiento

Page 6: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

5

En cada paso de construcción, una hormiga k escoge ir al siguiente nodo con una probabilidad que se calcula como:

Donde, Nk(r) son los nodos alcanzables por la hormiga k desde el nodo r. α y β son parámetros que ponderan la importancia de la heurística utilizada y los valores de feromona detectados. τrs representa el rastro de feromona entre los puntos r y s. ηrs representa el valor de la función heurística elegida, deseabilidad, que en el problema del agente viajero por lo general se utiliza el reciproco de la distancia entre los nodos. Cada hormiga k almacena la secuencia que ha seguido hasta el momento y su memoria Lk, tal como se explicó antes, se utiliza para determinar Nk(r) en cada paso de construcción. Volviendo a los parámetros a y β, su función es la que sigue: si α=0, aquellos nodos con una preferencia heurística mejor tienen una mayor probabilidad de ser escogidos, haciendo el algoritmo muy similar a un algoritmo voraz probabilístico clásico (con múltiples puntos de partida en caso de que las hormigas estén situadas en nodos distintos al comienzo de cada iteración). Sin embargo, si β=0, sólo se tienen en cuenta los rastros de feromona para guiar el proceso constructivo, lo que puede causar un rápido estancamiento, esto es, una situación en la que los rastros de feromona asociados a una solución son ligeramente superiores que el resto, provocando por tanto que las hormigas siempre construyan las mismas soluciones, normalmente óptimos locales. Por tanto es preciso establecer una adecuada proporción entre la información heurística y la información de los rastros de feromona.

3.1.1.1 Ejemplo gráfico de la elección del destino

Figura 2: Elección del primer movimiento

En un primer momento, cuando la hormiga llega al nodo P, siendo esta la primera en visitarlo, se encuentra con unos valores de feromona iguales para las tres rutas a seguir, en cambio las distancias a los siguientes puntos no son las mismas. Los valores de probabilidad para cada una de las tres posibles rutas para un valor de 1 tanto para α y β, son los siguientes:

La hormiga aleatoriamente, según las probabilidades obtenidas, elige el punto A para su ruta hacia el punto destino. Una vez alcanzado el destino, se realiza la actualización de feromona correspondiente. En cada arco perteneciente al recorrido seguido por la hormiga, se origina una variación del valor de la feromona. Feromona (P-A) : 0,01 0,015

Page 7: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

6

Figura 3: Actualización de feromona

Cuando llega otra hormiga al punto P tiene que realizar el cálculo de probabilidades con los nuevos valores existentes. Los cálculos para la obtención de los resultados serían los siguientes:

La hormiga también puede elegir la que teóricamente es la peor opción, ya que es una elección aleatoria. Este es el caso que se representa, donde la hormiga ha elegido la ruta hacia el punto B. Una vez concluida la ruta hasta el destino, se realiza la actualización correspondiente de feromona en la red. Feromona (P-B): 0,01 0,021

Figura 4: Actualización de probabilidades

Una tercera hormiga llega al punto P, en este caso ya se ha actualizado la cantidad de feromona debida

a la segunda hormiga. Con estos nuevos valores la hormiga obtiene las siguientes probabilidades de opción de desplazamiento.

Figura 5: Elección de la tercer hormiga

Los valores obtenidos, como se ha informado anteriormente, han resultado de los cálculos con unos valores para α y β de 1. Si por el contrario, se quiere dar menos importancia a la función heurística estableceríamos el valor de β por debajo de 1. En el ejemplo siguiente se considera un valor β de 0,7. Con esto se consigue una mayor exploración, las probabilidades de las diferentes opciones tienden a igualarse, dando más importancia a la cantidad detectada de feromona.

3.1.2 Actualización de la feromona Como se ha dicho, la deposición de feromona se realiza una vez que todas las hormigas han acabado de construir sus soluciones. Primero, los rastros de feromona asociados a cada arco

Page 8: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

7

se evaporan reduciendo todos los rastros de feromona en un factor constante:

Donde ρ ϵ [0,1] es la tasa de evaporación. El siguiente paso de cada hormiga es recorrer de nuevo el camino que ha seguido (el camino esta almacenado en su memoria local Lk) y deposita una cantidad de feromona τrs

k en cada conexión por la

que ha viajado:

Donde τrs

k= f(C(Sk)) es decir, la cantidad de feromona que se deposita depende de la calidad C(Sk) de la solución Sk construida por la hormiga k. Un aporte adicional realizado por los autores de AS es una versión extendida del algoritmo que normalmente mejoraba los resultados obtenidos, llamada AS elitista [6]. En el AS elitista, una vez que las hormigas han depositado feromona en las conexiones asociadas a sus respectivas soluciones, el demonio realiza una deposición adicional de feromona en las aristas que pertenecen a la mejor solución encontrada hasta el momento en el proceso de búsqueda. La cantidad de feromona depositada, que depende de la calidad de la mejor solución global, se incrementa en un factor e, que se corresponde con el número de hormigas elitistas que se consideran, tal como sigue:

4. JOB SHOP SCHEDULING PROBLEM El problema JSSP (Job Shop Scheduling Problem) que se estudia en este documento se compone de lo siguiente: dado un conjunto M que contiene |M| máquinas, y un conjunto J que contiene |J| trabajos, donde cada uno de los trabajos tiene una secuencia ordenada de operaciones a ser ejecutadas en las máquinas; El objetivo de la programación es ejecutar todas las operaciones minimizando el tiempo de completación de todas las actividades (el makespan), sujeto a las restricciones: (1) El orden de las operaciones es fijo; (2) Una máquina puede procesar un solo trabajo a la vez; (3) Todas los trabajos están

disponibles simultáneamente en el tiempo cero; (4) Las operaciones no pueden ser interrumpidas. Dado una instancia de un JSSP, esta se puede representar con un diagrama disyuntivo D=(V,A, E); donde V es un par de nodos ficticios que representan el inicio y el fin de la completación de todos los trabajos, A es el conjunto de nodos conjuntivos (dirigidos), y E es el conjunto de nodos disyuntivos (no dirigidos). El conjunto A se refiere a las relaciones de precedencia preestablecidas dentro de un trabajo (orden de las operaciones), y el conjunto E se refiere a las relaciones de precedencia no establecidas en cada máquina (orden de las actividades a ejecutar en cada máquina). En la Figura 6 se representa como ejemplo una instancia de un JSSP con M=4 y J=3

Figura 6: 3 Trabajos, 4 Máquinas JSSP

Este tipo de problemas, los cuales han sido estudiados ya por mucho tiempo, son clasificados como NP-Hard, y tienen la reputación de ser uno de los problemas combinatorios más difíciles que se han considerado. Un indicador que demuestra su dificultad y que ha sido muy trabajado, se da con el hecho de que la famosa instancia (M=10, J=10) que fue formulada por primera vez por Muth y Thompson en 1963, fue solucionada exactamente solo hasta 1989 por Carlier y Pinson usando un algoritmo de Branch and Bound. Aunque luego de esto, para esta y para instancias cada vez más complicadas, se han usado muchas técnicas avanzadas con muy buenos resultados, tales como, Tabu Search,

Page 9: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

8

La heurística Shifting Bottleneck, métodos de enumeración genética,etc.; En este documento se abordará el problema con ACO con el fin de probar las bondades de la Metaheurística. 4. 1 IMPLEMENTACIÓN DE ANT SYSTEM EN UN JSSP Para aplicar el algoritmo en estudio en un JSSP, se debe seguir la siguiente estructura: (1) Los términos en los que la información Heurística y la información de las feromonas son concebidas y que permiten la definición de las soluciones; (2) Un proceso de retroalimentación positiva; (3) Un método que garantice la factibilidad de las soluciones. 4.1.1 Modelamiento de la información Heurística y de la información de rastro de feromona La probabilidad con la que cada hormiga se mueve de un nodo a otro depende de la cantidad de feromona en los arcos y de la información heurística asociada con las operaciones conectadas por los arcos. Una cantidad inicial de feromona es depositada en todos los arcos, y este valor es renovado según las reglas de actualización de feromona establecidas, las cuales incluyen un término de evaporación. La información heurística guía el cálculo de las probabilidades de transición entre un nodo y otro, y es diferente a la heurística de distancia que se define para el algoritmo para el problema del Agente viajero. La Heurística para JSSP incluye varias formas, entre las cuales se incluyen: El tiempo de inicio mas corto (EST), el tiempo de finalización mas corto (EFT), el tiempo de procesamiento mas corto (SPT), el tiempo de procesamiento mas largo (LPT), etc. Blum y Samples observaron que el EST y el EFT son dos heurísticas con muy buen desempeño. Su cálculo sería como sigue: Utilizando EST

Utilizando EFT

Donde tes representa el EST del nodo O, y pij

representa su tiempo de procesamiento. Así, en este trabajo se ha elegido trabajar con el EFT, y según lo estudiado en la sección 3, en cada paso de construcción, una hormiga k escoge ir al siguiente nodo con una probabilidad que se calcula como:

Donde, Nk(r) son los nodos alcanzables por la hormiga k desde el nodo r. α y β son parámetros que ponderan la importancia de la heurística utilizada y los valores de feromona detectados, y que en este caso se han fijado en 1 y 5 respectivamente. 4.1.2 Proceso de retroalimentación positiva para la actualización de feromona Tal y como se estudio en la sección 3, la deposición de feromona se realiza una vez que todas las hormigas han acabado de construir sus soluciones. Primero, los rastros de feromona asociados a cada arco se evaporan reduciendo todos los rastros de feromona en un factor constante:

Donde ρ ϵ [0,1] es la tasa de evaporación, para este caso se le asigno un valor de 0.05. El siguiente paso de cada hormiga es recorrer de nuevo el camino que ha seguido (el camino esta almacenado en su memoria local Lk) y deposita una cantidad de feromona

rsk en cada conexión por la que ha viajado:

Page 10: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

9

En este caso se ha definido τrsk como un valor

constante de 0.05. 4.1.3 Factibilidad de las soluciones Inicialmente todas las hormigas están situadas en el nodo inicial y son libres de identificar una permutación cualquiera de todos los nodos, y al definir aleatoriamente la dirección de los arcos disyuntivos en un problema JSSP en un grafo cómo el visto en la Figura 6, es claro que no siempre se obtendrán soluciones factibles. Para hacer frente a este problema, las probabilidades de transición deben ser ligeramente modificadas: con el fin de tener permutaciones factibles es necesario restringir el conjunto de nodos posibles a elegir en cada paso, este conjunto no debe constar de todos los nodos que faltan por ser visitados, sino que debe ser un subconjunto de esta lista Tabú general, cuyos elementos (nodos) deben tener la característica de que todos sus nodos precedentes ya han sido visitados. Definiendo G como el conjunto de todos los nodos por ser visitados y S como el conjunto de todos los nodos cuyos predecesores ya han sido desarrollados. En el primer paso G contiene todos los nodos menos el inicial y S contiene todos los nodos que representan la primera operación de un trabajo. Así, las probabilidades de transición se calculan teniendo en cuenta el conjunto S de nodos. Cuando un nodo es seleccionado, este es retirado de la lista de G y de S; si el nodo escogido no es el ultimo nodo en un trabajo, entonces su sucesor inmediato en la cadena es adicionado al conjunto S. El proceso itera hasta que el conjunto G se haga vacío. El siguiente ejemplo ayuda a visualizar las posibles decisiones sucesivas tomadas por una hormiga y la solución que esta construye. (El ejemplo corresponde a un JSSP 3x4)

Figura 7: Paso inicial elección de los movimientos

En la figuras, los nodos pertenecientes a S están marcados con una S y los nodos en G son simplemente todos los que no han sido visitados. Supóngase que la hormiga escoge ir al nodo u11; la nueva situación es como sigue.

Figura 7: Paso 1 elección de los movimientos

Ahora, suponiendo que la hormiga continúa hacia u31:

Figura 8: Paso 2 elección de los

movimientos

Luego, la hormiga va hacia u12, lo que introduce a u13 en S.

Page 11: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

10

Figura 9: Paso 3 elección de los movimientos

Supóngase que la solución final es la siguiente:

Figura 10: Solución final elección de los movimientos Esta es una ruta completa: La próxima iteración empezará el proceso de nuevo, con todas las hormigas en el nodo inicial. La permutación identificada es u11 u31 u12 u13 u21 u32 u22 u33 u23 u24 u34 u14; esta permutación corresponde al siguiente grafo factible direccionado.

Figura 11: Grafo factible obtenido CONCLUSIONES Mediante la revisión bibliográfica que se ha llevado a cabo en este trabajo, se ha podido constatar que los algoritmos basados en colonia de hormigas constituyen una herramienta bastante satisfactoria para resolver problemas NP-Hard, y que además este tipo de algoritmos son hoy en día objeto de investigación de muchos autores, por lo cual

constantemente se están generando mejoras y adaptaciones a diferentes tipos de problemas. Por otro lado, producto de la revisión de la estructura de este tipo de problemas, se ha podido observar que la selección de los parámetros iniciales y la configuración de los componentes del algoritmo pueden ser determinantes para el rendimiento del método, y es por esto que un buen algoritmo nunca se desprende de un buen conocimiento del problema, pues por ejemplo, de éste conocimiento se puede tener mejor criterio para decidir si priorizar la información heurística o la información de los rastros de feromona, o para formular la heurística adecuada para el problema. En general, la mayoría de los algoritmos basados en colonia de hormigas, son una modificación o adaptación del modelo AS, donde las diferencias radican en las acciones del demonio, en las heurísticas de búsqueda local complementarias usadas, y en la metodología de deposición y evaporación de feromona. Aunque el modelo AS ya ha sido mejorado por otros modelos, por ser este la base sobre la cual se desarrollaron estos mismos, el entendimiento de este es fundamental para comprender la filosofía y el funcionamiento de la mayoría de modelos basados en colonia de hormigas. En general, los algoritmos ACO son una muy buena opción para tratar problemas de camino mínimo, de secuenciación y de calendarización; en este trabajo particular, se pudo constatar las bondades de este modelo en un JSSP, obteniendo muy buenos resultados de forma eficiente. Para este trabajo se fijaron los parámetros del algoritmo según los resultados encontrados por Fox, Xiang y Pueh [11], en su trabajo para un JSSP; sin embargo, es recomendable estudiar estos, con el fin de encontrar la combinación de ellos que en general puede arrojar mejores resultados, lo cual se podría

Page 12: Optimización Basada en OPTIMIZACIÓN BASADA EN COLONIA DE HORMIGAS

11

abordar desde un estudio de diseño de experimentos. REFERENCIAS [1] Alonso, Cordon, ed ol. La Metaheurística de Optimización Basada en Colonias de Hormigas: Modelos y Nuevos Enfoques. [2] Cordón, I. Fernández de Viana, F. Herrera, y L. Moreno. A new ACO model integrating evolutionary computation concepts: The Best-Worst Ant System. En M. Dorigo, M. Middendorf, y T. Stützle, editores, Abstract proceedings of ANTS2000 - From Ant Colonies to Artificial Ants: A series of International Workshops on Ant Algorithms, páginas 22-29. IRIDIA, Université Libre de Bruxelles, Belgium, 2000. [3] Cordón, F. Herrera, L. Moreno. Integración de Conceptos de Computación Evolutiva en un Nuevo Modelo de Colonias de Hormigas. VIII Conferencia de la Asociación Española para la Inteligencia Artificial, (Seminario Especializado en Computacion Evolutiva), Murcia (España), 1999, Vol. II, páginas 98-105. [4] Dorigo, Vittorio Maniezzo, Alberto Colorni; The Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics, 1996 Part-B, Vol 26, Nº 1 pp 1-13 [5] Dorigo y L. M. Gambardella. Ant Colony System: A cooperative learning approach to the traveling salesman problem. IEEE Transactions on Evolutionary Computation, 1: 1, páginas 53-66, 1997. [6] Dorigo, V. Maniezzo, y A. Colorni. The Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics - Part B, 26: 1, páginas 29-41, 1996 [7] Goss, S. Aron, J. L. Deneubourg, y J. M. Pasteels. Self-organized shortcuts in the Argentine ant. Naturwissenschaften, 76, páginas 579-581, 1989. [8] Pasteels, J.-L. Deneubourg, y S. Goss. Self-organization mechanisms in ant societes

[9] Stützle y H. H. Hoos. MAX-MIN Ant System. Future Generation Computer Systems, 16: 8, páginas 889-914, 2000. [10] Blum C, Sampels M (2002) Ant colony optimization for FOP shop scheduling: a case study on different pheromone representations. Proc 2002 Congress on Evolutionary Computation (CEC’02), pp 1558–1563 [11] Bud Fox, Wei Xiang and Heow Pueh Lee. Industrial applications of the ant colony optimization algorithm. The International Journal of Advanced Manufacturing Technology. Volume 31, Numbers 7-8 (2007), 805-814 [12] A Colorni, M Dorigo, V Maniezzo, M Trubian. Ant system for job-shop scheduling. "Belgian Journal of Operations Research, Statistics and Computer Science".Vol 34, Nº 1, pp 39-53,1994.