360 likes | 607 Views
Ant Colony Optimization. A new Meta-Heuristic Marco Dorigo Gianni Di Caro. Agenda. Introducción Autores Inspiración Modelado Problemas Rastro de Feromona (memoria colectiva) Hormigas Pseudocódigo ACO Actividad de las Hormigas Aplicaciones TSP Tráfico en Redes QAP Conclusión.
E N D
Ant Colony Optimization A new Meta-Heuristic Marco Dorigo Gianni Di Caro Grupo 8 – Berger y Casarini
Agenda • Introducción • Autores • Inspiración • Modelado • Problemas • Rastro de Feromona (memoria colectiva) • Hormigas • Pseudocódigo • ACO • Actividad de las Hormigas • Aplicaciones • TSP • Tráfico en Redes • QAP • Conclusión
Introducción Autores y sus trabajos • Université Libre de Bruxelles • Marco Dorigo • Gianni Di Caro • En 1991, primer sistema AS, para resolver TSP. • Lo último anterior a este trabajo es una aplicación al ruteo en redes de Di Caro y Dorigo, 1998. • Para muchos de los problemas tratados, Ant Systems proporciona resultados comparables con los mejores obtenidos con otras heurísticas.
Introducción Idea • ACO se inspiraen observaciones de las hormigas. • La colonia tiene un grado de organización alto, comparado con la simplicidad del individuo. • Coordinación indirecta por medio de los rastros de feromona. • Exploración paralela del ambiente.
Introducción Formalización • 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. • Se mueven aplicando políticas de decisión locales estocástcias basadas en dos parámetros: • un valor heurístico que depende del modelado del problema. • un valor que incorpora el conocimiento global
Modelado del Problema • C = {c1,c2,.....,cn} conjunto finito de componentes. • L = {lc1c2/(c1,c2)C}, conexiones o transiciones.C es un subconjunto del producto cartesiano CxC.|L| Nc2 • Jci,cj J(lcicj,t), función que asocia costos a las aristas. • (C,L,t) conjunto finito de restricciones asignadas a elementos de C y L. • s = (ci,cj,…,ck,…) estado del problema. S = estados posibles. S= estados factibles f(S,).
Modelado del Problema • Ns es la estructura de vecindad: si s1 y s2 son dos estados, s2 es vecino de s1 si ambos están en S y s2 puede obtenerse a partir de s1en un único paso lógico. Si c1 es el último componente de s1, debe existir un componente c2 C, tal que lc1c2 L y s2 = (s1,c2) • es una solución, si es un elemento de Sy satisface todos los requerimientos del problema. • J(L,t) define el costo asociado a cada solución. Es una función de los costos Jcicj de todas las conexiones pertenecientes a la solución.
Feromona Feromona como memoria de largo plazo • Codificación de la información recolectada:por las hormigas, durante el proceso de búsqueda, almacenada como rastros de feromona asociados a los arcos. • Lectura: Ante cada decisión una hormiga utiliza: • información propia • del nodo en que se encuentra • de los arcos adyacentes (feromona). • Escritura: Para cada arco transitado por una hormiga, ésta deja el rastro de feromona.
Feromona Feromona como base de la interacción • Propicia la interacción indirecta entre la colonia: A cada hormiga se le hace difícil llegar a la solución óptima. Encontrar buenas soluciones depende de la interacción entre la colonia por medio de la información que ellas leen y escriben en los arcos por lo que pasan, mediante los rastros de feromona. • Percepción de la colonia: Las hormigas modifican la forma en que el problema es representado y percibido por las demás hormigas,pero no se adaptanellas mismas. • Memoria a largo plazo.
Modelado de las Hormigas Propiedades • Objetivo: buscar en forma constructiva, una solución factible de costo mínimo. • Movimientos:desde un estado sr=(sr-1,i), puede moverse a cualquier nodo j de su vecindad factible, definida como N ik = { j/jNi(sr,j) S } • Memoria Mk: usada para almacenar el camino recorrido. Se usa para la construcción y evaluación de las soluciones y para volver atrás. • 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).
Modelado de las Hormigas Ciclo de Vida • Comienzo:Cada una desde un estado inicial (puede o no ser el mismo para todas) • Desplazamiento:A estados en la vecindad factible, de acuerdo a una regla de decisión probabilística. • Final:El proceso de construcción termina cuando la hormiga cumple al menos una de las condiciones de fin. • Muerte:Luego de cumplidas estas actividades, codifica su aporte a la colonia y muere, liberando todos los recursos.
Modelado de las Hormigas Regla de decisión probabilística de movimiento • La regla de decisión probabilística de las hormigas es una función de: • Un valor almacenado en tabla de ruteo, obtenido a partir del valor de feromona del arco considerado y un valor heurístico.i=[aij], aij=f (ij, ij) • La memoria privada de las hormigas, que almacena su pasado. • Restricciones del problema.
Actualización de la Feromona Modelado de las Hormigas • Actualizació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). • Actualización on-line retardada:Una vez construida una solución, rehacen el camino en sentido inverso, actualizando el valor de la feromona de cada arco recorrido.
Intensificación vs. Diversificación. • Intensificación: A través de las reglas de actualización de la feromona que van reforzando las buenas soluciones. • Diversificación: implementado a través de: • mecanismo probabilístico de construcción de las soluciones. • Evaporación de la feromona. • 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.
Pseudocódigo procedure ACO meta-heuristic() while (termination_criterion_not_satisfied) schedule_activities ants_generation_and_activity(); pheromone_evaporation(); daemon_actions(); [opcional] 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(); [opcional] 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(); [opcional] 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(); [opcional] 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(); [opcional] end schedule_activities end while end procedure
Ants Generation And Activity Procedure Ants_Generation_And_Activity() While (AvailableResources) schedule_creation_of_new_ant(); new_active_ant(); End While End Procedure Procedure Ants_Generation_And_Activity() While (AvailableResources) schedule_creation_of_new_ant(); new_active_ant(); End While End Procedure
new active ant() procedure new active ant() initialize ant(); M = update ant memory(); Desplazarse Dejar Aprendizaje a la Colonia die(); end procedure while (current state target state) A = read local ant-routing table(); P = compute transition probabilities(A; M;); next state = apply ant decision policy(P; ); move to next state(next state); if (online step-by-step pheromone update) deposit pheromone on the visited arc(); update ant-routing table(); end if M = update internal state(); end while if (online delayed pheromone update) foreach visited_arcdo deposit pheromone on the visited arc(); update ant-routing table(); end foreach end if
Aplicaciones • TSP (problema del vendedor viajero) • Ruteo en redes de comunicación • QAP • VRP y VRPTW • Ordenamiento Secuencial • Job-shop scheduling • Mayor Super-Secuencia Común • Asignamiento Generalizado
Aplicaciones – ACO-TSP Nociones Generales • 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. • Motivación: Fue el primer problema en ser atacado por medio de ACO porque es: • Relativamente fácil de adaptar la metáfora de la colonia de hormigas al problema • Un problema de difícil solución (NP-Hard) • Uno de los problemas de optimización combinatoria más estudiados • Conocido y fácil de exponer y explicar
Aplicaciones – ACO-TSP Modelado • C = Conjunto de ciudades • L = Conjunto de conexiones entre ciudades • Jcicj = Distancias entre ci y cj, ci,cj C • La ciudad inicial para cada hormiga es elegida aleatoreamente • Actualización de la feromona: Solo retardada • La evaporación de feromona se hace luego de que todas las hormigas terminan su tour
Aplicaciones – ACO-TSP Comportamiento de las hormigas • Se posicionan en paralelo m hormigas en m ciudades, elegidas aleatoreamente. • Se inicializa la memoria Mk con esa ciudad. • Comienza un ciclo hasta que cada hormiga complete un tour: • Buscar la vecindad factible del nodo actual. • Leer las entradas aij de la tabla de ruteo. • Calcular las probabilidades de transición pijk(t). • Aplicar la regla de decisión para elegir una ciudad a la que desplazarse. • Realizar el desplazamiento. Actualizar la memoria local. • Una vez terminado el tour, actualiza la feromona del recorrido y termina su ejecución. • Se posicionan en paralelo m hormigas en m ciudades, elegidas aleatoreamente. • Se inicializa la memoria Mk con esa ciudad. • Comienza un ciclo hasta que cada hormiga complete un tour: • Buscar la vecindad factible del nodo actual • Leer las entradas aij de la tabla de ruteo • Calcular las probabilidades de transición pijk(t) • Aplicar la regla de decisión para elegir una ciudad a la que desplazarse. • Realizar el desplazamiento. Actualizar la memoria local. • Una vez terminado el tour, actualiza la feromona del recorrido y termina su ejecución.
Aplicaciones – ACO-TSP Toma de decisiones e interacción entre la colonia... leer los aij de Ai • = 1 • = 5 • = 0.5 probabilidades de transición actualizar rastros de feromona evaporación de feromona
Aplicaciones – AntNet • Aplicación posterior a TSP. • Utilizado para encontrar el optimo en la transferencia de DATOS en redes. • Distribuido y no sincronizado. • Rutear es difícil porque los costos son dinámicos. • Motivación: encontrar Ri = [rijd ] para cada nodo. Notas Generales
Aplicaciones – AntNet Modelado • Se modela cada nodo de la red como un nodo de un grafo G(C,L). • C = Nodos de la red. • L = “links” entre nodos, su valores estan relacionados con las propiedades físicas del canal y el trafico por el mismo.
Aplicaciones – AntNet Modelado • Cada Hormiga busca un “camino” ente 2 nodos con costo mínimo. • Hormiga(origen,destino) • Cada Hormiga parte de un nodo distinto, desplazándose de uno a otro, hacia su destino. • En cada paso debe optar ente los arcos factibles, esta decisión esta basada en la Mk y en la tabla de ruteo de cada nodo.
Feromonas Aplicaciones – AntNet • En esta aplicación la feromona de un arco esta en relación con la calidad del camino desde el nodo actual al destino. • El valor ijd [0,1] con i actual, j próximo, d destino. • A diferencia de TSP se genera una estructura bidimensional para el ruteo del nodo y las feromonas
Valores heurísticos Aplicaciones – AntNet • Para cada arco se coloca valor inicial, nij [0,1], independiente del destino. • q en este problema representa el largo de la cola de bits para enviar por el link. • El efecto es desestimar los caminos mas congestionados.
Ruteo del nodo Aplicaciones – AntNet • Cada nodo tiene su tabla de ruteo y depende de nij y ijd • Con un factor w [0,1] se da mas peso a uno u otro.
Decisión de la Hormiga Aplicaciones – AntNet • La Hormiga decide entre los adyacentes, no visitados (que no están en Mk). • Los adyacentes factibles tienen pijd(t) • pijd(t) = aijd(t) ,valor de tabla de ruteo(no visitados). • pijd(t) = 0, adyacentes ya visitados. • pijd(t) = 1/|Ni|, si no hay caminos posibles (fueron ya todos visitados).
Actualizaciones Aplicaciones – AntNet • Las Hormigas se mueven como se moverían los datos en la red. • Igual que los bits reales tienen retraso para su viaje hacia el destino. • Una vez que la Hormiga llega a destino, regresa hacia atrás, depositando feromonas.
Actualización Aplicaciones – AntNet • Tsd es una medida del tiempo que insume la ruta de i a d vía j. Mide lo “buena que es una ruta”. • El incremento de feromona es proporcional al inversode Tsd. • Se coloca la feromona al final, porque hay que tener el valor de Tsd • Se lleva cabo la evaporación, por un factor de normalización, • No hay “Daemon” para modificar las feromonas depositadas en los arcos.
Tabla de Ruteo resultado Aplicaciones – AntNet • 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. • Estas tablas son usadas al rutear los datos a ser transmitidos por la red.
Conclusiones • 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 • Noción de secuencia o distancia. • Problemas que cambian en t
Conclusiones • Fácil de paralelizar, propio del mecanismo • Esta metaheurística se ha comprobado, según Gambardella, como altamente competitiva en: • MACS-VRPTW: Vehicle Routing Problem with Time Windows • HAS-QAP: Quadratic Assignment Problem • HAS-SOP: Sequential Ordering Problem • Flexible Job Shop Problem
Preguntas ¿?