Imitación a las Hormigas

1,004
-1

Published on

Son las diferentes teorías de imitación de las hormigas

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,004
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Imitación a las Hormigas

    1. 1. Ant Colony Optimization A new Meta-Heuristic Marco Dorigo Gianni Di Caro
    2. 2. Agenda <ul><li>Introducción </li></ul><ul><ul><li>Autores </li></ul></ul><ul><ul><li>Inspiración </li></ul></ul><ul><li>Modelado </li></ul><ul><ul><li>Problemas </li></ul></ul><ul><ul><li>Rastro de Feromona (memoria colectiva) </li></ul></ul><ul><ul><li>Hormigas </li></ul></ul><ul><li>Pseudocódigo </li></ul><ul><ul><li>ACO </li></ul></ul><ul><ul><li>Actividad de las Hormigas </li></ul></ul><ul><li>Aplicaciones </li></ul><ul><ul><li>TSP </li></ul></ul><ul><ul><li>Tráfico en Redes </li></ul></ul><ul><ul><li>QAP </li></ul></ul><ul><li>Conclusión </li></ul>
    3. 3. Introducción <ul><li>Université Libre de Bruxelles </li></ul><ul><ul><li>Marco Dorigo </li></ul></ul><ul><ul><li>Gianni Di Caro </li></ul></ul><ul><li>En 1991, primer sistema AS, para resolver TSP. </li></ul><ul><li>Lo último anterior a este trabajo es una aplicación al ruteo en redes de Di Caro y Dorigo, 1998. </li></ul><ul><li>Para muchos de los problemas tratados, Ant Systems proporciona resultados comparables con los mejores obtenidos con otras heurísticas. </li></ul>Autores y sus trabajos
    4. 4. Introducción <ul><li>ACO se inspira en observaciones de las hormigas. </li></ul><ul><li>La colonia tiene un grado de organización alto, comparado con la simplicidad del individuo. </li></ul><ul><li>Coordinación indirecta por medio de los rastros de feromona. </li></ul><ul><li>Exploración paralela del ambiente. </li></ul>Idea
    5. 5. <ul><li>Se puede resumir los algoritmos ACO, como un conjunto de agentes concurrentes y asincrónicos (colonia de hormigas) que se mueven a través de un espacio de estados correspondientes a soluciones parciales del problema a resolver. </li></ul><ul><li>Se mueven aplicando políticas de decisión locales estocástcias basadas en dos parámetros: </li></ul><ul><ul><li>un valor heurístico que depende del modelado del problema. </li></ul></ul><ul><ul><li>un valor que incorpora el conocimiento global </li></ul></ul>Introducción Formalización
    6. 6. Modelado del Problema <ul><li>C = {c 1 ,c 2 ,.....,c n } conjunto finito de componentes . </li></ul><ul><li>L = {l c1c2 /(c 1 ,c 2 )  C }, cone x iones o transiciones . C es un subconjunto del producto cartesiano CxC. |L|  N c 2 </li></ul><ul><li>J ci,cj  J(l cicj ,t) , función que asocia costos a las aristas . </li></ul><ul><li>   (C,L,t) conjunto finito de restricciones asignadas a elementos de C y L. </li></ul><ul><li>s = (c i ,c j ,…,c k ,…) estado del problema. </li></ul><ul><li>S = estados posibles. </li></ul><ul><li>S = estados factibles f(S,  ) . </li></ul>
    7. 7. <ul><li>N s es la estructura de vecindad : si s 1 y s 2 son dos estados, s 2 es vecino de s 1 si ambos están en S y s 2 puede obtenerse a partir de s 1 en un único paso lógico . Si c 1 es el último componente de s 1 , debe existir un componente c 2  C, tal que l c1c2  L y s 2 = (s 1 ,c 2 ) </li></ul><ul><li> es una solución , si es un elemento de S y satisface todos los requerimientos del problema. </li></ul><ul><li>J  (L,t) define el costo asociado a cada solución . Es una función de los costos J cicj de todas las cone x iones pertenecientes a la solución. </li></ul>Modelado del Problema
    8. 8. Feromona <ul><li>Codificación de l a información recolectada : por las hormigas , durante el proceso de búsqueda , almacenada como rastros de feromona asociados a los arcos. </li></ul><ul><li>Lectura: Ante cada decisión una hormiga utiliza : </li></ul><ul><ul><ul><li>información propia </li></ul></ul></ul><ul><ul><ul><li>del nodo en que se encuentra </li></ul></ul></ul><ul><ul><ul><li>de los arcos adyacentes ( feromona ) . </li></ul></ul></ul><ul><li>Escritura: Para cada arco transitado por una hormiga, ésta deja el rastro de feromona. </li></ul>Feromona como memoria de largo plazo
    9. 9. Feromona <ul><li>Propicia la interacción indirecta entre la colonia : A cada hormiga se le hace difícil llegar a la solución óptima. E ncontrar buenas soluciones depende de la interacción entre la colonia por medio de la información que ellas leen y escriben en los arco s por lo que pasan , mediante los rastros de feromona . </li></ul><ul><li>Percepción de la colonia: L as hormigas modifican la forma en que el problema es representado y per cibido p o r las demás hormigas, pero no se adaptan ellas mismas. </li></ul><ul><li>Memoria a largo plazo . </li></ul>Feromona como base de la interacción
    10. 10. Modelado de las Hormigas <ul><li>Objetivo : buscar en forma constructiva, una solución factible de costo mínimo. </li></ul><ul><li>Movimientos: desde un estado s r =(s r-1 ,i), puede moverse a cualquier nodo j de su vecindad factible, definida como N i k = { j/j  N i  (s r ,j)  S } </li></ul><ul><li>M emoria M k : usada para almacenar el camino recorrido. Se usa para la construcción y evaluación de las soluciones y para volver atrás. </li></ul><ul><li>Condiciones de comienzo y fin: A cada hormiga k se le puede asignar un estado de comienzo y una o más condiciones de fin ( e k ). </li></ul>Propiedades
    11. 11. Modelado de las Hormigas <ul><li>C omienz o: C ada una de sde u n estado inicial </li></ul><ul><li>(puede o no ser el mismo para todas) </li></ul><ul><li>D esplaza miento: A estados en la vecindad factible , de acuerdo a una regla de decisión probabilística . </li></ul><ul><li>Final: El proceso de construcción termina cuando la hormiga cumple al menos una de las condiciones de fin. </li></ul><ul><li>Muerte: Luego de cumplidas estas actividades , codifica su aporte a la colonia y muere, liberando todos los recursos. </li></ul>Ciclo de Vida
    12. 12. <ul><li>La regla de decisión probabilística de las hormigas es una función de: </li></ul><ul><ul><li>Un valor almacenado en tabla de ruteo, obtenido a partir del valor de feromona del arco considerado y un valor heurístico.  i =[a ij ], a ij = f (  ij ,  ij ) </li></ul></ul><ul><ul><li>La memoria privada de las hormigas, que almacena su pasado. </li></ul></ul><ul><ul><li>Restricciones del problema. </li></ul></ul>Modelado de las Hormigas Regla de decisión probabilística de movimiento
    13. 13. Actualización de la Feromona <ul><li>A ctualización on-line paso a paso : Cada hormiga al moverse de un nodo i, a un nodo j, actualiza el valor de la feromona  ij del arco (i,j). </li></ul><ul><li>Actualización on-line retardada : Una vez construida una solución, rehace n el camino en sentido inverso, actualizando el valor de la feromona de cada arco recorrido. </li></ul>Modelado de las Hormigas
    14. 14. Intensificación vs. Diversificación. <ul><li>Intensificación: A través de las reglas de actualización de la feromona que van reforzando las buenas soluciones. </li></ul><ul><li>Diversificación: implementado a través de: </li></ul><ul><ul><li>mecanismo probabilístico de construcción de las soluciones. </li></ul></ul><ul><ul><li>Evaporación de la feromona. </li></ul></ul><ul><li>Migración: Comienza con alta D y baja I. A medida que evoluciona, la búsqueda se intensifica hacia los caminos con mayores índices de feromona. </li></ul>
    15. 15. Pseudocódigo <ul><li>procedure ACO meta-heuristic() </li></ul><ul><li>while (termination _ criterion _ not _ satisfied) </li></ul><ul><li>schedule _ activities </li></ul><ul><li>ants _ generation _ and _ activity(); </li></ul><ul><li>pheromone _ evaporation(); </li></ul><ul><li>daemon _ actions(); [ op c ional ] </li></ul><ul><li>end schedule _ activities </li></ul><ul><li>end while </li></ul><ul><li>end procedure </li></ul>procedure ACO meta-heuristic() while ( termination _ criterion _ not _ satisfied ) schedule _ activities ants _ generation _ and _ activity(); pheromone _ evaporation(); daemon _ actions(); [ op c ional ] end schedule _ activities end while end procedure procedure ACO meta-heuristic() while (termination _ criterion _ not _ satisfied) schedule _ activities ants _ generation _ and _ activity(); pheromone _ evaporation(); daemon _ actions(); [ op c ional ] end schedule _ activities end while end procedure procedure ACO meta-heuristic() while (termination _ criterion _ not _ satisfied) schedule _ activities ants _ generation _ and _ activity(); pheromone _ evaporation(); daemon _ actions(); [ op c ional ] end schedule _ activities end while end procedure procedure ACO meta-heuristic() while (termination _ criterion _ not _ satisfied) schedule _ activities ants _ generation _ and _ activity(); pheromone _ evaporation(); daemon _ actions(); [ op c ional ] end schedule _ activities end while end procedure
    16. 16. A nts G eneration And A ctivity <ul><li>P rocedure A nts _G eneration _And_A ctivity() </li></ul><ul><li>W hile ( A vailable R esources) </li></ul><ul><li>s chedule _c reation _of_n ew _a nt(); </li></ul><ul><li>n ew _a ctive _a nt(); </li></ul><ul><li>E nd W hile </li></ul><ul><li>E nd P rocedure </li></ul>P rocedure A nts _G eneration _And_A ctivity() W hile ( A vailable R esources) s chedule _c reation _of_n ew _a nt(); n ew _a ctive _a nt(); E nd W hile E nd P rocedure
    17. 17. new active ant() <ul><li>while (current state  target state) </li></ul><ul><li>A = read local ant-routing table(); </li></ul><ul><li>P = compute transition probabilities(A; M;  ); </li></ul><ul><li>next state = apply ant decision policy(P;  ); </li></ul><ul><li>move to next state(next state); </li></ul><ul><li>if (online step-by-step pheromone update) </li></ul><ul><li>deposit pheromone on the visited arc(); </li></ul><ul><li>update ant-routing table(); </li></ul><ul><li>end if </li></ul><ul><li>M = update internal state(); </li></ul><ul><li>end while </li></ul>if (online delayed pheromone update) foreach visited _ arc   do d eposit pheromone on the visited arc(); update ant-routing table(); end foreach end if procedure new active ant() initialize ant(); M = update ant memory(); Desplazarse Dejar Aprendizaje a la Colonia die(); end procedure
    18. 18. Aplicaciones <ul><li>TSP (problema del vendedor viajero) </li></ul><ul><li>Ruteo en redes de comunicación </li></ul><ul><li>QAP </li></ul><ul><li>VRP y VRPTW </li></ul><ul><li>Ordenamiento Secuencial </li></ul><ul><li>Job-shop scheduling </li></ul><ul><li>Mayor Super-Secuencia Común </li></ul><ul><li>Asignamiento Generalizado </li></ul>
    19. 19. Aplicaciones – ACO-TSP <ul><li>Descripción y Objetivo: Dada una ciudad inicial y n ciudades a visitar, encontrar un circuito Hamiltoniano de costo mínimo, sujeto a ciertas restricciones. </li></ul><ul><li>Motivación: Fue el primer problema en ser atacado por medio de ACO porque es: </li></ul><ul><ul><li>Relativamente fácil de adaptar la metáfora de la colonia de hormigas al problema </li></ul></ul><ul><ul><li>Un problema de difícil solución (NP-Hard) </li></ul></ul><ul><ul><li>Uno de los problemas de optimización combinatoria más estudiados </li></ul></ul><ul><ul><li>Conocido y fácil de exponer y explicar </li></ul></ul>Nociones Generales
    20. 20. Aplicaciones – ACO-TSP Modelado <ul><li>C = Conjunto de ciudades </li></ul><ul><li>L = Conjunto de conexiones entre ciudades </li></ul><ul><li>J cicj = Distancias entre c i y c j,  c i ,c j  C </li></ul><ul><li>La ciudad inicial para cada hormiga es elegida aleatoreamente </li></ul><ul><li>Actualización de la feromona: Solo retardada </li></ul><ul><li>La evaporación de feromona se hace luego de que todas las hormigas terminan su tour </li></ul>
    21. 21. Aplicaciones – ACO-TSP <ul><li>Se posicionan en paralelo m hormigas en m ciudades, elegidas aleatoreamente. </li></ul><ul><li>Se inicializa la memoria M k con esa ciudad. </li></ul><ul><li>Comienza un ciclo hasta que cada hormiga complete un tour: </li></ul><ul><ul><li>Buscar la vecindad factible del nodo actual. </li></ul></ul><ul><ul><li>Leer las entradas a ij de la tabla de ruteo. </li></ul></ul><ul><ul><li>Calcular las probabilidades de transición p ij k (t). </li></ul></ul><ul><ul><li>Aplicar la regla de decisión para elegir una ciudad a la que desplazarse. </li></ul></ul><ul><ul><li>Realizar el desplazamiento. Actualizar la memoria local. </li></ul></ul><ul><li>Una vez terminado el tour, actualiza la feromona del recorrido y termina su ejecución. </li></ul>Comportamiento de las hormigas <ul><li>Se posicionan en paralelo m hormigas en m ciudades, elegidas aleatoreamente. </li></ul><ul><li>Se inicializa la memoria M k con esa ciudad. </li></ul><ul><li>Comienza un ciclo hasta que cada hormiga complete un tour: </li></ul><ul><ul><li>Buscar la vecindad factible del nodo actual </li></ul></ul><ul><ul><li>Leer las entradas a ij de la tabla de ruteo </li></ul></ul><ul><ul><li>Calcular las probabilidades de transición p ij k (t) </li></ul></ul><ul><ul><li>Aplicar la regla de decisión para elegir una ciudad a la que desplazarse. </li></ul></ul><ul><ul><li>Realizar el desplazamiento. Actualizar la memoria local. </li></ul></ul><ul><li>Una vez terminado el tour, actualiza la feromona del recorrido y termina su ejecución. </li></ul>
    22. 22. Aplicaciones – ACO-TSP Toma de decisiones e interacción entre la colonia... leer los a ij de A i probabilidades de transición actualizar rastros de feromona evaporación de feromona <ul><li> = 1 </li></ul><ul><li> = 5 </li></ul><ul><li> = 0.5 </li></ul>
    23. 23. <ul><li>Aplicación posterior a TSP. </li></ul><ul><li>Utilizado para encontrar el optimo en la transferencia de DATOS en redes. </li></ul><ul><li>Distribuido y no sincronizado. </li></ul><ul><li>Rutear es difícil porque los costos son dinámicos. </li></ul><ul><li>Motivación: encontrar R i = [r ijd ] para cada nodo. </li></ul>Aplicaciones – AntNet Notas Generales
    24. 24. Aplicaciones – AntNet <ul><li>Se modela cada nodo de la red como un nodo de un grafo G(C,L). </li></ul><ul><li>C = Nodos de la red. </li></ul><ul><li>L = “links” entre nodos, su valores estan relacionados con las propiedades físicas del canal y el trafico por el mismo. </li></ul>Modelado
    25. 25. <ul><li>Cada Hormiga busca un “camino” ente 2 nodos con costo mínimo. </li></ul><ul><ul><li>Hormiga(origen,destino) </li></ul></ul><ul><li>Cada Hormiga parte de un nodo distinto , desplazándose de uno a otro, hacia su destino. </li></ul><ul><li>En cada paso debe optar ente los arcos factibles, esta decisión esta basada en la M k y en la tabla de ruteo de cada nodo. </li></ul>Aplicaciones – AntNet Modelado
    26. 26. Feromonas <ul><li>En esta aplicación la feromona de un arco esta en relación con la calidad del camino desde el nodo actual al destino. </li></ul><ul><li>El valor  ijd  [0,1] con i actual, j pr ó ximo, d destino. </li></ul><ul><li>A diferencia de TSP se genera una estructura bidimensional para el ruteo del nodo y las feromonas </li></ul>Aplicaciones – AntNet
    27. 27. Valores heurísticos <ul><li>Para cada arco se coloca valor inicial, n ij  [0,1], independiente del destino. </li></ul><ul><li>q en este problema representa el largo de la cola de bits para enviar por el link. </li></ul><ul><li>El efecto es desestimar los caminos mas congestionados. </li></ul>Aplicaciones – AntNet
    28. 28. Ruteo del nodo <ul><li>Cada nodo tiene su tabla de ruteo y depende de n ij y  ijd </li></ul><ul><li>Con un factor w  [0,1] se da mas peso a uno u otro. </li></ul>Aplicaciones – AntNet
    29. 29. Decisión de la Hormiga <ul><li>La Hormiga decide entre los adyacentes, no visitados (que no están en M k ). </li></ul><ul><li>Los adyacentes factibles tienen p ijd(t) </li></ul><ul><ul><li>p ijd(t) = a ijd(t) ,valor de tabla de ruteo (no visitados). </li></ul></ul><ul><ul><li>p ijd(t) = 0, adyacentes ya visitados. </li></ul></ul><ul><ul><li>p ijd(t) = 1/|N i |, si no hay caminos posibles (fueron ya todos visitados). </li></ul></ul>Aplicaciones – AntNet
    30. 30. Actualizaciones <ul><li>Las Hormigas se mueven como se moverían los datos en la red. </li></ul><ul><li>Igual que los bits reales tienen retraso para su viaje hacia el destino. </li></ul><ul><li>Una vez que la Hormiga llega a destino, regresa hacia atrás, depositando feromonas. </li></ul>Aplicaciones – AntNet
    31. 31. Actualización <ul><li>T sd es una medida del tiempo que insume la ruta de i a d vía j. Mide lo “buen a que es una ruta”. </li></ul><ul><li>El incremento de feromona es proporcional al inverso de T sd . </li></ul><ul><li>Se coloca la feromona al final, porque hay que tener el valor de T sd </li></ul><ul><li>S e lleva cabo la evaporación, por un factor de normalización, </li></ul><ul><li>N o hay “D ae mon” para modificar las feromonas depositadas en los arcos. </li></ul>Aplicaciones – AntNet
    32. 32. Tabla de Ruteo resultado <ul><li>Durante la ejecución de AntNet, las Hormigas van modificando las tablas de ruteo de cada nodo para optimizar la transferencia de datos por la red. </li></ul><ul><li>Estas tablas son usadas al rutear los datos a ser transmitidos por la red. </li></ul>Aplicaciones – AntNet
    33. 33. Conclusiones <ul><li>AntSystems se aplica bien para problemas Optimización Combinatoria, donde la dimensíón del espacio completo de soluciones es exponencial con respecto a la dimensión de la representación del problema. Problemas NP-Hard </li></ul><ul><li>Noción de secuencia o distancia. </li></ul><ul><li>Problemas que cambian en t </li></ul>
    34. 34. Conclusiones <ul><li>Fácil de paralelizar, propio del mecanismo </li></ul><ul><li>Esta metaheurística se ha comprobado, según Gambardella, como altamente competitiva en: </li></ul><ul><ul><li>MACS-VRPTW: Vehicle Routing Problem with Time Windows </li></ul></ul><ul><ul><li>HAS-QAP: Quadratic Assignment Problem </li></ul></ul><ul><ul><li>HAS-SOP: Sequential Ordering Problem </li></ul></ul><ul><ul><li>Flexible Job Shop Problem </li></ul></ul>
    35. 35. Preguntas <ul><li>¿? </li></ul>

    ×