ant colony optimization
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Grupo 8 – Berger y Casarini
Ant Colony Optimization
A new Meta-Heuristic
Marco DorigoGianni 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
Introducción
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.
Autores y sus trabajos
Introducción
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.
Idea
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
IntroducciónFormalización
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| Nc
2
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,).
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 s1 en 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 S y 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.
Modelado del Problema
Feromona
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 como memoria de largo plazo
Feromona
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 adaptan ellas mismas.
Memoria a largo plazo.
Feromona como base de la interacción
Modelado de las HormigasPropiedades
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 i
k = { 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 HormigasCiclo 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.
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.
Modelado de las HormigasRegla de decisión probabilística de movimiento
Actualización de la Feromona
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.
Modelado de las Hormigas
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_activitiesend 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 whileend 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 whileend 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 whileend 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 whileend procedure
Ants Generation And Activity
Procedure Ants_Generation_And_Activity()While (AvailableResources)
schedule_creation_of_new_ant();new_active_ant();
End WhileEnd Procedure
Procedure Ants_Generation_And_Activity()While (AvailableResources)
schedule_creation_of_new_ant();new_active_ant();
End WhileEnd Procedure
new active ant()
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 ifM = update internal state();
end while
if (online delayed pheromone update) foreach visited_arc do deposit pheromone on the visited arc(); update ant-routing table(); end foreachend if
procedure new active ant() initialize ant(); M = update ant memory(); Desplazarse Dejar Aprendizaje a la Colonia die();end procedure
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
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
Nociones Generales
Aplicaciones – ACO-TSPModelado
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
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 pij
k(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.
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 pij
k(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-TSPToma de decisiones e interacción entre la colonia...
leer los aij de Ai
probabilidades de transición
actualizar rastros de feromona
evaporación de feromona
= 1
= 5
= 0.5
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.
Aplicaciones – AntNet
Notas Generales
Aplicaciones – AntNet
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.
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.
Aplicaciones – AntNetModelado
Feromonas
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
Aplicaciones – AntNet
Valores heurísticos
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.
Aplicaciones – AntNet
Ruteo del nodo
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.
Aplicaciones – AntNet
Decisión de la Hormiga
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).
Aplicaciones – AntNet
Actualizaciones
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.
Aplicaciones – AntNet
Actualización
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.
Aplicaciones – AntNet
Tabla de Ruteo resultado
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.
Aplicaciones – AntNet
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
¿?