Algoritmo Colonia de Hormigas

Algoritmo Colonia de hormigas David Sebastián López Universidad Tecnológica de Pereira Introducción La teoría de opt

Views 85 Downloads 17 File size 153KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Algoritmo Colonia de hormigas

David Sebastián López

Universidad Tecnológica de Pereira

Introducción La teoría de optimización por colonia de hormigas o OCH (Ant Colony Optimization), fue introducida por Marco Dorigo en los inicios de 1990 como herramienta para la solución de problemas de optimización complejos. La OCH pertenece a la clase de métodos heurísticos, los cuales son algoritmos aproximados utilizados para obtener soluciones lo suficientemente buenas a problemas complejos en una cantidad razonable de tiempo de cómputo. El algoritmo esta inspirado en el comportamiento de las hormigas en su entorno natural. En este, una hormiga que busca comida inicialmente explora el área alrededor de su nido de una forma aleatoria. Tan pronto encuentran fuentes de alimento, evalúan su cantidad y calidad, y llevan algunas partes de esta comida al nido. Mientras regresan las hormigas van dejando un rastró de feromonas que sirve como referencia futura. La cantidad de feromonas dependerá de la cantidad y calidad del alimento encontrado. Este algoritmo de comunicación puede ser utilizado para mejorar los tiempos de cómputo para la solución de una aplicación específica. La colonia de hormigas al igual que otras sociedades de insectos esta enmarcada en los sistemas distribuidos. Estos sistemas se definen como una colección de entidades separadas físicamente pero conectadas entre sí.

La mejor forma para abordar cómo las hormigas utilizan el camino con la mayor cantidad de feromonas para encontrar su alimento es con un ejemplo práctico. En la figura 1 un grupo de hormigas llegan a un cruce y tiene que decidir una dirección. Ya que ambos caminos son nuevos la elección es aleatoria así que se puede suponer que la mitad de las hormigas se dirigen a un lado y la otra mitad al otro.

Figura 1 Ya que el camino inferior es más corto acumula una mayor cantidad de feromonas y gradualmente influencia las decisiones de las hormigas nuevas. Esto crea una retroalimentación positiva que ocasiona que se acumulen muchas más feromonas por ese camino(Figura 2).

Figura 2 Finalmente todas las hormigas terminaran transitando el camino más corto.

Figura 3

Algoritmos de optimización basados en colonias de hormigas Este algoritmo esta compuesto por agentes computacionales que trabajan de manera conjunta para poder comunicarse a través de rastros de feromonas artificiales. Para cada ciclo cada hormiga construye su propia solución al problema a través de un grafo. Cada arista representa las posibles opciones que puede tomar y tiene asociada el siguiente tipo de información: • Información heurística: en ésta se mide la preferencia heurística que tienen las hormigas para moverse de un nodo a otro. El camino recorrido de un nodo a otro es una arista. Esta información no es modificada durante la ejecución del algoritmo. • Rastros de feromonas: en ésta se mide la calidad del recorrido de un nodo a otro tal como lo harían las feromonas reales. Esta información se actualiza constantemente mientras se ejecuta el algoritmo dependiendo de las soluciones encontradas.

Cada hormiga es un agente independiente y solo se comunican indirectamente por “feromonas”. Sin embargo todas se comportan de la misma forma basada en series de parámetros y constan de las siguientes propiedades: • Encuentra soluciones válidas con el menor costo. • Tiene una memoria que almacena información de los caminos recorridos, la cual puede ser utilizada para construir soluciones válidas, evaluar la solución generada y reconstruir el camino que ha seguido la hormiga.

• Posee un estado inicial, el cual corresponde a una secuencia unitaria y una o más condiciones de parada asociadas. Existen dos ecuaciones importantes a tener en cuenta para emular el comportamiento de una colonia de hormigas real. Estas son:

Probabilidad de seleccionar un camino Asociado a la información heurística representa el camino recorrido por experiencia de la hormiga.

Ecuación 1

Cantidad de feromonas (Rastros de feromonas) Es la información asociad al rastro de feromonas de la hormiga y esta en constate cambio

Ecuacion 2

Aplicación Visto de forma práctica podemos considerar el siguiente ejemplo de un problema que soluciona este algoritmo(agente viajero). Tenemos una serie de caminos y estamos buscando la ruta más corta desde un punto A hasta un punto B.

Lo primero que hacemos es identificar la longitud, visibilidad y un número de feromonas inicial para cada camino. Las longitudes ya vienen dadas, la visibilidad la podemos calcular como el inverso de la longitud y para feromonas iniciales podemos dar un valor arbitrario. Caminos 1-2 1-3 1-6 2-7 2-3 6-3 6-5 3-7 3-5 5-4 7-4

Longitudes

Visibilidad

5 3.1 5.2 5.2 4.9 3.2 4.7 3 6 5.5 4.8

1/5 1/3.1 1/5.2 1/5.2 1/4.9 1/3.2 1/4.7 1/3 1/6 1/5.5 1/4.8

0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1

Inicialmente utilizaremos dos hormigas h1 y h2.

Para h1 inicialmente solo existen tres posibles caminos (1-2,1-3,1-6) así que calculamos las probabilidades de cada una. Caminos 1-2

0,02

0,2799

1-3 1-6

0,0322 0,0192 0,07143

0,4508 0,2687

Luego representamos estas probabilidades en intervalos dentro de una línea y seleccionamos un valor aleatorio entre 0 y 1 para escoger un camino.

El valor aleatorio para este caso seria 0,4392 lo que significa que cae en el intervalo 13.Luego iteramos de nuevo.

Segunda iteración Caminos 2-3 6-3 3-7 3-5

0,0204 0,0312 0,0333 0,0166 0,01016

0,2006 0,3075 0,3280 0,1639

Luego repetimos el proceso hasta llegar al final. La ruta para h1 es: 1-3-6-5-4 Y el costo total del camino seria: 16.5. Siguiendo el mismo proceso para h2 tenemos que la ruta es: 1-3-5-4 y el costo total seria 14.6. Ahora vamos a actualizar el aporte de feromonas para cada camino utilizando. Con igual a 0,01. Caminos

1-2 1-3 1-6 2-7 2-3 6-3 6-5 3-7 3-5 5-4 7-4

0,099 0.099 0.099 0.099 0.099 0.099 0.099 0.099 0.099 0.099 0.099

H1

H2

0 0,0606 0 0 0 0.0606 0.0606 0 0 0.0606 0

0 0.0685 0 0 0 0 0 0 0.0685 0.0685 0

0.099 0,2276 0.099 0.099 0.099 0.1596 0.1596 0.099 0.1596 0.1596 0.099

Una vez actualizado todo el proceso se repite utilizando Hn hormigas. Cabe resaltar que este no es el algoritmo más óptimo para tratar el problema del agente viajero. Conclusiones Al culminar la investigación, es claro que el modelado mediante simulación demostró ser una técnica muy flexible y, en general, de fácil aplicación, además el algoritmo para optimización por colonia de hormigas aunque no sea el más idóneo para tratar el problema del agente viajero puede ser aplicado a otros tipos de algoritmos de optimización combinatorios. Su principal ventaja frente a otros algoritmos es que el grafo generado puede cambiar su estructura de manera dinámica, el algoritmo de colonia de hormigas puede seguir corriendo continuamente y adaptar los cambios en tiempo real.

Bibliografía

Alonso, S. et ál. (2004), La metaheurística de optimización basada en colonias de hormigas: modelos y nuevos enfoques, Granada, Departamento de Ciencias de la Computación e Inteligencia Artificial, Universidad de Granada Optimización por colonia de Hormigas: aplicaciones y Tendencias (2010), Carlos Arturo Robles Algarín. Optimización y redes neuronales, Adenzo Díaz. (1996). Editorial Paraninfo. Introducción a la inteligencia artificial, Julio Hernando Vargas, Universidad Tecnológica de Pereira.